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

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

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

ข้อจำกัด

ก่อนที่จะปรับแต่งโมเดล คุณควรทราบข้อจํากัดต่อไปนี้

การปรับแต่งชุดข้อมูล

การปรับแต่งชุดข้อมูลสําหรับ Gemini 1.5 Flash มีข้อจํากัดต่อไปนี้

  • ขนาดอินพุตสูงสุดต่อตัวอย่างคือ 40,000 อักขระ
  • ขนาดเอาต์พุตสูงสุดต่อตัวอย่างคือ 5,000 อักขระ
  • ระบบรองรับเฉพาะตัวอย่างคู่อินพุต-เอาต์พุตเท่านั้น ไม่รองรับการสนทนาแบบหลายรอบในลักษณะแชท

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

โมเดลที่ปรับแต่งมีข้อจํากัดต่อไปนี้

  • ขีดจํากัดของข้อมูลที่ป้อนของรุ่น Gemini 1.5 Flash ที่ปรับแต่งแล้วคือ 40,000 อักขระ
  • โมเดลที่ปรับแต่งแล้วไม่รองรับโหมด JSON
  • รองรับเฉพาะการป้อนข้อความ

ก่อนเริ่มต้น: ตั้งค่าโปรเจ็กต์และคีย์ API

คุณต้องตั้งค่าโปรเจ็กต์และกำหนดค่าคีย์ API ก่อนเรียกใช้ Gemini API

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

คุณสามารถตรวจสอบโมเดลที่ปรับแต่งที่มีอยู่ด้วยวิธี tunedModels.list

from google import genai
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable

for model_info in client.models.list():
    print(model_info.name)

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

หากต้องการสร้างโมเดลที่ปรับแต่งแล้ว คุณต้องส่งชุดข้อมูลไปยังโมเดลในเมธอด tunedModels.create

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

# create tuning model
training_dataset =  [
    ["1", "2"],
    ["3", "4"],
    ["-3", "-2"],
    ["twenty two", "twenty three"],
    ["two hundred", "two hundred one"],
    ["ninety nine", "one hundred"],
    ["8", "9"],
    ["-98", "-97"],
    ["1,000", "1,001"],
    ["10,100,000", "10,100,001"],
    ["thirteen", "fourteen"],
    ["eighty", "eighty one"],
    ["one", "two"],
    ["three", "four"],
    ["seven", "eight"],
]
training_dataset=types.TuningDataset(
        examples=[
            types.TuningExample(
                text_input=i,
                output=o,
            )
            for i,o in training_dataset
        ],
    )
tuning_job = client.tunings.tune(
    base_model='models/gemini-1.0-pro-001',
    training_dataset=training_dataset,
    config=types.CreateTuningJobConfig(
        epoch_count= 5,
        batch_size=4,
        learning_rate=0.001,
        tuned_model_display_name="test tuned model"
    )
)

# generate content with the tuned model
response = client.models.generate_content(
    model=tuning_job.tuned_model.model,
    contents='III',
)

print(response.text)

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

ลองใช้โมเดล

คุณสามารถใช้เมธอด tunedModels.generateContent และระบุชื่อโมเดลที่ปรับแต่งเพื่อทดสอบประสิทธิภาพได้

response = client.models.generate_content(
    model=tuning_job.tuned_model.model,
    contents='III'
)

ไม่ได้ใช้

ฟีเจอร์บางอย่าง (การรายงานความคืบหน้า การอัปเดตคําอธิบาย และการลบโมเดลที่ปรับแต่ง) ยังไม่พร้อมใช้งานใน SDK ใหม่