如果您有少量輸入/輸出範例資料集,Gemini API 的微調支援功能可提供輸出內容管理機制。詳情請參閱模型微調指南和教學課程。
方法:tunedModels.create
建立經過調整的模型。透過 google.longrunning.Operations
服務檢查中繼微調進度 (如有)。
透過 Operations 服務存取狀態和結果。範例:GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222
端點
posthttps: / /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]
,包含這兩者。值越接近 1.0
,模型生成的回覆就越多元;值越接近 0.0
,模型生成的回覆就越不令人意外。
這個值預設為建立模型時使用的值。
topP
number
(選用步驟) 適用於 Nucleus 取樣。
核心取樣會考慮機率總和至少為 topP
的最小符記集。
這個值預設為建立模型時使用的值。
topK
integer
(選用步驟) 適用於 Top-K 取樣。
Top-k 取樣會考慮topK
機率最高的符記組合。這個值指定後端在呼叫模型時使用的預設值。
這個值預設為建立模型時使用的值。
要求範例
Python
回應主體
如果成功,回應主體會包含新建立的 Operation
例項。
方法:tunedModels.generateContent
根據輸入內容 GenerateContentRequest
生成模型回覆。如需詳細的使用資訊,請參閱文字生成指南。輸入功能會因模型而異,包括微調模型。詳情請參閱模型指南和微調指南。
端點
posthttps: / /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
貝殼
Java
圖片
Python
Node.js
Go
貝殼
Java
音訊
Python
Node.js
Go
貝殼
影片
Python
Node.js
Go
貝殼
Python
Go
貝殼
即時通訊
Python
Node.js
Go
貝殼
Java
快取
Python
Node.js
Go
調整過的模型
Python
JSON 模式
Python
Node.js
Go
貝殼
Java
程式碼執行
Python
Go
Java
函式呼叫
Python
Go
Node.js
貝殼
Java
生成設定
Python
Node.js
Go
貝殼
Java
安全性設定
Python
Node.js
Go
貝殼
Java
系統操作說明
Python
Node.js
Go
貝殼
Java
回應主體
如果成功,回應主體會包含 GenerateContentResponse
的執行例項。
方法:tunedModels.streamGenerateContent
根據輸入內容 GenerateContentRequest
,從模型生成串流回應。
端點
posthttps: / /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
貝殼
Java
圖片
Python
Node.js
Go
貝殼
Java
音訊
Python
Go
貝殼
影片
Python
Node.js
Go
貝殼
Python
Go
貝殼
即時通訊
Python
Node.js
Go
貝殼
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
的回應,其中包含分頁的模型清單。
如果成功,回應主體會含有以下結構的資料:
tunedModels[]
object (TunedModel
)
傳回的模型。
nextPageToken
string
可做為 pageToken
傳送的權杖,用於擷取後續網頁。
如果省略這個欄位,就不會有後續頁面。
JSON 表示法 |
---|
{
"tunedModels": [
{
object ( |
方法:tunedModels.patch
更新微調模型。
端點
patchhttps: / /generativelanguage.googleapis.com /v1beta /{tunedModel.name=tunedModels /*}
PATCH https://generativelanguage.googleapis.com/v1beta/{tunedModel.name=tunedModels/*}
路徑參數
tunedModel.name
string
僅供輸出。調整後模型的名稱。建立時系統會產生專屬名稱。示例:tunedModels/az2mb0bpw6i
如果在建立時設定 displayName,系統會將 displayName 的字詞以連字號串連,並加入隨機部分,以確保名稱的唯一性,藉此設定名稱的 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]
,包含這兩者。值越接近 1.0
,模型生成的回覆就越多元;值越接近 0.0
,模型生成的回覆就越不令人意外。
這個值預設為建立模型時使用的值。
topP
number
(選用步驟) 適用於 Nucleus 取樣。
核心取樣會考慮機率總和至少為 topP
的最小符記集。
這個值預設為建立模型時使用的值。
topK
integer
(選用步驟) 適用於 Top-K 取樣。
Top-k 取樣會考慮topK
機率最高的符記組合。這個值指定後端在呼叫模型時使用的預設值。
這個值預設為建立模型時使用的值。
回應主體
如果成功,回應主體會包含 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,系統會將 displayName 的字詞以連字號串連,並加入隨機部分,以確保名稱的唯一性,藉此設定名稱的 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]
,包含這兩者。值越接近 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)
僅供輸出。開始調整這個模型的時間戳記。
使用 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 } |