跳到主要内容
通义千问 Qwen2.5 大模型部署、微调和评估指南 | 极客日志
Python AI 算法
通义千问 Qwen2.5 大模型部署、微调和评估指南 综述由AI生成 阿里云通义千问 2.5 模型(Qwen2.5)在预训练和微调方面展现卓越性能,支持 128K 上下文及 29 种语言。详细阐述了基于阿里云 PAI 平台的部署流程,涵盖环境配置、EAS 服务搭建、HTTP API 与 Python SDK 调用方法。重点介绍了 SFT 和 DPO 两种微调算法的数据格式与训练配置,以及自定义与公开数据集的评测方案。同时补充了显存优化、收敛调试及推理延迟改进的最佳实践,帮助开发者高效落地大模型应用。
不羁 发布于 2025/2/6 更新于 2026/6/13 22 浏览通义千问 Qwen2.5 大模型部署、微调和评估指南
1. 模型简介
1.1 阿里云通义千问 2.5 模型概述
阿里云通义千问 2.5(Qwen2.5)是阿里云研发的一系列开源大模型,这些模型在预训练和微调方面均展现出卓越的性能。Qwen2.5 系列模型在 18T tokens 的数据上进行预训练,相较于前代 Qwen2,整体性能提升了 18% 以上,尤其在编程和数学能力方面表现出色。Qwen2.5-72B 模型在 MMLU-rudex、MBPP 和 MATH 等基准测试中的得分分别高达 86.8、88.2、83.1,显示了其强大的通用知识、代码能力和数学解题能力。
1.2 模型性能提升方面
通义千问 2.5 模型在多个方面实现了显著的性能提升。理解能力、逻辑推理、指令遵循和代码能力分别提升了 9%、16%、19% 和 10%。这些提升使得 Qwen2.5 在处理复杂任务时更加精准和高效。特别是在中文处理能力上,Qwen2.5 持续领先业界,为用户提供了更加强大的语言服务体验。
Qwen2.5 模型支持高达 128K 的上下文长度,并能生成最多 8K 内容,这使得模型在处理长文本方面具有明显优势。此外,模型在指令遵循、理解结构化数据(如表格)和生成结构化输出(尤其是 JSON)等方面也取得了显著进步。
1.3 支持的语言和功能
通义千问 2.5 模型支持包括中文、英文、法文、西班牙文、俄文、日文、越南文、阿拉伯文等在内的 29 种以上语言,展现了其强大的多语言能力。这使得 Qwen2.5 能够在全球范围内为用户提供服务,满足不同语言用户的需求。
在功能方面,Qwen2.5 模型具备业界领先的文生图、智能编码、文档解析、音视频理解等能力。企业客户和开发者可以通过 API 调用、模型下载等方式接入通义千问,而个人用户则可以从 APP、官网免费使用通义千问。此外,Qwen2.5 还提供了多模态模型和专有能力模型,如视觉理解模型 Qwen-VL-Max 和代码大模型 CodeQwen1.5-7B,这些模型在各自的领域内均展现出顶尖的竞争力。
2. 运行环境要求
2.1 地域支持情况
阿里云通义千问 2.5 模型支持在多个地域进行部署和运行,以满足不同地区用户的需求。具体支持的地域包括华北 2(北京)、华东 2(上海)、华南 1(深圳)、华东 1(杭州)以及华北 6(乌兰察布)。这些地域覆盖了中国的主要经济区域,确保了广泛的用户可以便捷地接入和使用 Qwen2.5 模型。
2.2 资源配置要求
根据不同的模型规模,Qwen2.5 系列模型对资源的配置要求有所不同。以下是具体的资源配置要求:
对于 Qwen2.5-0.5B/1.5B/3B/7B 规模的模型,推荐使用 V100/P100/T4(16 GB 显存)及以上的 GPU 卡型来运行训练任务。这些卡型能够提供足够的计算能力和显存,以支持模型的训练和推理过程。
对于更大规模的 Qwen2.5-32B/72B 模型,需要使用 A100(80 GB 显存)及以上的 GPU 卡型来运行训练任务。这些模型因其参数量较大,对显存和计算能力的要求更高,因此需要更高性能的硬件支持。目前,这些大规模模型的训练和部署仅支持在华北 6(乌兰察布)和新加坡地域进行。
对于需要使用灵骏智算资源的用户,有两种方式可以申请使用:
对于有企业级使用诉求的用户,可以联系阿里云的销售经理,通过开通白名单的方式使用灵骏资源。
普通用户可以通过使用竞价资源的方式使用灵骏资源,享受最低 1 折的优惠。关于灵骏资源的详细信息,可以参考阿里云官方文档中关于新建资源组和购买灵骏智算资源的指南。
综上所述,阿里云通义千问 2.5 模型的运行环境要求考虑了不同规模模型的计算和显存需求,以及用户的地域分布,确保了模型能够在适合的环境中高效运行。
3. 模型部署和调用
3.1 Model Gallery 页面进入方法
要部署和微调通义千问 2.5 模型,首先需要进入阿里云人工智能平台 PAI 的 Model Gallery 页面。以下是进入该页面的具体步骤:
登录阿里云 PAI 控制台。
在控制台的左侧导航栏中,选择'工作空间列表'并点击相应的工作空间名称,进入工作空间。
在工作空间的左侧导航栏中,选择'快速开始' > 'Model Gallery',即可进入模型库页面。
在 Model Gallery 页面,用户可以浏览和选择阿里云提供的预训练模型,包括通义千问 2.5 系列模型,并进行后续的部署和微调操作。
3.2 模型部署步骤 部署通义千问 2.5 模型至 EAS 推理服务平台的步骤如下:
在 Model Gallery 页面中找到通义千问 2.5 模型卡片,点击进入模型详情页面。
在模型详情页面的右上角,点击'部署'按钮,进入部署配置页面。
在部署配置页面,用户需要配置推理服务的名称以及部署使用的资源信息。配置完成后,点击'确定'按钮,模型将开始部署至 EAS 平台。
部署成功后,用户可以在'服务详情'页面查看服务的基本信息和资源信息。当服务状态变为'运行中'时,表示服务部署成功,可以进行在线推理。
3.3 推理服务使用和 WEB 应用交互 部署的推理服务支持 OpenAI 的 API 风格进行调用,用户可以通过 HTTP API 或 SDK 两种方式与推理服务进行交互。
通过 HTTP API 调用 用户可以通过 CURL 命令或者任何支持 HTTP 请求的客户端工具,使用以下格式调用推理服务:
curl $API_ENDPOINT /v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN " \
-d '{
"model": "qwen-72b-chat",
"prompt": "San Francisco is a",
"max_tokens": 256,
"temperature": 0,
"stop": ["<|im_end|>", "<|im_start|>"]
}'
其中 $API_ENDPOINT 和 $API_TOKEN 需要替换为实际的服务访问地址和访问凭证。
通过 SDK 调用 用户也可以使用阿里云提供的 PAI Python SDK 来调用推理服务。首先需要安装 SDK:
pip install alipai --upgrade
from pai.model import RegisteredModel
model = RegisteredModel(
model_name="qwen-72b-chat" ,
model_provider="pai"
)
predictor = model.deploy(
service_name="qwen_72b_chat_service"
)
resp = predictor.predict(data={"prompt" : "San Francisco is a" })
print (resp)
以上代码展示了如何使用 SDK 部署模型并进行推理调用。用户可以根据实际需求,选择合适的调用方式与推理服务进行交互。
4. 模型微调训练
4.1 微调算法介绍 阿里云通义千问 2.5 模型支持两种微调算法:SFT(Supervised Fine-Tuning)和 DPO(Dialogue Policy Optimization)。这两种算法允许用户根据特定的应用场景和数据集对预训练模型进行微调,以提高模型在特定任务上的表现。
SFT 算法 :SFT 是一种监督学习微调方法,适用于有标注数据的场景。它通过最小化预测输出和真实标签之间的差异来调整模型参数,以提高模型在特定任务上的准确性。SFT 训练算法支持使用 JSON 格式输入,每条数据由问题和答案组成,分别用 "instruction" 和 "output" 字段表示。
DPO 算法 :DPO 是一种针对对话系统优化的微调方法,适用于提升模型在对话任务中的表现。它通过比较模型输出与预期答案的差异来调整模型参数,以生成更符合用户期望的对话回复。DPO 训练算法同样支持使用 JSON 格式输入,每条数据由问题、预期模型输出的答案、不希望模型输出的答案组成,分别用 "prompt"、"chosen"、"rejected" 字段表示。
4.2 数据集和计算资源配置 微调训练需要合理的数据集和计算资源配置,以确保训练过程的高效性和模型性能的最优化。
数据集配置 :用户需要准备特定领域的标注数据集,并将数据上传至对象存储 OSS Bucket 中,或指定一个数据集对象,选择 NAS 或 CPFS 存储上的数据集。PAI 预置的公共数据集也可用于测试算法性能。
计算资源配置 :根据模型规模的不同,所需的计算资源也有所差异。对于 Qwen2.5-0.5B/1.5B/3B/7B 规模的模型,推荐使用 V100/P100/T4(16 GB 显存)及以上的 GPU 卡型来运行训练任务。对于更大规模的 Qwen2.5-32B/72B 模型,则需要使用 A100(80 GB 显存)及以上的 GPU 卡型。
4.3 超参数配置和训练流程 超参数的配置对模型训练的效果有着重要影响。以下是一些关键的超参数及其配置:
学习率(learning_rate) :控制模型权重更新的步长,通常需要通过实验找到合适的学习率,或采用学习率调度策略。
批次大小(per_device_train_batch_size) :每次梯度下降迭代中使用的训练样本数量,较大的批次大小可以提高训练效率,但也会增加显存的需求。
序列长度(seq_length) :模型在一次训练中处理的输入数据的长度,对于长文本处理尤为重要。
训练迭代次数(train_iters) :模型在整个训练过程中将完成的总迭代次数,影响模型的训练深度。
在模型详情页点击'训练'按钮,进入训练配置页面。
配置数据集、计算资源和超参数。
点击'训练'开始训练任务,监控训练状态和日志。
训练完成后,模型将自动注册到 AI 资产 - 模型管理中,用户可以查看或部署相应的模型。
通过以上步骤,用户可以完成通义千问 2.5 模型的微调训练,提升模型在特定任务上的性能。
5. 模型评测
5.1 评测算法配置 在阿里云通义千问 2.5 模型的评测过程中,配置合适的评测算法是至关重要的。PAI-Model Gallery 为 Qwen2.5-7B-Instruct 模型提供了 SFT(Supervised Fine-Tuning)和 DPO(Dialogue Policy Optimization)两种微调算法,这些算法可以开箱即用地应用于模型的微调。
SFT 算法配置 :SFT 训练算法支持使用 JSON 格式输入,每条数据由问题和答案组成,分别用 "instruction" 和 "output" 字段表示。例如,一个关于心血管科医生的建议请求可以表示为:
{
"instruction" : "你是一个心血管科医生,请根据患者的问题给出建议:我患高血压五六年啦,天天喝药吃烦啦,哪种东西能根治高血压,高血压克星是什么?" ,
"output" : "高血压的患者可以吃许多新鲜的水果蔬菜或者是芹菜山药之类的食物,可以起些降血压的作用,另外高血压的患者平时也应当注意低盐,低脂,低胆固醇饮食,适当的实施体育运动和锻练高血压的患者还应当在医生的指导下口服降血压的药物,断然不可擅自停药,防止对血压引发影响。"
}
此算法适用于有明确问题和答案的数据集,通过最小化预测输出和真实标签之间的差异来调整模型参数。
DPO 算法配置 :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."
}
]
DPO 算法适用于对话系统和需要模型生成特定输出的场景,通过比较模型输出与预期答案的差异来调整模型参数。
5.2 自定义数据集评测 自定义数据集评测允许用户根据特定业务需求和场景,使用自己的数据集对通义千问 2.5 模型进行评测。用户需要准备 JSONL 格式的评测文件,并上传至 OSS,然后根据 OSS 中的评测集文件创建评测任务。
数据集格式 :使用 question 标识问题列,answer 标识答案列。例如:
[ { "question" : "中国发明了造纸术,是否正确?" , "answer" : "正确" } ]
用户可以根据自己的需求,设计问题和答案,以评估模型在特定任务上的表现。
评测流程 :用户在模型详情页点击'评测',选择自定义数据集,并配置评测参数,提交评测任务。评测结果将展示模型在 ROUGE 和 BLEU 系列指标上的得分,以及每条数据的评测详情。
5.3 公开数据集评测 公开数据集评测是通过在多种公开数据集上加载并执行模型预测,根据每个数据集特定的评价框架,为用户提供行业标准的评估参考。PAI 维护了多个领域的公开数据集,如 MMLU、TriviaQA、HellaSwag、GSM8K、C-Eval、CMMLU、TruthfulQA 等,覆盖了知识、数学、推理等多个方面。
数据集选择 :用户可以根据模型的应用领域,选择合适的公开数据集进行评测。例如,对于需要评估模型数学能力的场合,可以选择 GSM8K 数据集。
评测结果 :评测结果将以雷达图的形式展示模型在不同领域的得分情况,每个领域可能会有多个与之相关的数据集,PAI 会取模型在这些数据集上的评测得分均值,作为领域得分。此外,还会展示模型在各个公开数据集的得分情况,为用户提供全面的评测反馈。
6. 通过 PAI Python SDK 使用模型
6.1 SDK 安装和配置 PAI Python SDK 的安装和配置是使用阿里云通义千问 2.5 模型的第一步。以下是详细的安装和配置步骤:
安装步骤 PAI Python SDK 可以通过 pip 进行安装,确保使用的 Python 版本不低于 3.8。在命令行中执行以下命令来安装 SDK:
pip install "alipai>=0.4.0"
安装完成后,可以通过以下命令来验证 SDK 是否安装成功:
python -m pai.toolkit.config
配置步骤 配置 SDK 需要提供阿里云账号的鉴权 AccessKey ID 和 AccessKey Secret,以及指定 PAI 工作空间和 OSS Bucket。配置步骤如下:
在命令行终端执行配置命令:
python -m pai.toolkit.config
按照提示输入 AccessKey ID 和 AccessKey Secret,选择相应的 PAI 工作空间和 OSS Bucket。
配置成功后,SDK 将保存配置信息,以便后续使用。配置信息默认保存在 ~/.pai/config.json 文件中。
6.2 模型部署和调用示例 通过 PAI Python SDK,用户可以方便地部署通义千问 2.5 模型,并进行在线推理调用。以下是部署和调用的示例代码:
模型部署 首先,使用 SDK 获取模型,并部署到 PAI-EAS 推理服务平台:
from pai.model import RegisteredModel
model = RegisteredModel(
model_name="qwen2.5-7b-instruct" ,
model_provider="pai"
)
predictor = model.deploy(
service_name="qwen2_5_7b_instruct_example"
)
模型调用
openai_client = predictor.openai()
resp = openai_client.chat.completions.create(
messages=[
{"role" : "system" , "content" : "You are a helpful assistant." },
{"role" : "user" , "content" : "What is the meaning of life?" },
],
model="default"
)
print (resp.choices[0 ].message.content)
以上代码展示了如何使用 SDK 部署模型,并构建一个 openai client 来进行模型调用。
6.3 模型微调训练示例 阿里云通义千问 2.5 模型支持 SFT 和 DPO 两种微调算法,以下是使用 SDK 进行微调训练的示例代码:
获取微调训练算法 from pai.estimator import Estimator
est = model.get_estimator()
提交微调训练任务 使用 SDK 提交微调训练任务,可以使用默认数据或自定义数据:
training_inputs = model.get_estimator_inputs()
est.fit(
inputs=training_inputs
)
查看训练产出模型 通过以上步骤,用户可以利用 PAI Python SDK 对通义千问 2.5 模型进行微调训练,并查看训练结果。
7. 常见问题与最佳实践
7.1 显存不足如何处理 如果在微调或推理过程中遇到显存不足的情况,可以尝试以下优化措施:
启用混合精度训练 :使用 FP16 或 BF16 格式进行训练,可显著降低显存占用。
梯度累积 :在不增加 batch size 的情况下,通过梯度累积模拟更大的 batch size,提高训练稳定性。
量化技术 :对于推理场景,可以考虑使用 INT8 或 INT4 量化技术,大幅减少显存需求。
7.2 训练收敛缓慢怎么办 如果模型训练过程中损失函数下降缓慢,建议检查以下几点:
学习率设置 :尝试调整学习率,过大的学习率可能导致震荡,过小则收敛慢。
数据质量 :检查数据集是否存在噪声或标注错误,高质量的数据集有助于模型更快收敛。
早停机制 :设置合理的早停(Early Stopping)策略,避免过拟合。
7.3 推理延迟优化 为了降低推理延迟,提升用户体验,可以采取以下策略:
批量推理 :在可能的情况下,将多个请求合并为一个 batch 进行推理。
缓存机制 :对于重复出现的 prompt,可以利用缓存机制减少重复计算。
模型蒸馏 :如果业务场景允许,可以将大模型的知识蒸馏到小模型中,以降低推理成本和时间。
8. 总结
8.1 模型性能与应用场景 阿里云通义千问 2.5 模型(Qwen2.5)以其卓越的性能和广泛的应用场景,在人工智能领域占据了重要地位。模型在预训练阶段处理了 18T tokens 的数据量,实现了性能的显著提升,尤其在编程和数学能力方面。Qwen2.5-72B 模型在多个基准测试中得分均超过 85,展现了其强大的通用知识、代码能力和数学解题能力。此外,模型支持高达 128K 的上下文长度和最多 8K 内容的生成,使其在处理长文本方面具有明显优势。
8.2 多语言与多模态能力 Qwen2.5 模型支持 29 种以上语言,包括中文、英文、法文、西班牙文等,覆盖了全球大部分主要语言,满足了不同语言用户的需求。同时,Qwen2.5 还提供了多模态模型和专有能力模型,如视觉理解模型 Qwen-VL-Max 和代码大模型 CodeQwen1.5-7B,这些模型在各自的领域内均展现出顶尖的竞争力。
8.3 部署与微调的便捷性 阿里云提供的 PAI 平台使得 Qwen2.5 模型的部署和微调变得异常便捷。用户可以通过 Model Gallery 页面快速进入并选择预训练模型,进行后续的部署和微调操作。模型部署至 EAS 推理服务平台的步骤简单明了,支持 OpenAI 的 API 风格调用,用户可以通过 HTTP API 或 SDK 两种方式与推理服务进行交互。
8.4 微调训练的有效性 Qwen2.5 模型支持 SFT 和 DPO 两种微调算法,允许用户根据特定的应用场景和数据集对预训练模型进行微调。合理的数据集和计算资源配置,以及关键超参数的配置,使得模型训练的效果得以最大化。通过 PAI Python SDK,用户可以方便地提交微调训练任务,并查看训练产出模型。
8.5 评测与反馈 PAI-Model Gallery 为 Qwen2.5-7B-Instruct 模型提供了 SFT 和 DPO 两种微调算法的评测配置,用户可以根据具体需求,使用自定义数据集或公开数据集进行模型评测。评测结果将展示模型在 ROUGE 和 BLEU 系列指标上的得分,以及每条数据的评测详情,为用户提供全面的评测反馈。
综上所述,阿里云通义千问 2.5 模型以其强大的性能、多语言支持、便捷的部署微调和有效的微调训练,在人工智能领域展现出广泛的应用前景。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online