昇腾自研大模型推理引擎
MindIE LLM
📢 Latest News
- [2025/12] MindIE LLM 正式宣布开源并面向公众开放! 会议日历
🚀 简介
MindIE LLM(Mind Inference Engine for Large Language Models)是 MindIE 推理引擎中的大语言模型(Large Language Model,LLM)推理组件,面向昇腾(Ascend)系列 AI 加速器提供通用的大模型推理能力。它同时提供面向多并发请求的调度机制,并支持 Continuous Batching、PagedAttention、FlashDecoding 等推理加速特性,以提升推理吞吐并降低端到端时延,满足高性能推理场景需求。
MindIE LLM 主要对外提供 C++ 与 Python API(Application Programming Interface),包括大模型推理、并发请求调度和 LLM Manager API 等,便于用户在业务系统中集成与调用。
MindIE LLM 的整体架构如下图所示:

- Engine:负责将scheduler,executor,worker等协同串联起来,利用组件间的协同,实现多场景下请求的推理处理能力。
- Scheduler: 在1个DP域内,将多条请求在Prefill或者Decode阶段组成batch,实现计算和通信的充分利用。
- Block manager:管理在DP内的kv资源,支持池化后,支持对offload的kv位置感知。
- Executor:将调度完成的信息分发给Text Generator模块。支持跨机、跨卡的任务下发。
-
Server:推理服务层,对外提供模型推理的服务化能力与统一接入能力。Endpoint 面向推理服务开发者提供 RESTful 接口,同时,Endpoint 负责推理服务化协议与接口的封装,并兼容 Triton/OpenAI/TGI/vLLM 等主流推理框架的请求接口。
-
LLM Manager:负责请求状态管理与任务调度。其基于调度策略将用户请求组成 Batch,并通过统一性内存池管理键值缓存(KV Cache)。LLM Manager 汇总并返回推理结果,同时提供状态记录与查询接口。
- LLM Manager Interface:MindIE-LLM 推理引擎对外暴露的接口层,用于对接上层服务调用与能力集成。
- Engine:负责对 Scheduler、Executor、Worker 等组件进行编排与串联。通过组件间的协同,Engine 为不同推理场景提供统一的请求处理与执行能力。
- Scheduler:在一个 DP(Data Parallel,数据并行)域内,将多条请求在 Prefilling(预填充)或 Decoding(解码)阶段组成 Batch。该策略用于提升计算与通信资源的利用率,从而提高整体吞吐与效率。
- Block Manager:管理 DP 域内的 KV Cache 资源,并支持池化(Pooling)管理以提升内存复用效率。同时,Block Manager 支持对 Offload(卸载到 Host 端或外部存储)的 KV Cache 进行位置感知与索引管理。
- Executor:将调度阶段生成的执行计划与元信息下发至 Text Generator 模块。Executor 支持分布式推理场景下的任务派发,包括跨机与跨卡执行。
-
Text Generator:负责模型配置、初始化与加载,并实现自回归推理流程及结果后处理。其向 LLM Manager 提供统一的自回归推理接口,并支持并行解码能力的插件化扩展与运行。
- Preprocess:将调度后的任务转换为模型可直接消费的输入表示。
- Generator:对模型运行过程进行抽象封装,覆盖前向计算、状态更新以及自回归式解码等核心执行逻辑。
- Sampler:基于模型输出的 Logits 完成 Token 选择(如贪心搜索、束搜索、Top-p 采样、基于温度的采样等策略)、停止条件判断,并负责上下文状态的更新与必要的清理(如缓存回收)。
-
Modeling:提供经过性能调优的算子模块与内置模型实现,支持 ATB Models(Ascend Transformer Boost Models)。
-
内置模块包括 Attention、Embedding、ColumnLinear、RowLinear、MLP(Multi-Layer Perceptron,多层感知机)与 MoE(Mixture of Experts)。这些模块支持对权重(Weight)进行在线 Tensor 切分与加载。
-
内置模型基于上述模块完成完整网络构建与组合,并支持 Tensor 切分。同时,内置模型支持多种量化方式。用户也可参考示例,使用内置模块自行构建并定制模型结构。
-
模型完成组网后将进入编译与优化流程,最终生成可在昇腾 NPU 设备上进行加速推理的可执行计算图。
-
📁 目录结构
├── mindie_llm # Python 推理框架主模块
│ ├── connector # 请求接入层
│ ├── text_generator # 核心推理引擎
│ │ ├── adapter # 后端适配
│ │ ├── plugins # 高阶特性插件
│ │ │ ├── prefix_cache # Prefix Cache (KV 缓存复用)
│ │ │ ├── splitfuse # SplitFuse
│ │ │ ├── memory_decoding # Memory Decoding
│ │ │ ├── la # Lookahead Decoding
│ │ ├── cpp # C++ 扩展(Sampler/Prefix Tree/Memory Bridge)
│ ├── modeling # 模型封装抽象
│ │ ├── model_wrapper/atb # ATB 模型后端支持
│ ├── utils # 工具模块:日志/张量/Profiling/验证等
├── examples # 示例代码
│ ├── atb_models # ATB 模型集成与打包入口
│ │ ├── atb_framework # ATB 底层框架
│ │ ├── atb_llm # 面向 LLM 的 ATB 封装
│ │ ├── examples # 运行示例
│ │ ├── scripts # 构建脚本
│ │ ├── tests # 单元/集成测试
│ │ ├── setup.py # Python 包构建入口
│ │ ├── CMakeLists.txt # CMake 构建配置
├── docs # 项目文档介绍
├── src # C++ 核心引擎
│ ├── engine # LLM 引擎的主逻辑(调度/执行)
│ ├── scheduler # 调度器(FCFS/PDDS/Layerwise)
│ ├── block_manager # KV Cache 块管理(LRU/Prefix Cache/CoW)
│ ├── llm_manager # Python/C++ 桥接 API
│ ├── server # 服务端(gRPC/HTTP 接入端点)
│ ├── utils # 基础工具(共享内存/加密/日志/ID 生成等)
│ ├── include # 对外头文件接口
├── scripts # 构建与部署脚本
├── tools # 辅助工具
│ ├── llm_manager_python_api_demo # Python API 使用示例
├── tests # 测试
├── ...
├── CMakeLists.txt # CMake 构建配置
├── README.md
├── requirements.txt # Python 安装依赖
📢 版本说明
| MindIE 软件版本 | CANN 版本兼容性 |
|---|---|
| 2.2.RC1 | 8.3.RC2 |
⚡️ 环境部署
MindIE LLM 安装前的相关软硬件环境准备,以及安装步骤,请参见安装指南。
⚡️ 快速入门
📝贡献声明
- 提交错误报告:如果您在MindIE LLM中发现了一个不存在安全问题的漏洞,请在MindIE LLm仓库中的Issues搜索,以防该漏洞被重复提交,如果找不到漏洞可以创建一个新的Issues。如果发现了一个安全问题请不要将其公开,请参阅安全问题处理方式。提交错误报告时应包含完整信息。
- 安全问题处理:本项目中对安全问题处理的形式,请通过邮箱通知项目核心人员确认编辑。
- 解决现有问题:通过查看仓库的Issues列表可以发现需要处理的问题信息,可以尝试解决其中的某个问题。
- 如何提出新功能:请使用Issues的Feature标签进行标记,我们会定期处理和确认开发。
- 开始贡献:
a. Fork本项目的仓库。
b. Clone到本地。
c. 创建开发分支。
d. 本地自测,提交前请通过所有的单元测试,包括为您要解决的问题新增的单元测试。
e. 提交代码。
f. 新建Pull Request。
g. 代码检视,您需要根据评审意见修改代码,并重新提交更新。此流程可能涉及多轮迭代。
h. 当您的PR获取足够数量的检视者批准后,Committer会进行最终审核。
i. 审核和测试通过后,CI会将您的PR合并入到项目的主干分支。
更多贡献相关文档请参见共享指南。
📝 学习文档
🚀 贡献声明
💖 免责声明
版权所有© 2025-2026 MindIE Project.
您对 "本文档" 的复制、使用、修改及分发受知识共享(Creative Commons,CC)署名 —— 相同方式共享 4.0 国际公共许可协议(以下简称 "CC BY-SA 4.0")的约束。为了方便用户理解,您可以通过访问 https://creativecommons.org/licenses/by-sa/4.0/ 了解 CC BY-SA 4.0 的概要(但不是替代)。关于 CC BY-SA 4.0 的完整协议内容,您可以访问如下网址获取:https://creativecommons.org/licenses/by-sa/4.0/legalcode。