全部产品
Search
文档中心

大模型服务平台百炼:使用 API 或命令行进行模型调优

更新时间:Jun 02, 2026

本文档以千问模型的调优操作为例进行说明,通过 API (HTTP)和 命令行(Shell)两种方式,使用阿里云百炼提供的模型调优功能。模型调优包含模型微调(SFT)、继续预训练(CPT)、模型偏好训练(DPO)三种模型训练方式。

前提条件

说明

通过 API 创建的训练任务仅支持按 Token 计费,暂不支持使用模型训练单元(预付费或后付费)。如需使用训练单元,请通过控制台创建任务。

上传调优文件

准备调优文件

SFT 训练集

SFT ChatML(Chat Markup Language)格式训练数据,支持多轮对话和多种角色设置。

不支持OpenAI 的nameweight参数,所有的 assistant 输出都会被训练。
# 一行训练数据(json 格式),展开后典型结构如下:
{"messages": [
  {"role": "system", "content": "系统输入1"}, 
  {"role": "user", "content": "用户输入1"}, 
  {"role": "assistant", "content": "期望的模型输出1"}, 
  {"role": "user", "content": "用户输入2"}, 
  {"role": "assistant", "content": "期望的模型输出2"}
  ...
]}

system/user/assistant 区别请参见概述,训练数据集样例:SFT-ChatML格式示例.jsonlSFT-ChatML格式示例.xlsx(xls、xlsx 格式只支持单轮对话)。

单条训练数据的所有 assistant 行都支持"loss_weight"参数,用于设置该行在训练时的相对重要性。(设置范围0.0 ~ 1.0,数值越大,重要性越高)

该参数属于邀测参数,如需使用,请联系您的商务经理。
 {"role": "assistant", "content": "期望的模型输出1", "loss_weight": 1.0}, 
 {"role": "assistant", "content": "期望的模型输出2", "loss_weight": 0.5}

也可以前往百炼控制台下载数据模板。

image

将调优文件上传至阿里云百炼

OpenAI 兼容 - FIle 接口

import os
from pathlib import Path
from openai import OpenAI


client = OpenAI(
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    # 新加坡和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为新加坡地域url,若使用北京地域的服务,需将url替换为:https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

# test.jsonl 是一个本地示例文件
file_object = client.files.create(file=Path("test.jsonl"), purpose="fine-tune")

print(file_object.model_dump_json())
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.files.*;

import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
    public static void main(String[] args) {
        // 创建客户端,使用环境变量中的API密钥
        OpenAIClient client = OpenAIOkHttpClient.builder()
                // 新加坡和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 以下为新加坡地域url,若使用北京地域的服务,需将url替换为:https://dashscope.aliyuncs.com/compatible-mode/v1
                .baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
                .build();
        // 设置文件路径,请根据实际需求修改路径与文件名
        Path filePath = Paths.get("src/main/java/org/example/test.txt");
        // 创建文件上传参数
        FileCreateParams params = FileCreateParams.builder()
                .file(filePath)
                .purpose(FilePurpose.of("fine-tune"))
                .build();

        // 上传文件
        FileObject fileObject = client.files().create(params);
        System.out.println(fileObject);
    }
}
# ======= 重要提示 =======
# 新加坡和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# 以下为新加坡地域url,若使用北京地域的服务,需将url替换为:https://dashscope.aliyuncs.com/compatible-mode/v1/files
# === 执行时请删除该注释 ===

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/files \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
--form 'file=@"test.jsonl"' \
--form 'purpose="fine-tune"'
说明

使用限制:

  • 单个文件大小最大为300MB

  • 所有的有效文件(未删除)总使用空间配额为5GB

  • 所有的有效文件(未删除)总数量配额为100个

  • 文件存储没有时间限制

模型调优

创建调优任务

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_file_ids":[
        "<替换为训练数据集的file_id1>",
        "<替换为训练数据集的file_id2>"
    ],
    "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"
}'

输入参数

字段

必选

类型

传参方式

描述

training_file_ids

Array

Body

训练集文件列表。

validation_file_ids

Array

Body

验证集文件列表。

model

String

Body

用于调优的基础模型 ID,或其他调优任务产出的模型 ID。

hyper_parameters

Map

Body

用于调优模型的超参数。不同模型支持的参数及其默认值不同,请在控制台选择相同的模型和训练方式查看实际默认值。

以下参数影响训练费用,必须填写n_epochs(循环次数)、batch_size(批次大小)、max_length(序列长度)。

training_type

String

Body

调优方法,可选值为:

cpt

sft

efficient_sft

dpo_full

dpo_lora

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":
        [
            "9e9ffdfa-c3bf-436e-9613-6f053c66aa6e"
        ],
        "validation_file_ids":
        [],
        "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)支持情况:

如果调优的模型不支持sft方法,调优任务将会失败。

模型服务

模型代码

CPT全参训练(cpt)

SFT全参训练(sft)

SFT高效训练(sft_efficient)

DPO全参训练(dpo_full)

DPO高效训练(dpo_lora)

Qwen3.6-Flash-2026-04-16

qwen3.6-flash-2026-04-16

×

支持

×

×

×

Qwen3.5-27B

qwen3.5-27b

×

支持

支持

×

×

Qwen3.5-9B

qwen3.5-9b

×

支持

支持

×

×

Qwen3.5-Flash-2026-02-23

qwen3.5-flash-2026-02-23

×

支持

×

×

×

Qwen3-32B

qwen3-32b

支持

支持

支持

支持

支持

Qwen3-30B-A3B-Instruct-2507

qwen3-30b-a3b-instruct-2507

支持

支持

支持

×

×

Qwen3-14B

qwen3-14b

×

支持

支持

支持

支持

Qwen3-8B

qwen3-8b

×

支持

支持

支持

支持

Qwen3-1.7B

qwen3-1.7b

支持

支持

支持

支持

支持

Qwen3-0.6B

qwen3-0.6b

支持

支持

支持

支持

支持

Qwen2.5-72B-Instruct

qwen2.5-72b-instruct

支持

支持

支持

支持

支持

Qwen2.5-32B-Instruct

qwen2.5-32b-instruct

支持

支持

支持

支持

支持

Qwen2.5-14B-Instruct

qwen2.5-14b-instruct

支持

支持

支持

支持

支持

Qwen2.5-7B-Instruct

qwen2.5-7b-instruct

支持

支持

支持

支持

支持

千问-Plus-Character-2025-11-06

qwen-plus-character-2025-11-06

×

支持

支持

支持

支持

hyper_parameters支持的设置

不同模型支持的参数及其默认值不同,请前往控制台选择相同的模型和训练方式查看实际默认值

参数名称

推荐设置

类型

超参作用

n_epochs

(循环次数)【必填】

数据量 < 10,000, 3~5次

数据量 > 10,000, 1~2次

Integer

模型遍历训练的次数,请根据模型调优实际使用经验进行调整。

模型训练循环次数越多,训练时间越长,训练费用越高。

learning_rate

(学习率)

使用百炼推荐的默认值

Float

控制模型修正权重的强度。

  • 学习率设置得太高,模型参数会剧烈变化,导致调优后的模型表现不一定更好,甚至变差;

  • 学习率太低,调优后的模型表现不会有太大变化。

freeze_vit

(是否冻结视觉主干网络)

根据需求调整

Boolean

用于冻结视觉主干网络的参数,使其在训练过程中不更新权重。仅适用于 千问-VL(视觉理解)模型。

警告

只有 freeze_vit 设置为“true”时,模型才能进行按 Token 用量计费。

batch_size

(批次大小)【必填】

使用百炼推荐的默认值

Integer

一次性送入模型进行训练的数据条数,参数过小会显著延长训练时间。不同模型的默认值不同,请前往控制台查看。

eval_steps

(验证步数)

根据需求调整

Integer

训练阶段针对模型的验证间隔步长,用于阶段性评估模型训练准确率、训练损失。

该参数影响模型调优进行时的 Validation Loss 和 Validation Token Accuracy 的显示频率。

logging_steps

(日志显示步数)

根据需求调整

Integer

调优日志打印的步数。

lr_scheduler_type

(学习率调整策略)

推荐linear/Inverse_sqrt

String

在模型训练中动态调整学习率的策略。

各策略详情请参考在控制台进行模型调优

max_length

(序列长度)【必填】

8192

Integer

指的是单条训练数据 token 支持的最大长度。如果单条数据 token 长度超过设定值,调优会直接丢弃该条数据,不进行训练。

字符与 token 之间的关系请参考Token和字符串之间怎么换算

max_split_val_dataset_sample

(验证集数据最大数量)

使用百炼推荐的默认值

Integer

当不设置"validation_file_ids"时,阿里云百炼自动分割的验证集最多只有1000条。

当设置了"validation_file_ids"时,该参数无效。

split

(训练集在训练文件中占比)

使用百炼推荐的默认值

Float

当不设置"validation_file_ids"时,阿里云百炼会自动把训练文件中的80%作为训练集,20%作为验证集。

当设置了"validation_file_ids"时,该参数无效。

warmup_ratio

(学习率预热比例)

使用百炼推荐的默认值

Float

学习率预热占用总的训练过程的比例。学习率预热是指学习率在训练开始后由一个较小值线性递增至学习率设定值。

该参数主要是限制模型参数在训练初始阶段的变化幅度,从而帮助模型更稳定地进行训练。

比例过大效果与过低的学习率相同,会导致调优后的模型表现不会有太大变化。

比例过小效果与过高的学习率相同,可能导致调优后的模型表现不一定更好,甚至变差。

该参数仅对学习率调整策略“Constant”无效。

weight_decay

(权重衰减)

使用百炼推荐的默认值

Float

L2正则化强度。L2正则化能在一定程度上保持模型的通用能力。数值过大会导致模型调优效果不明显。

高效微调(支持efficient_sftdpo_lora)参数

说明

当对一个已经高效微调后的模型进行二次高效微调时,lora_ranklora_alphalora_dropout三个参数必须保持一致。

lora_rank

(LoRA秩值)

64

Integer

LoRA训练中的低秩矩阵的秩大小。秩越大调优效果越好,但训练会略慢。

lora_alpha

(LoRA阿尔法)

使用百炼推荐的默认值

Integer

用于控制原模型权重与LoRA的低秩修正项之间的结合缩放系数。

较大的Alpha值会给予LoRA修正项更多权重,使得模型更加依赖于微调任务的特定信息;

而较小的Alpha值则会让模型更倾向于保留原始预训练模型的知识。

lora_dropout

(LoRA丢弃率)

使用百炼推荐的默认值

Float

LoRA训练中的低秩矩阵值的丢弃率。

使用推荐数值能增强模型通用化能力。

数值过大会导致模型微调效果不明显。

混合训练(支持efficient_sftsft)参数

data_augmentation

(是否开启混合训练)

根据模型的使用场景混合

Boolean

开启后,训练数据将与百炼提供的通用数据集(多领域/多行业/多场景)混合:

- 效果:提升训练效果,避免模型能力退化。

- 计费:混合数据计入总训练Token,按标准计费。

augmentation_ratio

(设置混合倍率)

根据模型的使用场景混合

String

  • 格式要求:与augmentation_types完全对应

  • 示例:"0.1,0.05,0.15"(分别对应augmentation_types列出的三种数据集)

  • 含义:按训练数据量的10%/5%/15%随机抽取混合

  • 范围:0.0 ~ 2.0

模型参数快照发布(仅支持efficient_sftsft)参数

save_strategy

(快照存储策略)

可以设置为 epochsteps

  • 设置为steps时,可以通过设置save_steps参数,调整保存间隔。

String

设置调优过程中,保存模型参数快照(Checkpoint)的保存间隔和保存数量上限。

save_steps

(存储步数)

如果需要手动修改,建议设置为eval_steps参数的整数倍。

Integer

设置每训练多少步保存一次模型参数快照(Checkpoint)。

save_total_limit

(快照存储数量上限)

10

Integer

限制最多保存多少个模型参数快照(Checkpoint)用于发布。

查询调优任务详情

使用创建任务时返回的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":
        [
            "9e9ffdfa-c3bf-436e-9613-6f053c66aa6e"
        ],
        "validation_file_ids":
        [],
        "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_sftsft)支持保存和发布其中间状态的模型参数快照(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

快照(Checkpoint)待发布,需要使用模型发布 API 发布后才可以进行模型部署&调用

PROCESSING

快照(Checkpoint)发布中。

SUCCEEDED

快照(Checkpoint)发布成功。可直接进行模型部署&调用

FAILED

快照(Checkpoint)发布失败。

模型发布(可选)

说明

在百炼平台上,模型调优完成后可以导出参数快照,导出后才能基于此版本的参数快照在百炼上进行模型部署。

导出的参数快照保存在云存储中,暂不支持访问或下载。

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' 

模型部署&调用

模型部署

请前往模型部署控制台部署模型。

模型调用

当模型部署状态为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"
    }
}'