Mixtral 8X7B MoE 模型在阿里云PAI平台的微调部署实践

💡 原文中文,约8700字,阅读约需21分钟。
📝

内容提要

Mixtral 8x7B是一种先进的开源语言模型,在许多基准测试中表现优于GPT-3.5。它支持多种语言,上下文长度为32K个标记。Mixtral AI还发布了Mixtral 8x7B的经过精细调整的版本,在基于指令的任务中表现出色。阿里巴巴云的PAI平台为Mixtral 8x7B提供全面支持,使开发人员和企业用户能够轻松地进行精细调整和部署模型。PAI-QuickStart通过集成高质量的预训练模型,并提供零代码和基于SDK的方法来简化开发过程,包括训练、部署和推理。

🔎

延伸解读

稀疏专家混合架构的实际影响

Mixtral 8x7B 采用稀疏专家混合网络,总参数 47B,但每个 token 仅激活 13B 参数,因此推理速度与 13B 模型相当。这意味着在相同硬件条件下,它能以较低计算成本提供接近更大模型的性能。不过,部署时仍需加载全部专家参数,显存占用高于纯 13B 模型,文章推荐使用 80GB 显存的 GU108 GPU,推理至少 2 卡。

微调部署的资源门槛与地域限制

文章明确指出,当前示例仅支持阿里云乌兰察布地域的灵骏集群环境。推理需至少 2 张 GU108(80GB 显存)GPU,LoRA 微调则需 4 张及以上。用户需提前开通灵骏智算资源并获取资源配额 ID。这些限制意味着该方案更适合已有阿里云灵骏资源的企业用户,个人开发者需评估资源成本。

两种使用路径:控制台与 SDK

PAI-QuickStart 提供零代码和 SDK 两种方式。控制台适合快速体验,通过模型卡片直接部署或提交训练任务,并可用 TensorBoard 查看收敛情况。SDK 则便于集成到开发流程,支持以代码方式部署服务、配置超参、上传数据集和提交训练。两种方式最终都通过 OpenAI 兼容的 API 调用推理服务,降低了迁移成本。

微调数据格式与超参配置

微调训练要求数据为 JSON 格式,每条包含 instruction 和 output 字段,分别对应问题和答案。用户可将数据上传至 OSS 或使用 NAS/CPFS 存储,也可直接使用 PAI 预置的公共读数据集测试。算法提供学习率、训练轮数、批次大小、LoRA 维度等超参,默认值如学习率 1e-05、LoRA 维度 16,用户可根据数据和资源调整。

❓

Q&A

Mixtral 8x7B 模型在架构上有什么特别之处?

Mixtral 8x7B 采用稀疏专家混合网络(SMoE)架构,对于每个 token,路由器网络从八组专家网络中选择两组进行处理,并将输出累加组合。因此,虽然模型总参数为 47B,但每个 token 只使用 13B 的活跃参数,推理速度与 13B 模型相当。

Mixtral 8x7B 支持哪些语言和上下文长度?

Mixtral 8x7B 支持多种语言,包括法语、德语、西班牙语、意大利语和英语,支持的上下文长度为 32K token。

在阿里云 PAI 平台上部署 Mixtral 8x7B 模型需要什么资源?

部署 Mixtral 8x7B 模型需要至少 2 张 GU108(80GB 显存)GPU 卡的计算资源,并且需要使用灵骏资源组进行部署。

如何通过 PAI 平台对 Mixtral 8x7B 进行微调训练?

用户可以通过 PAI 控制台或 PAI Python SDK 提交微调任务。训练数据需为 JSON 格式,包含 instruction 和 output 字段。微调算法支持配置超参数如 learning_rate、num_train_epochs 等,并且需要至少 4 张 GU108 GPU 资源。训练完成后,可以通过 TensorBoard 查看收敛情况,并将模型部署到 PAI-EAS。

PAI-QuickStart 提供了哪些方式来使用 Mixtral 8x7B 模型?

PAI-QuickStart 提供了零代码和 SDK 两种方式。用户可以通过 PAI 控制台的可视化界面轻松完成模型的部署和微调,也可以使用 PAI Python SDK 通过代码调用和配置模型,实现从训练到部署再到推理的全流程。

Mixtral 8x7B 的推理服务如何调用?

部署后的推理服务支持 OpenAI 的 API 风格调用。用户可以通过服务详情页获取 Endpoint 和 Token,然后使用 cURL 或 OpenAI SDK 进行调用。例如,使用 cURL 调用 /v1/chat/completions 接口,或使用 Python 的 openai 库设置 api_key 和 base_url 后调用。

🏷️

标签

➡️

继续阅读