Gemini API 的微調支援提供一種機制,可在您的輸入/輸出樣本小型資料集時彙整輸出內容。詳情請參閱模型調整指南和教學課程。
方法:tunedModels.create
建立調整後的模型。透過 google.longrunning.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]
(含首尾)。值越接近 1.0
,產生的回覆就會越多元;值越接近 0.0
,模型產生的回覆就會越少。
這個值會指定基礎模型在建立模型時採用的預設值。
topP
number
選用設定。用於 Nucleus 取樣。
Nucleus 取樣會考量機率總和至少為 topP
的最小符記集。
這個值會將預設值指定為基本模型在建立模型時使用的值。
topK
integer
選用設定。用於 Top-K 取樣。
前 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
產生模型回應。如需詳細使用資訊,請參閱文字產生指南。不同模型的輸入功能不同,包括經過調整的模型。詳情請參閱模型指南和調整指南。
端點
則貼文 https://generativelanguage.googleapis.com/v1beta/{model=tunedModels/*}:generateContent路徑參數
model
string
必要欄位。用於產生完成項目的 Model
名稱。
格式:name=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。如要進一步瞭解可用的安全設定,請參閱指南。另請參閱安全指南,瞭解如何在 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.get
取得特定 TunedModel 的相關資訊。
端點
get https://generativelanguage.googleapis.com/v1beta/{name=tunedModels/*}路徑參數
name
string
必要欄位。模型的資源名稱。
格式:tunedModels/my-model-id
格式為 tunedModels/{tunedmodel}
。
要求主體
要求主體必須為空白。
要求範例
Python
回應主體
如果成功,回應主體會包含 TunedModel
的執行例項。
方法:tunedModels.list
建立經過調整的模型清單。
端點
get https://generativelanguage.googleapis.com/v1beta/tunedModels查詢參數
pageSize
integer
選用設定。每頁傳回的 TunedModels
數量上限。服務可能會傳回較少的調校模型。
如未指定,最多將傳回 10 個經過調整的模型。這種方式在每個頁面傳回最多 1000 個模型,即使您傳送的 pageSize 較大也一樣。
pageToken
string
選用設定。從先前 tunedModels.list
呼叫收到的網頁權杖。
提供一個要求傳回的 pageToken
做為引數,以擷取下一個網頁。
進行分頁時,提供至 tunedModels.list
的所有其他參數須與提供網頁權杖的呼叫相符。
filter
string
選用設定。篩選器是專門搜尋調整後模型的說明和顯示名稱的全文搜尋。根據預設,結果不會包含與所有人共用的調校模型。
其他運算子:-owner:me - writers:me -讀者:我 -讀者:每個人
範例:「owner:我」傳回所有調用者角色為「Readers:me」的調整後模型傳回所有調整端擁有「讀取者:所有人」角色的調整後模型會傳回所有使用者共用的所有調整後模型
要求主體
要求主體必須為空白。
要求範例
Python
回應主體
來自 tunedModels.list
的回應,內含分頁模型清單。
如果成功,回應主體會含有以下結構的資料:
tunedModels[]
object (TunedModel
)
傳回的 Models。
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,則系統會將 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
。用來調整模型的起點。source_model
只能採用下列其中一種設定:
tunedModelSource
object (TunedModelSource
)
選用設定。要用來訓練新模型的 TunedModel。
temperature
number
選用設定。控管輸出內容的隨機程度。
值的範圍可以超過 [0.0,1.0]
(含首尾)。值越接近 1.0
,產生的回覆就會越多元;值越接近 0.0
,模型產生的回覆就會越少。
這個值會指定基礎模型在建立模型時採用的預設值。
topP
number
選用設定。用於 Nucleus 取樣。
Nucleus 取樣會考量機率總和至少為 topP
的最小符記集。
這個值會將預設值指定為基本模型在建立模型時使用的值。
topK
integer
選用設定。用於 Top-K 取樣。
前 K 大取樣會考量機率最高的 topK
符記組合。這個值會指定在呼叫模型時,後端會使用的預設值。
這個值會指定基礎模型在建立模型時採用的預設值。
回應主體
如果成功,回應主體會包含 TunedModel
的執行例項。
方法:tunedModels.delete
刪除已調整的模型。
端點
delete https://generativelanguage.googleapis.com/v1beta/{name=tunedModels/*}路徑參數
name
string
必要欄位。模型的資源名稱。格式:tunedModels/my-model-id
格式為 tunedModels/{tunedmodel}
。
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會留白。
REST 資源:TuneedModels
資源:TunedModel
使用 ModelService.CreateTunedModel 建立的微調模型。
name
string
僅供輸出。調整後模型的名稱。建立時會產生不重複的名稱。範例:tunedModels/az2mb0bpw6i
如果在建立時設定顯示名稱,系統會將顯示名稱的字詞連結起來,並加上隨機字串,以確保名稱的 ID 部分保持不重複。
範例:
- displayName =
Sentence Translator
- 名稱 =
tunedModels/sentence-translator-u3b7m
displayName
string
選用設定。這個模型在使用者介面中的顯示名稱。顯示名稱的長度上限為 40 個半形字元,包括空格。
description
string
選用設定。這個模型的簡短說明。
state
enum (State
)
僅供輸出。微調後的模型狀態。
createTime
string (Timestamp
format)
僅供輸出。建立此模型的時間戳記。
RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。例如 "2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
updateTime
string (Timestamp
format)
僅供輸出。更新此模型的時間戳記。
RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "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]
(含首尾)。值越接近 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)
僅供輸出。開始調整此模型的時間戳記。
RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z"
和 "2014-10-02T15:01:23.045123456Z"
。
completeTime
string (Timestamp
format)
僅供輸出。這個模型調整完畢的時間戳記。
RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度為奈秒,且最多 9 個小數位數。例如 "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 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。範例:"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 |