通义千问 Qwen2.5 大模型部署、微调和评估指南
阿里云通义千问 2.5 模型(Qwen2.5)在预训练和微调方面展现卓越性能,支持 128K 上下文及 29 种语言。本文详细阐述了基于阿里云 PAI 平台的部署流程,涵盖环境配置、EAS 服务搭建、HTTP API 与 Python SDK 调用方法。重点介绍了 SFT 和 DPO 两种微调算法的数据格式与训练配置,以及自定义与公开数据集的评测方案。同时补充了显存优化、收敛调试及推理延迟改进的最佳实践,帮助开发者高效落地大模型应用。

阿里云通义千问 2.5 模型(Qwen2.5)在预训练和微调方面展现卓越性能,支持 128K 上下文及 29 种语言。本文详细阐述了基于阿里云 PAI 平台的部署流程,涵盖环境配置、EAS 服务搭建、HTTP API 与 Python SDK 调用方法。重点介绍了 SFT 和 DPO 两种微调算法的数据格式与训练配置,以及自定义与公开数据集的评测方案。同时补充了显存优化、收敛调试及推理延迟改进的最佳实践,帮助开发者高效落地大模型应用。

阿里云通义千问 2.5(Qwen2.5)是阿里云研发的一系列开源大模型,这些模型在预训练和微调方面均展现出卓越的性能。Qwen2.5 系列模型在 18T tokens 的数据上进行预训练,相较于前代 Qwen2,整体性能提升了 18% 以上,尤其在编程和数学能力方面表现出色。Qwen2.5-72B 模型在 MMLU-rudex、MBPP 和 MATH 等基准测试中的得分分别高达 86.8、88.2、83.1,显示了其强大的通用知识、代码能力和数学解题能力。

通义千问 2.5 模型在多个方面实现了显著的性能提升。理解能力、逻辑推理、指令遵循和代码能力分别提升了 9%、16%、19% 和 10%。这些提升使得 Qwen2.5 在处理复杂任务时更加精准和高效。特别是在中文处理能力上,Qwen2.5 持续领先业界,为用户提供了更加强大的语言服务体验。
Qwen2.5 模型支持高达 128K 的上下文长度,并能生成最多 8K 内容,这使得模型在处理长文本方面具有明显优势。此外,模型在指令遵循、理解结构化数据(如表格)和生成结构化输出(尤其是 JSON)等方面也取得了显著进步。
通义千问 2.5 模型支持包括中文、英文、法文、西班牙文、俄文、日文、越南文、阿拉伯文等在内的 29 种以上语言,展现了其强大的多语言能力。这使得 Qwen2.5 能够在全球范围内为用户提供服务,满足不同语言用户的需求。
在功能方面,Qwen2.5 模型具备业界领先的文生图、智能编码、文档解析、音视频理解等能力。企业客户和开发者可以通过 API 调用、模型下载等方式接入通义千问,而个人用户则可以从 APP、官网免费使用通义千问。此外,Qwen2.5 还提供了多模态模型和专有能力模型,如视觉理解模型 Qwen-VL-Max 和代码大模型 CodeQwen1.5-7B,这些模型在各自的领域内均展现出顶尖的竞争力。

阿里云通义千问 2.5 模型支持在多个地域进行部署和运行,以满足不同地区用户的需求。具体支持的地域包括华北 2(北京)、华东 2(上海)、华南 1(深圳)、华东 1(杭州)以及华北 6(乌兰察布)。这些地域覆盖了中国的主要经济区域,确保了广泛的用户可以便捷地接入和使用 Qwen2.5 模型。
根据不同的模型规模,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(乌兰察布)和新加坡地域进行。
对于需要使用灵骏智算资源的用户,有两种方式可以申请使用:
综上所述,阿里云通义千问 2.5 模型的运行环境要求考虑了不同规模模型的计算和显存需求,以及用户的地域分布,确保了模型能够在适合的环境中高效运行。
要部署和微调通义千问 2.5 模型,首先需要进入阿里云人工智能平台 PAI 的 Model Gallery 页面。以下是进入该页面的具体步骤:
在 Model Gallery 页面,用户可以浏览和选择阿里云提供的预训练模型,包括通义千问 2.5 系列模型,并进行后续的部署和微调操作。
部署通义千问 2.5 模型至 EAS 推理服务平台的步骤如下:
部署的推理服务支持 OpenAI 的 API 风格进行调用,用户可以通过 HTTP API 或 SDK 两种方式与推理服务进行交互。
用户可以通过 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 需要替换为实际的服务访问地址和访问凭证。
用户也可以使用阿里云提供的 PAI Python SDK 来调用推理服务。首先需要安装 SDK:
pip install alipai --upgrade
然后,使用 SDK 提供的接口进行调用:
from pai.model import RegisteredModel
# 获取 PAI 提供的模型
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 部署模型并进行推理调用。用户可以根据实际需求,选择合适的调用方式与推理服务进行交互。
阿里云通义千问 2.5 模型支持两种微调算法:SFT(Supervised Fine-Tuning)和 DPO(Dialogue Policy Optimization)。这两种算法允许用户根据特定的应用场景和数据集对预训练模型进行微调,以提高模型在特定任务上的表现。
SFT 算法:SFT 是一种监督学习微调方法,适用于有标注数据的场景。它通过最小化预测输出和真实标签之间的差异来调整模型参数,以提高模型在特定任务上的准确性。SFT 训练算法支持使用 JSON 格式输入,每条数据由问题和答案组成,分别用 "instruction" 和 "output" 字段表示。
DPO 算法:DPO 是一种针对对话系统优化的微调方法,适用于提升模型在对话任务中的表现。它通过比较模型输出与预期答案的差异来调整模型参数,以生成更符合用户期望的对话回复。DPO 训练算法同样支持使用 JSON 格式输入,每条数据由问题、预期模型输出的答案、不希望模型输出的答案组成,分别用 "prompt"、"chosen"、"rejected" 字段表示。
微调训练需要合理的数据集和计算资源配置,以确保训练过程的高效性和模型性能的最优化。
数据集配置:用户需要准备特定领域的标注数据集,并将数据上传至对象存储 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 卡型。
超参数的配置对模型训练的效果有着重要影响。以下是一些关键的超参数及其配置:
训练流程通常包括以下步骤:
通过以上步骤,用户可以完成通义千问 2.5 模型的微调训练,提升模型在特定任务上的性能。
在阿里云通义千问 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 算法适用于对话系统和需要模型生成特定输出的场景,通过比较模型输出与预期答案的差异来调整模型参数。
自定义数据集评测允许用户根据特定业务需求和场景,使用自己的数据集对通义千问 2.5 模型进行评测。用户需要准备 JSONL 格式的评测文件,并上传至 OSS,然后根据 OSS 中的评测集文件创建评测任务。
数据集格式:使用 question 标识问题列,answer 标识答案列。例如:
[ {"question": "中国发明了造纸术,是否正确?", "answer": "正确"} ]
用户可以根据自己的需求,设计问题和答案,以评估模型在特定任务上的表现。
评测流程:用户在模型详情页点击'评测',选择自定义数据集,并配置评测参数,提交评测任务。评测结果将展示模型在 ROUGE 和 BLEU 系列指标上的得分,以及每条数据的评测详情。
公开数据集评测是通过在多种公开数据集上加载并执行模型预测,根据每个数据集特定的评价框架,为用户提供行业标准的评估参考。PAI 维护了多个领域的公开数据集,如 MMLU、TriviaQA、HellaSwag、GSM8K、C-Eval、CMMLU、TruthfulQA 等,覆盖了知识、数学、推理等多个方面。
数据集选择:用户可以根据模型的应用领域,选择合适的公开数据集进行评测。例如,对于需要评估模型数学能力的场合,可以选择 GSM8K 数据集。
评测结果:评测结果将以雷达图的形式展示模型在不同领域的得分情况,每个领域可能会有多个与之相关的数据集,PAI 会取模型在这些数据集上的评测得分均值,作为领域得分。此外,还会展示模型在各个公开数据集的得分情况,为用户提供全面的评测反馈。
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
配置成功后,SDK 将保存配置信息,以便后续使用。配置信息默认保存在 ~/.pai/config.json 文件中。
通过 PAI Python SDK,用户可以方便地部署通义千问 2.5 模型,并进行在线推理调用。以下是部署和调用的示例代码:
首先,使用 SDK 获取模型,并部署到 PAI-EAS 推理服务平台:
from pai.model import RegisteredModel
# 获取 PAI 提供的模型
model = RegisteredModel(
model_name="qwen2.5-7b-instruct",
model_provider="pai"
)
# 部署模型
predictor = model.deploy(
service_name="qwen2_5_7b_instruct_example"
)
部署完成后,可以使用以下代码进行模型调用:
# 构建 openai client
openai_client = predictor.openai()
# 通过 openai SDK 调用推理服务
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 来进行模型调用。
阿里云通义千问 2.5 模型支持 SFT 和 DPO 两种微调算法,以下是使用 SDK 进行微调训练的示例代码:
首先,获取模型的微调训练算法:
from pai.estimator import Estimator
# 获取模型的微调训练算法
est = model.get_estimator()
使用 SDK 提交微调训练任务,可以使用默认数据或自定义数据:
# 获取 PAI 提供的公共读数据和预训练模型
training_inputs = model.get_estimator_inputs()
# 使用默认数据提交训练任务
est.fit(
inputs=training_inputs
)
训练完成后,可以查看产出模型的 OSS 路径:
# 查看训练产出模型的 OSS 路径
print(est.model_data())
通过以上步骤,用户可以利用 PAI Python SDK 对通义千问 2.5 模型进行微调训练,并查看训练结果。
如果在微调或推理过程中遇到显存不足的情况,可以尝试以下优化措施:
如果模型训练过程中损失函数下降缓慢,建议检查以下几点:
为了降低推理延迟,提升用户体验,可以采取以下策略:
阿里云通义千问 2.5 模型(Qwen2.5)以其卓越的性能和广泛的应用场景,在人工智能领域占据了重要地位。模型在预训练阶段处理了 18T tokens 的数据量,实现了性能的显著提升,尤其在编程和数学能力方面。Qwen2.5-72B 模型在多个基准测试中得分均超过 85,展现了其强大的通用知识、代码能力和数学解题能力。此外,模型支持高达 128K 的上下文长度和最多 8K 内容的生成,使其在处理长文本方面具有明显优势。
Qwen2.5 模型支持 29 种以上语言,包括中文、英文、法文、西班牙文等,覆盖了全球大部分主要语言,满足了不同语言用户的需求。同时,Qwen2.5 还提供了多模态模型和专有能力模型,如视觉理解模型 Qwen-VL-Max 和代码大模型 CodeQwen1.5-7B,这些模型在各自的领域内均展现出顶尖的竞争力。
阿里云提供的 PAI 平台使得 Qwen2.5 模型的部署和微调变得异常便捷。用户可以通过 Model Gallery 页面快速进入并选择预训练模型,进行后续的部署和微调操作。模型部署至 EAS 推理服务平台的步骤简单明了,支持 OpenAI 的 API 风格调用,用户可以通过 HTTP API 或 SDK 两种方式与推理服务进行交互。
Qwen2.5 模型支持 SFT 和 DPO 两种微调算法,允许用户根据特定的应用场景和数据集对预训练模型进行微调。合理的数据集和计算资源配置,以及关键超参数的配置,使得模型训练的效果得以最大化。通过 PAI Python SDK,用户可以方便地提交微调训练任务,并查看训练产出模型。
PAI-Model Gallery 为 Qwen2.5-7B-Instruct 模型提供了 SFT 和 DPO 两种微调算法的评测配置,用户可以根据具体需求,使用自定义数据集或公开数据集进行模型评测。评测结果将展示模型在 ROUGE 和 BLEU 系列指标上的得分,以及每条数据的评测详情,为用户提供全面的评测反馈。
综上所述,阿里云通义千问 2.5 模型以其强大的性能、多语言支持、便捷的部署微调和有效的微调训练,在人工智能领域展现出广泛的应用前景。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online