使用ModelArts Studio(MaaS)调优模型
在ModelArts Studio大模型即服务平台支持对模型广场的预置模型或用户自建的模型进行调优,通过多种训练方法(如全参微调、增量预训练等)优化模型性能,从而获得更符合业务需求的模型。
场景描述
从模型广场或“我的模型”中选择一个模型进行调优,当模型完成调优作业后会产生一个新的模型,呈现在“我的模型”列表中。
前提条件
- 已准备好训练数据集,并存放于OBS桶中,OBS桶必须和MaaS服务在同一个Region下。关于如何创建OBS桶和上传文件,请参见OBS控制台快速入门。
- 当需要永久保存日志时,需要准备好存放日志的OBS路径,OBS桶必须和MaaS服务在同一个Region下。
- 如果需要对已创建的模型进行调优,则该模型需支持调优,且在“状态”为“创建成功”。
- 关于是否支持调优,请参见支持模型微调的模型。
- 关于如何创建模型,请参见在ModelArts Studio(MaaS)创建模型。
页面中,模型的 - 已准备公共资源池或专属资源池,详情请参见准备ModelArts Studio(MaaS)资源。
创建调优作业
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“模型调优”。
- 在“模型调优”页面右上角,单击“创建调优作业”,完成创建配置。
表1 创建调优作业参数说明 参数
说明
作业设置
作业名称
自定义调优作业名称。支持1~64位,以中文、大小写字母开头,只包含中文、大小写字母、数字、中划线、下划线的名称。
描述
自定义调优作业简介。支持1000字符。
模型设置
来源模型
单击“选择模型”,在“选择模型”对话框中选择“模型广场”或“我的模型”下面的模型。关于模型的介绍,请参见在ModelArts Studio(MaaS)模型广场查看预置模型和在ModelArts Studio(MaaS)创建模型。
调优类型
MaaS支持全参微调、LoRA微调和增量预训练三种调优类型。不同模型支持的调优类型不同,不支持的调优类型会置灰,详情请参见表3。
- 全参微调:直接在模型上训练,影响模型全量参数的微调训练,效果较好,收敛速度较慢,训练时间较长。
- LoRA微调:冻结原模型,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数,效果接近或略差于全参训练,收敛速度快,训练时间短。
- 增量预训练:在现有预训练模型基础上,利用新数据或特定领域的数据增强模型的能力和性能。允许模型逐步适应新的作业和数据,避免过拟合和欠拟合问题,进一步提高模型的泛化能力。
调优后模型名称
设置调优后产生的新模型的名称。
支持1~64位,以中文、大小写字母开头,只包含中文、大小写字母、数字、下划线(_)、中划线(-)和半角句号(.)。
调优后模型权重存放路径
选择调优后模型权重文件的OBS存放路径。训练后将在指定路径下自动创建以作业ID命名的新文件夹进行权重存储。
数据设置
选择数据集格式
支持选择MOSS、Alpaca和ShareGPT。训练数据需要按照对应格式,上传符合规范的数据集,以更好完成训练作业。关于数据集示例,请参见支持的数据集格式。
说明:如果数据集选择错误,您可以通过以下方式查看日志详情。更多信息,请参见调优数据集异常日志说明。- 登录ModelArts Studio(MaaS)控制台,在“模型调优”页面单击目标作业,在作业详情的日志页签查看详情。
- 登录ModelArts管理控制台,在 页面单击目标作业,在日志页签查看详情。
添加数据集
选择存放训练数据集的OBS路径,必须选择到文件。单次上传本地文件到OBS的总大小不能超过5GB,详情请参见如何上传超过5GB的大对象。
超参设置
数据条数
输入数据集中的总数据条数。
迭代轮次/Epoch
训练过程中模型遍历整个数据集的次数。不同量级数据集的建议值:百量集4~8;千量集2~4;更大数量级1~2。
迭代步数/Iterations
计算得出的模型参数/权重更新的次数。在调优过程中,Qwen2-72B-1K模型的每一个Iterations会消耗512条训练数据,其他模型的每一个Iterations会消耗32条训练数据。
当数据集是数百量级,则建议迭代4~8个epoch(epoch表示整个数据集被完整地用于一次训练的次数);当数据集是数千量级,则建议迭代2~4个epoch;当数据集是更大数量,则建议迭代1~2个epoch。
总Iterations = 整个数据集完整训练需要的Iterations * epoch。例如,当一个数据集有3200条数据,完整训练一个数据集的Iterations为100,迭代2个epoch,总Iterations就是200。
取值范围:1~100000
学习率/learning_rate
设置每个迭代步数(iteration)模型参数/权重更新的速率。学习率设置的过高会导致模型难以收敛,过低则会导致模型收敛速度过慢。
取值范围:[0, 0.1]
默认值:0.00002
建议微调场景的学习率设置在10-5这个量级。
Checkpoint保存个数
训练过程中保存Checkpoint的个数。最小值为1,最大值为“迭代步数/Iterations”的参数值,不超过10。Checkpoint会自动存储到“调优后模型权重保存路径”的OBS路径下。
资源设置
资源池类型
资源池分为公共资源池与专属资源池。
- 公共资源池由所有租户共享使用。
- 专属资源池需单独创建,不与其他租户共享。
规格
选择规格,规格中描述了服务器类型、型号等信息,仅显示模型支持的资源。
计算节点个数
当计算节点个数大于1,将启动多节点分布式训练。详细信息,请参见分布式训练功能介绍。
更多选项
永久保存日志
选择是否打开“永久保存日志”开关。
- 开关关闭(默认关闭):表示不永久保存日志,则作业日志会在30天后会被清理。可以在作业详情页下载全部日志至本地。
- 开关打开:表示永久保存日志,此时必须配置“日志路径”,系统会将作业日志永久保存至指定的OBS路径。
事件通知
选择是否打开“事件通知”开关。
- 开关关闭(默认关闭):表示不启用消息通知服务。
- 开关打开:表示订阅消息通知服务,当作业发生特定事件(如作业状态变化或疑似卡死)时会发送通知。此时必须配置“主题名”和“事件”。
- “主题名”:事件通知的主题名称。单击“创建主题”,前往消息通知服务中创建主题。
- “事件”:选择要订阅的事件类型。例如“创建中”、“已完成”、“运行失败”等。
自动停止
当使用付费资源时,可以选择是否打开“自动停止”开关。
- 开关关闭(默认关闭):表示作业将一直运行直至完成。
- 开关打开:表示启用自动停止功能,此时必须配置自动停止时间,支持设置为“1小时”、“2小时”、“4小时”、6小时或“自定义”。启用该参数并设置时间后,运行时长到期后将会自动终止作业,准备排队等状态不扣除运行时长。
自动重启
选择是否打开“自动重启”开关。
- 开关关闭(默认关闭):表示不启用自动重启。
- 开关打开:表示当由于环境问题导致训练作业异常时,系统将自动修复异常或隔离节点,并重启训练作业,提高训练成功率。
打开开关后,可以设置“最大重启次数”和是否启用“无条件自动重启”。
- 重启次数的取值范围是1~128,缺省值为3。创建调优作业后不支持修改重启次数,请合理设置次数。
- 开启无条件自动重启后,只要系统检测到训练异常,就无条件重启训练作业。为了避免无效重启浪费算力资源,系统最多只支持连续无条件重启3次。
如果训练过程中触发了自动重启,则平台会自动获取最新的Checkpoint,并从该点重启作业。
- 参数配置完成后,单击“提交”。
“资源池类型”选择“公共资源池”时,会出现“计费提醒”对话框,请您仔细阅读预计调优运行时间和预计消耗费用信息,然后单击“确定”,创建调优作业。该预估费用不包含OBS存储费用。预估费用基于目录价和预估时长计算,估算存在波动性,最终以实际发生为准。
在“模型调优”列表中,当模型调优作业的“状态”变成“已完成”时,表示模型调优完成。
支持模型微调的模型
模型名称 |
全参微调 |
LoRA微调 |
增量预训练 |
---|---|---|---|
Baichuan2-13B |
√ |
√ |
x |
ChatGLM3-6B |
√ |
√ |
x |
GLM-4-9B |
√ |
√ |
x |
Llama2-13B |
√ |
√ |
x |
Llama2-70B |
√ |
√ |
x |
Llama2-7B |
√ |
√ |
x |
Llama3-70B |
√ |
√ |
x |
Llama3-8B |
√ |
√ |
x |
Qwen-14B |
√ |
√ |
x |
Qwen-72B |
√ |
√ |
x |
Qwen-7B |
√ |
√ |
x |
Qwen1.5-14B |
√ |
√ |
x |
Qwen1.5-32B |
√ |
√ |
x |
Qwen1.5-72B |
√ |
√ |
x |
Qwen1.5-7B |
√ |
√ |
x |
Qwen2-72B |
√ |
√ |
x |
Qwen2-72B-1K |
√ |
√ |
x |
Qwen2-7B |
√ |
√ |
x |
Qwen2-1.5B |
√ |
√ |
x |
Qwen2-0.5B |
√ |
√ |
x |
Qwen2.5-72B |
√ |
√ |
x |
Qwen2.5-32B |
√ |
√ |
x |
Qwen2.5-14B |
√ |
√ |
√ |
Qwen2.5-7B |
√ |
√ |
x |
Qwen2.5-72B-1K |
√ |
√ |
x |
Qwen2-VL-7B |
√ |
√ |
x |
Qwen2.5-72B-8K |
√ |
√ |
x |
支持的数据集格式
创建模型调优作业时,支持选择MOSS、Alpaca和ShareGPT这三种数据集格式。
- MOSS:用于存储和交换机器学习模型数据的数据集格式,文件类型为JSONL。
- Alpaca:用于训练语言模型的数据集格式,文件类型为JSONL。
- ShareGPT:用于分享GPT模型对话结果的数据集格式,文件类型为JSONL。
表3 模型与数据集格式说明 模型
调优类型
数据集格式(JSONL)
数据集格式(xlsx和csv)
Qwen2.5-72B及其余模型系列(权重格式为Megatron的模型,具体请参见表7)
全参微调、LoRA微调
MOSS、Alpaca、ShareGPT
MOSS
Qwen2.5-7B、Qwen2.5-14B、Qwen2.5-32B、Qwen2.5-72B-1K
全参微调、LoRA微调
Alpaca、ShareGPT
Alpaca
Qwen2.5-14B
增量预训练
Alpaca
不支持
模型调优时长估算
- 计算公式:调优时长 = 经验系数 x Iterations ÷(卡数 x 实例数 x 吞吐)+ 前后处理时间,取值请参见下表。
- 单位:小时
参数 |
参数来源 |
说明 |
---|---|---|
经验系数 |
非控制台参数 |
经验系数与模型训练迭代过程中处理的序列长度和批次大小有关。经验系数取值如下:
|
Iterations |
控制台参数 |
创建调优作业时计算得出的“迭代步数/Iterations”超参值。
图1 迭代步数/Iterations
![]() |
卡数 |
控制台参数 |
和创建调优作业时选择的“规格”相关,例如,“规格”选择的是“Ascend: 4*Ascend-snt9b2(64GB) ”,*号前面的数字是4,则卡数就是4。
图2 规格
![]() |
实例数 |
控制台参数 |
创建调优作业时设置的“计算节点个数”。
图3 计算节点个数
![]() |
吞吐 |
非控制台参数 |
吞吐表示每秒每卡处理的Tokens数量,吞吐值的上下限可以参考表6获取。 单位:tokens/s/p |
前后处理时间 |
非控制台参数 |
调优时长还包括训练前的数据预处理、训练后格式转换等调优之外的耗时,统称为前后处理时间。 调优作业的前后处理时间和模型参数量相关,不同参数量的时间估值如下:
|
模型名称 |
调优类型 |
吞吐下限取整 |
吞吐上限取整 |
---|---|---|---|
Baichuan2-13B |
全参微调 |
1200 |
1600 |
LoRA微调 |
1300 |
1800 |
|
ChatGLM3-6B |
全参微调 |
2000 |
2700 |
LoRA微调 |
2300 |
3100 |
|
GLM-4-9B |
全参微调 |
1800 |
2100 |
LoRA微调 |
2400 |
2800 |
|
Llama2-13B |
全参微调 |
1300 |
1800 |
LoRA微调 |
1400 |
1900 |
|
Llama2-70B |
全参微调 |
300 |
400 |
LoRA微调 |
400 |
500 |
|
Llama2-7B |
全参微调 |
3100 |
4200 |
LoRA微调 |
3500 |
4700 |
|
Llama3-70B |
全参微调 |
300 |
400 |
LoRA微调 |
300 |
500 |
|
Llama3-8B |
全参微调 |
2100 |
2800 |
LoRA微调 |
2300 |
3100 |
|
Qwen-14B |
全参微调 |
1200 |
1600 |
LoRA微调 |
1400 |
1900 |
|
Qwen-72B |
全参微调 |
300 |
400 |
LoRA微调 |
300 |
500 |
|
Qwen-7B |
全参微调 |
2100 |
2900 |
LoRA微调 |
2200 |
3000 |
|
Qwen1.5-14B |
全参微调 |
1300 |
1700 |
LoRA微调 |
1400 |
1800 |
|
Qwen1.5-32B |
全参微调 |
600 |
800 |
LoRA微调 |
700 |
900 |
|
Qwen1.5-72B |
全参微调 |
300 |
400 |
LoRA微调 |
300 |
500 |
|
Qwen1.5-7B |
全参微调 |
2200 |
3000 |
LoRA微调 |
2600 |
3600 |
|
Qwen2-0.5B |
全参微调 |
12800 |
17300 |
LoRA微调 |
12800 |
17300 |
|
Qwen2-1.5B |
全参微调 |
7300 |
9800 |
LoRA微调 |
7300 |
9900 |
|
Qwen2-72B |
全参微调 |
300 |
300 |
LoRA微调 |
300 |
400 |
|
Qwen2-72B-1K |
全参微调 |
300 |
300 |
LoRA微调 |
300 |
400 |
|
Qwen2-7B |
全参微调 |
2300 |
3200 |
LoRA微调 |
2600 |
3500 |
|
Qwen2.5-72B |
全参微调 |
100 |
120 |
LoRA微调 |
280 |
330 |
|
Qwen2.5-32B |
全参微调 |
340 |
410 |
LoRA微调 |
480 |
570 |
|
Qwen2.5-14B |
全参微调 |
1120 |
1320 |
LoRA微调 |
1410 |
1660 |
|
增量预训练 |
1120 |
1320 |
|
Qwen2.5-7B |
全参微调 |
2459 |
2890 |
LoRA微调 |
3180 |
3750 |
|
Qwen2.5-72B-1K |
全参微调 |
250 |
300 |
LoRA微调 |
340 |
400 |
|
Qwen2-VL-7B |
全参微调 |
1500 |
1770 |
LoRA微调 |
2100 |
2480 |
|
Qwen2.5-72B-8K |
全参微调 |
320 |
400 |
LoRA微调 |
380 |
480 |
查看调优作业详情
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“模型调优”进入作业列表。
- 单击作业名称,进入调优作业详情页面,可以查看作业详情和日志。
- “详情”:可以查看作业的基本信息,包括作业、模型、数据等设置信息。
- “日志”:可以搜索、查看和下载作业日志。
- 查看loss:当作业进入训练流程之后,会按照Step进行loss打印,因此在日志中搜索关键字段“lm loss”即可查看loss。
- 获取训练吞吐数据:在打印的loss日志中搜索关键字段“elapsed time per iteration”获取每步迭代耗时,总的Token数可以用日志中的“global batch size”和“SEQ_LEN”相乘获得,训练的每卡每秒的吞吐=总Token数÷每步迭代耗时÷总卡数。
停止/继续调优作业
只有作业“状态”处于“运行中”、“等待中”、“告警”和“创建中”,才支持停止调优作业。
- 停止调优作业
- 在ModelArts Studio左侧导航栏中,选择“模型调优”进入作业列表。
- 选择调优作业,单击操作列的“停止”,在弹窗中单击“确定”,暂停调优作业,作业“状态”变成“已停止”。
- 继续调优作业
- 当调优作业处于“已停止”状态时,单击右侧操作列的“继续”。
- 在“继续作业”对话框,仔细阅读提示信息,单击“确定”,即可从最新的Checkpoint启动作业,作业“状态”变成“启动中”。
重新启动的作业将基于调优作业运行时长计费。
删除调优作业

删除操作无法恢复,请谨慎操作。
- 在ModelArts Studio左侧导航栏中,选择“模型调优”进入作业列表。
- 选择调优作业,单击操作列的“更多 > 删除”,在弹窗中输入“DELETE”,单击“确定”,删除作业。
查看Checkpoint与权重格式转换
- 权重格式有Huggingface和Megatron。
- Huggingface格式可直接创建为我的模型或者添加为当前调优模型新版本。
- Megatron格式需要将权重转换为Huggingface格式之后,才能创建为新的模型或者创建已有模型的新版本。
- 转换权重格式时,会有预估费用提示框。预估费用仅作为参考,与实际收取费用可能存在偏差,请您以实际收取费用为准。
- 只有调优作业为已完成时,才可以添加为当前调优模型版本。
- 查看Checkpoint。
- 在ModelArts Studio左侧导航栏中,选择“模型调优”进入作业列表。
- 在调优作业右侧,单击操作列的“更多 > 查看Checkpoint”。
- 在“Checkpoint列表”页面,可以查看Checkpoint的格式、保存路径等信息。
表7 支持Checkpoint查看的模型 模型系列
模型名称
权重格式
说明
百川2
Baichuan2-13B
Megatron
中间产物需要做权重转换后使用。
ChatGLM3
ChatGLM3-6B
GLM-4
GLM-4-9B
Llama2
Llama2-7B、Llama2-13B、Llama2-70B
Llama3
Llama3-8B、Llama3-70B
通义千问
Qwen-7B、Qwen-14B、Qwen-72B
通义千问1.5
Qwen1.5-7B、Qwen1.5-14B、Qwen1.5-32B、Qwen1.5-72B
通义千问2
Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-72B、Qwen2-72B-1K
通义千问2.5
Qwen2.5-72B
Qwen2.5-72B-8K
Qwen2.5-72B-8K暂不支持权重转换。
Qwen2.5-14B、Qwen2.5-32B、Qwen2.5-72B、Qwen2.5-72B-1K
Huggingface
全参微调(sft)中间产物可以直接使用,LoRA微调中间产物不可使用。
- 权重格式转换。下文以Megatron格式为例。
- 场景一:将Checkpoint创建为我的模型。
- 在“Checkpoint列表”页面的“操作”列,单击“创建为我的模型”。
- 在“创建为我的模型”页面,配置相关信息,然后单击“创建”。
- 在“费用提醒”对话框,仔细阅读预估转换时长和费用信息,单击“确定”,跳转至“我的模型”页面创建模型。
- 模型创建成功后,单击模型名称,在“我的版本”区域,单击版本号。
- 在“任务记录”区域,可以看到“作业类型”为“权重格式转换”的任务。
- 场景二:将Checkpoint添加为调优后模型版本。
- 在“Checkpoint列表”页面的“操作”列,单击“添加为调优后模型版本”。
- 在“添加为调优后模型版本”页面,配置相关信息,然后单击“创建”。
- 在“费用提醒”对话框,仔细阅读预估转换时长和费用信息,单击“确定”,跳转至“模型详情”页面创建版本。
- 版本创建成功后,单击版本号名称,在“任务记录”区域,可以看到“作业类型”为“权重格式转换”的任务。
- 场景一:将Checkpoint创建为我的模型。
后续操作
- 您可以将调优后的模型压缩,缓解资源占用问题。具体操作,请参见使用ModelArts Studio(MaaS)压缩模型。
- 您可以将调优后的模型部署为我的服务,并进行在线体验或API调用。具体操作,请参见使用ModelArts Studio(MaaS)部署模型服务、在ModelArts Studio(MaaS)体验文本对话和调用ModelArts Studio(MaaS)部署的模型服务。