说实话,看到"Small 4"这个名字的时候我以为是个 7B 小玩具,结果点进去一看——119B 总参数、128 个 Expert、256k 上下文、Apache 2.0 开源。
Mistral 对"小"这个字的理解,确实很法式。
先说结论
| 维度 | Mistral Small 4 | GPT-5.4 | Claude Opus 4.6 |
|---|---|---|---|
| 总参数 | 119B(激活 6B) | 未公开 | 未公开 |
| 上下文 | 256k | 1M | 1M |
| 开源 | ✅ Apache 2.0 | ❌ | ❌ |
| 多模态 | ✅ 文本+图像 | ✅ | ✅ |
| 可调推理 | ✅ reasoning_effort | ✅ | ✅ |
| API 价格 | 0.60 | 30 | 25 |
| SWE-bench 级别 | 中高 | 顶级(~80%) | 顶级(80.8%) |
注意那个价格对比。Small 4 的输入成本是 GPT-5.4 的 1/67,输出是 1/50。不是打折,是碾压。
当然,绝对性能上 Small 4 和旗舰模型还有差距。但大多数开发场景不需要旗舰级别——你日常写 CRUD、改 bug、做代码 review,拿 6B 激活参数的模型跑,够了。
MoE 架构:为什么 119B 只用 6B
Mistral Small 4 用的是 Mixture of Experts(混合专家)架构:
- 128 个 Expert,每次推理只激活 4 个
- 总参数 119B,实际每个 token 只经过 6B 参数(算上 embedding 层约 8B)
- 一个 Router 网络决定每个 token 走哪几个 Expert
打个比方:传统稠密模型像一个 119 人的团队,每个任务全员出动。MoE 像是从 128 人里挑 4 个最合适的来干活——成本降了 97%,但效果接近全员水平。
这不是 Mistral 的独创。DeepSeek-V3 用了 256 个 Expert,Qwen 系列也在往这个方向走。但 Small 4 的 128 Expert/4 Active 组合在性价比上确实激进:
推理计算量 ≈ 6B 模型
模型知识量 ≈ 119B 模型
NVIDIA GTC 2026 上发布的,也说明 Mistral 跟 NVIDIA 在推理优化上有深度合作。实测吞吐量比上一代 Small 3 高了 3 倍,延迟降了 40%。
API 调用实战
Mistral Small 4 兼容 OpenAI 的接口格式,切换成本几乎为零:
from openai import OpenAI
# 方式一:直接用 Mistral 官方 API
client = OpenAI(
api_key="your-mistral-api-key",
base_url="https://api.mistral.ai/v1"
)
# 方式二:通过聚合平台调用(国内直连,更稳定)
client = OpenAI(
api_key="your-api-key",
base_url="https://api.ofox.ai/v1" # 50+ 模型统一入口
)
response = client.chat.completions.create(
model="mistral-small-latest",
messages=[
{"role": "system", "content": "你是一个资深 Python 开发者"},
{"role": "user", "content": "写一个带重试机制的 HTTP 请求封装"}
],
temperature=0.7
)
print(response.choices[0].message.content)
跑出来的代码:
import time
import requests
from functools import wraps
def retry_request(max_retries=3, backoff_factor=1.5,
retry_on=(requests.ConnectionError, requests.Timeout)):
"""带指数退避的 HTTP 请求重试装饰器"""
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
last_exception = None
for attempt in range(max_retries + 1):
try:
return func(*args, **kwargs)
except retry_on as e:
last_exception = e
if attempt < max_retries:
wait = backoff_factor ** attempt
print(f"请求失败,{wait:.1f}s 后重试 ({attempt+1}/{max_retries})")
time.sleep(wait)
raise last_exception
return wrapper
return decorator
@retry_request(max_retries=3)
def fetch_data(url, **kwargs):
resp = requests.get(url, timeout=10, **kwargs)
resp.raise_for_status()
return resp.json()
说实话这段代码质量可以——指数退避、装饰器模式、异常链传递都到位了。换成某些旗舰模型,可能还会给你加一堆你没要的日志和类型注解。
可配置推理:同一个模型,两种性格
Small 4 有个参数叫 reasoning_effort,直接控制模型思考深度:
# 快速回答:日常对话、简单代码
response = client.chat.completions.create(
model="mistral-small-latest",
messages=[{"role": "user", "content": "Python 列表去重"}],
extra_body={"reasoning_effort": "none"} # 相当于 Small 3.2
)
# 深度推理:算法题、复杂 debug
response = client.chat.completions.create(
model="mistral-small-latest",
messages=[{"role": "user", "content": "实现一个 LRU Cache,要求线程安全"}],
extra_body={"reasoning_effort": "high"} # 开启思维链
)
reasoning_effort="none" 时速度飞快,适合批量处理、实时补全这类延迟敏感的场景。切到 "high" 就变身推理模型,解题能力直线上升。
一个模型干三个模型的活:快速问答、常规编程、深度推理。这对中小团队来说太香了——不用维护多个模型的调用逻辑,一套代码搞定。
实际表现怎么样
根据 Mistral 官方 benchmark:
- LiveCodeBench:超过 GPT-OSS 120B,而且输出短 20%——就是说不啰嗦,直接给答案
- AA LCR:0.72 分只用 1.6K 字符,Qwen 系列需要 3.5-4 倍的输出才能达到类似水平
- 吞吐量:比 Small 3 高 3 倍,延迟降低 40%
不过说实话,这些官方数字都得打个折。实际开发中的感受是:
- 日常 CRUD 和脚本:完全够用,响应快且便宜
- 复杂架构设计:跟旗舰模型有差距,建议切 reasoning_effort="high"
- 多轮长对话:256k 上下文足够大多数场景
- 中文能力:比 Small 3 有提升,但不是强项,不如 Qwen 和 DeepSeek
本地部署?也行
Apache 2.0 意味着你可以自己部署。Hugging Face 上已经有模型权重了:
# 用 vLLM 部署(推荐,对 MoE 优化好)
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mistral-Small-4-119B-2603 \
--tensor-parallel-size 4 \
--max-model-len 65536
# 或者用 Ollama(更简单)
ollama run mistral-small-4
硬件需求:119B 参数用 FP16 大概需要 ~240GB 显存,但因为 MoE 架构,实际推理时的显存占用和计算量远低于同体量的稠密模型。4 张 A100 80GB 或者 2 张 H100 就能跑起来。
当然,如果你不想折腾硬件,直接调 API 是最省事的方案。
小结
Mistral Small 4 不是来抢旗舰模型饭碗的。它的定位很清晰:
- 性价比之王:$0.15/M 的输入价格,适合高并发、大批量的场景
- 一模多用:通过 reasoning_effort 参数切换快速/深度模式
- 开源可控:Apache 2.0,可以本地部署、微调、魔改
- 128 Expert MoE:119B 的知识量,6B 的推理成本
如果你的场景是大量的代码补全、批量文本处理、或者需要低成本的 AI 能力集成,Small 4 值得认真考虑。
旗舰模型打前锋,Small 4 当工兵——这可能是 2026 年最务实的 AI 模型搭配方案。