【模型微调入门 - 阿里云百炼】

主要步骤:数据管理(上传数据集) > 模型调优 > 模型部署 > AP调用。

一、基础概念

1、三种训练方式

阿里云百炼提供了三种训练方式,每种训练方式需要的数据集内容格式不一样。

1. SFT 微调训练

复制代码
有监督微调,增强模型指令跟随的能力,提供全参或少量参数(如LoRA)的训练方式。 
**核心逻辑:**给模型看"问题和标准答案"的组合,让它模仿学习。
 注:教模型做事(学会输出格式和逻辑)

作用

让模型学会遵循指令(不再是一般的对话模型,而是能听懂"帮我关灯"这种具体指令)

让模型学会特定的输出格式(例如JSON格式)

将通用模型适配到垂直领域(从通用助手变成智能家居专家)

2. DPO 偏好训练

复制代码
引入负反馈,降低幻觉,使得模型输出更符合人类偏好。 
**核心逻辑:**给模型看"好回答"和"坏回答"的对比,让它学会偏好排序。
注:教模型选最优(学会输出什么叫好)

作用

引入负反馈:明确告诉模型什么是不好的回答,

降低幻觉:减少模型编造内容(比如明明没关灯,却说"关了")

对齐人类偏好:让模型输出更符合用户期望(更友好、更完整、更安全)

3. CPT 继续预训练

复制代码
通过无标注数据进行无监督继续预训练,强化或新增模型特定能力。 
**核心逻辑:**用无标注数据(纯文本,没有问答对)继续训练模型的基础能力。
注:扩充模型知识能力(学会新领域的知识)

作用:

强化特定能力:比如大量阅读医学文献,增强模型的医疗知识

新增知识领域:比如模型原本不懂智能家居协议(Zigbee、MQTT),通过CPT让它学会这些术语和概

适应新语料风格:比如学习技术文档、法律条文、古诗词等特殊文体

2、三者关系与使用流程

原始通用模型


【CPT 继续预训练】 ← 学习新知识(纯文本数据,例如系统操作手册)

领域增强模型


【SFT 微调训练】 ← 学会指令理解用户指令,并按期望的格式(自然语言、JSON等)

指令跟随模型


【DPO 偏好训练】 ← 优化回答质量(对比数据,如好回答 vs 坏回答)

高质量对齐模型

3、【家具控制场景】的大模型微调方案(案例):

阶段 训练方式 数据需求 数据量建议 目标
第一阶段 CPT 智能家居说明书、用户手册 100MB~1GB 纯文本 让模型学会"亮度20%"、"色温5000K"等术语
第二阶段 SFT 问答对 500~5000条 让模型学会"指令→执行确认"的格式
第三阶段(可选) DPO 对比数据(chosen + rejected) 100~1000对 让模型回答更友好、更完整、更主动
3.1、如何选择训练方式?
  • 只有几百条标注问答,预算有限 → 只做 SFT(LoRA)
  • 模型已经能执行,但回答生硬、偶尔幻觉 → 做 DPO
  • 模型完全不懂智能家居术语(如不知道"色温"是什么) → 先做 CPT
  • 追求最佳效果 → CPT → SFT → DPO 全套流程

二、实操

以灯具智能语音训练为例,使用 SFT 微调训练。

仅 SFT 方式支持选择按量付费的方式部署,SFT 微调 被定义为「业务适配型微调」。
要便宜、按量、好用 → 只做 Qwen 基座的 SFT-LoRA 微调,别碰 DPO 和 OPT。

1、数据管理(训练集)

点击"数据格式说明",可以查看需要上传的数据集格式;然后让大模型生成用于测试的数据集。

或者在第三方平台,如modelscope魔塔下载相关数据集。

2、模型调优

训练方式的选择取决于第一步上传的数据集格式;否则无法添加训练集(不同的训练方式有不同格式的训练集格式)。

按照步骤选择训练集,参数配置采用默认即可。最后点击"开始训练"。

3、模型部署(使用)

等训练完成后,就可以进行最后的部署了。

路径:[模型部署] >> [部署新模型] >> 选择模型 >> 选择按量付费 >> 开始部署。

3.1. 费用说明(SFT 按量部署)

微调后的模型按量部署,费用与基座大模型的调用价格一致。

对基础模型(如 Qwen3-8B、Qwen2.5-7B 等)完成 SFT 微调后,部署为自定义模型并按 Token 使用量计费时,其输入/输出单价完全沿用所选基座模型的标准价格。

例如,以上案例基于 Qwen3-8B 微调,则调用费用为:

  • 输入:¥0.0005 / 千 Token
  • 输出(非思考模式):¥0.002 / 千Token

💡 注意:此计费方式仅适用于支持"按 Token 计费"的基础模型微调场景;部署本身不额外收取模型调用费,仅按实际 Token 消耗计费

3.2. 点击"立刻体验"测试微调效果
3.3. 代码中使用微调后的模型
python 复制代码
# 代码中替换为微调后的模型
response = dashscope.Generation.call(
    model="qwen3-8b-01d1xxx",  # 替换为实际部署后的模型 code
    messages=messages,
    ...
)
相关推荐
同聘云3 小时前
阿里云国际站 服务器的“客户端” (Client) 和 “服务器” (Server)到底是什么?有什么区别?
服务器·网络·阿里云·云计算·云小强
还在忙碌的吴小二21 小时前
阿里云DevStudio/CloudIDE全系产品上线通义千问开源大模型Qwen-32B
阿里云·开源·云计算
橙露21 小时前
IoT 实战:ESP32 连接阿里云平台上传温湿度数据
物联网·阿里云·云计算
TG_yunshuguoji2 天前
阿里云代理商:百炼大模型技术解析与应用指南
服务器·阿里云·云计算
bingyan03712 天前
squid-基于rockylinux8配置内网代理访问阿里云软件源
阿里云·代理·squid·软件源
ZStack开发者社区3 天前
云边协同 智启未来 | 阿里云 × ZStack 云边一体解决方案正式落地
阿里云·云计算·边缘计算