Gemini API 的微调支持提供了一种在输入/输出示例较小的数据集时策划输出的机制。如需了解详情,请参阅模型调参指南和教程。
方法:tuneModels.create
创建经过调参的模型。通过 google.longrunning.Operations
服务查看中间调整进度(如果有)。
通过 Operations 服务访问状态和结果。示例:GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222
端点
POST https://generativelanguage.googleapis.com/v1beta/tunedModels查询参数
tunedModelId
string
可选。经过优化的模型的唯一 ID(如果指定)。此值不得超过 40 个字符,第一个字符必须是字母,最后一个字符可以是字母或数字。此 ID 必须与以下正则表达式匹配:[a-z]([a-z0-9-]{0,38}[a-z0-9])?
。
请求正文
请求正文包含一个 TunedModel
实例。
displayName
string
可选。要在界面中为此模型显示的名称。显示名称不得超过 40 个字符(包括空格)。
description
string
可选。此模型的简短说明。
tuningTask
object (TuningTask
)
必需。用于创建经过调优的模型的调优任务。
readerProjectNumbers[]
string (int64 format)
可选。对经过调优的模型拥有读取权限的项目编号列表。
source_model
。用作调参起点的模型。source_model
只能是以下项之一:
tunedModelSource
object (TunedModelSource
)
可选。TunedModel,用作训练新模型的起点。
baseModel
string
不可变。要调谐的 Model
的名称。示例:models/gemini-1.5-flash-001
temperature
number
可选。控制输出的随机性。
值的范围介于 [0.0,1.0]
到 [0.0,1.0]
之间(包括这两个数值)。如果值更接近 1.0
,则回答的差异更大;如果值更接近 0.0
,模型回答通常也会不太出人意料。
此值指定默认值为基础模型在创建模型时使用的值。
topP
number
可选。适用于 Nucleus 采样。
核采样会考虑概率总和至少为 topP
的最小词元集。
此值指定默认值为基础模型在创建模型时使用的值。
topK
integer
可选。适用于 Top-k 采样。
Top-k 采样会考虑概率最高的 topK
个词元。此值指定后端在调用模型时使用的默认值。
此值将默认值指定为创建模型时基本模型使用的值。
示例请求
Python
响应正文
此资源表示由网络 API 调用引发的长时间运行的操作。
如果成功,响应正文将包含结构如下的数据:
name
string
由服务器分配的名称,该名称仅在最初返回它的那项服务中是唯一的。如果您使用默认 HTTP 映射,则 name
应是以 operations/{unique_id}
结尾的资源名称。
metadata
object
与操作关联的服务专属元数据。它通常包含进度信息和常见元数据(如创建时间)。一些服务可能不会提供此类元数据。任何返回长时间运行操作的方法都应记录元数据类型(如果有的话)。
此对象可以包含任意类型的字段。附加字段 "@type"
包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }
。
done
boolean
如果值为 false
,则表示操作仍在进行中。如果为 true
,则表示操作已完成,其结果不是 error
就是 response
。
result
。操作结果,可以是 error
,也可以是有效的 response
。如果 done
== false
,则既不会设置 error
,也不会设置 response
。如果 done
== true
,则只能设置 error
或 response
中的一项。部分服务可能不会提供结果。result
只能是以下项之一:
error
object (Status
)
操作失败或被取消时表示有错误发生的结果。
response
object
操作的常规成功响应。如果原始方法在成功时不返回任何数据(如 Delete
),则响应为 google.protobuf.Empty
。如果原始方法为标准 Get
/Create
/Update
方法,则响应应该为资源。对于其他方法,响应类型应为 XxxResponse
,其中 Xxx
是原始方法的名称。例如,如果原始方法名称为 TakeSnapshot()
,则推断的响应类型为 TakeSnapshotResponse
。
此对象可以包含任意类型的字段。附加字段 "@type"
包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }
。
JSON 表示法 |
---|
{ "name": string, "metadata": { "@type": string, field1: ..., ... }, "done": boolean, // Union field |
方法:tunedModels.generateContent
根据输入 GenerateContentRequest
生成模型回答。如需了解详细用法信息,请参阅文本生成指南。输入功能因模型而异,包括经调参的模型。如需了解详情,请参阅模型指南和调整指南。
端点
POST https://generativelanguage.googleapis.com/v1beta/{model=tunedModels/*}:generateContent路径参数
model
string
必需。用于生成补全的 Model
的名称。
格式:name=models/{model}
。其格式为 tunedModels/{tunedmodel}
。
请求正文
请求正文中包含结构如下的数据:
<ph type="x-smartling-placeholder">toolConfig
object (ToolConfig
)
可选。请求中指定的任何 Tool
的工具配置。如需查看使用示例,请参阅函数调用指南。
safetySettings[]
object (SafetySetting
)
可选。用于屏蔽不安全内容的唯一 SafetySetting
实例列表。
这将在 GenerateContentRequest.contents
和 GenerateContentResponse.candidates
上强制执行。每个 SafetyCategory
类型不应有多个设置。此 API 将屏蔽任何未达到这些设置所设阈值的内容和响应。此列表会替换 safetySettings 中指定的每个 SafetyCategory
的默认设置。如果列表中提供的给定 SafetyCategory
没有 SafetySetting
,则该 API 将使用该类别的默认安全设置。支持的有害内容类别包括 HARM_CATEGORY_HATE_SPEECH、HARM_CATEGORY_SEXUALLY_EXPLICIT、HARM_CATEGORY_DANGEROUS_CONTENT 和 HARM_CATEGORY_HARASSMENT。如需详细了解可用的安全设置,请参阅此指南。另请参阅安全指南,了解如何在 AI 应用中纳入安全注意事项。
generationConfig
object (GenerationConfig
)
可选。用于模型生成和输出的配置选项。
cachedContent
string
可选。缓存的内容的名称,用于作为上下文来提供预测。格式:cachedContents/{cachedContent}
示例请求
文本
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
肖像
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
音频
Python
Node.js
Shell
视频
Python
Node.js
Go
Shell
Python
Shell
聊天
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
缓存
Python
Node.js
经调优的模型
Python
JSON 模式
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
代码执行
Python
Kotlin
Java
函数调用
Python
Node.js
Shell
Kotlin
Swift
Dart
Java
生成配置
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
安全设置
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
系统指令
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
响应正文
如果成功,则响应正文包含一个 GenerateContentResponse
实例。
方法:tuneModels.get
获取有关特定 TunedModel 的信息。
端点
<ph type="x-smartling-placeholder"></ph> 领取 https://generativelanguage.googleapis.com/v1beta/{name=tunedModels/*}路径参数
name
string
必需。模型的资源名称。
格式:tunedModels/my-model-id
采用 tunedModels/{tunedmodel}
格式。
请求正文
请求正文必须为空。
示例请求
Python
响应正文
如果成功,则响应正文包含一个 TunedModel
实例。
方法:tunedModels.list
列出创建的经过调优的模型。
端点
<ph type="x-smartling-placeholder"></ph> 领取 https://generativelanguage.googleapis.com/v1beta/tunedModels查询参数
pageSize
integer
可选。要返回的 TunedModels
的数量上限(每页)。服务返回的已调参模型较少。
如果未指定,则最多返回 10 个已调参模型。即使您传递更大的 pageSize,此方法也会每页最多返回 1000 个模型。
pageToken
string
可选。从之前的 tunedModels.list
调用接收的页面令牌。
将一个请求返回的 pageToken
作为下一个请求的参数提供,以检索下一页。
进行分页时,提供给 tunedModels.list
的所有其他参数必须与提供页面令牌的调用匹配。
filter
string
可选。过滤条件是对经过调优的模型的说明和显示名称进行的完整文本搜索。默认情况下,结果不会包含与所有人共享的经过优化的模型。
其他运算符:- owner:me - writers:me - readers:me - readers:everyone
示例:“owner:me”会返回调用方具有所有者角色的所有经过调优的模型;“readers:me”会返回调用方具有读者角色的所有经过调优的模型;“readers:everyone”会返回与所有人共享的所有经过调优的模型
请求正文
请求正文必须为空。
示例请求
Python
响应正文
来自 tunedModels.list
的响应,其中包含分页的模型列表。
如果成功,响应正文将包含结构如下的数据:
tunedModels[]
object (TunedModel
)
返回的模型。
nextPageToken
string
一个令牌,可作为 pageToken
发送以检索下一页。
如果省略此字段,则不存在其他页面。
JSON 表示法 |
---|
{
"tunedModels": [
{
object ( |
方法:tunedModels.patch
更新经过调优的模型。
端点
<ph type="x-smartling-placeholder"></ph> 补丁 https://generativelanguage.googleapis.com/v1beta/{tunedModel.name=tunedModels/*}PATCH https://generativelanguage.googleapis.com/v1beta/{tunedModel.name=tunedModels/*}
路径参数
tunedModel.name
string
仅限输出。经调参的模型名称。系统会在创建时生成一个唯一的名称。示例:tunedModels/az2mb0bpw6i
如果在 create 时设置了 displayName,系统会通过以下方式设置名称的 ID 部分:使用连字符将 displayName 的字词串联起来,然后随机添加唯一性部分。
示例:
- displayName =
Sentence Translator
- name =
tunedModels/sentence-translator-u3b7m
,其格式为tunedModels/{tunedmodel}
。
查询参数
updateMask
string (FieldMask
format)
必需。要更新的字段列表。
这是完全限定字段名称的逗号分隔列表。示例:"user.displayName,photo"
。
请求正文
请求正文包含一个 TunedModel
实例。
displayName
string
可选。要在界面中为此模型显示的名称。显示名称不得超过 40 个字符(包括空格)。
description
string
可选。此模型的简短说明。
tuningTask
object (TuningTask
)
必需。用于创建经过调优的模型的调优任务。
readerProjectNumbers[]
string (int64 format)
可选。对经过调优的模型拥有读取权限的项目编号列表。
source_model
。用作调参起点的模型。source_model
只能是以下项之一:
tunedModelSource
object (TunedModelSource
)
可选。TunedModel,用作训练新模型的起点。
temperature
number
可选。控制输出的随机性。
值的范围介于 [0.0,1.0]
到 [0.0,1.0]
之间(包括这两个数值)。如果值更接近 1.0
,则回答的差异更大;如果值更接近 0.0
,模型回答通常也会不太出人意料。
此值指定默认值为基础模型在创建模型时使用的值。
topP
number
可选。适用于 Nucleus 采样。
核采样会考虑概率总和至少为 topP
的最小词元集。
此值指定默认值为基础模型在创建模型时使用的值。
topK
integer
可选。适用于 Top-k 采样。
Top-k 采样会考虑概率最高的 topK
个词元。此值指定后端在调用模型时使用的默认值。
此值指定默认值为基础模型在创建模型时使用的值。
响应正文
如果成功,则响应正文包含一个 TunedModel
实例。
方法:tunedModels.delete
删除经调参的模型。
端点
<ph type="x-smartling-placeholder"></ph> 删除 https://generativelanguage.googleapis.com/v1beta/{name=tunedModels/*}路径参数
name
string
必需。模型的资源名称。格式:tunedModels/my-model-id
,其格式为 tunedModels/{tunedmodel}
。
请求正文
请求正文必须为空。
响应正文
如果成功,则响应正文为空。
REST 资源:tuneModels
资源:TunedModel
使用 ModelService.CreateTunedModel 创建的经过微调的模型。
name
string
仅限输出。经调参的模型名称。创建时,系统会生成一个唯一名称。示例:tunedModels/az2mb0bpw6i
如果在创建时设置了 displayName,系统会将 displayName 中的字词用连字符串联起来,并添加一个随机部分以确保唯一性,从而设置名称的 ID 部分。
示例:
- displayName =
Sentence Translator
- name =
tunedModels/sentence-translator-u3b7m
displayName
string
可选。要在界面中显示的此模型的名称。显示名称不得超过 40 个字符(包括空格)。
description
string
可选。此模型的简短说明。
state
enum (State
)
仅限输出。已调参模型的状态。
createTime
string (Timestamp
format)
仅限输出。创建此模型时的时间戳。
时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
updateTime
string (Timestamp
format)
仅限输出。更新此模型的时间戳。
时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
tuningTask
object (TuningTask
)
必需。创建已调参模型的调参任务。
readerProjectNumbers[]
string (int64 format)
可选。对经过调优的模型拥有读取权限的项目编号列表。
source_model
。用作调参起点的模型。source_model
只能是以下项之一:
tunedModelSource
object (TunedModelSource
)
可选。TunedModel,用作训练新模型的起点。
baseModel
string
不可变。要调谐的 Model
的名称。示例:models/gemini-1.5-flash-001
temperature
number
可选。控制输出的随机性。
值的范围介于 [0.0,1.0]
到 [0.0,1.0]
之间(包括这两个数值)。如果值更接近 1.0
,则回答的差异更大;如果值更接近 0.0
,模型回答通常也会不太出人意料。
此值指定默认值为基础模型在创建模型时使用的值。
topP
number
可选。适用于 Nucleus 采样。
核采样会考虑概率总和至少为 topP
的最小词元集。
此值指定默认值为基础模型在创建模型时使用的值。
topK
integer
可选。适用于 Top-k 采样。
Top-k 采样会考虑概率最高的 topK
个词元。此值指定后端在调用模型时使用的默认值。
此值将默认值指定为创建模型时基本模型使用的值。
JSON 表示法 |
---|
{ "name": string, "displayName": string, "description": string, "state": enum ( |
TunedModelSource
将经调参的模型作为训练新模型的来源。
tunedModel
string
不可变。要用作训练新模型的起点的 TunedModel
的名称。示例:tunedModels/my-tuned-model
baseModel
string
仅限输出。此 TunedModel
的调优基准 Model
的名称。示例:models/gemini-1.5-flash-001
JSON 表示法 |
---|
{ "tunedModel": string, "baseModel": string } |
州
已调参模型的状态。
枚举 | |
---|---|
STATE_UNSPECIFIED |
默认值。此值未使用。 |
CREATING |
正在创建模型。 |
ACTIVE |
该模型已可供使用。 |
FAILED |
未能创建模型。 |
TuningTask
用于创建经过调优的模型的调优任务。
startTime
string (Timestamp
format)
仅限输出。开始调优此模型时的时间戳。
时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
completeTime
string (Timestamp
format)
仅限输出。完成此模型微调时的时间戳。
时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
snapshots[]
object (TuningSnapshot
)
仅限输出。调参期间收集的指标。
trainingData
object (Dataset
)
必需。仅限输入。不可变。模型训练数据。
hyperparameters
object (Hyperparameters
)
不可变。控制调优过程的超参数。如果未提供,系统将使用默认值。
JSON 表示法 |
---|
{ "startTime": string, "completeTime": string, "snapshots": [ { object ( |
TuningSnapshot
针对单个调整步骤的记录。
step
integer
仅限输出。调参步骤。
epoch
integer
仅限输出。此步骤所属的纪元。
meanLoss
number
仅限输出。该步骤训练样本的平均损失。
computeTime
string (Timestamp
format)
仅限输出。计算此指标时的时间戳。
时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
JSON 表示法 |
---|
{ "step": integer, "epoch": integer, "meanLoss": number, "computeTime": string } |
数据集
用于训练或验证的数据集。
dataset
。内嵌数据或对数据的引用。dataset
只能是以下项之一:
examples
object (TuningExamples
)
可选。内嵌示例。
JSON 表示法 |
---|
{ // Union field |
TuningExamples
一组调整示例。可以是训练数据或验证数据。
examples[]
object (TuningExample
)
必需。示例。示例输入可以是文本输入,也可以是讨论,但同一集中的所有示例都必须属于同一类型。
JSON 表示法 |
---|
{
"examples": [
{
object ( |
TuningExample
单个调参示例。
output
string
必需。预期的模型输出。
model_input
。此示例的模型输入。model_input
只能是下列其中一项:
textInput
string
可选。文本模型输入。
JSON 表示法 |
---|
{ "output": string, // Union field |
超参数
用于控制调优过程的超参数。如需了解详情,请访问 https://ai.google.dev/docs/model_tuning_guidance
learning_rate_option
。用于在调优期间指定学习速率的选项。learning_rate_option
只能是以下项之一:
learningRate
number
可选。不可变。用于调节的学习速率超参数。如果未设置,系统会根据训练示例的数量计算默认值 0.001 或 0.0002。
learningRateMultiplier
number
可选。不可变。学习速率调节系数用于根据默认(推荐)值计算最终 learningRate。实际学习速率 := learningRateMultiplier * 默认学习速率。默认学习速率取决于基准模型和数据集大小。如果未设置,系统将使用默认值 1.0。
epochCount
integer
不可变。训练周期数。一个周期是指一次遍历训练数据。如果未设置,系统将使用默认值 5。
batchSize
integer
不可变。用于调参的批次大小超参数。如果未设置,系统将根据训练示例的数量使用默认值 4 或 16。
JSON 表示法 |
---|
{ // Union field |