如何在您自己的 PC 上运行类似 ChatGPT 的 AI
已发表: 2023-04-06聊天机器人现在风靡一时,每个人都想分一杯羹。 谷歌有 Bard,微软有 Bing Chat,而 OpenAI 的 ChatGPT 在这一点上几乎就是 AI 的代名词。 但是,如果您不想为聊天机器人依赖云服务怎么办? 我们有一个类似 ChatGPT 的 AI,您可以下载它——一只羊驼。
什么是羊驼?
Alpaca 与 ChatGPT 相比如何?
运行羊驼需要什么?
如何在您的 PC 上本地运行 Alpaca
为 Linux 2 安装 Windows 子系统
安装 Docker
在 Windows 上安装 GIT
安装 Serge 和 Alpaca
使用哔叽和羊驼毛
什么是羊驼?
Alpaca 是一种语言模型(基本上是聊天机器人),很像 ChatGPT。 它能够回答问题、推理、讲笑话,以及我们对聊天机器人所期望的几乎所有其他事情。 Alpaca 是由斯坦福大学的研究人员通过微调 Facebook 的 LLaMA 创建的。
与 ChatGPT 和当今可用的大多数其他聊天机器人不同,Alpaca 完全在您自己的 PC 上运行。 这意味着没有人可以窥探您的谈话或您向 Alpaca 询问的内容,而且您的交流也不会意外泄露。 这也意味着您无需支付任何月费,如果您拥有硬件,您可以进一步训练模型以更好地满足您的需求,并且您可以将其集成到您想要的任何应用程序中。 您仅受硬件和编程技巧的限制。
但是,它也可以像普通的旧聊天机器人一样出色地工作,您可以与之交谈,我们将向您展示如何在几乎任何 PC 上运行它。
Alpaca 与 ChatGPT 相比如何?
我们先把它弄清楚:ChatGPT,尤其是运行 GPT-4 的 ChatGPT,目前比 Alpaca 更智能、更快。
Alpaca 的速度主要受其运行的计算机的限制——如果您拥有一台具有大量内核和大量 RAM 的速度极快的游戏 PC,您将获得良好的性能。 内核较少的速度较慢的 PC 将需要更长的时间来生成响应。 当然,在这方面将它与 ChatGPT 进行比较是不公平甚至不合理的——我们不知道 ChatGPT 在什么样的计算机上运行,但它肯定比普通台式 PC 更强大。
目前羊驼主要有3个变种,7B、13B、30B。 一般来说,数字越大,聊天机器人就越聪明。
Alpaca,尤其是 7B 型号,明显比 ChatGPT“笨”。 推理不好,肯定过不了图灵测试。 但是,如果您想要食谱建议,7B 仍然很棒。
13B 和 30B 型号是另一回事。 13B 能够提供连贯的、类似人类的对话,并能回答复杂的问题。 30B 更令人印象深刻,如果你有运行它的硬件,并且在 ChatGPT 的惊人距离之内。 如果提示,它会从哲学上讲故事或开个玩笑而不会错过任何一个节拍。
运行羊驼需要什么?
Alpaca 有相当灵活的系统要求。 这些准则高于最低限度,但却是很好的准则。 我们还将在 Windows 上安装它。 如果您在运行 Linux 或 macOS 的系统上安装它,只需跳过适用于 Linux 的 Windows 子系统部分——它与您无关。
- 16 GB 内存
- 32 GB 更好,如果你想运行 30B 模型,这是必需的
- 如果您想要所有三种型号,SSD 上有 35 GB 的存储空间。
- 7B 型号为 4 GB,13B 型号为 8 GB,30B 型号为 20 GB
- 带有 WSL2 的默认 Ubuntu 需要 500MB
- 其他依赖项之间的更多 GB
- 现代 CPU 是理想选择
- 任何锐龙 CPU
- 第 7 代英特尔处理器或更高版本
- 适用于 Linux 2 (WSL2) 的 Windows 子系统
- 地理信息系统
- 码头工人
- 一个社区项目 Serge,它为 Alpaca 提供了一个漂亮的 Web 界面
警告:目前没有理由怀疑这个特定项目有任何重大安全缺陷或恶意。 我们已经检查了代码并自己运行了软件,没有发现任何问题。 这并不意味着它现在或将保持安全。 始终对您在互联网上找到的东西保持谨慎,并定期重新评估安全性。
如何在您的 PC 上本地运行 Alpaca
请务必按照给出的顺序执行这些步骤。 如果不这样做,Docker 可能会崩溃,需要完全重新安装 WSL2 和 Docker。
为 Linux 2 安装 Windows 子系统
Microsoft 的 Windows Linux 子系统 2 (WSL2) 允许您在 Windows 中运行 Linux 软件。 它的开销很低,在很多情况下都非常方便。 Docker for Windows依赖于WSL2,所以我们需要先安装WSL2。
注意:如果您已经安装了 WSL2,只需在 PowerShell 中运行 wsl –update 以确保所有内容都已更新。
以管理员身份打开 PowerShell 窗口,然后输入命令:
wsl --install
下载所有 WSL2 文件和 Ubuntu 需要一些时间。 安装完成后,您必须重新启动 PC。
执行重启后,重新打开 PowerShell(不一定以管理员身份)并运行:
wsl -l -v
如果一切正常,您应该会看到类似下图的内容。 您也不需要特别安装 Ubuntu。 你可以安装任何你喜欢的发行版,Ubuntu 只是默认的。
安装 Docker
Docker 是一种程序,可让您在“容器”中运行程序。 容器类似于虚拟机,但它们的开销往往更少,并且对于许多应用程序而言性能更高。 Serge 使用 Docker 让安装超级方便。
相关: Docker 做什么,什么时候应该使用它?
首先,从 Docker 网站下载 Docker 安装程序。 如果您打算在 Linux 或 macOS 上运行 Docker,请确保您获取了合适的安装程序。
注意:如果您运行的是无头 Linux 服务器,则需要按照适用于您的 Linux 发行版的说明来运行 Docker。
运行安装程序并准备等待几分钟。 Docker 会花一些时间在幕后设置一堆东西。 完成后,您需要重新启动 PC。
重新启动后,打开 PowerShell 并再次运行wsl -l -v
。 这次您应该还会看到一些与 Docker 相关的条目。
在 Windows 上安装 GIT
最后一个先决条件是 Git,我们将使用它从 Github 自动下载(和更新)Serge。 这不是绝对必要的,因为您总是可以下载 ZIP 并手动解压缩,但 Git 更好。
前往 Git 网站并为您的操作系统下载正确的版本。 Windows 用户只需要运行可执行文件。 确保至少查看安装选项,而不是快速单击所有选项。 一个,如下面的屏幕截图所示,是绝对关键的。
Git 安装完成后,您就可以安装 Serge 和 Alpaca。
安装 Serge 和 Alpaca
首先,确保 Docker Desktop 正在运行。 然后,在打开 PowerShell 窗口的情况下打开 PowerShell 或 Windows 终端(不是以管理员身份)并运行以下命令:
git clone https://github.com/nsarrazin/serge.git && cd serge
这会将文件从 GitHub 下载到您 PC 上的文件夹,然后将活动目录更改为创建的文件夹。
您需要运行的下一个命令是:
cp .env.sample .env
该行创建了 .env.sample 的副本并将副本命名为“.env”。 该文件包含与存储对话的本地数据库以及连接时本地 Web 服务器使用的端口相关的参数。
然后运行:
docker compose up -d
Docker 将许多不同的容器组合成一个整洁的包。 如果您想更具体地了解此处涉及的内容,可以查看 Serge 文件夹中的 docker-compose.yml 文件。
最后一个命令将启动下载,在这里您需要在继续之前做出选择。 您可以下载三种不同的变体:7B、13B 和 30B。 7B 是最简单和“最笨”的模型,而 30B 是最复杂和最聪明的。 13B是中间地带。
变体 | 下载大小 | 需要空闲 RAM | 在 Windows 上推荐的系统 RAM | Linux 上推荐的系统 RAM |
7B | 4GB | 4GB | 16 GB | 8GB |
13B | 8GB | 8GB | 16 GB | 16 GB |
30B | 20 | 20GB | 64 GB(可能) | 32GB |
Linux(可能还有 macOS)安装将能够使用比 Windows 安装更少的系统 RAM——Windows 是一个 RAM 猪。 您可能应该首先从 7B 变体开始,因为它是要求最低的选项。 如果需要,您可以随时下载 13B 或 30B。
运行以下命令下载 7B 模型(或替代 13B 或 30B)。
docker compose exec api python3 /usr/src/app/utils/download.py tokenizer 7B
准备好等待,特别是如果您选择 30B 变体。 Huggingface 服务器似乎达到每秒 20 兆字节的最高速度,因此在最佳情况下,您将看到每 GB 下载 50 秒。
使用哔叽和羊驼毛
如果您已按照这些说明进行操作,则 Docker 和所有必需的容器当前正在运行,但是,如果您重新启动计算机,则必须重新打开它们。 为此,只需打开 Docker Desktop 并单击小三角形按钮。 当容器运行时,“名称”列左侧的图标变为绿色。
此时一切都已安装并准备就绪。 只需打开浏览器并在地址栏中输入“localhost:8008”,就像访问 Facebook 或任何其他网站一样。
注意:如果您在另一台计算机上托管 Alpaca/Serge,则需要输入该设备的本地 IP 地址而不是 localhost。
主屏幕左侧显示您之前的对话,中间显示新聊天的设置。
有相当多的可用设置,但您真正需要注意的有五个:
- 温度——决定 AI 回答的自由程度。 较低的数字会导致更严格的答案,而较高的数字会更有创意。
- Maximum Generated Text Length in Tokens – 机器人写入的响应可以有多长。
- 型号选择– 在 7B、13B、30B 和您安装的任何其他型号之间进行选择。
- n_threads – Serge/Alpaca 可以在你的 CPU 上使用的线程数。 分配更多将提高性能
- 初始化对话的预提示——在对话开始之前提供上下文,以偏向聊天机器人的回复方式。
在这种情况下,我们提高了温度和线程,选择了 13B 型号,并告诉聊天机器人这是盗版。
这是对话进行的示例。
您可以与 Alpaca 谈论任何您喜欢的话题,而不必担心您的数据会发生什么。 它始终保留在您的设备上,由您控制。
请记住,ChatGPT、Alpaca 和其他聊天机器人看似可靠,但目前还不可靠。 他们很好地体现了这样一种观点:“如果你不能用才华让他们眼花缭乱,那就用废话来迷惑他们。” 他们编造事情的倾向被称为“幻觉”。 不要依赖它们来做任何重要的事情,尤其是对你的工作或健康无关紧要的事情。 目前它们只能用于娱乐或实验目的。
然而,随着时间的推移,这项技术只会变得更好——用不了多久,我们就会看到 Alpaca(或其他本地运行的 AI)集成到 Discord 服务器、Minecraft 模组和许多其他创意应用程序中。 进一步的改进还将产生可以在较弱硬件上运行的更快、更准确的模型。