ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MiniMax-M2.5 SGLang 高性能部署实战:从模型下载、多卡服务启动到 OpenAI 兼容接口调用

MiniMax-M2.5 SGLang 高性能部署实战:从模型下载、多卡服务启动到 OpenAI 兼容接口调用 MiniMax-M2.5 SGLang 高性能部署实战从模型下载、多卡服务启动到 OpenAI 兼容接口调用【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/datawhalechina/self-llm导读本文基于 Datawhale 开源仓库《开源大模型食用指南》self-llm中 models/MiniMax-M2.5/2-MiniMax-M2.5-SGLang.md 的完整内容系统讲解如何以 MiniMax-M2.5 为模型基座通过 SGLang 高性能推理框架完成环境准备、模型下载、4 卡 / 8 卡服务启动以及聊天、流式输出、工具调用三类 OpenAI 兼容接口的客户端调用。读完本文你将能够在自己的 GPU 集群上独立搭建一套面向生产环境的 MiniMax-M2.5 推理服务并掌握张量并行、专家并行、思考内容解析等关键参数的配置方法。MiniMax-M2.5 简介MiniMax-M2.5 是 MiniMax 推出的最新一代开源大语言模型。M2.5 通过在数十万个复杂真实场景中进行强化学习训练在代码SWE-Bench Verified 80.2%、Agent 工具调用与搜索BrowseComp 76.3%、办公等多项任务中达到 SOTA 水平同时兼具高效与低成本特性。它延续了 MiniMax 系列在 Agent 场景上的强项能够稳定规划并执行复杂的长链条工具调用任务。在仓库中MiniMax-M2.5 与部署相关的教程以三篇文档的形式组织彼此互补MiniMax-M2.5 vLLM 部署调用使用 vLLM 完成同样的部署链路MiniMax-M2.5 SGLang 部署调用本文主题使用 SGLang 部署MiniMax-M2.5 Transformers 部署调用不使用推理框架直接用 Transformers 加载权重做本地推理。这三篇教程也统一收录在仓库根目录 support_model.md 的模型支持清单中并在 README.md 的模型列表中提供入口。SGLang 简介SGLang是一个面向大语言模型的高性能部署推理框架提供开箱即用的推理加速与 OpenAI 兼容接口。它支持长上下文推理、流式输出、多卡并行如张量并行与专家并行、工具调用与思考内容解析等能力便于将最新模型快速落地到生产环境。在工程实践上SGLang 以简洁的启动方式和稳定的服务能力为特点后端通过python -m sglang.launch_server一条命令即可启动前端可以直接沿用现有的 OpenAI SDK 或 HTTP 调用链路无需额外适配成本。对 MiniMax-M2.5 这类大权重约 220 GBMoE 模型SGLang 的张量并行TP与专家并行EP支持是充分发挥多卡算力、扩展上下文容量的关键。需要说明的是SGLang 服务启动后暴露的是 OpenAI 兼容接口/v1路径因此本文后续的客户端示例均可在服务端 SGLang 客户端 OpenAI SDK这一标准组合下直接运行。环境准备基础环境自检文档给出的基础环境参考值如下可使用以下命令自检 CUDA / PyTorch 是否可用nvidia-smi python -c import torch;print(torch.version.cuda, torch.cuda.is_available())如果环境为多卡机器可通过torch.cuda.device_count()获取 GPU 数量这也是后续启动脚本中自动判断 4 卡 / 8 卡分支的依据。显存与推荐配置按官方文档MiniMax-M2.5 的资源需求如下权重需求约 220 GB 显存每 1M 上下文 token 约需 240 GB 显存96G × 4 GPU支持约 40 万 token 总上下文144G × 8 GPU支持约 300 万 token 总上下文。注以上数值为硬件支持的最大并发缓存总量模型单序列Single Sequence长度上限为 196k。这意味着部署前需要结合业务的实际并发量与上下文长度综合评估资源同样的硬件下支持的总上下文容量由并发序列数 × 序列长度共同决定不能简单地认为单序列可以达到数兆 token。安装 SGLang建议使用虚拟环境venv / conda / uv避免依赖冲突。uv venv source .venv/bin/activate uv pip install sglang安装完成后务必确认 SGLang 版本满足要求请确保 SGLang 版本 v0.5.4.post1以获得对 MiniMax 模型的完整支持。可使用pip show sglang查看当前安装的版本。版本过旧时会出现下文常见问题一节中的MiniMax-M2 model is not currently supported报错此时应执行pip install -U sglang升级。模型下载SGLang 会在首次启动时自动从 Hugging Face 拉取并缓存模型无需手动下载。若希望提前下载或受网络限制可选用modelscope手动下载模型# model_download.py from modelscope import snapshot_download model_dir snapshot_download(MiniMaxAI/MiniMax-M2.5, cache_dir/root/autodl-tmp, revisionmaster) print(f模型下载成功保存到: {model_dir})pip install modelscope python model_download.py几点实操建议cache_dir请修改为你的本地存储路径示例中的/root/autodl-tmp对应 AutoDL 等平台的扩展数据盘revisionmaster指定拉取master分支权重与官方发布保持一致使用modelscope下载模型时无需设置 HF 镜像若不使用 modelscope而是让 SGLang 自动从 Hugging Face 拉取网络受限时可设置镜像export HF_ENDPOINThttps://hf-mirror.com模型权重很大约 220 GB若网络带宽受限建议先在较高带宽的环境中下载后拷贝到目标机器。下载完成后既可以直接让 SGLang 通过模型名MiniMaxAI/MiniMax-M2.5使用本地 HF 缓存也可以将--model-path指向snapshot_download返回的本地目录。启动 SGLang 服务SGLang 支持 Python 脚本与命令行两种启动方式。脚本方式便于固定参数、统一管理日志命令行方式则适合快速验证两者最终生成的启动命令完全一致。方式一Python 启动脚本新建start_server.py脚本会根据检测到的 GPU 数量自动选择 4 卡或 8 卡启动命令import torch from sglang.utils import launch_server_cmd, wait_for_server gpu_count torch.cuda.device_count() if torch.cuda.is_available() else 0 if gpu_count 4: cmd ( python -m sglang.launch_server --model-path MiniMaxAI/MiniMax-M2.5 --host 0.0.0.0 --port 8000 --tp-size 4 --tool-call-parser minimax-m2 --reasoning-parser minimax-append-think --trust-remote-code --mem-fraction-static 0.85 ) elif gpu_count 8: cmd ( python -m sglang.launch_server --model-path MiniMaxAI/MiniMax-M2.5 --host 0.0.0.0 --port 8000 --tp-size 8 --ep-size 8 --tool-call-parser minimax-m2 --reasoning-parser minimax-append-think --trust-remote-code --mem-fraction-static 0.85 ) else: raise RuntimeError(f建议使用 4 或 8 张 GPU当前检测到: {gpu_count}) server_process, port launch_server_cmd(cmd, port8000) wait_for_server(fhttp://127.0.0.1:{port}) print(fSGLang Server started: http://127.0.0.1:{port})启动python start_server.py服务启动成功后将监听http://127.0.0.1:8000/v1。方式二命令行直接启动4 卡部署python -m sglang.launch_server \ --model-path MiniMaxAI/MiniMax-M2.5 \ --tp-size 4 \ --tool-call-parser minimax-m2 \ --reasoning-parser minimax-append-think \ --host 0.0.0.0 \ --trust-remote-code \ --port 8000 \ --mem-fraction-static 0.858 卡部署python -m sglang.launch_server \ --model-path MiniMaxAI/MiniMax-M2.5 \ --tp-size 8 \ --ep-size 8 \ --tool-call-parser minimax-m2 \ --trust-remote-code \ --host 0.0.0.0 \ --reasoning-parser minimax-append-think \ --port 8000 \ --mem-fraction-static 0.85由于模型较大首次加载时间较长可能需要半小时以上。从源码结构看launch_server_cmd与wait_for_server来自 SGLang 的sglang.utils工具模块即脚本中from sglang.utils import launch_server_cmd, wait_for_server一行前者负责在子进程中拉起sglang.launch_server命令并返回进程句柄与端口后者会轮询服务健康状态直至就绪因此脚本天然具备进程托管 就绪等待的能力适合写入部署脚本或 CI 流程。curl 测试服务启动后可以先使用 curl 调用 OpenAI 兼容接口验证连通性curl http://localhost:8000/v1/chat/completions \ -H Content-Type: application/json \ -d { model: MiniMaxAI/MiniMax-M2.5, messages: [ {role: system, content: [{type: text, text: You are a helpful assistant.}]}, {role: user, content: [{type: text, text: 请简要介绍 MiniMax-M2.5 模型的特点。}]} ] }注意请求体中的model字段需与启动时--model-path指定的名称对应此处均为MiniMaxAI/MiniMax-M2.5。消息的content使用数组结构[{type: text, text: ...}]这是 MiniMax 系列多模态风格的消息格式在后续 Python 示例中同样适用。调用示例以下示例均使用 OpenAI 官方 Python SDK 调用 SGLang 的 OpenAI 兼容接口。先安装依赖pip install openai聊天对话Chat Completions# test_chat.py from openai import OpenAI client OpenAI( api_keyEMPTY, base_urlhttp://127.0.0.1:8000/v1, ) response client.chat.completions.create( modelMiniMaxAI/MiniMax-M2.5, messages[ {role: user, content: 请介绍 MiniMax-M2.5 模型相比 M2 有哪些提升} ], max_tokens8192, top_p0.95, temperature1.0, ) msg response.choices[0].message print(MiniMax-M2.5:, msg.content)运行python test_chat.py说明SGLang 服务本身不校验 API Key客户端传api_keyEMPTY仅为满足 OpenAI SDK 的必填参数约束base_url指向 SGLang 服务的/v1端点。流式输出Streaming# test_streaming.py from openai import OpenAI client OpenAI( api_keyEMPTY, base_urlhttp://127.0.0.1:8000/v1, ) stream client.chat.completions.create( modelMiniMaxAI/MiniMax-M2.5, messages[{role: user, content: 请用 Python 实现一个二叉搜索树包含插入、查找和删除操作。}], streamTrue, max_tokens32768, top_p0.95, temperature1.0, ) for chunk in stream: delta chunk.choices[0].delta if delta and delta.content: print(delta.content, end, flushTrue)运行python test_streaming.py流式模式适合长文本生成与对话类交互场景通过streamTrue开启 SSE 流式返回客户端逐 chunk 读取delta.content增量输出flushTrue保证内容实时刷出避免等待全部生成完毕。长回答场景下可将max_tokens放宽到 32768。工具调用Tool CallingMiniMax-M2.5 在 Agent 和工具调用方面表现出色。在 SGLang 部署时通过--tool-call-parser minimax-m2启用工具调用功能使模型能够识别何时需要调用外部工具并以结构化 JSON 格式输出工具调用参数。以下脚本实现了一个天气查询工具调用示例# test_tool_calling.py from openai import OpenAI import json client OpenAI(base_urlhttp://localhost:8000/v1, api_keyEMPTY) def get_weather(location: str, unit: str): return fGetting the weather for {location} in {unit}... tools [{ type: function, function: { name: get_weather, description: Get the current weather in a given location, parameters: { type: object, properties: { location: {type: string, description: City and state, e.g., San Francisco, CA}, unit: {type: string, enum: [celsius, fahrenheit]} }, required: [location, unit] } } }] response client.chat.completions.create( modelclient.models.list().data[0].id, messages[{role: user, content: 北京今天天气怎么样请用摄氏度。}], toolstools, tool_choiceauto ) tool_call response.choices[0].message.tool_calls[0].function print(fFunction called: {tool_call.name}) print(fArguments: {tool_call.arguments}) print(fResult: {get_weather(**json.loads(tool_call.arguments))})运行python test_tool_calling.py代码要点tools列表以 OpenAI Function Calling 的标准 JSON Schema 描述工具名称、描述、参数属性与必填项tool_choiceauto表示由模型自主决定是否调用工具modelclient.models.list().data[0].id动态获取服务端已加载模型的 ID避免手写模型名与启动参数不一致模型返回的tool_calls[0].function.arguments是 JSON 字符串通过json.loads解析后可直接解包传入本地函数执行完成模型决策 → 参数解析 → 函数执行的完整闭环。结合仓库中 MiniMax-M2.5 vLLM 部署调用 文档可以看出vLLM 路径需要同时开启--enable-auto-tool-choice --tool-call-parser minimax_m2两个参数而 SGLang 路径只需--tool-call-parser minimax-m2一个参数即可启用同等能力启动参数更简洁两者都额外通过 reasoning parser 将模型的思考内容think块与正式回答分离处理。参数说明与建议以下是 SGLang 启动命令中各关键参数的含义与配置建议--model-path模型名称或本地路径例MiniMaxAI/MiniMax-M2.5OpenAI 请求中的model字段需与之对应。--tp-size张量并行大小常设为 GPU 数量4 或 8。多卡场景下设置等于 GPU 数可将模型权重切分到各卡提升吞吐并扩展上下文容量。--ep-size专家并行大小8 卡示例中开启。对 MiniMax-M2.5 这类 MoE 架构模型8 卡时配合--ep-size 8可将专家分布到各卡减少通信开销。--tool-call-parser minimax-m2启用 MiniMax 的工具调用解析使模型输出遵循工具调用的结构化格式。--reasoning-parser minimax-append-think启用思考内容解析。MiniMax 系列模型会在回答前生成think思考块该参数让 SGLang 识别并以追加方式处理 reasoning 内容便于在响应中区分思考过程与最终回答。--mem-fraction-static静态显存比例显存紧张时可适当调低例如 0.7 / 0.6为 KV Cache 预留更多动态空间或反之压缩缓存容量需结合并发需求权衡。--trust-remote-code信任远程代码MiniMax 模型需要此参数。MiniMax-M2.5 的模型定义依赖仓库内自定义代码缺少该参数将无法正常加载。--host/--port服务监听地址与端口示例统一为0.0.0.0:8000便于容器或跨机访问。采样参数方面官方推荐使用以下推理参数以获得最好的性能temperature1.0, top_p0.95, top_k20其中top_k通过采样参数传入 OpenAI 兼容请求SGLang 支持透传追求稳定确定性输出时可适当降低temperature与top_p。显存建议M2.5 权重约 220 GB每 1M 上下文约 240 GB。请结合业务并发与上下文需求评估资源。常见问题Hugging Face 网络问题如果遇到网络问题模型拉取失败或超时可设置镜像后再进行拉取export HF_ENDPOINThttps://hf-mirror.com设置后重新启动服务或重新执行模型下载即可。若已通过modelscope下载模型并指定了本地路径则无需此设置。MiniMax-M2 model is not currently supported该报错通常意味着当前 SGLang 版本过旧尚未内置对 MiniMax 模型的支持。请升级到最新的稳定版本需 v0.5.4.post1pip install -U sglang升级后重启服务即可。同样的问题也出现在 vLLM 与 Transformers 部署路径中对应版本要求见 MiniMax-M2.5 vLLM 部署调用 与 MiniMax-M2.5 Transformers 部署调用处理思路一致确认版本、确认已开启--trust-remote-code。与仓库中其他部署方式的横向对照在仓库的 MiniMax-M2.5 教程集中SGLang 是三条部署链路中的一条其余两条可作为场景互补参考Transformers 直连3-MiniMax-M2.5-Transformers.md通过AutoModelForCausalLM加载权重做单机推理适合调试、离线批量推理与二次开发不暴露 OpenAI 接口需自行处理对话模板apply_chat_template与生成循环。vLLM 部署1-MiniMax-M2.5-vLLM.md同样提供 OpenAI 兼容接口与多卡并行参数命名略有差异如--tensor-parallel-size、--enable_expert_parallel、--tool-call-parser minimax_m2适合已在 vLLM 技术栈上沉淀运维经验的团队。三篇文档均以MiniMaxAI/MiniMax-M2.5为模型名、/root/autodl-tmp为模型缓存目录因此可以先通过 model_download.py 脚本SGLang 版示例 下载一次权重然后在三种推理方式之间按需切换无需重复下载。小结本文完整复现了仓库中 MiniMax-M2.5 的 SGLang 部署链路从环境与显存评估、依赖安装SGLang v0.5.4.post1、模型下载modelscope / HF 镜像两种方式到 4 卡 / 8 卡两种规模的sglang.launch_server启动含 Python 脚本与命令行两种形式再到 curl 冒烟测试与聊天、流式、工具调用三类 OpenAI SDK 客户端调用最后梳理了全部关键参数与两类高频报错的排查方法。对想要在生产环境落地 MiniMax-M2.5 的开发者而言核心要点可概括为三点一是按220 GB 权重 每 1M 上下文 240 GB的显存公式评估资源二是确保 SGLang 版本达标并开启--trust-remote-code三是针对 Agent 场景正确配置--tool-call-parser minimax-m2与--reasoning-parser minimax-append-think。其余更细粒度的优化如显存比例、采样参数可结合业务并发量在 support_model.md 索引的配套文档基础上继续深入。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/datawhalechina/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表