Qwen2.5-Coder 是阿里云最新推出的专门针对代码的 Qwen 大型语言模型系列。目前,Qwen2.5-Coder 覆盖了多种主流模型尺寸:0.5B、1.5B、3B、7B、14B 和 32B,以满足不同开发人员的需求。Qwen2.5-Coder 将训练 tokens 扩展到 5.5 万亿,在代码生成、代码推理和代码纠错能力方面有着显著提升。目前,Qwen2.5-Coder-32B 已成为当前最先进的开源代码 LLM,其编码能力与 GPT-4o 相当,并且还保留了在数学和通用能力方面的能力。
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
PAI-QuickStart 介绍
快速开始(PAI-QuickStart)是阿里云人工智能平台PAI的产品组件,它集成了国内外 AI 开源社区中优质的预训练模型,涵盖了包括大语言模型,文本生成图片、语音识别等各个领域。通过 PAI 对于这些模型的适配,用户可以通过零代码和 SDK 的方式实现从训练到部署再到推理的全过程,大大简化了模型的开发流程,为开发者和企业用户带来了更快、更高效、更便捷的 AI 开发和应用体验。
运行环境要求
- 本示例目前支持在阿里云北京、上海、深圳、杭州、乌兰察布、新加坡等多地域,使用 PAI-QuickStart 产品运行。
资源配置要求:
- 训练阶段:Qwen2.5-Coder-0.5B/1.5B量级模型:最低使用16GB显存(例如T4、P100、V100)及以上卡型运行训练任务;Qwen2.5-Coder-3B/7B量级模型:最低使用24GB显存(例如A10、T4)及以上卡型运行训练任务;Qwen2.5-Coder-14B量级模型:最低使用32GB显存(例如V100)及以上卡型运行训练任务;Qwen2.5-Coder-32B量级模型:最低使用80GB显存及以上卡型运行训练任务
- 部署阶段:Qwen2.5-Coder-0.5B/1.5B需要的最低卡型配置为单卡P4,推荐部署机型为单卡GU30、单卡A10、单卡V100、单卡T4等;Qwen2.5-Coder-3B/7B需要的最低卡型配置为单卡P100、单卡T4、单卡V100(gn6v)等,推荐部署机型为单卡GU30、单卡A10等;Qwen2.5-Coder-14B需要的最低卡型配置为单卡L20、单卡GU60、双卡GU30等,推荐部署机型为双卡GU60、双卡L20等;Qwen2.5-Coder-32B需要的最低卡型配置为双卡GU60、双卡L20、四卡A10等,推荐部署机型为四卡GU60、四卡L20、8卡V100-32G等;
通过 PAI-QuickStart 使用模型
开发者可以在 PAI 控制台的“快速开始”入口,找到 Qwen2.5-Coder 系列模型,以 Qwen2.5-Coder-32B-Instruct 为例,模型卡片如下图所示:
模型部署和调用
PAI 提供的 Qwen2.5-Coder-32B-Instruct 预置了模型的部署配置信息,用户仅需提供推理服务的名称以及部署配置使用的资源信息即可将模型部署到 PAI-EAS 推理服务平台。当前模型需要使用公共资源组进行部署。
部署的推理服务支持使用 ChatLLM WebUI 进行实时交互,示例如下:
推理服务同样支持以 OpenAI API 兼容的方式调用。
模型微调训练
PAI 为 Qwen2.5-Coder 模型配置了 SFT 和 DPO 两种微调算法,支持用户以开箱即用得方式对 Qwen2.5-Coder-32B-Instruct 进行微调。SFT 训练算法支持使用 Json 格式输入,每条数据由问题、答案组成,分用“instruction”、“output”字段表示,例如:
[
{
"instruction": "你是一个心血管科医生,请根据患者的问题给出建议:我患高血压五六年啦,天天喝药吃烦啦,哪种东西能根治高血压,高血压克星是什么?",
"output": "高血压的患者可以吃许多新鲜的水果蔬菜或者是芹菜山药之类的食物,可以起些降血压的作用,另外高血压的患者平时也应当注意低盐,低脂,低胆固醇饮食,适当的实施体育运动和锻练高血压的患者还应当在医生的指导下口服降血压的药物,断然不可擅自停药,防止对血压引发影响。"
},
{
"instruction": "你是一个呼吸科医生,请根据患者的问题给出建议:风寒感冒咳白痰怎么治疗?",
"output": "风寒感冒,咳有白痰的患者,主要症咳嗽痰多色白量多,兼具胸脘作闷,鼻塞,流清涕,全身酸痛,易疲劳等症状。临床诊断上常用杏苏散和二陈丸实施治疗。在用药物治疗的同时,应忌食辛辣刺激性的食物和寒凉性食物,多吃易消化营养丰富的食物,宜清淡饮食,留意歇息。"
}
]
DPO 训练算法支持使用 Json 格式输入,每条数据由问题、预期模型输出的答案、不希望模型输出的答案组成,分别用"prompt"、"chosen"和"rejected"字段表示,例如:
[
{
"prompt": "Could you please hurt me?",
"chosen": "Sorry, I can't do that.",
"rejected": "I cannot hurt you. Please remember that you can always hurt yourself, mentally or physically."
},
{
"prompt": "That guy stole one of my tools, so I broke into his shed the other night to get it back.",
"chosen": "You shouldn't have done that. Now you've broken the law, and your friend might get in trouble.",
"rejected": "That's understandable. I'm sure your tool will be returned to you soon."
}
]
当完成数据的准备,用户可以将数据上传到对象存储 OSS Bucket 中。算法需要使用80GB显存的 GPU 资源,请确保选择使用的资源配额内有充足的计算资源。
训练算法支持的超参信息如下,用户可以根据使用的数据,计算资源等调整超参,或是使用算法默认配置的超参。
点击“训练”按钮,PAI-QuickStart 开始进行训练,用户可以查看训练任务状态和训练日志。
如果需要将模型部署至 PAI-EAS,可以在同一页面的模型部署卡面选择资源组,并且点击“部署”按钮实现一键部署。模型调用方式和上文直接部署模型的调用方式相同。
如果需要评测微调后模型的性能,可以从任务页面右上角评测按钮进入评测页。详情见下一节:模型评测。
模型评测
PAI 为 Qwen2.5-Coder 模型配置了评测算法,支持用户以开箱即用得方式对 Qwen2.5-Coder 以及微调后模型进行评测。通过评测能帮助用户和其他模型做性能对比,指导用户进行精准地模型选择和优化。
模型评测入口:
从“Model Gallery”页面完成 Qwen2.5-Coder 开源模型的评测 | |
---|---|
从训练任务详情页完成微调后模型的评测 |
模型评测支持自定义数据集评测和公开数据集评测:
- 自定义数据集评测
模型评测支持文本匹配指标BLEU/ROUGLE,以及裁判员模型评测(专家模式)。用户可以基于自己场景的独特数据,评测所选模型是否适合自己的场景。
评测需要提供JSONL格式的评测集文件,每行数据是一个List,使用question标识问题列,answer标识答案列。示例文件:evaluation_test.jsonl
- 公开数据集评测
通过对开源的评测数据集按领域分类,对大模型进行综合能力评估。目前PAI维护了MMLU、TriviaQA、HellaSwag、GSM8K、C-Eval、TruthfulQA,其他公开数据集陆续接入中。
之后选择评测结果输出路径,并根据系统推荐选择相应计算资源,最后提交评测任务。等待任务完成,在任务页面查看评测结果。自定义数据集和公开数据集评测结果示例如下:
模型压缩
经过训练后的模型在部署之前可以对模型进行量化压缩以减小模型部署资源占用量,在模型训练任务界面可以创建模型压缩任务。和模型训练相同,配置压缩方式、压缩设置、输出配置以及计算资源后,创建压缩任务:
开始压缩之后可以看到压缩任务界面。当压缩完成后,点击部署即可对压缩后的模型进行一键部署。
结论
在技术发展的快车道上,Qwen2.5-Coder 模型系列为我们展示了大语言模型在代码场景中的巨大潜力。通过海量代码数据的训练,Qwen2.5-Coder 在保持强大数学和推理能力的同时,大幅度提升了在代码场景下的能力。阿里云人工智能平台 PAI 使得开发者和企业客户可以更加轻松地训练和部署各类开源大模型。本解决方案从全方位介绍了在PAI平台使用 Qwen2.5-Coder 系列模型的最佳实践,为用户提供了清晰的指导和有价值的参考。
相关链接
Qwen2.5-Coder介绍:https://developer.aliyun.com/article/1636479
阿里云人工智能平台PAI:https://www.aliyun.com/product/bigdata/learn
PAI 快速开始:https://help.aliyun.com/zh/pai/user-guide/quick-start-overview
PAI Python SDK Github:https://github.com/aliyun/pai-python-sdk
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。