為 Gemini 模型準備監督式微調資料

本文說明如何為 Gemini 模型定義受控精修資料集。您可以調整文字圖片音訊文件資料類型。

關於監督式精細調整資料集

監督式微調資料集可用於將預先訓練模型微調至特定任務或領域。輸入資料應與模型在實際使用中可能遇到的情況相似。輸出標籤應代表每個輸入內容的正確答案或結果。

訓練資料集

如要調整模型,您必須提供訓練資料集。為獲得最佳結果,建議您先從 100 個範例開始。您可以視需要擴大至數千個樣本。資料集的品質遠比數量重要。

驗證資料集

強烈建議您提供驗證資料集。驗證資料集可協助您評估調整作業的成效。

限制

如要瞭解資料集的限制 (例如輸入和輸出符記上限、驗證資料集大小上限和訓練資料集檔案大小上限),請參閱 Gemini 模型的監督式精修說明

資料集格式

模型調整資料集必須採用 JSON Lines (JSONL) 格式,其中每一行都包含一個調整範例。在調整模型前,您必須先將資料集上傳至 Cloud Storage 值區

Gemini 的資料集範例

{
  "systemInstruction": {
    "role": string,
    "parts": [
      {
        "text": string
      }
    ]
  },
  "contents": [
    {
      "role": string,
      "parts": [
        {
          // Union field data can be only one of the following:
          "text": string,
          "fileData": {
            "mimeType": string,
            "fileUri": string
          }
        }
      ]
    }
  ]
}

參數

範例包含以下參數的資料:

參數

contents

必要項目:Content

與模型目前對話的內容。

對於單次查詢,這會是單一例項。對於多輪查詢,這是重複欄位,其中包含對話記錄和最新要求。

systemInstruction

選用:Content

適用於 gemini-2.0-flash-litegemini-2.0-flash

模型的操作說明,可引導模型提升效能。例如:「盡可能簡短回答」或「回覆時請勿使用專業術語」。

text 字串會計入符記上限。

系統會略過 systemInstructionrole 欄位,且不會影響模型效能。

tools

(非必要) 這段程式碼可讓系統與外部系統互動,執行模型知識和範圍以外的動作或動作集。請參閱函式呼叫

目錄

包含郵件多部分內容的基本結構化資料類型。

這個類別包含兩個主要屬性:rolepartsrole 屬性代表產生內容的使用者,而 parts 屬性則包含多個元素,每個元素代表訊息中的一段資料。

參數

role

選用:string

建立訊息的實體身分。支援的值如下:

  • user:表示訊息是由真人傳送,通常是使用者產生的訊息。
  • model:表示訊息是由模型產生。

model 值可用於在多輪對話期間,將模型中的訊息插入對話中。

如果不是多輪對話,則可將此欄位留空或取消設定。

parts

part

由單一訊息組成的排序部分清單。不同的部分可能有不同的 IANA MIME 類型

如要瞭解輸入內容的限制 (例如符記或圖片的數量上限),請參閱「Google 模型」頁面上的模型規格。

如要計算要求中的符記數,請參閱「取得符記數」一節。

零件

包含多部分 Content 訊息的媒體資料類型。

參數

text

選用:string

文字提示或程式碼片段。

fileData

選用:fileData

儲存在檔案中的資料。

functionCall

選用:FunctionCall

其中包含代表 FunctionDeclaration.name 欄位的字串,以及包含模型預測函式呼叫的任何參數的結構化 JSON 物件。

請參閱「函式呼叫」。

functionResponse

選用:FunctionResponse

FunctionCall 的結果輸出內容,其中包含代表 FunctionDeclaration.name 欄位的字串,以及包含函式呼叫任何輸出的結構化 JSON 物件。做為模型的上下文。

請參閱「函式呼叫」。

資料集範例

調校資料集中的每個對話示例都包含一個必要的 messages 欄位和一個選用的 context 欄位。

messages 欄位由角色內容組合陣列組成:

  • role 欄位是指訊息的作者,並設為 systemusermodelsystem 角色為選用,只能出現在訊息清單的第一個元素中。usermodel 為必要角色,且可交替重複使用。
  • content 欄位是訊息內容。

在每個範例中,contextmessages 的符記總長度上限為 131,072 個符記。此外,model 欄位的每個 content 欄位不得超過 8,192 個符記。

{
  "messages": [
    {
      "role": string,
      "content": string
    }
  ]
}

使用實際工作環境資料維持一致性

資料集中的範例應與預期的實際工作環境流量相符。如果資料集含有特定格式、關鍵字、操作說明或資訊,則實際工作環境資料的格式應相同,並包含相同的操作說明。

舉例來說,如果資料集的範例包含 "question:""context:",則實際工作環境流量的格式也應包含 "question:""context:",且與在資料集範例顯示的順序相同。如果排除內容,即便資料集中的範例出現一個確切的問題,模型也不會辨識模式。

將微調資料集上傳至 Cloud Storage

如要執行調整工作,您必須將一或多個資料集上傳至 Cloud Storage 值區。您可以建立新的 Cloud Storage 值區,或使用現有值區來儲存資料集檔案。值區的地區不重要,但建議您使用位於您預計要微調模型的Google Cloud 專案中所屬的值區。

值區準備就緒後,請上傳資料集檔案至該值區。

遵循提示設計的最佳做法

取得訓練資料集並訓練模型後,就可以設計提示。請務必在訓練資料集中遵循提示設計最佳做法,詳細說明要執行的任務,以及輸出內容應有的樣貌。

後續步驟