<ph type="x-smartling-placeholder">
このチュートリアルは、Gemini API のチューニングを始めるのに役立ちます。 gcloud SDK または REST API を使用して、 curl。例は、テキストモデルを Google Cloud の背後にある Gemini API テキスト生成サービスを使用しています。
ai.google.dev で表示 | Colab ノートブックを試す | GitHub のノートブックを表示 |
認証を設定する
Gemini API を使用すると、独自のデータでモデルをチューニングできます。お客様のデータとは チューニングされたモデルには、API キーが提供できるよりも厳格なアクセス制御が必要です。
このチュートリアルを実行する前に、アカウントに OAuth を設定する必要があります。 プロジェクトです。
チューニング済みモデルを一覧表示する
既存のチューニング済みモデルは genai.list_tuned_models
で確認できます。
メソッドを呼び出します。
for model_info in genai.list_tuned_models():
print(model_info.name)
チューニング済みモデルの作成
チューニング済みモデルを作成するには、データセットを
genai.create_tuned_model
メソッドを使用します。これを行うには、
またはファイルからデータフレームにインポートして、
メソッドに渡します。
この例では、入力シーケンスの次の数値を生成するようにモデルをチューニングし、
あります。たとえば、入力が 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")