當您擁有一小組輸入/輸出範例資料集時,Gemini API 的精細調整支援功能可提供一種機制,用於整理輸出內容。詳情請參閱模型調整指南和教學課程。
方法:tunedModels.create
建立經過調整的模型。透過 google.longrunning.Operations
服務查看中繼調校進度 (如有)。
透過「作業」服務存取狀態和結果。範例:GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /tunedModels
這個網址使用 gRPC 轉碼語法。
查詢參數
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
選用設定。適用於 Nucleus 取樣。
Nucleus 取樣會考慮機率總和至少為 topP
的最小詞元集合。
這個值會將預設值指定為基礎模型在建立模型時使用的值。
topK
integer
選用設定。適用於 Top-k 取樣。
前 K 大取樣會考量機率最高的 topK
符記組合。這個值會指定後端在呼叫模型時使用的預設值。
這個值會將預設值指定為基礎模型在建立模型時使用的值。
要求範例
Python
回應主體
如果成功,回應主體會包含新建立的 Operation
例項。
方法:tunedModels.generateContent
根據輸入的 GenerateContentRequest
產生模型回應。如需詳細使用資訊,請參閱文字產生指南。輸入功能會因模型 (包括經過調整的模型) 而異。詳情請參閱模型指南和調整指南。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /{model=tunedModels /*}:generateContent
這個網址使用 gRPC 轉碼語法。
路徑參數
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
貝殼
Kotlin
Swift
Dart
Java
圖片
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
音訊
Python
Node.js
貝殼
影片
Python
Node.js
Go
貝殼
Python
貝殼
即時通訊
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
快取
Python
Node.js
調整過的模型
Python
JSON 模式
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
程式碼執行
Python
Kotlin
Java
函式呼叫
Python
Node.js
貝殼
Kotlin
Swift
Dart
Java
產生設定
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
安全性設定
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
系統操作說明
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
回應主體
如果成功,回應主體會包含 GenerateContentResponse
的執行例項。
方法:tunedModels.streamGenerateContent
在輸入 GenerateContentRequest
的情況下,從模型產生串流回應。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /{model=tunedModels /*}:streamGenerateContent
這個網址使用 gRPC 轉碼語法。
路徑參數
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
貝殼
Kotlin
Swift
Dart
Java
圖片
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
音訊
Python
貝殼
影片
Python
Node.js
Go
貝殼
Python
貝殼
即時通訊
Python
Node.js
Go
貝殼
Kotlin
Swift
Dart
Java
回應主體
如果成功,回應主體會包含 GenerateContentResponse
例項的串流。
方法:tunedModels.get
取得特定 TunedModel 的相關資訊。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=tunedModels /*}
這個網址使用 gRPC 轉碼語法。
路徑參數
name
string
必要欄位。模型的資源名稱。
格式:tunedModels/my-model-id
格式為 tunedModels/{tunedmodel}
。
要求主體
要求主體必須為空白。
要求範例
Python
回應主體
如果成功,回應主體會包含 TunedModel
的執行例項。
方法:tunedModels.list
列出已建立的調整後模型。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /tunedModels
這個網址使用 gRPC 轉碼語法。
查詢參數
pageSize
integer
選用設定。每頁傳回的 TunedModels
數量上限。服務可能會傳回較少的調校模型。
如未指定,最多將傳回 10 個經過調整的模型。這個方法每頁最多會傳回 1000 個模型,即使您傳遞較大的 pageSize 也一樣。
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
更新已調整的模型。
端點
修補https: / /generativelanguage.googleapis.com /v1beta /{tunedModel.name=tunedModels /*}
PATCH https://generativelanguage.googleapis.com/v1beta/{tunedModel.name=tunedModels/*}
這個網址使用 gRPC 轉碼語法。
路徑參數
tunedModel.name
string
僅供輸出。調整後模型的名稱。系統會在建立時產生專屬名稱。範例:tunedModels/az2mb0bpw6i
如果在建立時設定顯示名稱,系統會將顯示名稱的字詞連結起來,並加上隨機字串,以確保名稱的 ID 部分保持不重複。
範例:
- 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
選用設定。適用於 Nucleus 取樣。
Nucleus 取樣會考慮機率總和至少為 topP
的最小詞元集合。
這個值會將預設值指定為基礎模型在建立模型時使用的值。
topK
integer
選用設定。適用於 Top-k 取樣。
前 K 大取樣會考量機率最高的 topK
符記組合。這個值會指定後端在呼叫模型時使用的預設值。
這個值會將預設值指定為基礎模型在建立模型時使用的值。
回應主體
如果成功,回應主體會包含 TunedModel
的執行例項。
方法:tunedModels.delete
刪除已調整的模型。
端點
刪除https: / /generativelanguage.googleapis.com /v1beta /{name=tunedModels /*}
這個網址使用 gRPC 轉碼語法。
路徑參數
name
string
必要欄位。模型的資源名稱。格式:tunedModels/my-model-id
格式為 tunedModels/{tunedmodel}
。
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會是空的 JSON 物件。
REST 資源:tunedModels
資源:TunedModel
使用 ModelService.CreateTunedModel 建立的微調模型。
name
string
僅供輸出。調整後模型的名稱。系統會在建立時產生專屬名稱。範例:tunedModels/az2mb0bpw6i
如果在建立時設定顯示名稱,系統會將顯示名稱的字詞連結起來,並加上隨機字串,以確保名稱的 ID 部分保持不重複。
範例:
- 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
選用設定。適用於 Nucleus 取樣。
Nucleus 取樣會考慮機率總和至少為 topP
的最小詞元集合。
這個值會將預設值指定為基礎模型在建立模型時使用的值。
topK
integer
選用設定。適用於 Top-k 取樣。
前 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)
僅供輸出。開始調整此模型的時間戳記。
使用 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
選用設定。不可變動。學習率調節係數會根據預設 (建議) 值計算最終的 learningRate。實際學習率 := learningRateMultiplier * 預設學習率 預設學習率取決於基礎模型和資料集大小。如果未設定,系統會使用預設值 1.0。
epochCount
integer
不可變動。訓練週期數,訓練週期是指一次訓練資料的完整傳遞,如未設定,系統會使用預設值 5。
batchSize
integer
不可變動。要調整的批次大小超參數。如未設定,系統會根據訓練範例數量使用 4 或 16 的預設值。
JSON 表示法 |
---|
{ // learning_rate_option "learningRate": number, "learningRateMultiplier": number // Union type "epochCount": integer, "batchSize": integer } |