源码简介
这套源码属于本地大模型推理引擎类项目,核心是用纯 C 语言实现的一个能在普通电脑上跑超大规模模型的推理内核。项目代号为 colibrì(蜂鸟),主打”用小机器跑大模型”:把 GLM-5.2 这个 744B 参数的 MoE 模型,通过把频繁变动的专家权重放在磁盘、按需流式读入、常驻部分留在内存的方式,在约 25GB 内存的消费级设备上跑起来。仓库里除了 C 推理内核,还带有 OpenAI 兼容的 API 服务、一个 React 网页对话界面,以及用 Tauri 打包的桌面端壳,适合想研究 LLM 推理实现、或需要本地离线推理能力的开发者下载学习和二次开发。
适用场景
- 本地/离线运行大语言模型,数据不出本机,适合对隐私和合规有要求的场景
- 学习 LLM 推理引擎实现原理(MLA 注意力、MoE 专家流式加载、量化内核、推测解码)
- 基于开源代码二次开发定制推理工具、桌面客户端或对接自有后端
技术栈与运行环境
- 前端:React 19 + TypeScript + Vite + Tailwind CSS(web/ 目录);Tauri v2 桌面壳(Rust,desktop/ 目录)
- 后端/引擎:纯 C 单文件引擎 glm.c(零运行时依赖,OpenMP + AVX2 指令集),可选 CUDA 后端 backend_cuda.cu
- 数据库:无(纯内存/文件引擎,不依赖任何数据库)
- 运行环境:Linux / macOS / Windows 11(MinGW-w64);需 gcc 带 OpenMP 与 AVX2,≥16GB 内存,本地 NVMe 存放约 370GB 的 int4 模型文件
- 其他依赖:Python 3 仅用于一次性的 FP8→int4 权重转换器和测试;OpenAI 兼容服务仅用 Python 标准库,无第三方包
功能亮点
- 纯 C 单机推理 GLM-5.2 744B MoE:glm.c 约 2400 行实现完整前向计算,无 BLAS、无 Python 运行时、无 GPU 也可跑(Makefile 默认零依赖构建)
- 专家权重磁盘流式加载:21504 个路由专家常驻磁盘,按需读入并带 LRU 层缓存,引擎启动时按系统可用内存自动规划专家缓存上限,避免 OOM
- OpenAI 兼容 API 服务:openai_server.py 用标准库提供 /v1/chat/completions、/v1/models 等接口,支持 SSE 流式、温度/核采样与请求排队,可直接对接任意 OpenAI 协议客户端
- MTP 推测解码与语法约束输出:内置 GLM-5.2 多 token 预测头做推测解码,并支持 GBNF 语法强制草稿,适合 JSON/函数调用等结构化输出
- React 网页端与 Tauri 桌面端:web/ 是纯 API 客户端聊天界面(含健康检查、模型选择、温度/最大 token/思考开关/cache_slot 控件),desktop/ 用 Tauri 包成原生窗口
- 跨平台与离线量化转换:c/Makefile 分 macOS/Linux/Windows 三套编译分支;convert_fp8_to_int4.py 支持分片下载并断点续传地把 FP8 权重转成引擎用的 int4 容器
安装与部署提示
1. 克隆仓库后进入 c/ 目录运行 ./setup.sh,脚本会检查 gcc/OpenMP 并构建引擎、跑架构自测
2. 准备模型权重:从 HuggingFace 下载已转换的 GLM-5.2 int4 权重(约 370GB),或运行 ./coli convert 离线把 FP8 转 int4(需 pip install torch safetensors huggingface_hub numpy)
3. 启动推理:用 COLI_MODEL=/path/to/model ./coli chat 进入交互聊天;用 ./coli serve 启动 OpenAI 兼容服务(默认 127.0.0.1:8000)
4. 前端接入:cd web && npm ci && npm run dev 启动网页端并连接本地服务;桌面端用 cargo tauri dev(需先装 tauri-cli v2)
5. 资源规划:coli plan / coli doctor 可在加载模型前检查磁盘、内存、VRAM 是否足够,避免盲目启动
截图与演示说明
常见问题
运行前需要准备哪些硬件和模型?
最低需要 16GB 以上内存、一块本地 NVMe 固态(用于存放约 370GB 的 int4 模型文件)。仓库本身不含模型权重,需自行从 HuggingFace 获取已转换的 GLM-5.2 int4 权重,或用自带的转换器离线处理 FP8 源权重。冷启动阶段磁盘随机读压力较大,建议用高速 NVMe。
适合二次开发吗?
适合。推理内核是单文件 C(glm.c 约 2400 行)加若干小头文件,结构清晰易读;Web 与桌面端均走标准 OpenAI 协议,可对接任意兼容后端;项目以 Apache 2.0 授权发布,方便在遵守许可证前提下修改和再分发。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
补充说明:经常规源码检查,未发现加密/混淆文件、WebShell 或隐蔽后门;脚本中出现的 subprocess、urlopen 均为正常构建、启动引擎二进制以及用户主动触发的模型权重下载逻辑。需注意以下几点:
- 授权与版权:引擎为 Apache 2.0 协议,GLM-5.2 权重由 Z.ai 以 MIT 协议发布,商用或再分发前请自行确认授权与版权
- 模型权重来自外部 HuggingFace,仓库不含权重,需合规获取并自备约 370GB 磁盘空间
- OpenAI 兼容服务默认仅绑定 127.0.0.1,对外暴露前务必设置 COLI_API_KEY 环境变量;API key 为内存态,不要硬编码进前端代码
下载说明
源码仅供学习研究、本地测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。本项目为 Apache 2.0 开源推理引擎,不包含任何模型权重文件,运行所需的 GLM-5.2 int4 权重需用户自行从 HuggingFace 等合规渠道获取。
Github:https://github.com/JustVugg/colibri
