模型简介
阿里云于3月6日开源推出的通义千问QwQ-32B推理模型,基于大规模强化学习实现了数学、代码与通用能力的突破性提升。整体性能比肩DeepSeek-R1,同时显著降低了部署使用成本。
在测数学能力的AIME24评测集上和评估代码能力的LiveCodeBench中,千问QwQ-32B表现与DeepSeek-R1相当,远胜于o1-mini及相同尺寸的R1蒸馏模型。
在由Meta首席科学家杨立昆领衔的“最难LLMs评测榜”LiveBench、谷歌等提出的指令遵循能力IFEval评测集、由加州大学伯克利分校等提出的评估准确调用函数或工具方面的BFCL测试中,千问QwQ-32B的得分均超越了DeepSeek-R1。
千问QwQ-32B创新集成了智能体Agent相关能力,使其能够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。
当前PAI-Model Gallery已全面支持 QwQ-32B 模型的一键部署、微调、评测能力(部署需要96G显存GPU)。同时也支持量化版本模型 QwQ-32B-GGUF、QwQ-32B-AWQ(使用单卡A10等更低成本GPU即可部署服务)。
模型部署
进入Model Gallery页面。
登录PAI控制台,在顶部左上角根据实际情况选择地域(可以切换地域来获取合适的计算资源库存)。
在左侧导航栏选择工作空间列表,单击指定工作空间名称,进入对应工作空间。
在左侧导航栏选择快速开始 > Model Gallery。
在 Model Gallery 页面的模型列表中,找到QwQ-32B模型卡片,单击进入模型详情页面。
单击右上角部署,选择部署框架、配置推理服务名称以及部署使用的资源信息后,即可一键部署服务,将模型部署到 PAI-EAS 推理服务平台。当前平台已支持多种部署框架,包括SGLang加速部署、vLLM加速部署、BladeLLM加速部署(阿里云PAI自研高性能推理框架)。
使用推理服务。部署成功后,在服务页面点击“查看调用信息”获取调用的Endpoint和Token,想了解服务调用方式可以点击预训练模型链接,返回模型介绍页查看调用方式说明。
您也可以在 PAI-EAS 推理服务平台上在线调试已部署好的QwQ-32B模型服务。
模型微调
PAI-Model Gallery为 QwQ-32B 模型配置了 SFT(监督微调)算法,支持LoRA微调、全参微调2种方式,用户可以以开箱即用的方式对模型进行微调。
准备训练数据。SFT 训练算法支持使用 JSONL 等格式的训练数据集(更多格式要求可以参考模型文档中描述)。JSONL格式训练数据示例如下:
{"messages": [{"role": "system", "content": "你是个有用无害的助理"}, {"role": "user", "content": "你是?"}, {"role": "assistant", "content": "我是小派,由PAI训练的人工智能助手。我的目标是为用户提供有用、准确和及时的信息,并通过各种方式帮助用户进行有效的沟通。请告诉我有什么可以帮助您的呢?"}]} {"messages": [{"role": "system", "content": "你是个有用无害的助理"}, {"role": "user", "content": "你是谁!"}, {"role": "assistant", "content": "您好!我是PAI开发的人工智能语言模型,名为小派。我可以回答您的问题、提供信息、进行对话并帮助解决问题。如果您有任何疑问或需要帮助,请随时告诉我!"}]}
配置训练参数。当完成数据的准备,用户可以将数据上传到对象存储 OSS Bucket 中。由于32B模型较大,算法需要使用至少96GB显存的 GPU 资源,请确保选择使用的资源配额内有充足的计算资源。
训练算法支持的超参信息如下,用户可以根据使用的数据,计算资源等调整超参,或是使用算法默认配置的超参。
参数名
参数描述
更多说明
learning_rate
学习率,用于控制模型权重的调整幅度。
过大的学习率可能导致训练过程不稳定,损失值剧烈波动,无法收敛到一个较小的值。过小的学习率会使损失值下降缓慢,需要很长时间才能收敛。合适的学习率可以使模型快速且稳定地收敛到一个较优的解。
num_train_epochs
训练数据集被重复使用的次数。
epoch过小可能导致欠拟合,epoch过大可能导致过拟合。若样本量少,可增加epoch数以避免欠拟合; 较小的learning rate通常需要更多的epochs。
per_device_train_batch_size
每个 GPU 卡在一次训练迭代中处理的样本数量。
较大的批次大小可以提高训练速度,也会增加显存的需求。理想的batch size 通常是硬件显存不溢出的最大值。可以在训练详情页的任务监控页面查看 GPU Memory 的使用情况。
gradient_accumulation_steps
梯度累积步骤数。
较小的 batch size 会增加梯度估计的方差,影响收敛速度。引入梯度累积(gradient accumulation)会在积累 gradient_accumulation_steps 个 batch 的梯度后再进行模型优化。请保证 gradient_accumulation_steps 为 GPU 卡数的倍数。
max_length
模型在一次训练中处理的输入数据的最大token长度。
训练数据经过分词器(tokenizer)处理后,会得到一个token序列,可以使用 token 估算工具来估算训练数据中文本的长度。
lora_rank
LoRA维度。
lora_alpha
LoRA权重。
LoRA缩放系数,一般情况下取值为lora_rank * 2。
lora_dropout
LoRA训练的丢弃率。通过在训练过程中随机丢弃神经元,来防止神经网络过拟合。
lorap_lr_ratio
LoRA+ 学习率比例(λ = ηB/ηA)。ηA, ηB分别是adapter matrices A与B的学习率。
相比于 LoRA,LoRA+可以为过程中的关键部分使用不同的学习率来实现更好的性能和更快的微调,而无需增加计算需求。当lorap_lr_ratio设为0时,表示使用普通的LoRA而非LoRA+。
advanced_settings
除了上述参数之外,我们还支持自定义一些其他参数,如果需要可以在此字段中用 "--key1 value1 --key2 value2" 的方式进行配置;如果不需要,请保持该项空白。
save_strategy: 模型保存策略,可选值为:"steps"、"epoch"、"no"。默认值为 "steps"。
save_steps: 模型保存间隔。默认值为 500。
save_total_limit: 最多保存的checkpoint数,会将过期的checkpoint进行删除,默认为2。若为 None,保存所有checkpoint。
warmup_ratio: 用于控制学习率预热阶段的超参数。预热阶段是指在训练开始时,学习率从一个较小的值逐渐增加到设定的初始学习率的过程。warmup ratio 决定了这个预热阶段在整个训练过程中的比例。默认为0。
单击“训练”按钮,开始进行训练,用户可以查看训练任务状态和训练日志。训练完成的模型同样可以部署成在线服务。
模型评测
PAI-Model Gallery内置了常见评测算法,支持用户以开箱即用的方式对预训练模型以及微调后的模型进行评测。通过评测能帮助用户评估模型性能,同时支持多模型的评测对比,指导用户精准地选择合适的模型。
模型评测入口:
直接对预训练模型进行评测 | |
在训练任务详情页对微调后的模型进行评测 |
模型评测支持自定义数据集评测和公开数据集评测:
自定义数据集评测
模型评测支持NLP任务常用的文本匹配指标BLEU/ROUGE,以及裁判员模型评测(仅专家模式支持,用裁判员LLM来评测LLM)并给出打分及原因。用户可以基于自己场景的独特数据,评测所选模型是否适合自己的场景。
评测需要提供JSONL格式的评测集文件,每行数据是一个JSON,使用question标识问题列,answer标识答案列。示例文件:evaluation_test.jsonl。
公开数据集评测
通过对开源的评测数据集按领域分类,对大模型进行综合能力评估。目前PAI维护了CMMLU、GSM8K、TriviaQA、MMLU、C-Eval、TruthfulQA、HellaSwag等数据集,涵盖数学、知识、推理等多个领域,其他公开数据集陆续接入中。(注意:GSM8K、TriviaQA、HellaSwag数据集评测会耗时较长,请按需选择)
之后选择评测结果输出路径,并根据系统推荐选择相应计算资源,最后提交评测任务。等待任务完成,在任务页面查看评测结果。如果选择的数据集较多,由于模型会逐个数据集跑结果,所以等待时间可能较长,可以通过查看日志的方式看到任务运行到了哪一步。
查看评测报告:自定义数据集和公开数据集评测结果示例如下
联系我们
欢迎各位小伙伴持续关注使用 PAI-Model Gallery,平台会不断上线 SOTA 模型,如果您有任何模型需求,也可以联系我们。您可通过搜索钉钉群号79680024618,加入PAI-Model Gallery用户交流群。