บทแนะนำนี้จะช่วยคุณในการเริ่มต้นใช้งานบริการปรับแต่ง 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
import google.generativeai as genai
for model_info in genai.list_tuned_models():
print(model_info.name)
สร้างโมเดลที่ปรับแต่ง
หากต้องการสร้างโมเดลที่ปรับแต่งแล้ว คุณต้องส่งชุดข้อมูลไปยังโมเดลในเมธอด tunedModels.create
สำหรับตัวอย่างนี้ คุณจะปรับแต่งโมเดลเพื่อสร้างตัวเลขถัดไปใน
ตามลำดับ เช่น หากอินพุตคือ 1
โมเดลควรแสดงผลเป็น 2
หาก
อินพุตคือ one hundred
เอาต์พุตควรเป็น one hundred one
import google.generativeai as genai
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
ค่าที่เหมาะสมที่สุดสำหรับจำนวนศักราช ขนาดกลุ่ม และอัตราการเรียนรู้จะขึ้นอยู่กับชุดข้อมูลและข้อจำกัดอื่นๆ ของกรณีการใช้งาน หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ ค่าเหล่านี้ โปรดดู การตั้งค่าการปรับแต่งขั้นสูงและ ไฮเปอร์พารามิเตอร์
เนื่องจากการปรับแต่งโมเดลอาจใช้เวลามาก API นี้จึงไม่ต้องรอ
ปรับแต่งให้สมบูรณ์ แต่ระบบจะแสดงgoogle.api_core.operation.Operation
ออบเจ็กต์ที่ให้คุณตรวจสอบสถานะของงานการปรับแต่ง หรือรอให้เสร็จสมบูรณ์ แล้วตรวจสอบผลลัพธ์
ระบบจะเพิ่มโมเดลที่คุณปรับแต่งลงในรายการโมเดลที่ปรับแต่งทันที แต่ สถานะตั้งค่าเป็น "การสร้าง" ขณะปรับแต่งโมเดล
ตรวจสอบความคืบหน้าในการปรับแต่ง
คุณสามารถตรวจสอบความคืบหน้าของการดำเนินการปรับแต่งได้โดยใช้ wait_bar()
วิธีการ:
for status in operation.wait_bar():
time.sleep(10)
คุณยังใช้ operation.metadata
เพื่อตรวจสอบจำนวนขั้นตอนการปรับแต่งทั้งหมดได้ด้วย
และoperation.update()
เพื่อรีเฟรชสถานะของการดำเนินการ
คุณสามารถยกเลิกงานการปรับแต่งได้ทุกเมื่อโดยใช้เมธอด cancel()
operation.cancel()
ลองใช้โมเดล
คุณสามารถใช้
tunedModels.generateContent
และระบุชื่อของโมเดลที่ปรับแต่งเพื่อทดสอบประสิทธิภาพ
import google.generativeai as genai
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."})
ลบโมเดล
คุณล้างข้อมูลรายการโมเดลที่ปรับแต่งได้โดยการลบโมเดลที่ไม่จำเป็นต้องใช้แล้ว
ใช้เมธอด tunedModels.delete
เพื่อลบโมเดล หากคุณยกเลิกงานการปรับแต่งใดๆ คุณอาจต้องการลบงานเหล่านั้น
ประสิทธิภาพของโฆษณาอาจ
คาดเดาไม่ได้
genai.delete_tuned_model("tunedModels/my-increment-model")