PyTorch 团队 撰写

今天,我们发布了 torchchat,这是一个库,展示了如何在笔记本电脑、台式机和移动设备上无缝且高性能地运行 Llama 3、3.1 及其他大型语言模型。

在我们之前的博客文章中,我们 展示了 如何使用原生的 PyTorch 2 通过 CUDA 高性能地运行 LLM。Torchchat 在此基础上扩展,增加了更多目标环境、模型和执行模式。此外,它还以易于理解的方式提供了导出、量化和评估等重要功能,为那些想要构建本地推理解决方案的人提供了一个端到端的流程。

您会发现项目分为三个主要部分

  • Python:Torchchat 提供了一个 REST API,该 API 可以通过 Python CLI 调用,也可以通过浏览器访问
  • C++:Torchchat 使用 PyTorch 的 AOTInductor 后端生成桌面友好的二进制文件
  • 移动设备:Torchchat 使用 ExecuTorch 导出一个 .pte 二进制文件,用于设备上推理

torchchat schema

性能

下表记录了 torchchat 在各种配置下针对 Llama 3 的性能。
Llama 3.1 的数据即将推出。

Llama 3 8B Instruct 在 Apple MacBook Pro M1 Max 64GB 笔记本电脑上

模式 DType Llama 3 8B Tokens/秒
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 + 180GB Ram + A100 (80GB)

模式 DType Llama 3 8B Tokens/秒
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 在 Samsung Galaxy S23 和 iPhone 上达到 > 8 T/秒。

结论

我们鼓励您克隆 torchchat 代码库并尝试一下,探索其功能,并在我们继续赋能 PyTorch 社区在本地和资源受限设备上运行 LLM 之际分享您的反馈意见。让我们共同释放生成式 AI 和 LLM 在任何设备上的全部潜力。如果您发现问题,请提交 issue,因为我们仍在快速迭代。我们还邀请社区在广泛的领域做出贡献,包括增加更多模型、目标硬件支持、新的量化方案或性能改进。实验愉快!