如何在家用普通桌面系统运行大型语言模型
动手实践:随着所有关于大规模机器学习训练集群和人工智能 PC 的讨论,你会认为你需要某种特殊的硬件来在家里玩文本和代码生成的大型语言模型(LLMs)。
实际上,您正在阅读本文的桌面系统很有可能能够运行各种 LLMs,包括像 这样的聊天机器人或像 这样的源代码生成器。
事实上,使用 、LM Suite 和 Llama.cpp 等公开可用的工具,让这些模型在您的系统上运行相对容易。
为了简单和跨平台兼容性,我们将研究 ,它一旦安装,在 、Linux 和 Mac 上的工作方式或多或少相同。
关于性能、兼容性和 AMD GPU 支持的一句话:
一般来说,像 或 Llama 2 这样的大型语言模型在专用加速器下运行效果最好。数据中心运营商在 10,000 个或更多的集群中购买和部署 GPU 是有原因的,尽管您需要的此类资源只是其中的一小部分。
为 和 Apple 的 M 系列 GPU 提供原生支持。具有至少 4GB 内存的 GPU 应该可以工作。我们测试了 12GB RTX 3060,但我们建议 M 系列 Mac 至少配备 16GB 内存。
Linux 用户将需要 最新的专有驱动程序,并且可能首先安装 CUDA 二进制文件()。
如果您使用的是 7000 系列 GPU 或更新版本,AMD 提供了有关在系统 LLM 上运行的完整指南()。
好消息是,如果您没有支持的显卡, 仍然可以在兼容 AVX2 的 CPU 上运行,尽管比您拥有支持的 GPU 要慢得多。虽然建议使用 16GB 内存,但您可以通过选择量化模型来获得更少的内存——稍后会详细介绍。
2024 年 6 月 6 日更新:自本文发布以来, 已开始为部分 AMD 6000 和 7000 系列显卡推出原生支持。您可以在此处找到支持的 AMD 显卡列表()。
安装
无论您的基本操作系统如何,安装 都非常简单。它是开源的()。
对于那些运行 或 Mac OS 的用户,请前往 下载和安装任何其他应用程序一样。
对于那些运行 Linux 的人来说,它甚至更简单:如果你需要的话,你可以在这里找到手动安装说明()——然后你就可以开始了。
安装您的第一个模型
无论您的操作系统如何,使用 基本上都是一样的。 建议从 Llama 2 7B 开始,这是一个基于 70 亿参数转换器的神经网络,但在本指南中,我们将看看 7B,因为它非常强大,并且最近几周引起了一些争议。
首先打开 或终端仿真器,然后执行以下命令,以交互式聊天模式下载并启动模型。
ollama run mistral下载后,您将进入一个聊天提示,您可以在其中开始与模型进行交互,就像 、 或 一样。
LLMs和 7B 一样,在这款 2 岁的 M1 Max Pro 上运行得非常好
如果您没有得到任何东西,您可能需要先从 上的开始菜单或 Mac 上的应用程序文件夹启动 。
模型、标签和量化
7B 只是 LLMs 之一,包括该模型的其他版本,可以使用 访问。您可以在此处找到完整列表以及运行每个列表的说明(),但一般语法如下:
ollama run model-name:model-tag模型标签用于指定要下载的模型版本。如果你不这样做, 会假设你想要最新版本。根据我们的经验,这往往是模型的 4 位量化版本。
例如,如果您想在 FP16 上运行 Meta 的 7B,它看起来像这样:
ollama run llama2:7b-chat-fp16但在尝试之前,您可能需要仔细检查您的系统是否有足够的内存。我们之前的 示例使用了 4 位量化,这意味着模型每 10 亿个参数需要半 GB 的内存。别忘了:它有 70 亿个参数。
量化是一种用于通过将模型的权重和激活转换为较低精度来压缩模型的技术。这使得 7B 可以在 4GB 的 GPU 或系统 RAM 内运行,通常对输出质量的牺牲最小,尽管您的里程可能会有所不同。
上面使用的 Llama 2 7B 示例以半精度 (FP16) 运行。因此,您实际上需要每十亿个参数 2GB 的内存,在这种情况下,这刚刚超过 14GB。除非您拥有具有 16GB 或更多 vRAM 的较新 GPU,否则您可能没有足够的资源以该精度运行模型。
管理
使用 管理、更新和删除已安装的模型对于以前使用过 CLI 等工具的人来说应该感觉宾至如归。
在本节中,我们将介绍一些您可能想要执行的更常见的任务。
若要获取已安装型号的列表,请运行:
ollama list若要删除模型,请运行:
ollama rm model-name:model-tag若要拉取或更新现有模型,请运行:
ollama pull model-name:model-tag可以通过运行以下命令找到其他 命令:
ollama --help正如我们之前提到的, 只是运行和测试本地 LLMs 的众多框架之一。如果你遇到这个麻烦,你可能会发现其他人的运气更好。