<ph type="x-smartling-placeholder">
本教程将帮助你开始进行 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")