PyTorch最近发布TorchChat,TorchChat允许在本地台式机、笔记本电脑或移动设备上下载和运行大型语言模型。会不会让你想到什么,没错就是Ollama。TorchChat是一个适应性强的框架,旨在提高各种硬件平台的LLMs效率,有助于在各种设备上有效地运行本地模型。TorchChat通过支持 GGML 生态系统中常用的GGUF文件来扩展其兼容性。
Torchchat整体而言,主要特色如下:
-
支持流行 LLMs:直接在本地设备上运行最先进的模型,包括 Llama 3、Llama 2、Mistral
-
多种执行模式:支持Python(Eager、Compile)和原生(AOT Inductor、ExecuTorch)<可执行文件>模式
-
跨平台兼容性:在 Linux(x86)、macOS(M1/M2/M3)、Android 和 iOS 上流畅运行
-
高级量化支持:通过各种量化技术减少内存占用并加速推理
-
灵活导出能力:轻松准备模型以在桌面和移动平台上部署
-
内置评估框架:使用内置评估工具评估模型准确性和性能
上图为整体的交互模式,Torchchat的核心是一个REST API,可以通过命令行界面 (CLI) 或浏览器访问。这使得可以轻松集成到现有的Python工作流程和快速原型设计中。
TorchChat使用AOT Inductor为PyTorch推理程序创建独立的、可分发的可执行文件,特别是以动态库的形式,不依赖于Python和PyTorch。这能满足生产环境中部署模型的需求,即能够保证模型运行时的稳定性,确保它不受到生产环境系统的更新和升级影响,同时确保模型无需重新编译运行。同时使得推理任务能够实现接近原生的性能。
AOT Inductor专注于通过高效的二进制格式来优化模型部署,这些格式可以快速加载并准备执行,从而解决与TorchScript等文本格式相关的限制和开销。它利用代码生成优化技术来提高CPU和GPU性能,减少开销且提高执行速度。
对于移动设备执行,TorchChat利用ExecuTorch。与AOT Inductor类似,ExecuTorch优化模型以便在移动或嵌入式设备上执行。通过生成PTE来执行模型。这为具有低延迟和高隐私性的 AI 驱动的移动应用程序开辟了可能性。
Torchchat的评估模式可用于评估LLM中各种任务的性能。对于新模型的研究人员而言,这是加分项。通过下面的几行命令快速启动:
git clone https://github.com/pytorch/torchchat.git
cd torchchat
python3 -m venv .venv
source .venv/activate
./install_requirements.sh
命令行模式为:
python3 torchchat.py chat llama3.1
可视化web模式将启动一个基于Web的UI,用于与Llama 3.1模型进行交互,提供更直观和用户友好的体验。
streamlit run torchchat.py -- browser llama3.1
下表展示了Llama 3 8B Instruct在M1 Max和64GB RAM的Apple MacBook Pro上的性能,MPS显示出明显的加速。
MPS (Metal Performance Shaders) 是Apple提供的一个图形和计算框架,用于利用GPU进行高效的计算确保最佳性能。
Torchchat在移动设备上的表现同样令人印象深刻。在三星Galaxy S23和 iPhone上通过ExecuTorch使用4 位GPTQ量化实现每秒超过8个令牌。这种性能水平可在现代智能手机上实现响应迅速的设备端 AI 体验。