一个 C++ 工具,通过以太网把 LLM 推理拆分到多台家用设备上,以加快生成速度。
tairov/llama2.mojo
用纯 Mojo 编写的单文件 Llama 2 推理实现,利用 SIMD 向量化与多线程加速。
- Star
- 2,128
- Fork
- 139
- 未关闭 Issue
- 0
- 最近提交
- 上个月
这是什么?
llama2.mojo 完全使用 Mojo 实现 Llama 架构小模型的推理,推理过程不依赖 Python 运行时。项目由作者早先的 llama2.py 移植而来,核心围绕 Mojo 的 SIMD 与向量化原语构建,并借助 parallelize 实现多线程工作池。
项目支持加载 Karpathy 的 stories 系列模型(260K 至 110M 参数)以及 TinyLlama-1.1B-Chat。运行时需要指定模型权重文件、分词器文件和提示词,并可调节温度、生成步数、随机种子及并行线程数等参数。仓库中给出了与 llama2.c、llama.cpp、llama2.py 在 Apple M1 Max 及 x86 机器上的吞吐量对比。
项目基于 MIT 协议开源,运行需要 Mojo 编译器以及提供 parallelize 功能的 MAX 包。
核心功能
- 01以单个 Mojo 源文件实现 Llama 2 架构模型的推理。
- 02利用 SIMD 与向量化原语加速矩阵运算。
- 03支持可配置线程数的多线程推理。
- 04可加载 stories 260K 至 110M 模型及 TinyLlama-1.1B-Chat。
- 05提供提示词、温度、随机种子和生成步数等命令行参数。
适用场景
- 研究 Transformer 前向计算如何映射到 SIMD 与多核 CPU 代码。
- 在本地 CPU 上试验小型 Llama 模型权重。
- 对比同一推理任务在不同语言中的实现性能。
- 通过一个完整且可读的数值程序学习 Mojo 语言。
快速上手
- 1
使用 uv 安装 Mojo 编译器和 MAX
uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]" - 2
克隆仓库
git clone https://github.com/tairov/llama2.mojo.git - 3
下载 stories15M 模型
wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin - 4
运行模型
mojo llama2.mojo stories15M.bin -s 100 -n 256 -t 0.5 -i "Once upon a time"
使用前须知
- 在主机上链接 Mojo 可执行文件需要 C 编译器。
- 依赖特定版本的 Mojo 1.1 工具链和 MAX。
收录于专题
标签
常见问题
- llama2.mojo 是什么?
- 用纯 Mojo 编写的单文件 Llama 2 推理实现,利用 SIMD 向量化与多线程加速。 llama2.mojo 完全使用 Mojo 实现 Llama 架构小模型的推理,推理过程不依赖 Python 运行时。项目由作者早先的 llama2.py 移植而来,核心围绕 Mojo 的 SIMD 与向量化原语构建,并借助 parallelize 实现多线程工作池。
- llama2.mojo 可以免费使用吗?用的什么许可证?
- llama2.mojo 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- llama2.mojo 还在维护吗?
- 半年内有更新。llama2.mojo 最近一次提交是在 2026年9月30日。
- llama2.mojo 适合用来做什么?
- 研究 Transformer 前向计算如何映射到 SIMD 与多核 CPU 代码。 在本地 CPU 上试验小型 Llama 模型权重。 对比同一推理任务在不同语言中的实现性能。 通过一个完整且可读的数值程序学习 Mojo 语言。
- llama2.mojo 怎么安装和运行?
- 使用 uv 安装 Mojo 编译器和 MAX: uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]" 克隆仓库: git clone https://github.com/tairov/llama2.mojo.git 下载 stories15M 模型: wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin 运行模型: mojo llama2.mojo stories15M.bin -s 100 -n 256 -t 0.5 -i "Once upon a time"
- 在哪里获取 llama2.mojo?
- 源代码和安装说明在 GitHub 上:https://github.com/tairov/llama2.mojo
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
3132+9 本周260C++MIT更新于 昨天
用可移植 C99 实现的推理引擎,在单颗 CPU 上运行 2.78 万亿参数的 Kimi K3,无需 GPU 或 BLAS。
1.1万+1113 本周1702CApache-2.0维护活跃更新于 上个月
面向 Google Gemma 模型的轻量级独立 C++ 推理引擎,主要在 CPU 上运行。
7079+9 本周673C++Apache-2.0更新于 22小时前
基于 llama.cpp 的分支,专注 CPU 推理性能,提供更多量化类型,用于本地运行 GGUF 大模型。
3376+24 本周511C++MIT维护活跃更新于 昨天
阿里巴巴开源的高性能大模型推理引擎,用于部署和加速 LLM 服务。
1394+7 本周299PythonApache-2.0更新于 22小时前
面向 LLM 推理系统的高保真模拟器,无需 GPU 即可分析性能、规划部署与验证调度策略。
720+3 本周142PythonMIT更新于 3个月前