Tutorial ini akan membantu Anda memulai layanan penyesuaian Gemini API menggunakan Python SDK atau REST API curl. Contoh ini menunjukkan cara menyesuaikan model teks di balik layanan pembuatan teks Gemini API.
Lihat di ai.google.dev | Coba notebook Colab | Lihat notebook di GitHub |
Batasan
Sebelum menyesuaikan model, Anda harus mengetahui batasan berikut:
Melakukan fine-tuning set data
Menyempurnakan set data untuk Gemini 1.5 Flash memiliki batasan berikut:
- Ukuran input maksimum per contoh adalah 40.000 karakter.
- Ukuran output maksimum per contoh adalah 5.000 karakter.
- Hanya contoh pasangan input-output yang didukung. Percakapan multi-giliran gaya chat tidak didukung.
Model yang disesuaikan
Model yang disesuaikan memiliki batasan berikut:
- Batas input model Gemini 1.5 Flash yang dioptimalkan adalah 40.000 karakter.
- Mode JSON tidak didukung dengan model yang disesuaikan.
- Hanya input teks yang didukung.
Sebelum memulai: Siapkan project dan kunci API Anda
Sebelum memanggil Gemini API, Anda perlu menyiapkan project dan mengonfigurasi kunci API.
Mencantumkan model yang telah disesuaikan
Anda dapat memeriksa model yang telah disesuaikan yang ada dengan
Metode tunedModels.list
.
import google.generativeai as genai
for model_info in genai.list_tuned_models():
print(model_info.name)
Membuat model yang di-tuning
Untuk membuat model yang disesuaikan, Anda harus meneruskan set data ke
model dalam metode
tunedModels.create
.
Untuk contoh ini, Anda akan menyesuaikan model untuk menghasilkan angka berikutnya dalam
urutan. Misalnya, jika inputnya adalah 1
, model akan menghasilkan 2
. Jika
inputnya adalah one hundred
, outputnya harus 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
Nilai optimal untuk jumlah epoch, ukuran batch, dan kecepatan pemelajaran bergantung pada set data dan batasan lain dari kasus penggunaan Anda. Untuk mempelajari nilai ini lebih lanjut, lihat Setelan penyesuaian lanjutan dan Hyperparameter.
Karena penyesuaian model dapat memerlukan waktu yang cukup lama, API ini tidak menunggu
penyesuaian selesai. Sebagai gantinya, metode ini akan menampilkan google.api_core.operation.Operation
yang memungkinkan Anda memeriksa status tugas tuning, atau menunggunya
selesai, dan
memeriksa hasilnya.
Model yang disesuaikan akan segera ditambahkan ke daftar model yang disesuaikan, tetapi statusnya ditetapkan ke "membuat" saat model disesuaikan.
Memeriksa progres tuning
Anda dapat memeriksa progres operasi penyesuaian menggunakan metode
wait_bar()
:
for status in operation.wait_bar():
time.sleep(10)
Anda juga dapat menggunakan operation.metadata
untuk memeriksa jumlah total langkah tuning
dan operation.update()
untuk memuat ulang status operasi.
Anda dapat membatalkan tugas penyesuaian kapan saja menggunakan metode cancel()
.
operation.cancel()
Mencoba model
Anda dapat menggunakan metode
tunedModels.generateContent
dan menentukan nama model yang dioptimalkan untuk menguji performanya.
import google.generativeai as genai
model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text) # "IV"
Memperbarui deskripsi
Anda dapat memperbarui deskripsi model yang telah disesuaikan kapan saja menggunakan
Metode genai.update_tuned_model
.
genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})
Hapus model
Anda dapat membersihkan daftar model yang telah disesuaikan dengan menghapus model yang tidak lagi diperlukan.
Gunakan metode tunedModels.delete
untuk menghapus model. Jika Anda membatalkan tugas tuning, Anda dapat menghapusnya sebagai
performanya mungkin tidak dapat diprediksi.
genai.delete_tuned_model("tunedModels/my-increment-model")