全部產品
Search
文件中心

Platform For AI:指令蒸餾

更新時間:Sep 30, 2026

指令蒸餾模板從少量種子指令出發,經指令擴寫、精鍊、教師產生、四維打分與過濾,批量構建高品質的指令跟隨 SFT 資料集。

模板概述

指令蒸餾模板適用於已有少量高品質指令、想批量擴充訓練資料的情境。從少量種子指令出發,先擴寫成同情境的更多指令,再逐條精鍊表述使其更接近真實使用者的提問方式,然後由教師模型產生回答,最後按資訊量、有用性、泛化性與正確性四個維度打分並過濾,產出可直接用於微調的 SFT 資料集。

說明

該模板支援可選兩段式建立:第一段蒸餾資料構建,第二段學生模型訓練(可選)。您可以選擇僅運行蒸餾資料構建,也可以兩段連續運行。

指令蒸餾模板的流水線包含以下步驟:

  1. 指令擴寫:以種子指令為範例,擴寫出同情境、同風格的新指令,擴巨量資料規模。

    輸入樣本:
    {"instruction": "給我做一份兩天的杭州旅遊攻略。"}
    輸出樣本:
    {"instruction": "給我做一份三天的北京旅遊攻略。"}
    {"instruction": "我想去上海玩,給我推薦一下旅遊的行程。"}
  2. 指令精鍊:逐條改寫指令表述,去掉歧義與冗餘,使其更接近真實使用者的提問方式。

    輸入樣本:
    {"instruction": "給我做一份兩天的杭州旅遊攻略。"}
    輸出樣本:
    {"instruction": "請為我制定一份為期兩天的杭州旅遊攻略,內容應包括行程安排、美食推薦、住宿建議、最佳旅遊時間等。"}
  3. 教師產生:調用教師模型為每條指令產生回答,作為學生模型要學習的目標輸出。

  4. 品質評分:按資訊量、有用性、泛化性、正確性四個維度為每條問答打分,為過濾提供依據。

  5. 品質過濾:按各維度分數閾值篩除低質樣本,保留得分最高的一部分。

  6. 構建 SFT 資料集:過濾空樣本與超長樣本,輸出規範的 SFT 訓練資料集。

操作步驟

  1. 登入PAI控制台,在左側導覽列選擇模型应用> 模型蒸馏(ModelDistill)。

  2. 單擊新建任务,跳轉到蒸馏模板頁簽,或者直接進入蒸馏模板頁簽。

  3. 選擇指令蒸餾,單擊使用模板,進入新建蒸馏任务頁面。如下配置關鍵參數,其他保持預設。

  4. 進行基础配置:

    • 任务名称:系統已自動填滿。

    • 输出路径:指定一個有許可權訪問的OSS路徑,如oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/instruct-distill/。

      說明

      請確保為每個蒸餾任務建立獨立的輸出目錄,避免檔案被覆蓋。OSS Bucket需與PAI服務在同一地區。

  5. 單擊下一步,進入蒸馏数据构建:

    • 教师模型:教师模型来源選擇Token服務,並下拉選擇一個模型如qwen3.8-max。

    • 数据集:選擇一個有許可權訪問的OSS目錄或檔案。可直接下載樣本使用。

    • 蒸馏配置:已提供了預設配置,需根據實際需要修改。

      • dataset.input_path:如果資料集已選擇到了檔案,此處配置的檔案名稱不生效。

      • pipeline:指令擴寫階段(stage: instruction_expansion)中的num_output_sample會影響最終產生的蒸餾資料數量,請注意修改。

      • 更多指令蒸餾模板的專有配置參數(如各階段的 temperature、max_workers、評分閾值等),請參見本節下方的配置說明。

    • 计算资源:资源类型選擇通用计算,资源来源選擇公共资源,在任务资源中選擇合適的资源规格,如ecs.c6.large。

  6. 單擊下一步:学生模型训练繼續配置(也可選擇仅运行蒸馏数据构建):

    • 学生模型:選擇公共模型,並在下拉式清單中選擇一個較小的模型,如 Qwen3-4B。

    • 训练方式:選擇LoRA。

    • 计算资源:资源类型選擇通用计算,资源来源選擇公共资源,在任务资源中選擇合適的资源规格。

  7. 單擊创建,然後在彈出的計費提醒中單擊确定,頁面將自動跳轉至任務詳情的基礎配置頁面,可在此跟蹤任務狀態。

配置說明

以下說明指令蒸餾模板的關鍵配置參數。基礎配置和資源配置與通用蒸餾一致,此處僅列出本模板特有的參數差異。

基礎配置

基礎配置包含任務名稱和輸出路徑兩項。輸出路徑為任務全部產物的輸出根目錄,蒸餾資料集也寫在該目錄下,無需再單獨指定資料集輸出路徑。

蒸餾資料構建

教師模型

指令蒸餾模板只需配置一個教師模型,負責為每條指令產生回答。教師模型來源僅支援 PAI Token 服務。

資料集

選擇輸入目錄或檔案,資料格式要求如下:

  • 格式:JSONL,每行一條種子指令。

  • 每條資料必須包含 instruction 欄位。

  • 幾十條種子指令即可啟動,模板會自動擴寫擴充資料規模。

樣本資料:

{"instruction": "請解釋什麼是機器學習"}
{"instruction": "如何預防感冒"}

蒸餾配置

蒸餾配置以 YAML 格式提供,預置了演算法團隊的推薦預設值,可按需調整。下表列出部分建議關注的參數及其說明。

配置段

說明

dataset

  • output_path(預設 distillation_dataset.json):蒸餾產物輸出路徑。可改為其他相對路徑的 .json 檔案,也可以放進子目錄(如 sft_dataset.json、output/sft_dataset.json)。

backend

  • timeout(預設 1200.0):單次請求等待上限(秒)。需覆蓋寫滿 max_tokens(16384)的回答,實測 38~58 token/s 時需 400 秒以上。

  • max_retries(預設 3):單次請求的網路級重試次數。各階段自己的重試是另一套(階段 config 裡的 retry_attempts)。

generation

  • system_prompt(預設 "You are a helpful assistant. Provide concise and accurate answers."):教師模型產生回答時的系統提示詞。

  • temperature(預設 0.7):控制產生多樣性。

  • max_tokens(預設 16384):單次產生的最大 token 數。

sft

  • skip_empty(預設 true):跳過空樣本。

  • min_length(預設 10):過濾過短樣本。

  • max_length(預設 131072):過濾超長樣本。

eval

  • 評分維度(metrics):informativeness(資訊量)、helpfulness(有用性)、generalization(泛化性)、correctness(正確性)。

  • temperature(預設 0.0):確定性評分。

  • max_workers(預設 4):並發評分線程數。

pipeline

  • 指令擴寫階段(instruction_expansion):

    • num_in_context_samples 預設 2(每條 prompt 裡放幾個種子指令作為參考範例)。

    • num_output_samples 預設 3(本階段總共產生多少條新指令,不隨種子指令數量倍增)。

  • 指令精鍊階段(instruction_refinement):temperature 預設 0.7,max_tokens 預設 16384。