Press "Enter" to skip to content

在您的本地机器上释放GenAI LLMs的潜力!

介绍

自从GenAI LLMs发布以来,我们已经开始以各种方式使用它们。最常见的方式是通过像OpenAI网站这样的网站使用ChatGPT或通过OpenAI的GPT3.5 API、Google的PaLM API或其他网站(如Hugging Face、Perplexity.ai)使用大型语言模型的API进行交互。

在所有这些方法中,我们的数据被发送到我们的计算机之外。它们可能容易受到网络攻击(尽管所有这些网站都保证最高的安全性,但我们不知道会发生什么)。有时,我们希望在本地运行这些大型语言模型,如果可能的话,对它们进行本地调整。在本文中,我们将介绍如何设置LLMs以在Oobabooga上本地运行。

学习目标

  • 了解在本地系统上部署大型语言模型的重要性和挑战。
  • 学习在本地创建运行大型语言模型的设置。
  • 探索可以在给定的CPU、RAM和GPU Vram规格下运行的模型。
  • 学习从Hugging Face下载任何大型语言模型以在本地使用。
  • 检查如何为大型语言模型分配GPU内存以运行。

本文是作为数据科学博文马拉松的一部分发表的。

什么是Oobabooga?

Oobabooga是一个用于大型语言模型的文本生成Web界面。Oobabooga是一个基于Gradio的Web UI。Gradio是一个被机器学习爱好者广泛使用的Python库,用于构建Web应用程序,Oobabooga就是使用这个库构建的。Oobabooga将所有在尝试在本地运行大型语言模型时需要设置的复杂事物都抽象出来。Oobabooga附带了许多扩展来集成其他功能。

使用Oobabooga,您可以提供来自Hugging Face的模型链接,它将下载模型,然后您可以立即开始推理模型。Oobabooga具有许多功能,并支持不同的模型后端,如GGML、GPTQ、exllama和llama.cpp版本。您甚至可以在LLM之上使用这个UI加载一个LoRA(低秩适应)。Oobabooga可以让您训练大型语言模型,创建聊天机器人/ LoRA。在本文中,我们将详细介绍使用Conda安装此软件。

设置环境

在本节中,我们将使用conda创建一个虚拟环境。所以,要创建一个新的环境,打开Anaconda Prompt并输入以下命令。

conda create -n textgenui python=3.10.9
conda activate textgenui
  • 第一个命令将创建一个名为textgenui的新的conda/Python环境。根据Oobabooga Github的自述文件,他们希望我们使用Python 3.10.9版本。因此,该命令将创建一个带有此版本的虚拟环境。
  • 然后,要激活此环境并使其成为主要环境(以便我们可以在其上工作),我们将输入第二个命令来激活我们新创建的环境。
  • 下一步是下载PyTorch库。现在,PyTorch有不同的版本,如仅支持CPU的版本和CPU+GPU的版本。在本文中,我们将使用CPU+GPU版本,可以使用以下命令下载它。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

PyTorch GPU Python库

现在,上述命令将下载PyTorch GPU Python库。请注意,我们下载的CUDA(GPU)版本是cu117。这可能会发生变化,因此建议访问官方Pytorch页面以获取下载最新版本的命令。如果您无法访问GPU,可以继续使用CPU版本。

现在在Anaconda提示符中将目录更改为您将下载代码的目录。现在您可以从GitHub下载它,也可以使用git clone命令在此处进行克隆。我将使用git clone命令将Oobabooga的存储库克隆到我想要的目录中,命令如下。

git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
  • 第一条命令将Oobabooga的存储库拉到我们运行此命令的文件夹中。所有文件将存在一个名为text-generation-ui的文件夹中。
  • 所以,我们使用第二行的命令将目录更改为text-generation-ui。该目录包含一个requirement.txt文件,其中包含所有大型语言模型和用户界面所需的包,因此我们通过pip安装它们。
pip install -r requirements.txt

上述命令将安装所有所需的软件包/库,例如hugging face,transformers,bitandbytes,gradio等,以运行大型语言模型。我们准备启动Web界面,可以使用以下命令完成。

python server.py

现在,在Anaconda提示符中,您将看到它会显示一个URL http://localhost:7860 或 http://127.0.0.1:7860。现在在浏览器中打开此URL,UI将会出现并显示如下:

在您的本地机器上释放GenAI LLMs的潜力! 四海 第1张

我们现在已成功安装了所有开始使用text-generation-ui所需的库,下一步将是下载大型语言模型。

下载和推理模型

在本节中,我们将从Hugging Face下载一个大型语言模型,然后尝试推理和与LLM聊天。为此,请导航到UI顶部的Model部分。这将打开如下所示的模型页面:

在您的本地机器上释放GenAI LLMs的潜力! 四海 第2张

下载自定义模型

在右侧,我们看到“Download Custom model or LoRA”;下面是一个带有下载按钮的文本字段。在此文本字段中,我们必须提供来自Hugging Face网站的模型路径,UI将会下载它。让我们以一个例子来尝试。为此,我将基于新发布的Llama 2下载Nous-Hermes模型。因此,我将去Hugging Face中的该模型卡片,如下所示

在您的本地机器上释放GenAI LLMs的潜力! 四海 第3张

所以我将下载一个13B GPTQ模型(这些模型需要GPU来运行;如果您只想要CPU版本,那么您可以选择GGML模型),它是基于Llama 2模型的Nous-Hermes 13B模型的量化版本。您可以点击复制按钮来复制路径。现在,我们需要向下滚动以查看Nous-Hermes 13B模型的不同量化版本。

在您的本地机器上释放GenAI LLMs的潜力! 四海 第4张

在这里,例如,我们将选择Nous-Hermes-GPTQ模型的gptq-4bit-32g-actorder_True版本。因此,现在该模型的路径将是“TheBloke/Nous-Hermes-Llama2-GPTQ:gptq-4bit-32g-actorder_True”,冒号之前的部分表示模型名称,冒号之后的部分表示模型的量化版本类型。现在,我们将把它粘贴到前面看到的文本框中。

在您的本地机器上释放GenAI LLMs的潜力! 四海 第5张

现在,我们将点击下载按钮来下载模型。由于文件大小为8GB,这需要一些时间。模型下载完毕后,点击左侧的加载按钮旁边的刷新按钮进行刷新。然后从下拉菜单中选择要使用的模型。现在,如果模型是CPU版本,您可以点击加载按钮,如下所示。

在您的本地机器上释放GenAI LLMs的潜力! 四海 第6张

GPU VRAM模型

如果您使用GPU类型的模型,如我们在此处下载的GPTQ模型,我们必须从模型中分配GPU VRAM。由于模型大小约为8GB,我们将为其分配大约10GB的内存(我有充足的GPU VRAM,因此提供10GB)。然后,我们点击下面显示的加载按钮。

在您的本地机器上释放GenAI LLMs的潜力! 四海 第7张

现在,在我们点击加载按钮后,我们转到Session选项卡并更改模式。模式将从默认更改为chat。然后,我们点击应用和重启按钮,如图片所示。

在您的本地机器上释放GenAI LLMs的潜力! 四海 第8张

现在,我们已经准备好使用我们下载的模型进行推理,也就是说,我们可以开始与我们下载的模型进行交互了。现在转到文本生成选项卡,它将看起来像这样

在您的本地机器上释放GenAI LLMs的潜力! 四海 第9张

因此,现在是时候测试我们从Hugging Face下载的Nous-Hermes-13B大型语言模型了。让我们开始对话。

在您的本地机器上释放GenAI LLMs的潜力! 四海 第10张

在您的本地机器上释放GenAI LLMs的潜力! 四海 第11张

从上面的内容可以看出,模型确实正常工作。它没有做任何太有创意的事情,也就是说,没有产生幻觉。它正确地回答了我的问题。我们可以看到,我们已经要求大型语言模型生成一个查找斐波那契数列的Python代码。LLM编写了一个可行的Python代码,与我给定的输入相匹配。此外,它甚至给我解释了它是如何工作的。通过文本生成UI,您可以下载和运行任何模型,所有操作都在本地进行,确保数据的隐私。

结论

在本文中,我们逐步介绍了下载文本生成UI的过程,该UI允许我们在本地环境中直接与大型语言模型进行交互,而无需连接到网络。我们了解了如何从Hugging Face下载特定版本的模型,并了解了当前应用程序支持的量化方法。通过这种方式,任何人都可以访问大型语言模型,甚至是最新的LlaMA 2,正如我们在本文中所见,这是一个基于新发布的LlaMA 2的大型语言模型。

主要要点

本文的一些主要要点包括:

  • Oogabooga的文本生成UI可以在任何操作系统的任何系统上使用,包括Mac、Windows或Linux。
  • 该UI允许我们直接访问不同的大型语言模型,甚至是最新发布的模型,来自Hugging Face。
  • 该UI还支持不同大型语言模型的量化版本。
  • 使用这个文本生成UI,即使没有GPU访问权限的用户也可以加载只有CPU的大型语言模型。
  • 最后,由于我们在本地运行UI,与模型的数据/聊天都保留在本地系统中。

常见问题

本文中显示的媒体不归Analytics Vidhya所有,而是根据作者的自由裁量使用。

Leave a Reply

Your email address will not be published. Required fields are marked *