Gemini API 的微调支持提供了一种机制,可在您拥有少量输入/输出示例数据集时对输出进行整理。如需了解详情,请参阅模型调优指南和教程。
方法:tunedModels.create
创建已调参模型。通过 google.longrunning.Operations
服务检查中间调优进度(如有)。
通过 Operations 服务访问状态和结果。示例:GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222
端点
帖子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
Union type
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
可选。对于核采样。
核采样会考虑概率总和不低于 topP
的最小 token 集。
此值指定在创建模型时,默认使用基础模型所用的值。
topK
integer
可选。用于 Top-k 采样。
Top-k 抽样会考虑 topK
个最可能的 token。此值用于指定后端在调用模型时使用的默认值。
此值指定在创建模型时,默认使用基础模型所用的值。
示例请求
Python
响应正文
如果成功,响应正文将包含一个新创建的 Operation
实例。
方法:tunedModels.generateContent
根据输入 GenerateContentRequest
生成模型回答。如需了解详细的使用信息,请参阅文本生成指南。输入功能因型号而异,包括调谐模型。如需了解详情,请参阅模型指南和调优指南。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /{model=tunedModels /*}:generateContent
路径参数
model
string
必需。用于生成补全的 Model
的名称。
格式:models/{model}
。其格式为 tunedModels/{tunedmodel}
。
请求正文
请求正文中包含结构如下的数据:
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、HARM_CATEGORY_CIVIC_INTEGRITY。如需详细了解可用的安全设置,请参阅指南。您还可以参阅安全指南,了解如何在 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
Go
Shell
视频
Python
Node.js
Go
Shell
Python
Go
Shell
聊天
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
缓存
Python
Node.js
Go
经调整的模型
Python
JSON 模式
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
代码执行
Python
Go
Kotlin
Java
函数调用
Python
Go
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
实例。
方法:tunedModels.streamGenerateContent
根据输入 GenerateContentRequest
生成来自模型的流式传输回答。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /{model=tunedModels /*}:streamGenerateContent
路径参数
model
string
必需。用于生成补全的 Model
的名称。
格式:models/{model}
。其格式为 tunedModels/{tunedmodel}
。
请求正文
请求正文中包含结构如下的数据:
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、HARM_CATEGORY_CIVIC_INTEGRITY。如需详细了解可用的安全设置,请参阅指南。您还可以参阅安全指南,了解如何在 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
Go
Shell
视频
Python
Node.js
Go
Shell
Python
Go
Shell
聊天
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
响应正文
如果成功,响应正文将包含一个 GenerateContentResponse
实例流。
方法:tunedModels.get
获取有关特定 TunedModel 的信息。
端点
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=tunedModels /*}
路径参数
name
string
必需。模型的资源名称。
格式:tunedModels/my-model-id
采用 tunedModels/{tunedmodel}
格式。
请求正文
请求正文必须为空。
示例请求
Python
响应正文
如果成功,则响应正文包含一个 TunedModel
实例。
方法:tunedModels.list
列出已创建的调参模型。
端点
gethttps: / /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
的响应,包含分页的 Model 列表。
如果成功,响应正文将包含结构如下的数据:
tunedModels[]
object (TunedModel
)
返回的模型。
nextPageToken
string
可作为 pageToken
发送并用于检索下一页的令牌。
如果省略此字段,则没有更多页面。
JSON 表示法 |
---|
{
"tunedModels": [
{
object ( |
方法:tunedModels.patch
更新已调优的模型。
端点
补丁https: / /generativelanguage.googleapis.com /v1beta /{tunedModel.name=tunedModels /*}
PATCH https://generativelanguage.googleapis.com/v1beta/{tunedModel.name=tunedModels/*}
路径参数
tunedModel.name
string
仅限输出。已调参模型的名称。系统会在创建时生成一个唯一名称。示例:tunedModels/az2mb0bpw6i
如果在创建时设置了 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
Union type
source_model
只能是下列其中一项:tunedModelSource
object (TunedModelSource
)
可选。TunedModel,用作训练新模型的起点。
temperature
number
可选。控制输出的随机性。
值可介于 [0.0,1.0]
之间(含 [0.0,1.0]
)。值越接近 1.0
,生成的回答就越多样化;而值越接近 0.0
,模型生成的回答通常就越不令人意外。
此值指定在创建模型时,默认使用基础模型所用的值。
topP
number
可选。对于核采样。
核采样会考虑概率总和不低于 topP
的最小 token 集。
此值指定在创建模型时,默认使用基础模型所用的值。
topK
integer
可选。用于 Top-k 采样。
Top-k 抽样会考虑 topK
个最可能的 token。此值用于指定后端在调用模型时使用的默认值。
此值指定在创建模型时,默认使用基础模型所用的值。
响应正文
如果成功,则响应正文包含一个 TunedModel
实例。
方法:tunedModels.delete
删除调优的模型。
端点
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=tunedModels /*}
路径参数
name
string
必需。模型的资源名称。格式:tunedModels/my-model-id
采用 tunedModels/{tunedmodel}
格式。
请求正文
请求正文必须为空。
响应正文
如果成功,则响应正文为空的 JSON 对象。
REST 资源:tunedModels
资源:TunedModel
使用 ModelService.CreateTunedModel 创建的经过微调的模型。
name
string
仅限输出。已调参模型的名称。系统会在创建时生成一个唯一名称。示例:tunedModels/az2mb0bpw6i
如果在创建时设置了 displayName,则名称的 ID 部分将通过以下方式设置:将 displayName 的各个字词与连字符串联起来,并添加一个随机部分以确保唯一性。
示例:
- displayName =
Sentence Translator
- name =
tunedModels/sentence-translator-u3b7m
displayName
string
可选。要在界面中为此模型显示的名称。显示名称不得超过 40 个字符(包括空格)。
description
string
可选。相应模型的简短说明。
state
enum (State
)
仅限输出。调优模型的状态。
createTime
string (Timestamp
format)
仅限输出。创建相应模型时的时间戳。
采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
updateTime
string (Timestamp
format)
仅限输出。相应模型更新时的时间戳。
采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
tuningTask
object (TuningTask
)
必需。用于创建调优模型的调优任务。
readerProjectNumbers[]
string (int64 format)
可选。有权读取调参模型的项目编号列表。
source_model
Union type
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
可选。对于核采样。
核采样会考虑概率总和不低于 topP
的最小 token 集。
此值指定在创建模型时,默认使用基础模型所用的值。
topK
integer
可选。用于 Top-k 采样。
Top-k 抽样会考虑 topK
个最可能的 token。此值用于指定后端在调用模型时使用的默认值。
此值指定在创建模型时,默认使用基础模型所用的值。
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)
仅限输出。开始对此模型进行调参时的时间戳。
采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
completeTime
string (Timestamp
format)
仅限输出。完成此模型调优时的时间戳。
采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
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)
仅限输出。计算相应指标时的时间戳。
采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
JSON 表示法 |
---|
{ "step": integer, "epoch": integer, "meanLoss": number, "computeTime": string } |
数据集
用于训练或验证的数据集。
dataset
Union type
dataset
只能是下列其中一项:examples
object (TuningExamples
)
可选。包含简单输入/输出文本的内嵌示例。
JSON 表示法 |
---|
{
// dataset
"examples": {
object ( |
TuningExamples
一组调整示例。可以是训练数据或验证数据。
examples[]
object (TuningExample
)
示例。示例输入可以是文本或讨论,但一组中的所有示例必须是同一类型。
JSON 表示法 |
---|
{
"examples": [
{
object ( |
TuningExample
用于调优的单个示例。
output
string
必需。预期的模型输出。
model_input
Union type
model_input
只能是下列其中一项:textInput
string
可选。文本模型输入。
JSON 表示法 |
---|
{ "output": string, // model_input "textInput": string // Union type } |
超参数
控制调优过程的超参数。如需了解详情,请访问 https://ai.google.dev/docs/model_tuning_guidance
learning_rate_option
Union type
learning_rate_option
只能是下列其中一项:learningRate
number
可选。不可变。用于调优的学习速率超参数。如果未设置,系统会根据训练样本数计算默认值(0.001 或 0.0002)。
learningRateMultiplier
number
可选。不可变。学习速率调节系数用于根据默认(建议)值计算最终学习速率。实际学习速率 := learningRateMultiplier * 默认学习速率。默认学习速率取决于基础模型和数据集大小。如果未设置,系统将使用默认值 1.0。
epochCount
integer
不可变。训练周期数。一个周期是指对训练数据的一次完整遍历。如果未设置,系统将使用默认值 5。
batchSize
integer
不可变。用于调优的批次大小超参数。如果未设置,系统将根据训练示例的数量使用默认值 4 或 16。
JSON 表示法 |
---|
{ // learning_rate_option "learningRate": number, "learningRateMultiplier": number // Union type "epochCount": integer, "batchSize": integer } |