在 iPad 或 iPhone 上本机离线运行大语言模型 [译]

Maciek Jędrzejczyk

亚马逊网络服务 (AWS) 高级云基础架构架构师

2023 年 12 月 10 日

本教程将指导您如何在苹果设备上本地安装一个类似于 ChatGPT 的大语言模型(LLM)。

这篇指南是根据我个人的 iPad Pro 第 5 代制作的,该设备配备了 M1 芯片、8GB RAM 和 128GB 的本地存储空间。我将使用 llmfarm.site 作为客户端应用来运行下载的模型。此外,我选择了在 huggingface.co 上可获取的预训练 Mistral-7B 模型,但这份指南也适用于您选择的任何其他模型。

如果您想了解决策背后的详细思考过程和理由,请滚动到文章的最后部分。

步骤 0: 准备工作

  • 一台至少配备 8GB RAM 的 iPad 或 iPhone
  • 至少 8GB 的可用本地存储空间

步骤 1: 安装 Testflight 和 LLMFarm

为了在我们的本地服务器上运行大语言模型 (LLM),我们需要使用 LLMFarm,这是一个支持 Apple Silicon 技术的开源客户端。鉴于 LLMFarm 还在开发阶段,我们必须使用 Testflight 这个应用程序。首先,我们直接访问 LLMFarm 官网,然后选择“通过 TestFlight 安装”。

重定向到 TestFlight 页面后,点击“在 App Store 查看”,以便下载并安装 TestFlight:

按照常规方式安装 TestFlight:

完成后,返回 TestFlight 页面,按照步骤 2 操作,安装 LLMFarm:

步骤 2:下载预训练模型

在这个教程里,我会选用一个已经在 huggingface.co 上准备好的预训练 Mistral-7B 模型。想深入了解这个模型的话,可以阅读文章底部的相关内容。或者,你可以直接访问 TheBloke 的仓库,下载一个现成的模型:https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF

在可用模型的列表中找到 mistral-7b-instruct-v0.1.Q4_K_M.gguf 文件,并点击下载。需要注意的是,这个模型大约需要 4GB 的存储空间:

下载后,请确认模型文件保存的具体位置,因为在接下来的步骤中,你将需要告诉 LLMFarm 这个位置:

步骤 3: 如何在 LLMFarm 中设置 Mistral-7B 模型

首先回到 LLMFarm 应用程序,点击屏幕底部的“设置”选项,随后在左边的菜单中选择“模型”:

接下来,指定模型下载的位置。需要注意的是,LLMFarm 会将模型复制到它自己的文件夹里,这可能会在您的设备上额外占用约 4GB 的空间。在选择了模型之后,您可以将原文件从下载位置删除。

模型上传完成后,您可以在列表中看到它,如下图所示:

步骤 4:设置聊天界面:

我们将开始创建一个聊天界面,这样就可以与我们的大语言模型进行交流了。在 LLMFarm 应用的左下角找到并点击“Chats”选项,然后选择“开始新聊天”。

接下来,在聊天界面的设置部分点击“选择模型”:

然后选择“从文件导入”选项,选取我们之前已经添加到 LLMFarm 库中的模型:

现在,我们来优化提示的格式。前往“提示格式”设置,去除默认的条目,并按照 Mistral 的文档,添加如下格式的行:

<s>\[INST] {{prompt}} \[/INST]

准备就绪!最后,我们需要调整一些与资源管理有关的设置。点击“预测选项”,并选择以下的设置配置:

  • 激活 "Metal" 功能,以充分利用 Apple Silicon 的性能。
  • 启用 "MLock" 并保留 MMap 选项,这样可以更有效地管理内存(RAM)。

设置好之后,点击屏幕上方的“添加”按钮:

第五步:进行测试!

现在你的聊天窗口已经准备好了。你可以开始进行各种任务,提出问题,并验证回答的准确性:

请注意,第一次使用时,系统可能需要一段时间来预热。之后,反应速度将会变得更快:

完成啦,恭喜你!现在你已经掌握了如何在苹果设备上本地运行大语言模型的方法。

我为什么写这篇教程?

设想一下:在这个充满智能和数字化的时代,AI 的强大功能就像你每天早晨必不可少的一杯咖啡。现在,让我们来看看大语言模型(LLM)。这些聪明的语言模型不仅能聊天、创作文本,如果你客气地请求,它们甚至还能写出莎士比亚风格的十四行诗。但问题来了:为什么我们要依赖一个存储在不明位置、闭源的模型,而不是把这种神奇的技术引入我们的家中,离线使用呢?是的,就在你自己的设备里,舒适又方便!

隐私保护者们,有理由庆祝了!在你的本地设备上运行一个大语言模型,就好比在你的数据上施展了魔法。你不再需要担心自己的对话被无形的数字耳朵偷听。这就像是你拥有了一个只属于你和你的大语言模型伙伴的秘密语言基地,在这里,你可以畅所欲言,无需担心别人的窥探。

为什么选择 iPad 或 iPhone 而不是 MacBook?

在轻便性成为重要考量时,iPad 和全新的 iPhone 15 Pro Max 系列凭借它们的灵活性和小巧魅力成为了首选,而 MacBook 则提供了强大的性能。对于那些总是在外、追求多功能且希望设备轻巧如羽毛的人来说,iPad 和 iPhone 是理想之选。最后,值得一提的是,在你的苹果设备上本地运行 LLM,终于成为充分利用这些设备的一个绝佳理由!

为什么选 Mistral-7B?

Mistral-7B 来自 MistralAI,因其小巧体积下的卓越性能而受到高度评价。根据其开发者的介绍,这款基础模型在处理任务时的表现甚至超过了一些体积更大的模型,而且它的计算需求相对较低。这点尤其关键,因为即便是最先进的 iPad 和 iPhone,其可用内存也有限。它对各种任务的适应性也更为灵活。

我在 TheBloke 的仓库中测试了多个量化模型,发现在第 3 级 (mistral-7b-instruct-v0.1.Q3_K_M.gguf) 或第 4 级 (mistral-7b-instruct-v0.1.Q4_K_M.gguf) 量化的模型能更好地保留精确度,从而可能保持更高的准确性,同时不超过 8GB 内存需求。以下是运行这些模型时内存使用的截图:

不过,最终这些模型的精确度还是要根据你个人的需求来评估。