决策模型蒸馏

更新时间:
复制 MD 格式

决策模型蒸馏模板让教师模型对案例数据进行 K 次独立决策,聚合出软标签分布,产出可直接用于微调学生模型类型化决策头的 RLCD 训练数据,适合垃圾短信识别、意图分类、情感判定等快速决策场景。

模板概述

决策模型蒸馏模板适用于垃圾短信识别、意图分类、情感判定等快速决策场景。让教师模型对您的案例数据进行 K 次独立决策,聚合出软标签分布,产出一份可直接用于微调学生模型类型化决策头的训练数据(RLCD 格式)。

重要

该模板仅支持一段式创建:蒸馏数据构建,不包含学生模型训练阶段。蒸馏完成后,您需要自行使用产出的 RLCD 数据集训练学生模型。

决策模型蒸馏模板的流水线包含以下步骤:

步骤

名称

说明

1

构建案例行

将原始数据行与内联 schema 结合,构建带 one-hot gold 分布与 typed-decision 结构的案例行。

2

教师引出

对每个案例的每个问题,调用教师模型 K 次独立采样,获取言语化概率分布。

3

标签聚合

将 K 个教师样本的分布聚合为软标签,进行一致性过滤与 gold 对齐审计。

4

构建训练数据集

将案例与教师软标签合并,输出 RLCD 训练就绪的 JSONL 数据。

操作步骤

  1. 登录PAI控制台,在左侧导航栏选择模型应用> 模型蒸馏(ModelDistill)。

  2. 单击新建任务,跳转到蒸馏模板页签,或者直接进入蒸馏模板页签。

  3. 选择决策模型蒸馏,单击使用模板,进入新建蒸馏任务页面。如下配置关键参数,其他保持默认。

  4. 进行基础配置:

    • 任务名称:系统已自动填充。

    • 输出路径:指定一个有权限访问的OSS路径,如oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/decision-distill/。

      说明

      请确保为每个蒸馏任务创建独立的输出目录,避免文件被覆盖。OSS Bucket需与PAI服务在同一地域。

  5. 单击下一步,进入蒸馏数据构建:

    • 教师模型:教师模型来源选择Token服务,并下拉选择一个判断能力强的大语言模型如qwen3.8-max。

    • 数据集:选择一个有权限访问的OSS目录或文件。可直接下载示例使用。

    • 蒸馏配置:已提供了默认配置,根据实际需要修改。

      • dataset.input_path:如果数据集已选择到了文件,此处配置的文件名不生效。

      • 更多决策模型蒸馏模板的专有配置参数(如 K 次采样次数、一致性过滤阈值等),请参见本节下方的配置说明。

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

  6. 单击创建,然后在弹出的计费提醒中单击确定,页面将自动跳转至任务详情的基础配置页面,可在此跟踪任务状态。

    说明

    决策模型蒸馏模板仅支持一段式(蒸馏数据构建),不支持学生模型训练阶段。

配置说明

以下说明决策模型蒸馏模板的关键配置参数。基础配置和资源配置与通用蒸馏一致,此处仅列出本模板特有的参数差异。

基础配置

基础配置包含任务名称和输出路径两项。输出路径为任务全部产物的输出根目录,蒸馏数据集也写在该目录下,无需再单独指定数据集输出路径。

蒸馏数据构建

教师模型

决策模型蒸馏模板只需配置一个教师模型,负责对每个案例进行 K 次独立决策采样。建议选择判断能力强的大语言模型。教师模型来源仅支持 PAI Token 服务。

数据集

选择输入目录或文件,数据格式要求如下:

  • 格式:JSONL,每行含 id、label 与文本字段。

  • 每行代表一条待决策的案例数据,教师模型将对其执行 K 次独立采样。

示例数据:

{"id": "sms-001", "label": "ham", "text": "Hey, running late. Grab a table for 7:30 and I will meet you there."}
{"id": "sms-002", "label": "spam", "text": "WINNER! You have won a $1000 prize call now to claim within 24h."}
{"id": "sms-003", "label": "ham", "text": "Mum, I left the spare key under the plant pot as agreed. See you Sunday!"}
{"id": "sms-004", "label": "spam", "text": "URGENT: your bank account has been suspended. Reply STOP to cancel."}
{"id": "sms-005", "label": "ham", "text": "Your order 38291 has shipped and should arrive Tuesday before 6pm."}
{"id": "sms-006", "label": "spam", "text": "Congratulations! You were selected for a free vacation. Text GO to claim."}
{"id": "sms-007", "label": "ham", "text": "Can you pick up milk and bread on your way home? Thanks!"}
{"id": "sms-008", "label": "spam", "text": "You have 1 new voicemail. Call 0906-500-1122 to hear it. 3.00 per minute."}

蒸馏配置

蒸馏配置以 YAML 格式提供,预置了算法团队的推荐默认值,可按需调整。下表列出部分建议关注的参数及其说明。

配置段

说明

dataset

  • output_path(默认 distillation_dataset.jsonl):蒸馏产物输出路径,产出 RLCD 格式的 JSONL 数据。可改成其他相对路径的 .jsonl 文件,也可以放进子目录。

  • schema:声明决策问题与选项,是内联工作流的唯一真源,包含 name(工作流名称,存入案例行的 workflow 字段)、question(问题键,如 "spam",也是 elicitation / teacher / gold 的嵌套键)与 instructions(展示给教师的判定指令)。

backend

  • timeout(默认 1200.0):单次请求等待上限(秒)。需覆盖写满 max_tokens(2048)的回答,并预留网络波动空间。

  • max_retries(默认 3):单次请求的网络级重试次数。各阶段自己的重试是另一套(阶段 config 里的 retry_attempts)。

system1

  • method(默认 k_verbalized_mean):引出方法,K 次言语化概率取均值。

  • samples(默认 4):每个问题的 K 次采样次数。

  • temperature(默认 0.7):教师采样温度,控制 K 次采样的生成多样性。

  • max_tokens(默认 2048):每次教师响应的最大 token 数。

  • max_workers(默认 8):elicit 阶段并发 API 调用数。

  • seed(默认 7):选项打乱随机种子。

  • shuffle_options(默认 true):每次调用打乱选项顺序,消除教师位置偏差。

  • resume(默认 true):支持阶段级续跑与 elicit 行级 checkpoint。

  • consistency_threshold(默认 0.6):一致性过滤阈值,top-1 一致率低于此值的问题被丢弃。例如 K=4 时需至少 3 个样本一致。

  • shrinkage(默认 0.02):向均匀分布收缩的强度,防止教师概率塌成纯 one-hot(0 禁用)。

pipeline

  • build_cases:将原始数据与 schema 结合,构建案例行。

  • elicit:对每个案例调用教师模型 K 次独立采样,获取言语化概率分布。

  • aggregate:将 K 个教师的分布聚合为软标签,进行一致性过滤。

  • build_dataset:将案例与教师软标签合并,输出 RLCD 格式的训练数据。