作为一名数据工程师,我对测试一些生成式 AI 模型并在本地安装/运行模型很感兴趣。大型语言模型 (LLM) 和视觉语言模型 (VLM) 是最有趣的。OpenAI 提供了 ChatGPT 网站和移动应用程序。微软创建了 Windows 11 Copilot 供我们使用。但是,我们无法控制哪些数据被发送到互联网并存储在他们的数据库中。他们的系统不是开源的,就像神秘的黑匣子一样。

NSDT工具推荐: Three.js AI纹理开发包 – YOLO合成数据生成器 – GLTF/GLB在线编辑 – 3D模型格式在线转换 – 可编程3D场景编辑器 – REVIT导出3D模型插件 – 3D模型语义搜索引擎 – Three.js虚拟轴心开发包 – 3D模型在线减面 – STL模型在线切割

1、LLM & VLM模型选择和评测环境

一些慷慨的公司(如 Meta 和 Mistral AI)或个人开源了他们的模型,活跃的社区逐层构建工具,以便我们可以轻松地在家用电脑上运行 LLM 和 VLM。本文(在 Raspberry Pi 上运行本地 LLM 和 VLM)测试了具有 8GB RAM 的 Raspberry Pi 5。它是一台信用卡大小的小型单板计算机 (SBC)。我希望找到更便宜的计算机/解决方案或虚拟机来测试生成令牌或字符的性能,以便它能为我或普通大众提供物有所值的服务。应该考虑的是文本输出速度、文本输出质量和金钱成本。

评估生成的内容由其他研究方完成。就像这个提到的 mistral-7b 在知识、推理和理解方面优于 llama2-13b。这就是为什么我在 LLM 测试中包含 mistral 和 llama2 的原因。

Ollama 目前可以在 macOS、Linux 和 Windows 上的 WSL2 上运行。使用 WSL2 不易控制内存使用率和 CPU 使用率,因此我排除了 WSL2 的测试。生态系统中可以下载多个 LLM 和 VLM 模型。这就是为什么我使用 Ollama 作为测试平台,在多个系统上使用不同的 AI 模型进行基准测试。

Ollama安装非常简单。在终端中,运行以下命令即可:

curl https://ollama.ai/install.sh | sh

我构建了一个工具来测试不同系统上 Ollama LLM 生成的 token/sec 的吞吐量。代码 (ollama-benchmark) 用 Python3 编写,并根据 MIT 许可开源。如果你觉得应该添加更多功能或修复错误,请告诉我。文本输出质量可能不容易衡量,因此我在此实验中专注于文本输出速度。(token/s 越高越好)

用于测试的机器或虚拟机的技术规格:

Raspberry Pi 5,8GB RAM((Ubuntu 23.10 64 位操作系统)四核 64 位 Arm CPU)Ubuntu 23.10 64 位操作系统,4 核处理器和 8GB RAM,通过安装在 Windows 11 笔记本电脑主机上的 VMware Player 17.5。Ubuntu 23.10 64 位操作系统,8 核处理器和 16GB RAM,通过安装在 Windows 11 桌面主机上的 VMware Player 17.5。Apple Mac mini(Apple M1 芯片)(macOS Sonoma 14.2.1 操作系统)8 核 CPU(4 个性能核心和 4 个效率核心)、8 核 GPU、16GB RAMNVIDIA T4 GPU(Ubuntu 23.10 64 位操作系统)、8 vCPU、16GB RAM

为了使比较更具说服力和一致性,Raspberry Pi 5 安装了 Ubuntu 23.10 64 位操作系统。操作系统安装步骤可参见此视频 :

视频 1:Raspberry Pi 5 安装 Ubuntu 23.10 64 位操作系统

在 Ollama 网站的 llama2 模型页面中,提到了以下内容。

内存要求:

7b 参数模型通常需要至少 8GB 的​ RAM13b 参数模型通常需要至少 16GB 的 RAM

我们要测试的模型:

mistral:7b (LLM)llama2:7b (LLM)、llama2:13b (LLM)llava:7b、llava:13b(图像转文本、图像问答)(VLM)

从内存限制来看,以下是我想在不同机器上测试性能的模型:

示例提示存储在 benchmark.yml 中:

version: 1.0 modeltypes: type: instruct models: model: mistral:7b prompts: prompt: Write a step-by-step guide on how to bake a chocolate cake from scratch. keywords: cooking, recipe prompt: Develop a python function that solves the following problem, sudoku game keywords: python, sudoku prompt: Create a dialogue between two characters that discusses economic crisis keywords: dialogue prompt: In a forest, there are brave lions living there. Please continue the story. keywords: sentence completition prompt: Id like to book a flight for 4 to Seattle in U.S. keywords: flight booking

每一轮,使用 5 个不同的提示来评估输出 token/s。记录 5 个数字的平均值。我首先运行了 Raspberry Pi 5,这是录制的视频 :

视频 2:Raspberry Pi 5 运行 ollama-benchmark

2、基准测试结果

不同模型在不同系统上 token/s 的基准测试总结如下:

表 3:运行 ollama-benchmark 的机器/虚拟机吞吐量性能结果

关于 LLMs & VLM 推理吞吐量性能结果的思考:

从上面的视频中我们可以看到,计算利用率主要发生在 GPU 核心和 GPU VRAM 上。要更快地运行推理,请选择功能强大的 GPU。假设人类与 AI 模型之间的舒适交互伴随着 7 个 token/秒的吞吐量流速,13 个 token/秒的速度对于大多数人来说太快了,如视频 6 所示。未来支持 AI 的操作系统(Copilot)将至少拥有 16GB 的 RAM。AI 的输出有意义/值得信赖,不会太快,也不会太慢。这部分也与微软宣布的消息一致:微软为 AI PC 设置了 16GB 的默认 RAM — 机器还需要 40 TOPS 的 AI 计算:报告。

3、结束语

在本地运行 LLM 不仅可以增强数据安全性和隐私性,还可以为专业人士、开发人员和爱好者打开一个充满可能性的世界。

有了这个吞吐量性能基准,我不会使用 Raspberry Pi 5 作为 LLM 推理机,因为它太慢了。我想说在 Apple Mac mini M1(16GB RAM)上运行 LLM 和 VLM 就足够了。如果你想要更强大的机器来更快地运行 LLM 推理,那就去租用带有 GPU 的云虚拟机吧。

原文链接:本地LLM & VLM性能评测 – BimAnt

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注