Gemini 摘要服務

Gemini 蒸餾服務 (蒸餾) 可讓使用者訓練較小且效率更高的「學生」模型,該模型會使用功能更強大的「老師」模型輸出內容和推論模式。尖端模型代表 AI 的最先進技術,但可能不適合特定企業用途。蒸餾法可彌合這項差距,在達到生產級效率 (降低延遲時間和成本) 的同時,讓較小的模型實現更深層次的推論。

與標準監督式微調 (SFT) 不同,蒸餾會運用以下項目,而不只是最終文字輸出內容:

  • 老師的回覆:最終文字輸出內容。
  • 原始想法:教師模型生成的內部推論路徑。

支援的模型

在搶先體驗期間,系統支援下列模型進行模型蒸餾:

  • 老師模型:gemini-3.1-pro
  • 學生模型:gemini-2.5-flash

流程圖:說明 5 步驟的 AI 模型蒸餾程序。步驟 1:輸入資料集 (GCS) 會採用提示資料集 (JSONL) 和選用的驗證資料集。步驟 2:資料擷取與準備作業包括格式驗證和分片,以進行平行處理。步驟 3:老師模型推論作業會使用老師模型 (Gemini 3.1 Pro) 產生高品質的標籤資料集,其中包含詳細的回覆和內部推理路徑。步驟 4:蒸餾訓練作業會使用學生模型 (Gemini 2.5 Flash),該模型會學習模仿老師的思考過程,包括回覆、推理模式和分布情形。步驟 5:輸出內容:建立蒸餾模型會產生三項項目:註冊至模型登錄的最終蒸餾模型、註冊供評估的 10 個中繼檢查點,以及為檢查點自動建立的 Agent Platform 預測端點。

圖 1:Gemini Distillation Service 的運作方式系統插圖。

適用情境

在下列情況中,建議使用蒸餾法,而非標準提示或監督式微調 (SFT):

  • 高用量、對延遲時間敏感的應用程式:當應用程式需要 Pro 級模型的推論功能,但必須符合嚴格的延遲時間服務水準協議,或預算限制需要使用 Flash 級模型時。
  • 缺乏真值資料 (SFT 不可行):當您擁有大量使用者提示或查詢的資料集,但缺乏資源來手動標記或產生標準 SFT 所需的高品質真值答案。
  • 複雜的推論工作:這類工作涉及多步驟邏輯、高度技術性文件的摘要,或是基礎 Flash 模型難以完成的複雜程式設計工作,但 Pro 模型可以順利完成。
  • 顯著的效能差距:如果老師模型在特定工作上的表現大幅優於基礎學生模型,就能在蒸餾過程中提供明確的知識轉移幅度。

事前準備和專案設定

開始執行蒸餾工作前,請確保 Google Cloud 環境已正確設定:

  1. 要求加入許可清單:請確認您的 Google Cloud 專案 ID 已加入 Gemini Distillation Service 搶先體驗計畫的許可清單。請與 Google 業務代表聯絡,將您的專案加入許可清單。
  2. 啟用 API:在 Google Cloud 專案中啟用 Agent Platform API。
  3. 設定 IAM 角色權限:您必須具備 Agent Platform 管理員 (roles/aiplatform.admin) IAM 角色。
  4. 設定區域:必須在 us-central1 區域執行蒸餾作業。

準備資料集

這項服務的主要功能是使用僅含提示的資料集。由於老師模型會在蒸餾過程中生成目標輸出內容,因此您不需要提供預期答案。

資料集規定

資料集必須採用 JSON Lines (JSONL) 格式,並儲存在 Cloud Storage bucket 中。除了下列規定外,每個項目都必須符合 Gemini 微調資料集格式:

  • 系統指令:您可以加入選填的 systemInstruction 欄位 (具有「system」角色),定義系統提示。
  • 輸入:主要輸入內容必須包含內容欄位 (具備「使用者」角色)。
  • 多輪提示:您可以在「user」和「model」角色之間交替,但序列中的最後一個項目必須是「user」。

以下是兩個 dataset.jsonl 檔案範例:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "You're the artist here. Choose as many strands of thread as you like, as long as you're using three or more. Go for color combinations that you think would make a pretty pattern. Get creative! If you only use one color of thread, you won't be able to create a pattern.\n\nProvide a summary of the article in two or three sentences:\n\n"
        }
      ]
    }
  ]
},
{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "You're the artist here. Choose as many strands of thread as you like, as long as you're using three or more. Go for color combinations that you think would make a pretty pattern. Get creative! If you only use one color of thread, you won't be able to create a pattern.\n\nProvide a summary of the article in two or three sentences:\n\n"
        }
      ]
    },
    {
      "role": "model",
      "parts": [
        {
          "text": "Choose several strands of embroidery thread in a variety of colors."
        }
      ]
    },
    {
      "role": "user",
      "parts": [
        {
          "text": "You will need one egg (raw or hard boiled but hard boiled is best) and one spoon for each person participating in the race. You might even like to use dyed Easter eggs as something special for Easter. It's best to have this race on grass or some other soft surface, to give dropped eggs a chance!"
        }
      ]
    }
  ]
}

最佳做法

建立資料集時,請遵守下列規範:

  • 大小:建議至少提供 1,000 個範例,才能顯著提升品質。
  • 多樣性:請確保提示涵蓋生產流量中預期的極端情況和不同長度。

設定精簡要求

如要執行模型壓縮工作,必須設定老師的生成行為和學生的訓練超參數。

設定教師模型的生成行為

您必須定義老師模型如何回應資料集。學生模型的品質直接取決於老師的輸出內容品質。如要設定老師模型的生成行為,請設定 candidateCount:

  • candidateCount:要產生的回覆變化版本數量 (例如:4。範圍 [1, 5])。如果要求中未指定,系統會使用預設值 4。

設定精煉超參數

蒸餾超參數可控管學生模型的訓練程序。如要進一步瞭解 Gemini Enterprise Agent Platform 中的超參數,請參閱監督式微調指南的「建立微調工作」一節。

建立模型蒸餾工作時,必須設定下列超參數:

  • epochCount:學生模型在資料集上疊代的次數。(範例:20。範圍 [1, 100])。如未指定,系統會使用預設值 4。
  • learningRateMultiplier:修改學生模型的基本學習率。(例如:2.0。範圍 [0.25, 4])。如未指定,系統會使用預設值 1。

開始蒸餾工作

在搶先體驗期間,您可以使用 Agent Platform API 的 REST 版本,提交及監控模型壓縮工作。您可以啟動新的模型壓縮工作,或對已壓縮的模型檢查點執行持續微調。

建立新的蒸餾工作

建立名為 request.json 的 JSON 檔案,內含工作設定。在下列範例中,老師的生成設定會巢狀內嵌在 hyperParameters 欄位中:

{
    "description": "Distillation testing job.",
    "baseModel": "gemini-2.5-flash",
    "tunedModelDisplayName": "flash-distillation-run-1",
    "distillationSpec": {
        "promptDatasetUri": "gs://your-bucket/path/to/prompt_dataset.jsonl",
        "validationDatasetUri": "",
        "base_teacher_model": "gemini-3.1-pro-preview",
        "hyperParameters": {
            "epochCount": "20",
            "learningRateMultiplier": 2.0,
            "generation_config": {
              "candidateCount": 5
            }
        }
    }
}

使用 curl 提交工作:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs \
  -d @request.json

持續微調

如要從先前精簡的模型檢查點繼續微調,請在 request.json 檔案中加入 preTunedModel 區塊。持續微調僅支援先前精簡的模型檢查點,且必須使用相同的基礎學生模型。系統不支援先前經過監督式微調的模型檢查點 (即使使用相同的基礎學生模型也一樣)。

以下範例說明如何為先前精簡的模型檢查點設定持續微調:

{
    "description": "Continuous distillation testing job.",
    "preTunedModel": {
      "tunedModelName": "projects/YOUR_PROJECT_ID/locations/us-central1/models/PRETUNED_MODEL_ID@1",
      "checkpointId": "1",
      "baseModel": "gemini-2.5-flash"
    },
    "tunedModelDisplayName": "flash-distillation-continuous",
    "distillationSpec": {
        "promptDatasetUri": "gs://your-bucket/path/to/prompt_dataset.jsonl",
        "validationDatasetUri": "",
        "base_teacher_model": "gemini-3.1-pro-preview",
        "hyperParameters": {
            "epochCount": "20",
            "learningRateMultiplier": 2.0,
            "generation_config": {
              "candidateCount": 5,
            }
        }
    }
}

使用 curl 提交酬載:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs \
  -d @request.json

監控模型壓縮工作

提交要求後,系統會傳回包含 JOB_ID 的工作名稱。您可以傳送 GET 要求,檢查工作狀態 (state、錯誤和最終超參數):

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs/JOB_ID

您也可以前往 Google Cloud 控制台,依序點選「Agent Platform」>「Tuning」,然後選擇us-central1區域,以視覺化方式監控進度。

在這個搶先體驗版本中,Agent Platform 控制台 UI 有以下已知限制:

  • 老師樣本進度:老師模型樣本程序沒有進度小工具。狀態可能會顯示「正在準備微調」,但工作會在背景正常進行。
  • 學生微調圖表:在學生模型微調階段,使用者介面會提供損失曲線和訓練文字權杖總數的圖表。
  • 檢查點表格:使用者介面會顯示中繼檢查點表格,以及用於評估的產生 Agent Platform 預測端點連結。由於已知問題,這個表格的「Epoch」欄會顯示「0」。

取消模型壓縮工作

如要取消進行中的蒸餾作業,請採取下列任一做法:

  • 使用 Google Cloud 控制台,變更下列網址:

    https://console.cloud.google.com/agent-platform/tuning/managed?project=YOUR_PROJECT_ID&vertex_ai_region=us-central1

    將 YOUR_PROJECT_ID 替換為專案 ID。

  • 使用 curl 傳送 POST 要求來取消工作:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
      https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/tuningJobs/YOUR_JOB_ID:cancel
    

    更改下列內容:

    • YOUR_PROJECT_ID 為您的專案 ID。
    • 將 YOUR_JOB_ID 改為您的工作 ID。

評估結果

精煉作業順利完成後,新的學生模型會自動註冊到 Gemini Enterprise Agent Platform Model Registry,並建立一或多個專屬端點來提供預測結果。如要評估結果,請找出端點、傳送預測要求,然後進行評估。

如要評估結果,請按照下列步驟操作:

  1. 傳送下列 GET 要求,即可查看微調作業的狀態。

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
      https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/tuningJobs/YOUR_JOB_ID
    

    更改下列內容:

    • YOUR_PROJECT_ID 為您的專案 ID。
    • 將 YOUR_JOB_ID 改為您的工作 ID。
  2. 完成的工作會在 tunedModel 物件內顯示巢狀的 endpoint 欄位。從傳回的路徑字串結尾擷取 ENDPOINT_ID (例如 projects/.../endpoints/YOUR_ENDPOINT_ID)。請記下端點 ID。

    請確認模型調整工作已順利完成,因為模型調整工作仍在執行或失敗時,端點無法使用。如果缺少 endpoint 欄位,請查看工作的 state 或 error 鍵,對微調工作進行偵錯。

  3. 建立名為 generate_content_request.json 的 JSON 酬載要求,其中包含提示:

    {
      "contents": {
        "role": "user",
        "parts": [
          {
            "text": "hi, say something"
          }
        ]
      }
    }
    
  4. 使用下列 POST 範例傳送預測要求:

    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/locations/us-central1/endpoints/YOUR_ENDPOINT_ID:generateContent \
      -d @generate_content_request.json
    

    更改下列內容:

    • YOUR_PROJECT_ID:您的專案 ID。
    • YOUR_JOB_ID:您的工作 ID。
    • ENDPOINT_ID:端點 ID。
  5. 如要評估結果,請執行下列操作:

    1. 使用訓練資料中未包含的提示,對新蒸餾模型執行保留測試集。

    2. 比較輸出內容與基礎 gemini-2.5-flash 模型,評估品質提升幅度。

    3. 比較輸出內容與 gemini-3.1-pro 模型,判斷學員的推理結果與老師的推理結果有多接近。

限制

下表說明 Distillation 的限制:

蒸餾有下列限制:

  • 模型限制:
  • 資料集限制:
    • 數量限制:
      • 訓練集容量上限為 50,000 個範例。
      • 來源 JSONL 檔案大小不得超過 1 GB。
    • 脈絡窗口規格:
      • 這項服務每項最多可輸入 8,000 個詞元。如果超過 10% 的項目超出這個門檻,系統就會終止精簡作業。
      • 老師模型最多只能輸出 24,000 個詞元。如果老師模型產生的權杖超過 24,000 個,系統會將內容截斷至這個上限,這可能會影響學生模型的效能。
    • 模態:僅限文字資料,不支援多模態輸入,包括影片、圖像或函式呼叫。
  • 設定和超參數限制
    • 定義 distillationSpec 和相關聯的 hyperParameters 時,請遵守下列界線:
      • 加密:如果提煉工作涉及 Google 第一方模型,則無法使用 CMEK。
      • epochCount:限制為介於 1 到 100 之間的整數值。
      • learningRateMultiplier:值必須在 0.25 至 4.0 的浮點範圍內。
  • 單一步驟精煉:老師模型取樣和學生模型微調會在單一 API 呼叫中執行。如果需要取樣的資料量很大,則在後續微調時,必須再次取樣相同的資料。

取得存取權

如要試用 Gemini Distillation Service,請傳送電子郵件至 cloud-ai-tuning-service-support@google.com 與 Tuning Service 團隊聯絡,申請存取權並將專案加入允許清單。

為確保最佳效能和資源管理,建議您為蒸餾工作建立專屬 Google Cloud 專案。與我們的團隊聯絡時,請提供專案 ID 或專案編號,以加快許可清單程序。

配額和存取政策

下列配額和存取政策已生效:

  • 容量:最近加入許可清單的專案會預先配置 4 個預設並行配額。為避免資源爭用,建議使用獨立專案,而非已執行其他 Gemini 微調作業的專案。

  • 存取期限:存取權的初始期限為 30 天。