Tutorial fine-tuning

Tutorial ini akan membantu Anda memulai penyesuaian Gemini API layanan web menggunakan Python SDK atau REST API menggunakan curl. Contoh tersebut menunjukkan cara men-tuning model teks di balik layanan pembuatan teks Gemini API.

Lihat di ai.google.dev Coba notebook Colab Lihat notebook di GitHub

Menyiapkan autentikasi

Gemini API memungkinkan Anda menyesuaikan model menggunakan data Anda sendiri. Karena itu data Anda dan model yang telah disesuaikan, hal ini memerlukan kontrol akses yang lebih ketat daripada yang dapat disediakan oleh kunci API.

Sebelum dapat menjalankan tutorial ini, Anda harus menyiapkan OAuth untuk project Anda.

Mencantumkan model yang telah disesuaikan

Anda dapat memeriksa model yang sudah ada yang telah disesuaikan dengan genai.list_tuned_models .

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

Membuat model yang di-tuning

Untuk membuat model yang di-tuning, Anda harus meneruskan set data ke model tersebut di bagian Metode genai.create_tuned_model. Anda bisa melakukannya dengan langsung mendefinisikan nilai input dan output dalam panggilan atau mengimpor dari file ke dalam sebuah {i>dataframe<i} diteruskan ke metode tersebut.

Untuk contoh ini, Anda akan menyesuaikan model untuk menghasilkan angka berikutnya dalam . Misalnya, jika inputnya adalah 1, model akan menghasilkan 2. Jika inputnya adalah one hundred, output-nya harus 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

Nilai optimal untuk jumlah epoch, ukuran batch, dan kecepatan pemelajaran bergantung pada set data dan batasan lain dari kasus penggunaan Anda. Untuk mempelajari lebih lanjut tentang nilai-nilai ini, lihat Setelan penyesuaian lanjutan dan Hyperparameter.

Karena penyesuaian model bisa memakan waktu lama, API ini tidak menunggu penyelesaian tuning. 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 Anda yang di-tuning segera ditambahkan ke daftar model yang telah di-tuning, tetapi ditetapkan ke "{i>create<i}" selagi model di-tuning.

Memeriksa progres tuning

Anda dapat memeriksa progres operasi penyesuaian menggunakan wait_bar() berikut:

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 tuning kapan saja menggunakan metode cancel().

operation.cancel()

Coba modelnya

Anda dapat menggunakan metode genai.generate_text dan menentukan nama produk yang telah disesuaikan model ini untuk menguji performanya.

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 genai.delete_tuned_model untuk menghapus model. Jika Anda membatalkan tuning tugas, Anda dapat menghapusnya karena performanya mungkin tidak dapat diprediksi.

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