Mistral AI 公司背景
Mistral AI 成立于 2023 年 4 月,由前 DeepMind 和 Meta 研究员创立,是欧洲最有影响力的 AI 公司。其核心策略:小团队、高效架构、开源优先。
Mistral 的技术路线与众不同——在所有人追求更大 Dense 模型时,他们率先将 MoE 架构做到实用级别。
模型矩阵
| 模型 | 参数量 | 激活参数 | 类型 | 上下文 | 许可证 |
|---|---|---|---|---|---|
| Mistral 7B | 7B | 7B | Dense | 32K | Apache 2.0 |
| Mixtral 8x7B | 47B | 13B | MoE | 32K | Apache 2.0 |
| Mixtral 8x22B | 141B | 39B | MoE | 64K | Apache 2.0 |
| Mistral Large 2 | 123B | 123B | Dense | 128K | 商用 |
| Codestral | 22B | 22B | Dense | 32K | 商用 |
| Mathstral 7B | 7B | 7B | Dense | 32K | Apache 2.0 |
| Pixtral 12B | 12B | 12B | 多模态 | 128K | 商用 |
| Magistral | - | - | 推理模型 | - | 商用 |
Mistral 7B:小模型标杆
Mistral 7B 是 Mistral 的开山之作,以 7B 参数量在多个基准上超越 Llama 2 13B。
架构创新
# Mistral 7B 的 SWA(滑动窗口注意力)
class SlidingWindowAttention(nn.Module):
def __init__(self, d_model, n_heads, window_size=4096):
self.n_heads = n_heads
self.window_size = window_size
# 窗口内计算 attention,窗口外通过 KV Cache 传递
# 计算复杂度从 O(n²) 降至 O(n * window_size)
def forward(self, x):
# 1. 窗口内注意力(局部)
local_attn = attention(x, window=self.window_size)
# 2. 通过堆叠多层,信息可以传递到更远
# L 层 SWA 的有效感受野 = L * window_size
return local_attn
核心架构特点:
- SWA:4096 窗口,通过层叠扩展有效感受野
- GQA:8 个 KV 头,32 个 Query 头
- RoPE:旋转位置编码
- SwiGLU:门控线性单元
性能对比
| 基准 | Mistral 7B | Llama2-7B | Llama2-13B |
|---|---|---|---|
| MMLU | 62.5 | 45.3 | 55.0 |
| HellaSwag | 81.3 | 77.2 | 79.6 |
| GSM8K | 52.2 | 26.4 | 36.3 |
| HumanEval | 30.5 | 13.2 | 20.1 |
Mistral 7B 以一半参数量全面超越 Llama 2 13B,这在当时引起巨大轰动。
Mixtral:MoE 架构的实用化
Mixtral 8x7B
Mixtral 8x7B 是首个达到商用级别的开源 MoE 模型。
架构设计:
- 8 个专家 FFN,每个 token 激活 2 个
- 总参数 47B,激活参数 13B
- 推理速度接近 13B 模型,性能接近 70B 模型
# Mixtral MoE 路由
class MixtralMoE(nn.Module):
def __init__(self, d_model, n_experts=8, top_k=2):
self.router = nn.Linear(d_model, n_experts)
self.experts = nn.ModuleList([
SwiGLUFFN(d_model) for _ in range(n_experts)
])
self.top_k = top_k
def forward(self, x):
# 路由计算
router_logits = self.router(x) # [batch, seq, 8]
# Top-2 选择
scores, indices = softmax(router_logits, dim=-1).topk(self.top_k, dim=-1)
# 归一化权重
scores = scores / scores.sum(dim=-1, keepdim=True)
# 加权求和
output = torch.zeros_like(x)
for i in range(self.top_k):
for b in range(x.size(0)):
expert_idx = indices[b, :, i]
expert_out = self.experts[expert_idx[b]](x[b])
output[b] += scores[b, :, i:i+1] * expert_out
return output
Mixtral 8x22B
8x22B 是 Mixtral 的大规模升级版:
| 维度 | 8x7B | 8x22B |
|---|---|---|
| 总参数 | 47B | 141B |
| 激活参数 | 13B | 39B |
| 专家数 | 8 | 8 |
| 激活专家 | 2 | 2 |
| 上下文 | 32K | 64K |
| 显存(FP16) | ~90 GB | ~270 GB |
| 显存(INT4) | ~24 GB | ~70 GB |
性能对比
| 基准 | Mixtral 8x7B | Mixtral 8x22B | Llama3-70B | GPT-4o |
|---|---|---|---|---|
| MMLU | 71.3 | 78.8 | 82.9 | 88.7 |
| HellaSwag | 85.8 | 88.4 | 88.1 | 89.4 |
| GSM8K | 61.1 | 77.8 | 85.0 | 94.3 |
| HumanEval | 43.2 | 59.2 | 80.5 | 90.2 |
Codestral:代码专用模型
Codestral 是 Mistral 专为代码生成训练的模型,22B 参数,支持 80+ 编程语言。
核心能力
- FIM 补全:Fill-in-the-Middle,IDE 集成核心
- 多语言:Python、JS/TS、Java、Go、Rust、C++ 等
- 指令跟随:自然语言描述 → 代码实现
# Codestral FIM 调用
from openai import OpenAI
client = OpenAI(
api_key="your-mistral-api-key",
base_url="https://codestral.mistral.ai/v1"
)
# 代码补全模式
response = client.completions.create(
model="codestral-latest",
prompt="""# 实现一个快速排序算法
def quicksort""",
max_tokens=200,
temperature=0.2
)
# FIM 模式
response = client.completions.create(
model="codestral-latest",
prompt="[PREFIX]def merge_sort(arr):\n [SUFFIX]\n return sorted_arr[MIDDLE]",
max_tokens=200
)
代码基准
| 模型 | HumanEval | MBPP | MultiPL-E | RepoBench |
|---|---|---|---|---|
| Codestral 22B | 81.1 | 78.2 | 68.5 | 45.3 |
| DeepSeek-Coder-V2 | 86.4 | 83.2 | 72.5 | 52.1 |
| CodeGeeX-4 | 82.3 | 79.6 | 68.1 | 43.8 |
| GPT-4o | 90.2 | 85.4 | 78.6 | 61.2 |
Mathstral:数学专用模型
Mathstral 7B 是基于 Mistral 7B 微调的数学推理模型,专为 STEM 领域设计。
| 基准 | Mathstral 7B | Mistral 7B | Llemma 7B |
|---|---|---|---|
| MATH | 56.6 | 30.1 | 38.4 |
| GSM8K | 83.2 | 52.2 | 67.8 |
| MMLU-STEM | 68.4 | 52.3 | 58.1 |
Pixtral:多模态模型
Pixtral 12B 是 Mistral 的视觉语言模型,12B 参数:
- 视觉编码器:Pixtral-ViT(原生可变分辨率)
- 支持 OCR、图表理解、文档分析
- 128K 上下文,可处理多图
# Pixtral 多图理解
response = client.chat.completions.create(
model="pixtral-12b-latest",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "url1"}},
{"type": "image_url", "image_url": {"url": "url2"}},
{"type": "text", "text": "比较这两张图表的差异"}
]
}]
)
部署指南
vLLM 部署 Mixtral
# Mixtral 8x7B(双卡 A100)
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mixtral-8x7B-Instruct-v0.1 \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.9 \
--max-model-len 32768 \
--port 8000
# Mixtral 8x22B(4卡 A100 80GB)
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mixtral-8x22B-Instruct-v0.1 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.95 \
--max-model-len 65536 \
--port 8000
Mistral 7B 单卡部署
# Ollama
ollama run mistral:7b
# vLLM 单卡
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mistral-7B-Instruct-v0.3 \
--gpu-memory-utilization 0.9 \
--max-model-len 32768
许可证策略
Mistral 的许可证策略非常清晰:
| 模型 | 许可证 | 商用 | 备注 |
|---|---|---|---|
| Mistral 7B | Apache 2.0 | ✅ | 无任何限制 |
| Mixtral 8x7B | Apache 2.0 | ✅ | 无任何限制 |
| Mixtral 8x22B | Apache 2.0 | ✅ | 无任何限制 |
| Mathstral 7B | Apache 2.0 | ✅ | 无任何限制 |
| Mistral Large 2 | 商用许可 | 需付费 | API 或授权 |
| Codestral | 商用许可 | 需付费 | API 调用 |
| Pixtral 12B | 商用许可 | 需付费 | API 调用 |
Mistral 的开源模型采用 Apache 2.0,是所有大模型厂商中最宽松的许可证。
选型建议
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 消费级 GPU 通用 | Mistral 7B | Apache 2.0、性能强 |
| 工作站 MoE | Mixtral 8x7B | 性能/成本比优秀 |
| 代码补全 IDE | Codestral | FIM 模式、80+语言 |
| 数学推理 | Mathstral 7B | 专为 STEM 优化 |
| 视觉理解 | Pixtral 12B | 原生多模态 |
| 企业级 API | Mistral Large 2 | 128K、多语言 |
总结
Mistral AI 以小团队创造了多个里程碑:首个实用级开源 MoE 模型、最宽松的开源许可证、出色的参数效率。Mixtral 8x7B 至今仍是中等规模部署的最佳选择之一——以 13B 的推理成本接近 70B 的性能。Apache 2.0 许可证使其成为商业产品集成最友好的选择。对于追求效率和无限制商用的场景,Mistral 系列是首选。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
