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

译文
人工智能
本文介绍了类似ChatGPT的平台Alpaca-LoRA以及如何在您的设备上运行它。

译者 | 布加迪

审校 | 重楼

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

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

Alpaca LoRA的定义

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

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

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

1 Aplaca 7B架构

Alpaca- LoRAStanford 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

责任编辑:华轩 来源: 51CTO
相关推荐

2023-06-01 08:18:47

GPT大语言模型

2017-03-09 10:07:04

Ubuntu系统技巧

2022-09-13 08:40:24

AndroidLinux

2023-01-12 08:07:03

Python代码版权

2017-03-20 14:30:47

香港服务器租用

2014-02-13 16:39:00

杨元庆摩托罗拉移动

2016-02-16 09:36:37

CrossOverLinuxWindows

2022-06-30 13:54:16

BottlesLinuxWindows

2009-09-02 15:37:26

Windows 7Windows XP操作系统

2021-09-27 07:57:15

MEAT安全工具安全取证

2015-10-14 10:02:33

ClojureScri Android

2023-01-26 11:56:31

Kubernete虚拟机k3s

2021-01-25 08:00:00

Linux系统数据

2011-10-09 14:45:58

Alien DalviiOSAndroid

2023-04-19 11:42:46

2023-04-12 15:37:31

Linux系统CPU

2019-10-09 16:50:48

SSHLinux远程系统

2012-04-26 13:36:30

iPhone运行程序

2020-06-04 11:15:14

物联网LoRa传感器

2020-12-02 11:48:05

TFTP
点赞
收藏

51CTO技术栈公众号