进阶 docs.bailian.console.aliyun.com 2026-10-16 14:20:25 · 24 阅读

第40章 决策模型微调

百炼决策模型微调最佳实践——微调、部署与部署后调用全流程 本文帮助您完成决策模型的微调、部署与部署后调用。百炼决策模型以模型名 decision-model-preview-2026-09-24 提供服务,支持直接调用与微调;它不生成文本,一次前向输出分类、评分、是非判断及其概率,适合工单分流、内容审核、智能体路由与结果校验等高频决策场景。 微调全流程:环境准备 → 数据准备 → 训练提交 → 模型部署 → 部署后调用。 场景选择典型用例需生成文本(对话、代码、写作、推理)通用大模型写文案、写代码、问答封闭集合上的高频决策(分类、评分、是非判断),无需定制直接用决策模型(零样本调用)通用工单分流、内容审核封闭集合决策,但有专属业务规则或领域数据微调决策模型(本文)特定业务工单分流、专属评分标准 百炼支持以下模型微调: 模型名说明微调计费decision-model-preview-2026-09-24决策模型,支持微调与调用限时 0 元/千 token 调用前需完成: API Key:从百炼控制台 API-KEY 页获取 API Key 授权:请联系商务经理开通 环境变量:export DASHSCOPE_API_KEY="你的百炼 API Key" ​数据准备 下载训练数据示例包(含示例数据 tickets.train.jsonl / tickets.development.jsonl、问题配置 workload.json、数据脚本 gen_data.py / split_data.py)。示例数据已切分好可直接用;自备数据时用脚本合成或切分(见示例包 README.md)。 gen_data.py 调用百炼大模型自动标注,会产生用量费用。 每条 JSONL 记录包含输入 state 与问题表 questions,每个问题携带类型定义、label(硬标签)与可选 target(软标签): Copy{ "state": {"content": "发票抬头写错了,请帮忙重新开票。产品功能正常,也没有其他异常。"}, "questions": { "department": { "type": "choice", "instructions": "应该由哪个团队处理?", "criteria": {"billing": "支付、退款和账单问题", "technical": "产品故障和集成问题"}, "label": "billing", "target": {"billing": 0.96, "technical": 0.04} }, "escalate": {"type": "noul", "instructions": "是否需要立即通知值班人员?", "label": false}, "severity": { "type": "score", "instructions": "这个问题有多严重?", "criteria": ["轻微问题,不影响功能", "部分功能受影响,但存在替代方案", "核心功能不可用,没有替代方案", "造成严重业务或安全影响"], "label": 0 } } } label 与 target 填写规则: 类型criteria必填 label可选 targetchoice选项名 → 含义的对象选项名,如 "billing"各选项概率,如 {"billing": 0.96, "technical": 0.04}noul无需填写布尔值 true / false如 {"true": 0.9, "false": 0.1}score从低到高的档位含义数组从 0 开始的整数下标以字符串下标为键,如 {"0": 1.0, "1": 0.0, "2": 0.0, "3": 0.0} target 应包含全部选项,概率在 0–1 之间且合计为 1;同一任务的训练、评估与线上请求须保持问题 ID、类型、instructions、criteria 一致,修改选项后同步修改标签与概率键。 ​训练提交 数据集通过百炼 OpenAPI 上传(JSONL 格式),获得 file_id 后在微调请求中引用。中国站地址 https://dashscope.aliyuncs.com,新加坡站 https://dashscope-intl.aliyuncs.com,API Key 与站点对应: Copycurl --request POST 'https://dashscope.aliyuncs.com/api/v1/files' \ --header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \ --form 'files=@"/path/to/train.jsonl"' \ --form 'purpose="fine-tune"' \ --form 'descriptions="decision-model-preview training dataset"' 返回 file_id(如 976bd01a-...),填入下方微调请求。详见训练集与评估集与调优数据上传规则。 数据集上传与微调请求走百炼 OpenAPI,鉴权用 Authorization: Bearer 。 通过 API 提交微调任务: Copycurl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/fine-tunes' \ --header "Authorization: Bearer ${DASHSCOPE_API_KEY}" \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "decision-model-preview-2026-09-24", "training_datasets": [ {"data_source_type": "file_id", "file_id": "your-file-id"} ], "validation_datasets": [ {"data_source_type": "file_id", "file_id": "your-file-id"} ], "hyper_parameters": { "n_epochs": 2, "learning_rate": "2e-5", "batch_size": 1, "save_strategy": "epoch", "save_total_limit": 1 }, "training_type": "efficient_sft", "finetuned_output_suffix": "mytune" }' 输入参数: 字段必选描述training_datasets是训练数据集列表validation_datasets否测试数据集列表model是基础模型 ID(支持 decision-model-preview,或其他微调任务产出的模型 ID)hyper_parameters否超参数,见下表training_type是微调方法,选择 efficient_sft(LoRA 高效微调)job_name否微调任务名称 超参数: 参数名称默认值类型作用n_epochs2Integer正整数,完整训练轮数learning_rate2e-5Float正数,学习率batch_size1Integer正整数,每个训练批次的样本数 返回示例(节选): Copy{ "request_id": "your-request-id", "output": { "job_id": "ft-xxxxxxxx", "status": "PENDING", "finetuned_output": "decision-model-preview-2026-09-24-ft-xxxxxxxx", "model": "decision-model-preview-2026-09-24", "training_type": "efficient_sft" } } finetuned_output 为微调产出的模型名,部署后通过决策调用接口调用(model 字段传该模型名)。 ​训练指标 任务提交后,可在百炼控制台模型调优查看训练进展与产物。指标页分三组: 组指标含义方向Trainloss训练损失—Trainepoch训练轮次—Evalacc准确率越高越好EvalbrierBrier 分数,预测概率与真值的均方误差越低越好Evalece校准误差越低越好Evalnll负对数似然越低越好Evaltemperature校准温度—Evaln_questions评估问题数—Calibrationacc _after/_before微调后/前准确率after 升为好Calibrationbrier _after/_before微调后/前 Brier 分数after 降为好Calibrationece _after/_before微调后/前校准误差after 降为好Calibrationtemperature校准温度— Calibration 组看 _after 是否相对 _before 改善(acc 升、brier/ece 降)即微调提升了校准。 ​模型部署 训练完成后最后一个 Checkpoint 自动发布至我的模型。如需发布中间 Checkpoint,前往模型调优控制台产出页手动操作。 在”我的模型”页面部署训练返回的 finetuned_output(如 decision-model-preview-2026-09-24-ft-xxxxxxxx),部署规格为 MU5×1,部署完成后即可通过决策调用接口调用。部署方式与 MU 单价详见模型部署与模型调优计费。 ​部署后调用 部署后通过决策调用接口调用微调产物,model 字段传训练返回的 finetuned_output(如 decision-model-preview-2026-09-24-ft-xxxxxxxx),其余参数与调用 decision-model-preview 时相同: curlPythonCopycurl -sS -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/systemone \ -H "Authorization: $DASHSCOPE_API_KEY" \ -H 'Content-Type: application/json' \ -d '{ "model": "decision-model-preview-2026-09-24-ft-xxxxxxxx", "state": {"content": "订单支付后超过 24 小时仍未到账,要求立即处理。"}, "questions": { "department": {"type": "choice", "instructions": "应该由哪个团队处理?", "criteria": {"billing": "支付、退款和账单问题", "technical": "产品故障和集成问题"}} } }' Copyimport os, requests resp = requests.post( "https://dashscope.aliyuncs.com/compatible-mode/v1/systemone", headers={"Authorization": os.environ["DASHSCOPE_API_KEY"], "Content-Type": "application/json"}, json={"model": "decision-model-preview-2026-09-24-ft-xxxxxxxx", "state": {"content": "订单支付后超过 24 小时仍未到账,要求立即处理。"}, "questions": {"department": {"type": "choice", "instructions": "应该由哪个团队处理?", "criteria": {"billing": "支付、退款和账单问题", "technical": "产品故障和集成问题"}}}}, timeout=60, ) print(resp.json()["answers"]["department"]) ​最佳实践 ​软标签:让模型学会校准 训练数据除 label(答案)外,target 带示例包中 gen_data.py 调百炼大模型(默认 qwen3.8-max)自动标注的概率分布,不只告诉模型答案,还告诉模型有多确定,输出概率更校准。--target-temp 调软硬(默认 1.5,越大越平滑、越保留不确定性);续跑可复用已保存标注只调温度,不再调用 API、不产生费用。 ​遇到无法判断的输入 有些输入信息不足、无法判断(如只说"帮我看下我的工单"没给内容)。用 --unknowable N 生成这类样本,target 设均匀分布,不参与准确率评估,专门降低模型在信息不足时的过度自信——缺少这类样本时模型仍倾向高置信错答。 ​问题定义要保持一致 微调学的是"输入 + 问题定义 → 答案"的映射(问题定义即 ID、类型、instructions、criteria)。改了问题定义即分布漂移,准确率下降、校准失效;必须改时用新定义重新准备数据并重训。 ​常见问题 ​数据相关 Q:微调数据格式和调用格式一样吗? 不完全一样。训练数据每条多了 label(硬标签)和可选 target(软标签),调用时不带这两个字段。 Q:微调数据文件多大限制? 单个文件最大 300MB,所有有效文件总量配额 100GB,文件数量上限 10000 个。 Q:微调数据必须是 JSONL 吗? 是,训练数据必须是 JSONL 格式(每行一个 JSON 对象)。 Q:label 和 target 都要填吗? label 必填(硬标签),target 可选(软标签)。有 target 时须覆盖全部选项、概率 0–1 合计为 1。 Q:微调数据可以用 gen_data.py 合成吗? 可以。示例包含 gen_data.py,调用百炼大模型自动标注生成数据(会产生用量费用)。 Q:微调支持中英文混合数据吗? 支持。workload.json 的 language 字段指定语言,可生成中英文数据。 Q:微调支持从 OSS 导入吗? 不支持。当前只能通过百炼 OpenAPI 上传数据集(前端上传暂不支持)。 Q:数据里有 unknowable 会影响准确率吗? 不会。unknowable 样本不参与准确率评估,只用于降低模型在信息不足时的过度自信。 ​训练相关 Q:微调需要自己准备 GPU 吗? 不需要。百炼托管训练,你只需通过 API 提交数据和超参。 Q:微调支持继续训练吗? 支持。model 参数可传其他微调任务产出的模型 ID,基于微调产物再微调。 Q:微调后效果一定比基座好吗? 不一定。效果取决于数据质量和数量,数据质量差可能不如零样本调用。建议先用示例数据验证链路。 ​产物相关 Q:微调后还能用基座模型吗? 可以。基座模型 decision-model-preview 和微调产物独立,可同时调用。 Q:微调产物不支持什么? 同基座,不支持上下文缓存、Function Calling、联网搜索、批量推理、system message、temperature/top_p/max_tokens 等采样参数。 Q:微调产物上下文长度变了吗? 没变,同基座,最大输入 65535 token。 Q:微调产物限流和基座一样吗? 一样,RPM 1200 / TPM 200万(北京与新加坡一致)。 Q:微调后 confidence 一定变高吗? 不一定。confidence 是分布集中度统计,微调后是否改善取决于数据。看指标页 Calibration 的 after/before 对比。 Q:微调产物 model name 怎么命名? finetuned_output_suffix 字段自定义后缀(最多 8 字符),产物名格式为 decision-model-preview-2026-09-24-ft-{后缀}。 Q:微调支持 choice/noul/score 三种问题吗? 都支持。三种问题类型都可微调。 ​调用相关 Q:微调产物调用 endpoint 和基座一样吗? 一样,都是 https://dashscope.aliyuncs.com/compatible-mode/v1/systemone(新加坡站 dashscope-intl.aliyuncs.com)。 Q:微调产物鉴权和基座一样吗? 不完全一样。微调请求走百炼 OpenAPI 用 Bearer 鉴权;推理调用决策调用接口网关不加 Bearer 前缀。 ​部署相关 Q:微调部署规格? MU5×1。后付费 21 元/小时(最小计费分钟),预付费 10139 元/月(最小计费天)。 ​其他 Q:微调收费吗? 当前限时 0 元/千 token。 Q:微调支持什么地域? 北京(dashscope.aliyuncs.com)和新加坡(dashscope-intl.aliyuncs.com),API Key 与站点对应。 Q:微调后能改问题定义吗? 不能直接改。问题定义(ID/类型/instructions/criteria)变了会分布漂移,需重新准备数据重训。 Q:decision-model-preview 后续会变化吗? 为预览版,团队持续迭代。对稳定性要求高的业务建议待正式版发布后再接入。 Q:微调要多少数据起步? 训练和验证数据集分开上传时要求两个数据集数量不小于微调时的 batch_size;只上传训练数据集时不少于 batch_size × 10。推荐数据量:上百条。 Q:微调一个任务大概多久? 百炼未给具体时长(高效训练收敛快);Kev 开源参考单 H100 约 40min(4B 模型,10k 条,2 epoch),百炼决策模型量级接近。 Q:n_epochs 设多少合适? 数据量 <10k 建议 3–5,>10k 建议 1–2;百炼决策模型默认 2(已跑通)。 Q:微调产物可以删除吗? 可以。训练完成后可通过 DELETE /api/v1/fine-tunes/ 删除调优任务(训练中不可删),微调产物在"我的模型"页面管理。 ​后续步骤 模型部署:部署方式与规格 模型调优计费:微调与部署计费 在控制台进行模型调优:控制台查看产出与发布 调优数据上传规则:打包规则、大小与数量限制

评论 (0)