Mixtral 8x7B 由 Mistral AI 在 2023 年 12 月放出,是第一个真正意义上被社区大规模自建的开源 MoE 模型。它的结构是 32 层、每层 8 个专家、路由器为每个 token 选 top-2 专家,总参数 46.7B、单 token 激活 12.9B,上下文 32K,Apache 2.0 许可。Mistral 当时给出的说法是「在多数基准上超过 Llama 2 70B,推理快 6 倍」,指令版 MT-Bench 拿到 8.30 分,与 GPT-3.5 同档。半年后的 Mixtral 8x22B 把规模拉到总参数 141B、激活 39B、上下文 64K,56 层结构,原生支持 function calling。
有一件事必须先说清楚:Mistral 官方托管的两个 API 端点 open-mixtral-8x7b 与 open-mixtral-8x22b 已经在 2025 年 3 月 30 日退役,官方文档现在把新集成一律指向 Mistral Small 4。但权重是 Apache 2.0 的,至今仍完整挂在 Hugging Face 上,可以下载、商用、二次分发、蒸馏。换句话说,今天想用 Mixtral,自建是唯一路径 —— 而这恰恰是不少团队仍然选它的理由:一个不会被服务商单方面下线、可完全离线、权重可审计的 MoE 底座,配合成熟到烂熟的 vLLM 与 llama.cpp 生态。
自建 Mixtral 踩的第一个坑几乎总是同一个:拿 12.9B 去估显存。MoE 的路由是逐 token、逐层动态决定的,你无法预知下一个 token 会命中哪两个专家,所以 8 个专家的权重必须全部常驻。46.7B 的 bf16 权重就是 46.7 × 2 ≈ 93.4GB,8x22B 更是 281GB 起步。激活参数只决定 FLOPs 和吞吐,一分显存都省不下来。把这笔账算对,选卡就不会翻车。
01 —
Mixtral 家族现存版本与各档显存占用
总参数决定显存,激活参数只决定速度 —— 两者不能混着算。
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| Mixtral-8x7B-Instruct-v0.1 | 46.7B 总参 / 12.9B 激活 | bf16 ≈93.4GB / GGUF Q5_K_M 32.23GB / Q4_K_M 26.44GB / AWQ 4bit 24.65GB | 32K(32768) | 被部署得最多的一档,Hugging Face 月下载仍在四十万量级。注意官方 chat template 不接受 system role。 |
| Mixtral-8x7B-v0.1(base) | 46.7B 总参 / 12.9B 激活 | bf16 ≈93.4GB / Q6_K 38.38GB / Q3_K_M 20.36GB / Q2_K 15.64GB | 32K(32768) | 未做指令对齐的底座,适合继续预训练或自建 SFT 数据集。Q3_K_M 是唯一能塞进 24GB 单卡的实用档。 |
| Mixtral-8x22B-Instruct-v0.1 | 141B 总参 / 39B 激活 | bf16 ≈281GB / GGUF Q5_K_M 99.96GB / Q4_K_M 85.58GB / Q3_K_M 67.78GB | 64K(65536) | 56 层、48 个注意力头、8 个 KV 头,用 v3 tokenizer,原生 function calling。多语言与数学推理明显强于 8x7B。 |
| Mixtral-8x22B-v0.1 / v0.3(base) | 141B 总参 / 39B 激活 | bf16 ≈281GB / IQ3_XS 58.22GB / Q2_K 52.10GB | 64K(65536) | v0.3 与 v0.1 结构完全一致,唯一区别是词表从 32000 扩到 32768。Q2_K 能进单张 80GB 卡,但质量损失肉眼可见。 |
| open-mixtral-8x7b / open-mixtral-8x22b(官方托管 API) | 同上,托管服务 | 不适用 | 32K / 64K | 两个端点均于 2025 年 3 月 30 日退役,Mistral 建议新集成改用 Mistral Small 4。要继续用 Mixtral 只能自建 —— 权重仍是 Apache 2.0。 |
02 —
按配置选卡:NexGPU 上跑 Mixtral 的四种打法
显存要同时装下全量权重和 KV Cache,我们按实测文件大小对齐卡型,不做乐观估算。
单卡跑 8x7B Q4_K_M 量化,吃满 32K 上下文
RTX 5090 32GB$0.723/卡·时
Q4_K_M 权重 26.44GB,8x7B 的 KV Cache 是 128 KiB/token、32K 满上下文正好 4GB,两者相加 30.4GB 卡在 32GB 里刚好,24GB 卡则必须降到 Q3_K_M 并砍上下文。
单卡起 vLLM OpenAI 兼容服务,AWQ 4-bit 带并发
RTX A6000 48GB$0.817/卡·时
AWQ 权重只占 24.65GB,剩下的 20GB 全给 KV Cache 池,按 128 KiB/token 折算约 16 万 token,够五路 32K 长上下文并发而不必开张量并行。
8x7B bf16 全精度生产部署,TP=2
A100 PCIE 80GB × 2$0.824/卡·时(双卡 $1.648/时)
93.4GB 权重按 tensor-parallel-size 2 切开是每卡 46.7GB,各留约 30GB 给 KV 与激活值,是不做任何量化损失的最省配置。
8x22B Q4_K_M,64K 长上下文推理
A100 SXM4 80GB × 2$1.088/卡·时(双卡 $2.176/时)
85.58GB 权重加 64K 满上下文 14GB 的 KV,双卡 160GB 从容;若坚持单卡不切分,只有 H200 141GB($6.660/卡·时)装得下。
03 —
从开机到第一个 token:四步跑通 Mixtral
命令可直接复制。mistralai 的仓库是 gated 的,先登录再拉权重。
- 01
开实例并拉权重
选一台带 PyTorch 或 vLLM 预置镜像的实例,SSH 进去先登录 Hugging Face —— mistralai 名下所有仓库都需要先在网页上点同意条款、再用 token 认证,否则会直接报 Cannot access gated repo。8x7B 的 bf16 权重约 93.4GB,走 NexGPU 节点带宽通常几十分钟到手。
huggingface-cli login && huggingface-cli download mistralai/Mixtral-8x7B-Instruct-v0.1 --local-dir /workspace/mixtral-8x7b - 02
用 vLLM 起 OpenAI 兼容端点
双卡 A100 80GB 上开张量并行。vLLM 对 Mixtral 的 MoE 层做的是把每个专家切到所有 rank 上、再用融合 MoE kernel 前向;如果你换成多卡多副本部署,可以加 --enable-expert-parallel 让专家层改走专家并行。跑量化版就把路径换成 AWQ 仓库并加 --quantization awq。
vllm serve /workspace/mixtral-8x7b --tensor-parallel-size 2 --dtype bfloat16 --max-model-len 32768 --gpu-memory-utilization 0.90 - 03
单卡走 llama.cpp / Ollama 量化路线
只有一张 32GB 或 48GB 卡时用 GGUF。8x7B 是 32 层,-ngl 33 表示连输出层一起全部搬上 GPU,一旦有层留在 CPU,MoE 的专家权重换入换出会让吞吐断崖式下跌。想省事就直接 ollama run mixtral:8x7b-instruct-v0.1-q4_K_M。注意 RTX 5090 是 Blackwell 架构,PyTorch 侧需要 CUDA 12.8 以上的构建,llama.cpp 则没有这个限制。
./llama-server -m mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf -ngl 33 -c 32768 --host 0.0.0.0 --port 8080 - 04
绕开 system role 的模板坑
Mixtral v0.1 的官方 chat template 只认 user 与 assistant,[INST] ... [/INST] 结构里没有独立的 system 位置。你一传 system 消息就会抛 TemplateError: Conversation roles must alternate user/assistant。最稳的做法是把系统提示拼到第一条 user 消息前面;也可以改用 mistral-common,它默认把 system 内容并入最后一条 user 消息;或给 vLLM 传 --chat-template 换成支持 system 的模板。
messages = [{'role': 'user', 'content': system_prompt + '\n\n' + user_query}]
一次真实的账:微调加推理,Mixtral 到底花多少钱
先算 QLoRA 微调 Mixtral 8x7B。4-bit 量化后训练态大约需要 32GB 显存,一张 A100 PCIE 80GB 绰绰有余,$0.824/卡·时。拉完 93.4GB 权重按 40 分钟计:0.67 × $0.824 ≈ $0.55;跑 3 个 epoch 共 22 小时:22 × $0.824 = $18.13;权重加检查点占 120GB 存储、只留两天:120 × $0.414 ÷ 30 × 2 ≈ $3.31;导出 1.2GB 的 LoRA adapter:1.2 × $0.0081 ≈ $0.01。合计约 $22.00。训练一结束停掉实例,计算立刻停止计费,存储则要等你销毁卷之后才停。再看推理:8x7B 的 Q4_K_M 是 26.44GB,RTX 5090 32GB 跑 4 小时评测是 4 × $0.723 = $2.89;换成 8x22B 的 Q4_K_M(85.58GB),两张 A100 SXM4 80GB 合 $1.088 × 2 = $2.176/时,同样 4 小时是 $8.70。最后提一个容易被忽略的定价细节:RTX A6000 48GB 是 $0.817/卡·时,A100 PCIE 80GB 是 $0.824/卡·时 —— 每小时只差 $0.007,却多出 32GB 显存和高得多的带宽,做 Mixtral 微调基本没有理由选前者。全程按秒计量、按小时计价,没有起租门槛、没有开通费、不需要提配额工单。
04 —
