本文档以千问模型的调优操作为例进行说明,通过 API (HTTP)和 命令行(Shell)两种方式,使用阿里云百炼提供的模型调优功能。模型调优包含模型微调(SFT)、继续预训练(CPT)、模型偏好训练(DPO)三种模型训练方式。
前提条件
通过 API 创建的训练任务仅支持按 Token 计费,暂不支持使用模型训练单元(预付费或后付费)。如需使用训练单元,请通过控制台创建任务。
上传调优文件
准备调优文件
SFT/DPO/CPT 各训练方式的数据格式规格、打包规则、大小与数量限制、API 上传配额详见调优数据上传规则。各训练方式支持的文件格式概览:
|
训练方式 |
文件格式 |
SFT 文本生成 |
jsonl(ChatML messages 多轮结构) |
SFT 多模态(图片/视频) |
zip(data.jsonl + 图片/视频文件) |
DPO |
jsonl(chosen/rejected 偏好对比) |
CPT |
jsonl(纯文本 {text}) |
评测集 |
xlsx |
|
也可以前往百炼控制台下载数据模板。 |
在新增数据集页面的上传文件区域下方,可找到数据模板下载链接。 |
将调优文件上传至阿里云百炼
DashScope API
Windows CMD 请将${DASHSCOPE_API_KEY}替换为%DASHSCOPE_API_KEY%,PowerShell 请替换为$env:DASHSCOPE_API_KEY
curl --request POST \
'https://dashscope.aliyuncs.com/api/v1/files' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--form 'files=@"/path/to/your/file.jsonl"' \
--form 'purpose="fine-tune"' \
--form 'descriptions="a sample fine-tune data file for qwen"'
使用限制:
-
单个文件大小最大为300MB
-
所有的有效文件(未删除)总使用空间配额为100GB
-
所有的有效文件(未删除)总数量配额为10000个
-
文件存储没有时间限制
通过 API 上传的调优文件,在百炼控制台模型调优页面与 API 调用中均可见可用。
更多详细信息请参见上传文件。
返回结果:
{
"request_id":"xx",
"data":{
"uploaded_files":[{
"file_id":"976bd01a-f30b-4414-86fd-50c54486e3ef",
"name":"qwen-fine-tune-sample.jsonl"}],
"failed_uploads":[]}
}
模型调优
创建调优任务
HTTP
Windows CMD 请将${DASHSCOPE_API_KEY}替换为%DASHSCOPE_API_KEY%,PowerShell 请替换为$env:DASHSCOPE_API_KEY
curl --location "https://dashscope.aliyuncs.com/api/v1/fine-tunes" \
--header "Authorization: Bearer ${DASHSCOPE_API_KEY}" \
--header 'Content-Type: application/json' \
--data '{
"model":"qwen3-8b",
"training_datasets":[
{"data_source_type":"file_id","file_id":"<替换为训练数据集的file_id1>"},
{"data_source_type":"oss_mount","mount_storage":{"region":"cn-beijing","bucket":"example_bucket","file_path":"dataset/data.jsonl"}}
],
"validation_datasets":[
{"data_source_type":"file_id","file_id":"<替换为测试数据集的file_id>"},
{"data_source_type":"oss_mount","mount_storage":{"region":"cn-beijing","bucket":"example_bucket","file_path":"dataset/val.jsonl"}}
],
"hyper_parameters":
{
"n_epochs": 3,
"batch_size": 16,
"max_length": 8192,
"learning_rate": "1.6e-5",
"lr_scheduler_type": "linear",
"split": 0.9,
"warmup_ratio": 0.05,
"eval_steps": 50,
"data_augmentation": true,
"augmentation_ratio": "0.1,0.05,0.15",
"augmentation_types": "dialogue_CN,general_purpose_CN,NLP",
"save_strategy": "epoch",
"save_total_limit": 10
},
"training_type":"sft"
}'
使用 OSS 挂载方式加载数据集时,需将未经压缩的数据集文件夹整体上传到 OSS Bucket,不支持 zip 文件。MountStorage 的 file_path 指定数据集的 data.jsonl 文件路径;对包含多个文件的数据集(如 data.jsonl 和图片/视频文件同目录),只需指定 data.jsonl 的路径,无需指定其他文件。挂载前需授权百炼服务访问您的 OSS 数据。OSS Bucket 所属地域支持北京(cn-beijing)和新加坡(ap-southeast-1)。
输入参数
|
字段 |
必选 |
类型 |
传参方式 |
描述 |
|
training_datasets |
是 |
Array of Dataset |
Body |
训练数据集列表。 |
|
validation_datasets |
否 |
Array of Dataset |
Body |
测试数据集列表。 |
|
model |
是 |
String |
Body |
用于调优的基础模型 ID,或其他调优任务产出的模型 ID。 |
|
hyper_parameters |
否 |
Map |
Body |
用于调优模型的超参数。不同模型支持的参数及其默认值不同,请在控制台选择相同的模型和训练方式查看实际默认值。 以下参数影响训练费用,必须填写: |
|
training_type |
否 |
String |
Body |
调优方法,可选值为:
|
|
job_name |
否 |
String |
Body |
调优任务名称 |
|
model_name |
否 |
String |
Body |
调优产生的模型名称(并非模型 ID,模型 ID 由系统生成) |
返回样例
{
"request_id": "635f7047-003e-4be3-b1db-6f98e239f57b",
"output":
{
"job_id": "ft-202511272033-8ae7",
"job_name": "ft-202511272033-8ae7",
"status": "PENDING",
"finetuned_output": "qwen3-8b-ft-202511272033-8ae7",
"model": "qwen3-8b",
"base_model": "qwen3-8b",
"training_file_ids": [],
"validation_file_ids": [],
"training_datasets": [
{"data_source_type": "file_id", "file_id": "9e9ffdfa-c3bf-436e-9613-6f053c66aa6e"}
],
"validation_datasets": [],
"hyper_parameters":
{
"n_epochs": 3,
"batch_size": 16,
"max_length": 8192,
"learning_rate": "1.6e-5",
"lr_scheduler_type": "linear",
"split": 0.9,
"warmup_ratio": 0.05,
"eval_steps": 50,
"data_augmentation": true,
"augmentation_ratio": "0.1,0.05,0.15",
"augmentation_types": "dialogue_CN,general_purpose_CN,NLP",
"save_strategy": "epoch",
"save_total_limit": 10
},
"training_type": "sft",
"create_time": "2025-11-27 20:33:15",
"workspace_id": "llm-8v53etv3hwb8orx1",
"user_identity": "1654290265984853",
"modifier": "1654290265984853",
"creator": "1654290265984853",
"group": "llm",
"max_output_cnt": 10
}
}
支持的基础模型ID(model)列表与训练类型(training_type)支持情况:
hyper_parameters内支持的设置
查询调优任务详情
使用创建任务时返回的job_id来查询任务状态。
HTTP
curl 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json'
输入参数
|
字段 |
类型 |
传参方式 |
必选 |
描述 |
|
job_id |
String |
Path Parameter |
是 |
要查询的调优任务的ID。 |
返回成功样例
{
"request_id": "d100cddb-ac85-4c82-bd5c-9b5421c5e94d",
"output":
{
"job_id": "ft-202511272033-8ae7",
"job_name": "ft-202511272033-8ae7",
"status": "RUNNING",
"finetuned_output": "qwen3-8b-ft-202511272033-8ae7",
"model": "qwen3-8b",
"base_model": "qwen3-8b",
"training_file_ids": [],
"validation_file_ids": [],
"training_datasets": [
{"data_source_type": "file_id", "file_id": "9e9ffdfa-c3bf-436e-9613-6f053c66aa6e"}
],
"validation_datasets": [],
"hyper_parameters":
{
"n_epochs": 3,
"batch_size": 16,
"max_length": 8192,
"learning_rate": "1.6e-5",
"lr_scheduler_type": "linear",
"split": 0.9,
"warmup_ratio": 0.05,
"eval_steps": 50,
"data_augmentation": true,
"augmentation_ratio": "0.1,0.05,0.15",
"augmentation_types": "dialogue_CN,general_purpose_CN,NLP",
"save_strategy": "epoch",
"save_total_limit": 10
},
"training_type": "sft",
"create_time": "2025-11-27 20:33:15",
"workspace_id": "llm-8v53etv3hwb8orx1",
"user_identity": "1654290265984853",
"modifier": "1654290265984853",
"creator": "1654290265984853",
"group": "llm",
"max_output_cnt": 10
}
}
|
任务状态 |
含义 |
|
PENDING |
训练待开始。 |
|
QUEUING |
训练正在排队(同时只有一个训练任务可以进行) |
|
RUNNING |
训练正在进行中。 |
|
CANCELING |
训练正在取消中。 |
|
SUCCEEDED |
训练成功。 |
|
FAILED |
训练失败。 |
|
CANCELED |
训练已经取消。 |
训练成功后,finetuned_output指的是调优成功后的模型 ID,可用于模型部署。
获取调优任务日志
HTTP
curl 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>/logs?offset=0&line=1000' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json'
可通过 offset 和 line 两个参数获取特定行数区间的日志。 Offset 用于设置日志输出开始的位置;line 用于设置日志最多输出多少行。
返回结果样例:
{
"request_id":"1100d073-4673-47df-aed8-c35b3108e968",
"output":{
"total":57,
"logs":[
"{输出调优日志1}",
"{输出调优日志2}",
...
...
...
]
}
}
查询与发布模型参数快照
仅 SFT微调训练(efficient_sft、sft)支持保存和发布其中间状态的模型参数快照(Checkpoint)。
查询调优任务的参数快照列表
curl 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>/checkpoints' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json'
输入参数
|
字段 |
类型 |
传参方式 |
必选 |
描述 |
|
job_id |
String |
Path Parameter |
是 |
要查询的调优任务的ID。 |
返回成功样例
checkpoint指的是 Checkpoint ID,用于在模型发布(可选) API 中指定要发布的快照;model_name指的是模型 ID,可用于模型部署。(finetuned_output 输出的是最后一个 checkpoint 的 model_name)
{
"request_id": "c11939b5-efa6-4639-97ae-ed4597984647",
"output":
[
{
"create_time": "2025-11-11T16:25:42",
"full_name": "ft-202511272033-8ae7-checkpoint-20",
"job_id": "ft-202511272033-8ae7",
"checkpoint": "checkpoint-20",
"model_name": "qwen3-8b-instruct-ft-202511272033-8ae7",
"status": "SUCCEEDED"
}
]
}
|
快照发布状态 (status) |
含义 |
|
PENDING |
|
|
PROCESSING |
快照(Checkpoint)发布中。 |
|
SUCCEEDED |
快照(Checkpoint)发布成功。可直接进行模型部署&调用。 |
|
FAILED |
快照(Checkpoint)发布失败。 |
模型发布(可选)
在百炼平台上,模型调优完成后可以导出参数快照,导出后才能基于此版本的参数快照在百炼上进行模型部署。
导出的参数快照保存在云存储中,暂不支持访问或下载。
URL 中的 <checkpoint_id> 取值来自上一步查询快照列表接口返回的 checkpoint 字段(如 checkpoint-20),而非 full_name 或其他含 job_id 前缀的字段值。
curl --request GET 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>/export/<checkpoint_id>?model_name=<model_name>' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json'
输入参数
|
字段 |
类型 |
传参方式 |
必选 |
描述 |
|
job_id |
String |
Path Parameter |
是 |
要查询的调优任务的 ID。 |
|
checkpoint_id |
String |
Path Parameter |
是 |
要发布的 Checkpoint ID。取值为查询快照列表接口返回的 |
|
model_name |
String |
Path Parameter |
是 |
发布后期望的模型 ID。 |
发布任务成功返回样例
{
"request_id": "ed3faa41-6be3-4271-9b83-941b23680537",
"output": true
}
由于发布任务是异步执行的,请使用查询快照列表 API 观察快照发布状态。
模型调优的更多操作
列举调优任务列表
curl 'https://dashscope.aliyuncs.com/api/v1/fine-tunes' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json' 中止调优任务
智能终止正在训练中的调优任务
curl --request POST 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>/cancel' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json' 删除调优任务
无法删除正在训练中的调优任务
curl --request DELETE 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json' API参考
DashScope命令行调用参考已包含在本篇内容中,详细API调用请参考API详情。
模型部署&调用
模型部署
更多模型部署方式的相关信息请参考:使用 API 进行模型部署。
按模型 Token 使用量
curl "https://dashscope.aliyuncs.com/api/v1/deployments" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model_name": "qwen3-8b-ft-202511132025-0260",
"plan": "lora",
"capacity": 1,
"name": "qwen3-8b-ft"
}'
按模型单元的使用时长
curl "https://dashscope.aliyuncs.com/api/v1/deployments" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "my_qwen_plus",
"model_name": "qwen-plus-2025-12-01",
"plan": "mu",
"deploy_spec": "MU1",
"enable_thinking": true,
"capacity": 4,
"max_context_length": 10000,
"rpm_limit": 500,
"tpm_limit": 1000
}'
查询模型部署的状态
当部署状态为RUNNING时,表示该模型当前可供调用。
curl 'https://dashscope.aliyuncs.com/api/v1/deployments/<替换为部署任务成功后的模型实例 ID>' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json' 更多模型部署相关的操作,如扩缩容、下线等请参见:模型部署-API详情。
模型调用
当模型部署状态为RUNNING时,可以像调用其他模型一样使用调优后的模型。
也可以前往模型部署控制台界面获取模型code。
更多使用方法和参数设置请前往DashScope API 参考。
curl 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'Authorization: Bearer '${DASHSCOPE_API_KEY} \
--header 'Content-Type: application/json' \
--data '{
"model": "<替换为部署任务成功后的模型实例 ID>",
"input":{
"messages":[
{
"role": "user",
"content": "你是谁?"
}
]
},
"parameters": {
"result_format": "message"
}
}'模型评测
阿里云百炼的模型评测功能必须使用控制台,请前往阿里云百炼的模型评测 页面,评估模型训练效果。
相关信息请参见模型评测。