训练自己的Alpaca

LLaMA 是 Meta Research 的一种新的开源语言模型,其性能与闭源模型一样好。 与 Stable Diffusion 类似,自该模型公开发布以来,已经进行了大量的实验和创新。 正如 Simon Willison 所阐述的那样,LLaMA 很容易在你自己的硬件上运行,大到足以发挥作用,并且开源到足以进行修补。

LLaMA 功能强大,但它不是为回答问题而构建的。 它的功能更像是一个花哨的自动完成版本,而不是一个对话机器人。 这就是斯坦福的Alpaca派上用场的地方。Alpaca是 LLaMA 的微调版本,可以响应 ChatGPT 等指令。 而且,与 LLaMA 一样,它是开源的。

问题是,Alpaca 的权重还没有发布,所以你不能修改它。 不过,我们确实拥有复制它所需的所有组成部分:LLaMA 权重、训练数据和训练脚本。

在这篇文章中,我们将向你展示如何训练 Alpaca,以便你可以在自己的机器上对其进行修改。

注意:LLaMA 和基于 LLaMA 构建的任何内容仅用于研究目的。 你不能用它来构建任何商业产品。

1、先决条件

  • LLaMA 权重。 它们仅供研究使用。 要申请访问权限,请填写Meta的这个表格
  • GPU机器。 你需要一台配备一个或多个 80GB A100 GPU 的 Linux 机器。 如果你有一台有更多 GPU 的机器,它会更快——我们使用了四个。 我们在 Google Cloud 上取得了成功。 你可以在此处按照我们的说明进行操作。

2、克隆 Alpaca 存储库

我们创建了一个 Alpaca 存储库的分支,其中添加了一个 Cog 文件,该文件将为你设置所有依赖项。

通过 SSH 登录你的 GPU 实例。 通过运行克隆存储库:

git clone https://github.com/replicate/cog_stanford_alpaca
cd cog_stanford_alpaca

3、转换 LLaMA 权重

LLaMA 权重目前仅供研究使用。 要申请访问权限,请填写此表格

将下载的权重放在名为 unconverted-weights 的文件夹中。 文件夹层次结构应如下所示:

unconverted-weights
├── 7B
│   ├── checklist.chk
│   ├── consolidated.00.pth
│   └── params.json
├── tokenizer.model
└── tokenizer_checklist.chk

使用以下命令将权重从 PyTorch 检查点转换为与transformer兼容的格式:

cog run python -m transformers.models.llama.convert_llama_weights_to_hf \
  --input_dir unconverted-weights \
  --model_size 7B \
  --output_dir weights

你最终的目录结构应该是这样的:

weights
├── llama-7b
└── tokenizermdki

4、训练Alpaca模型

开始训练:

cog run ./train_model.sh

这在四个 A100 上大约需要一个半小时,因此你可能想在模型训练时进行一些编程。

5、运行Alpaca模型

完成后,你可以运行 Alpaca:

$ cog predict -i prompt="Tell me something about alpacas."

Alpacas are a species of South American camelid and are closely related to llamas. They are smaller than llamas and have a finer fleece, which is used to make clothing and other crafts. Alpacas are social animals that live in herds and can come in two colors: white and brown. They are very easy to take care of and require minimal grooming.

6、后续环节

以下是你接下来可以做什么的一些想法:

  • 微调模型或约束解码器以创建用于特定任务的模型。
  • 尝试使用不同的界面与模型进行交互。 你在哪里可以和它说话?
  • 将模型推送到复制以在云中运行它。 如果你想要一个 API 来构建接口,或者并行运行大规模评估,这会很方便。 你需要将其保密,以免权重公开。
  • 请记住,你只能将 Alpaca 用于非商业研究。 最终,我们预计像这样的模型将以更宽松的许可证发布,允许它们用于各种各样的事情——聊天机器人、编码助手等等。

开源语言模型才刚刚起步,我们迫不及待地想看看你构建的内容。


原文链接:Train and run Stanford Alpaca on your own machine

BimAnt翻译整理,转载请标明出处