全部产品
Search
文档中心

人工智能平台 PAI:指令蒸馏

更新时间:Sep 29, 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。