今天,我们发布了 torchchat,一个展示如何在笔记本电脑、台式机和移动设备上无缝、高效地运行 Llama 3、3.1 及其他大型语言模型的库。
在我们之前的博文中,我们展示了如何使用原生 PyTorch 2 结合 CUDA 以出色的性能运行 LLM。Torchchat 在此基础上进行了扩展,支持更多目标环境、模型和执行模式。此外,它还提供了导出、量化和评估等重要功能,以易于理解的方式为那些希望构建本地推理解决方案的用户提供了端到端的故事。
该项目分为三个部分:
- Python:Torchchat 提供了一个 REST API,可以通过 Python CLI 调用,也可以通过浏览器访问。
- C++:Torchchat 使用 PyTorch 的 AOTInductor 后端生成适用于桌面设备的二进制文件。
- 移动设备:Torchchat 使用 ExecuTorch 导出 .pte 二进制文件,用于设备上推理。

性能
下表跟踪了 torchchat 在各种配置下 Llama 3 的性能。
Llama 3.1 的数据即将推出。
Llama 3 8B Instruct 在 Apple MacBook Pro M1 Max 64GB 笔记本电脑上的表现
模式 | 数据类型 | Llama 3 8B 每秒令牌数 |
Arm 编译 | float16 | 5.84 |
int8 | 1.63 | |
int4 | 3.99 | |
Arm AOTI | float16 | 4.05 |
int8 | 1.05 | |
int4 | 3.28 | |
MPS Eager | float16 | 12.63 |
int8 | 16.9 | |
int4 | 17.15 |
Llama 3 8B Instruct 在 Linux x86 和 CUDA 上的表现
Intel(R) Xeon(R) Platinum 8339HC CPU @ 1.80GHz with 180GB Ram + A100 (80GB)
模式 | 数据类型 | Llama 3 8B 每秒令牌数 |
x86 编译 | bfloat16 | 2.76 |
int8 | 3.15 | |
int4 | 5.33 | |
CUDA 编译 | bfloat16 | 83.23 |
int8 | 118.17 | |
int4 | 135.16 |
Llama3 8B Instruct 在移动设备上的表现
Torchchat 通过 ExecuTorch 使用 4 位 GPTQ 在三星 Galaxy S23 和 iPhone 上实现了 > 8T/s 的性能。
结论
我们鼓励您克隆 torchchat 仓库并试用它,探索其功能,并分享您的反馈,因为我们将继续赋能 PyTorch 社区在本地和受限设备上运行 LLM。让我们共同释放生成式 AI 和 LLM 在任何设备上的全部潜力。由于我们仍在快速迭代,请在发现问题时提交问题。我们还邀请社区在广泛领域做出贡献,包括添加更多模型、目标硬件支持、新的量化方案或性能改进。祝您实验愉快!