บทแนะนำการปรับแต่ง

บทแนะนำนี้จะช่วยคุณในการเริ่มต้นใช้งานการปรับแต่ง Gemini API ที่ใช้ Python SDK หรือ REST API โดยใช้ curl ตัวอย่างแสดงวิธีปรับแต่งโมเดลข้อความ บริการสร้างข้อความ Gemini API

ดูใน ai.google.dev ลองใช้ Colab Notebook ดูสมุดบันทึกใน GitHub

ตั้งค่าการตรวจสอบสิทธิ์

Gemini API ช่วยให้คุณปรับแต่งโมเดลจากข้อมูลของคุณเองได้ เนื่องจากเป็นข้อมูลของคุณและ โมเดลที่คุณปรับแต่งซึ่งต้องการการควบคุมการเข้าถึงที่เข้มงวดกว่าคีย์ API

ก่อนที่คุณจะเรียกใช้บทแนะนำนี้ได้ คุณจะต้องตั้งค่า OAuth สำหรับ โปรเจ็กต์

แสดงรายการโมเดลที่ปรับแต่ง

คุณสามารถตรวจสอบโมเดลที่ปรับแต่งแล้วได้ด้วย genai.list_tuned_models

for model_info in genai.list_tuned_models():
    print(model_info.name)

สร้างโมเดลที่ปรับแต่ง

หากต้องการสร้างโมเดลที่ปรับแต่ง คุณต้องส่งชุดข้อมูลไปยังโมเดลใน genai.create_tuned_model วิธี คุณสามารถทำได้โดยกำหนด ค่าอินพุตและเอาต์พุตในการเรียกใช้หรือการนำเข้าจากไฟล์ไปยังเฟรมข้อมูลเพื่อ ไปยังเมธอด

สำหรับตัวอย่างนี้ คุณจะปรับแต่งโมเดลเพื่อสร้างตัวเลขถัดไปใน ตามลำดับ ตัวอย่างเช่น หากอินพุตคือ 1 โมเดลควรแสดงผลเป็น 2 หาก อินพุตคือ one hundred เอาต์พุตควรเป็น one hundred one

import time

base_model = "models/gemini-1.5-flash-001-tuning"
training_data = [
    {"text_input": "1", "output": "2"},
    # ... more examples ...
    # ...
    {"text_input": "seven", "output": "eight"},
]
operation = genai.create_tuned_model(
    # You can use a tuned model here too. Set `source_model="tunedModels/..."`
    display_name="increment",
    source_model=base_model,
    epoch_count=20,
    batch_size=4,
    learning_rate=0.001,
    training_data=training_data,
)

for status in operation.wait_bar():
    time.sleep(10)

result = operation.result()
print(result)
# # You can plot the loss curve with:
# snapshots = pd.DataFrame(result.tuning_task.snapshots)
# sns.lineplot(data=snapshots, x='epoch', y='mean_loss')

model = genai.GenerativeModel(model_name=result.name)
result = model.generate_content("III")
print(result.text)  # IV

ค่าที่เหมาะสมที่สุดสำหรับจำนวน Epoch ขนาดกลุ่ม และอัตราการเรียนรู้จะขึ้นอยู่กับ ในชุดข้อมูลและข้อจำกัดอื่นๆ ของ Use Case หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ ค่าเหล่านี้ โปรดดู การตั้งค่าการปรับแต่งขั้นสูงและ ไฮเปอร์พารามิเตอร์

เนื่องจากการปรับแต่งโมเดลอาจใช้เวลามาก API นี้จึงไม่ต้องรอ ปรับแต่งให้สมบูรณ์ แต่จะแสดง google.api_core.operation.Operation แทน ที่ช่วยให้คุณตรวจสอบสถานะของงานการปรับแต่งหรือรอให้งาน เสร็จสมบูรณ์ และตรวจสอบผลลัพธ์

ระบบจะเพิ่มโมเดลที่คุณปรับแต่งลงในรายการโมเดลที่ปรับแต่งทันที แต่ สถานะตั้งค่าเป็น "การสร้าง" ขณะปรับแต่งโมเดล

ตรวจสอบความคืบหน้าในการปรับแต่ง

คุณสามารถตรวจสอบความคืบหน้าของการดำเนินการปรับแต่งได้โดยใช้ wait_bar() วิธีการ:

for status in operation.wait_bar():
    time.sleep(10)

คุณยังใช้ operation.metadata เพื่อตรวจสอบจำนวนขั้นตอนการปรับแต่งทั้งหมดได้ด้วย และoperation.update()เพื่อรีเฟรชสถานะของการดำเนินการ

คุณสามารถยกเลิกงานการปรับแต่งได้ทุกเมื่อโดยใช้เมธอด cancel()

operation.cancel()

ลองใช้โมเดล

คุณใช้เมธอด genai.generate_text และระบุชื่อของการปรับแต่งได้ เพื่อทดสอบประสิทธิภาพ

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

อัปเดตคำอธิบาย

คุณสามารถอัปเดตคำอธิบายโมเดลที่ปรับแต่งได้ทุกเมื่อโดยใช้ genai.update_tuned_model วิธี

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

ลบโมเดล

คุณล้างข้อมูลรายการโมเดลที่ปรับแต่งได้โดยการลบโมเดลที่ไม่จำเป็นต้องใช้แล้ว ใช้เมธอด genai.delete_tuned_model เพื่อลบโมเดล หากคุณยกเลิก การปรับแต่งงาน คุณอาจต้องการลบงานเหล่านั้นเนื่องจากประสิทธิภาพของงานนั้น แบบคาดเดาไม่ได้

genai.delete_tuned_model("tunedModels/my-increment-model")