qwen3.c
约1000行纯C代码实现Qwen3大模型推理,零依赖无需GPU,兼具教育价值与实用本地推理能力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
约1000行纯C代码实现Qwen3大模型推理,零依赖无需GPU,兼具教育价值与实用本地推理能力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:qwen3.c 项目 Logo
想象这样一个场景:你是一名计算机科学专业的学生,刚啃完斯坦福 CS224N 的 Transformer 课件,满脑子都是"多头注意力""位置编码""残差连接"这些概念,却始终觉得缺了点什么——缺少那种"真正跑起来"的实感。传统的 LLM 推理框架动辄 thousands of lines of Python + CUDA + 各种依赖,装都装不明白,更别说读懂了。
**qwen3.c 就是为解决这个痛点而生的。**它用大约 1000 行纯 C 代码(没有任何外部依赖)实现了一个完整可运行的 Qwen3 架构大模型推理引擎,MacBook 笔记本上直接编译运行,不需要 GPU,不依赖任何库。
这个项目的源头可以追溯到 AI 界著名的"教学代码"传统。2023 年,Andrej Karpathy 发布了 llama2.c,用单文件 C 代码实现 LLaMA 2 推理。但 LLaMA 2 架构距今已有两年,在 AI 领域已显老旧。qwen3.c 接过 llama2.c 的火炬,在保持极致简洁的同时,升级支持 Qwen3 前沿架构——它既是学习大模型推理原理的绝佳教材,也是一个真正可用的本地推理工具。
从学习角度,Python 深度学习框架是黑盒工业级实现,代码量庞大,学生根本无法看到最核心的矩阵乘法是怎么一步步从数学公式变成指令的。而 qwen3.c 的 runq.c 不到 30KB,所有矩阵运算都是裸的 for 循环配手写的 int8 量化——读完这段代码,你会真正理解"输入 token 是怎么变成下一个 token 的"。
从使用角度,qwen3.c 支持 Qwen3-4B、DeepSeek-R1-0528-Qwen3-8B 等前沿模型,在普通多核 CPU 上运行。Q8_0 量化方案在质量和性能之间取得了良好的平衡。特别值得一提的是,qwen3.c 支持思维链(Thinking)模型——即带显式推理步骤的模型(如 DeepSeek-R1 系列)。
qwen3.c 的核心代码 runq.c 完整实现了 Qwen3 架构的关键组件:
代码中采用了 int8 对称量化(per-group 量化):权重以 int8_t 存储,每组 64 个值配一个 float 缩放因子。推理时实时反量化回 float 进行计算。这种量化方式不需要特殊硬件支持,普通 CPU 就能跑,同时将模型体积压缩到 FP16 的约一半。
export.py 是 HuggingFace 模型到 qwen3.c 格式的转换器。核心流程为:从 HuggingFace 下载原始 safetensors 模型 → 提取各层权重 → 执行 Q8_0 量化 → 生成 .bin 文件。转换后的模型文件通过内存映射(mmap)直接读取,零拷贝加载。
项目提供了多种 Makefile 构建目标:
| 目标 | 特点 |
|---|---|
make | 最基础版本,兼容性最好 |
make openmp | 启用 OpenMP 多线程,性能最佳 |
make fast | 激进编译器优化(-Ofast) |
make debug | 保留调试符号,可 valgrind 分析 |
make win64 | 交叉编译 Windows 可执行文件 |
多线程模式下通过 OMP_NUM_THREADS 环境变量控制线程数,充分利用多核 CPU 算力。
安装门槛极低——只要有 gcc/clang + Python 环境即可。完整流程:
git clone https://github.com/adriancable/qwen3.c
cd qwen3.c
make openmp # 编译(不到1分钟)
pip install -r requirements.txt
python export.py Qwen3-4B.bin Qwen/Qwen3-4B # 下载+转换模型(10分钟)
OMP_NUM_THREADS=4 ./runq Qwen3-4B.bin # 运行推理
命令行交互界面简洁,支持多语言(因为是字节级分词)。
局限性也要说明白:
qwen3.c 的存在本身就是一个信号:LLM 推理的技术门槛正在被不断拉低。从教育价值来看,它比理论教科书更具体,比 PyTorch 官方教程更透明。对于想要真正理解 Transformer 内部运作机制的开发者,这是一个不可多得的起点。
从实用价值来看,它是一个可以随时运行的本地推理工具——不需要 API Key,不需要联网,不需要 GPU。隐私敏感场景下(比如处理公司内部文档),这种完全本地化的方案有其独特价值。
qwen3.c 当前 star 数 183,fork 22,虽然体量不大,但社区活跃度稳定。它代表了开源 AI 领域一股重要力量:让前沿模型"可读、可学、可用"。
项目速览