mistral-src
Mistral AI 官方开源推理库,支持 Mistral 7B、Mixtral 8x7B 等全系列
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Mistral AI 官方开源推理库,支持 Mistral 7B、Mixtral 8x7B 等全系列
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Mistral AI 官方团队
在 AI 圈子里,Mistral AI 是一家让人又爱又恨的公司——爱的是它开源的模型质量极高,恨的是它总是低调做事,文档写得少得可怜。但 mistral-inference 是个例外:这个官方推理库把自家所有模型的部署门槛降到了「有 GPU 就能跑」的程度。
2023 年 9 月,Mistral AI 发布了 7B 参数的 Mistral 7B——比当时同参数量的 LLaMA 2 强一截,还支持 Apache-2.0 商用许可,一时间成为开源 LLM 圈的现象级事件。随后他们又陆续开源了 Mixtral 8x7B(专家混合模型)、Codestral(代码专用)、Mathstral(数学专用)、Mistral Small/Nemo/Large 等一系列模型,覆盖了从轻量到超大规模的全部场景。
mistral-inference 就是这些模型的「官方跑腿工具」——它负责把模型权重加载进来、高效率地跑推理、提供命令行和 Python 两套接口,让研究者和开发者能快速验证和部署。
mistral-inference 的设计哲学是「最小化代码、最小化依赖」。相比 vLLM、TGI 等通用推理引擎,它的代码库非常精简,核心只有约 3000 行 Python。
核心模块结构:
| 模块 | 文件 | 功能 |
|---|---|---|
transformer.py | RoPE + RMSNorm + Attention | Transformer 核心实现,含 Flash Attention |
moe.py | MoE 层 | Mixtral 8x7B 的专家混合层实现 |
cache.py | KV Cache | 分页注意力(PagedAttention)的 KV 缓存管理 |
generate.py | 采样逻辑 | Temperature、Top-p、Top-k 等采样策略 |
lora.py | LoRA 支持 | 低秩适配器权重加载与合并 |
mamba.py | SSM 支持 | Mamba 状态空间模型支持(Codestral Mamba) |
vision_encoder.py | 视觉编码 | Pixtral 多模态视觉编码器 |
main.py | 服务入口 | ChatCompletions API 服务器(OpenAI 兼容) |
关键技术选型:
xformers 提供高效 attention 实现(Flash Attention 2 兼容)依赖精简: 仅依赖 torch、xformers、safetensors、mistral-common 四个核心库,不捆绑不必要的生态依赖。
pip 一键安装(最简):
pip install mistral-inference
Docker 部署:
提供了 deploy/Dockerfile 基于 NVIDIA CUDA 12.1 镜像,支持 AMD64 架构,内置 megablocks(MoE 训练优化)和 vllm-pro 相关依赖。
本地源码安装:
git clone https://github.com/mistralai/mistral-inference
cd mistral-inference
poetry install .
启动 API 服务:
python -m mistral_inference.main --chat-template mistral --tokenizer-dir mistral_assets/Mistral-7B-Instruct-v0.3 --model-dir mistral_assets/Mistral-7B-Instruct-v0.3
服务启动后兼容 OpenAI ChatCompletions API,可直接替换应用层代码。
| 模型 | 参数量 | 类型 | 特点 |
|---|---|---|---|
| Mistral 7B | 7B | Dense Transformer | 首个 Apache-2.0 可商用开源模型 |
| Mixtral 8x7B | 46.7B active | MoE (8 experts, 2 active) | 每 token 只激活 13B 参数,高效强推理 |
| Mistral 8x22B | 141B active | MoE | 超大 MoE,接近 GPT-4 级别能力 |
| Codestral | 22B | 代码专用 | 擅长代码补全、调试、测试生成 |
| Mathstral | 7B | 数学专用 | 强化数学推理与证明 |
| Mistral Small 3.1 | 22B | 高效通用 | 性价比最高的 Mistral 中端模型 |
| Nemo | 12B | 多语言 | 12 种语言优化,法语能力突出 |
| Mistral Large 2 | 123B | 超大通用 | 闭源 API 可用,开源版本待发布 |
| Pixtral 12B | 12B | 多模态 | 支持图像理解(Vision Encoder) |
mistral-inference 的价值在于它是 Mistral 全系列模型的「官方标准答案」——当你想部署 Mistral 7B 或 Mixtral 8x7B 时,最稳妥的路径就是用这个库。它的 KV Cache 分页管理、PagedAttention 借鉴、自研 CUDA 内核等工程优化,代表了当前开源推理引擎的最高水准之一。
同时它保持了极简的代码风格,对学习 LLM 推理工程的同学来说是极好的参考教材:你可以从源码理解 RoPE 如何实现、MoE 的 expert routing 怎么写、LoRA 如何加载合并——这些比看任何论文都直观。
# 安装
pip install mistral-inference
# 下载模型(需要 HuggingFace access token)
huggingface-cli download mistralai/Mistral-7B-Instruct-v0.3
# 命令行推理
mistral-cli chat mistral_assets/Mistral-7B-Instruct-v0.3
# Python API
from mistral_inference.generate import generate
from mistral_inference.model import Transformer
from transformers import AutoTokenizer
model = Transformer.from_folder("mistral_assets/Mistral-7B-Instruct-v0.3")
tokenizer = AutoTokenizer.from_folder("mistral_assets/Mistral-7B-Instruct-v0.3")
out = generate(model, tokenizer, [("hello world")], max_tokens=256)
如果你在部署 Mistral 系列模型,这个库是绕不开的选择。