微調教學課程

本教學課程將協助您開始使用 Gemini API 調整作業 透過 Python SDK 或 REST API 存取 curl。範例顯示如何調整基礎模型 與 Gemini API 文字生成服務搭配使用

前往 ai.google.dev 查看 試用 Colab 筆記本 在 GitHub 中查看筆記本

設定驗證方法

Gemini API 可讓您根據自己的資料調整模型。您擁有的資料和 您的調整後模型需要比 API 金鑰更嚴格的存取權控管。

執行本教學課程前,請先為 專案

列出調整後的模型

您可以使用genai.list_tuned_models查看現有調整後的模型 方法。

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

建立調整後模型

如要建立調整後的模型,您必須將資料集傳送至 genai.create_tuned_model 方法。做法是直接定義 將呼叫輸入和輸出值,或從檔案匯入 DataFrame, 傳遞到方法中

在這個範例中,您將調整模型,產生下一個數字 序列舉例來說,如果輸入內容是 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

訓練週期數、批量和學習率的最佳值取決於週期數、批量和學習率 例如資料集和用途的其他限制如要進一步瞭解 這些值,請參閱 進階調整設定和 「超參數」

調整模型可能需要大量時間,因此這個 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")