当前位置:首页|资讯|Alpaca|LoRA|ChatGPT

如何仅需几个步骤在您的设备上运行Alpaca-LoRA?

作者:51CTO发布时间:2023-06-20

原标题:如何仅需几个步骤在您的设备上运行Alpaca-LoRA?

译者 | 布加迪

ChatGPT是一种人工智能(AI)语言模型,近几个月备受关注。它有两个流行的版本:GPT-3.5和GPT-4。GPT-4是GPT-3.5的升级版,生成的答案更准确。但是ChatGPT存在的主要问题是它不是开源的,也就是说,不允许用户查看和修改其源代码。这导致了许多问题,比如定制、隐私和AI民主化。

我们需要这样一种AI语音聊天机器人:可以像ChatGPT一样工作,但又是免费开源的,而且消耗的CPU资源更少。本文介绍的Alpaca LoRA就是这样一种AI模型。看完本文后,您就比较了解它,而且可以使用Python在本地机器上运行它。下面不妨先讨论一下什么是Alpaca AoRA。

Alpaca LoRA的定义

Alpaca是由斯坦福大学的研究小组开发的一种AI语言模型。它使用Meta的大规模语言模型LLaMA。它使用OpenAI的GPT(text- davincii -003)来微调拥有70亿个参数的LLaMA模型。它可供学术界和研究界免费使用,对计算资源的要求很低。

该团队从LLaMA 7B模型入手,用1万亿token对其进行预训练。他们从175个由人工编写的指令输出对开始,让ChatGPT的API使用这些指令输出对生成更多对。他们收集了52000个样本对话,用来进一步微调其LLaMA模型。

LLaMA模型有几个版本,即70亿个参数、130亿个参数、300亿个参数和650亿个参数。Alpaca可扩展到70亿个参数、130亿个参数、300亿个参数和650亿个参数的模型。

图1 Aplaca 7B架构

Alpaca- LoRA是Stanford Alpaca的小型版,耗电量更少,可以在Raspberry Pie等低端设备上运行。Alpaca-LoRA使用低秩自适应(LoRA)来加快大型模型的训练,同时消耗更少的内存。

Alpaca LoRA的Python实现

我们将创建一个Python环境在本地机器上运行Alpaca-Lora。您需要一个GPU来运行这个模型。它无法在CPU上运行(或者输出很缓慢)。如果您使用70亿个参数模型,需要至少12GB的内存。如果使用130亿参数或300亿参数模型,需要更高的内存。

如果您没有GPU,可以在Google Colab中执行相同的步骤。文末附上了Colab链接。

我们将遵循Alpaca-LoRA的这个GitHub代码存储库。

1. 创建虚拟环境

我们将在虚拟环境中安装所有库。这一步不是强制性的,而是推荐的。以下命令适用于Windows操作系统。(这一步对于Google Colab来说并非必需)。

复制

创建venv的命令:

$ py -m venv

激活它的命令:

$ .\venv\Scripts\activate

禁用它的命令:

$ deactivate

2. 克隆GitHub代码存储库

现在,我们将克隆Alpaca LoRA的代码存储库。

复制

$ git clone https://github.com/tloen/alpaca-lora.git

$ cd .\alpaca-lora\

安装库:

$ PIP install -r .\requirements.txt

3.训练

名为finettune.py的python文件含有LLaMA模型的超参数,比如批处理大小、轮次数量和学习率(LR),您可以调整这些参数。运行finetune.py不是必须的。否则,执行器文件从tloen/alpaca-lora-7b读取基础模型和权重。

复制

$ python finetune.py \

--base_model 'decapoda-research/llama-7b-hf' \

--data_path 'yahma/alpaca-cleaned' \

--output_dir './lora-alpaca' \

--batch_size 128 \

--micro_batch_size 4 \

--num_epochs 3 \

--learning_rate 1e-4 \

--cutoff_len 512 \

--val_set_size 2000 \

--lora_r 8 \

--lora_alpha 16 \

--lora_dropout 0.05 \

--lora_target_modules '[q_proj,v_proj]' \

--train_on_inputs \

--group_by_length

4. 运行模型

名为generate.py的python文件将从tloen/alpaca-lora-7b读取Hugging Face模型和LoRA权重。它使用Gradio运行用户界面,用户可以在文本框中写入问题,并在单独的文本框中接收输出。

注意:如果您在Google Colab中进行处理,请在generate.py文件的launch()函数中标记share=True。它将在公共URL上运行界面。否则,它将在localhost http://0.0.0.0:7860上运行。

复制

$ python generate.py --load_8bit --base_model 'decapoda-research/llama-7b-hf' --lora_weights 'tloen/alpaca-lora-7b'

输出:

它有两个URL,一个是公共的,另一个在本地主机上运行。如果您使用Google Colab,公共链接可以访问。

5. Docker化应用程序

如果您想要将应用程序导出到某个地方或面临一些依赖项问题,可以在Docker容器中Docker化应用程序。Docker是一个创建应用程序不可变映像的工具。然后可以共享该映像,并将其转换回成应用程序,该应用程序可在容器中运行,拥有所有必要的库、工具、代码和运行时环境。您可以从这里下载Docker for Windows:https://docs.docker.com/desktop/install/windows-install/。

注意:如果您使用Google Colab,可以跳过此步骤。

构建容器映像:

复制

$ docker build -t alpaca-lora

运行容器:

复制

$ docker run --gpus=all --shm-size 64g -p 7860:7860 -v ${HOME}/.cache:/root/.cache --rm alpaca-lora generate.py \

--load_8bit \

--base_model 'decapoda-research/llama-7b-hf' \

--lora_weights 'tloen/alpaca-lora-7b'

它将在https://localhost:7860上运行您的应用程序。

Alpaca-LoRA用户界面

现在,我们已让Alpaca-LoRA运行起来。接下来,我们将探讨它的一些特点,让它为我们编写些东西。

图2. Alpaca-LoRA用户界面

它提供了类似ChatGPT的UI,我们可以在其中提出问题,它会相应地回答问题。它还接受其他参数,比如温度、Top p、Top k、Beams和Max Tokens。基本上,这些是在评估时使用的生成配置。

有一个复选框Stream Output。如果勾选该复选框,聊天机器人将每次回复一个token(即逐行写入输出,类似ChatGPT),如果不勾选该选项,它将一次性写入。

不妨向它提一些问题。

问题1:写一段Python代码,求一个数的阶乘。

输出:

图3. 输出-1

问题2:将“KDnuggets is a leading site on Data Science, Machine Learning, AI and Analytics.”翻译成法语。

输出:

图4. 输出-2

与ChatGPT不同,它也有一些限制。它可能无法为您提供最新的信息,因为它没有联网。此外,它可能会向社会弱势群体传播仇恨和错误信息。尽管如此,它仍是一款出色的免费开源工具,计算需求较低。它对研究人员和学者开展道德AI和网络安全活动大有助益。

谷歌Colab链接:

https://colab.research.google.com/drive/1t3oXBoRYKzeRUkCBaNlN5u3xFvhJNVVM?usp=sharing

原文标题:Learn How to Run Alpaca-LoRA on Your Device in Just a Few Steps,作者:Aryan Garg


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1