首页 企业版AI Meta LLaMa 和羊驼在实验室里松动! 在本地运行大型语言模型

Meta LLaMa 和羊驼在实验室里松动! 在本地运行大型语言模型

by 乔丹拉努斯

最近几个月,大型语言模型一直是广泛研究和开发的主题,GPT-4、Meta LLaMa 和 Alpaca 等最先进的模型突破了自然语言处理和运行它们所需的硬件的界限. 在这些模型上运行推理在计算上可能具有挑战性,需要强大的硬件来提供实时结果。

最近几个月,大型语言模型一直是广泛研究和开发的主题,GPT-4、Meta LLaMa 和 Alpaca 等最先进的模型突破了自然语言处理和运行它们所需的硬件的界限. 在这些模型上运行推理在计算上可能具有挑战性,需要强大的硬件来提供实时结果。

在 Storage Review 实验室中,我们将两个 NVIDIA RTX 8000 GPU 用于运行 Meta 的 LLaMa 模型,以了解它们在大型语言模型上运行推理时的表现。 我们使用了 联想P920 作为卡的主机,最大限度地减少瓶颈。 RTX 8000 是一款能够用于 AI 和深度学习应用的高端显卡,由于每张卡上有 48GB 的​​ GDDR6 显存和 4608 个 CUDA 内核,我们特地选择了这些显卡,而且 凯文囤积了所有的A6000的。

meta llama NVIDIA RTX 8000 GPU

Meta LLaMA 是一种在各种互联网文本集上训练的大规模语言模型。 它是公开可用的,并在各种自然语言处理任务中提供最先进的结果。 在本文中,我们将提供有关如何在 NVIDIA GPU 上设置和运行 LLaMA 推理的分步指南,但不能保证对所有人都适用。

Meta LLaMa 要求

在开始之前,我们需要确保安装了以下要求:

  • NVIDIA GPU 至少具有 16GB 显存
  • 安装了 NVIDIA 驱动程序(至少版本 440.33)
  • 安装了 CUDA 工具包(至少版本 10.1)
  • 蟒蛇安装
  • 安装 PyTorch(至少版本 1.7.1)
  • 磁盘空间; 整套 LLaMa 检查点正在推动超过 200TB。

注意:建议为 LLaMA 提供专用的 Anaconda 环境,我们在测试台上有一些,这样我们就可以搞乱包和参数,而不是管理基础安装。

在 Anaconda 中设置一两个专用环境

在 NVIDIA GPU 上运行 Meta LLaMA 推理的步骤

  1. 下载 LLaMA 存储库: 第一步是从 GitHub 克隆 LLaMA 存储库。
git clone https://github.com/EleutherAI/LLaMA.git
  1. 获取 LLaMA 检查点和分词器: 访问 GitHub 页面,并填写链接的 Google 表单以访问下载。 其他 LLM 也可用,例如 Alpaca。 为此,我们假设可以访问 LLaMa 文件。
  1. 通过从克隆的存储库目录中运行以下命令,列出并安装 LLaMa 所需的程序:
pip install -r requirements.txt
pip install -e .
  1. 设置推理脚本: - example.py LLaMA 存储库中提供的脚本可用于运行 LLaMA 推理。 该脚本可以在单 GPU 节点或多 GPU 节点上运行 torchrun 并将输出两个预定义提示的完成。

可选 example.py 并根据您的喜好设置以下参数。 下面列出了每个参数的说明以及它们的作用。

  • --max_seq_len: 最大序列长度(默认为 2048)
  • --max_batch_size:最大批量大小(默认为 8)
  • --gen_length:世代长度(默认为512)
  • --temperature:生成温度(默认为1.0)
  • --top_p:top-p采样(默认为0.9)

例如,在目录中使用检查点和分词器文件在单个 GPU 上运行 LLaMA 推理 /path/to/files,请使用以下命令:

torchrun --nproc_per_node 1 example.py --ckpt_dir /path/to/files --tokenizer_path /path/to/files/tokenizer.model

注意: nproc_per_node 参数取决于模型的大小和默认 LLaMa 检查点所需的 GPU 数量。 请参考下表为您的系统和您正在运行的模型设置适当的值:

型号 需要 GPU
7B 1
13B 2
33B 4
65B 8

在下面的示例中,我们使用了示例文件中的标准提示,但使用了 temperaturetop_p 变量,产生一些有趣的结果。 我们还增加了响应长度。

小心玩弄恒温器!

分解您需要了解的 example.py 文件和变量

其中大部分已在模型中预设,无需调整; 但是,如果您开始使用 LLM 和推理,这里有一些有用的信息可以分解标志和开关的作用。

  1. local_rank:当前 GPU(进程)在用于模型并行性的 GPU 组中的排名。 这是自动设置的。
  2. world_size:用于模型并行性的 GPU 总数。 这是自动设置的。
  3. ckpt_dir:包含模型检查点的目录。 这是在运行时设置的。
  4. tokenizer_path:用于预处理文本的分词器的路径。 这是在运行时设置的。
  5. temperature:控制生成文本随机性的参数(较高的值使输出更随机,较低的值使其更集中)。
  6. top_p: 控制nucleus采样策略的参数,是一种只选择最可能的token生成文本的方法,累积概率最多为 top_p.
  7. max_seq_len:模型输入和输出的最大序列长度。 您可以调整它以减少您对 VRAM 的需求。
  8. max_batch_size:模型可以并行处理的最大输入序列数。 您可以调整它以减少您对 VRAM 的需求。
  9. prompts:模型生成文本所依据的输入提示列表。
  10. results:与每个输入提示相对应的生成文本列表。

总结

我们的测试表明,RTX 8000 GPU 可以提供令人印象深刻的性能,推理时间从几秒到大约一分钟不等,具体取决于模型参数和输入大小。 GPU 可以处理大批量大小并同时在多个模型上运行推理,而不会出现任何明显的减速。

使用 GPU 进行推理的好处之一是可以通过向系统添加更多 GPU 轻松扩展它们。 这允许实时运行更大的模型,从而在聊天机器人、问答系统和情绪分析等领域启用新应用程序。

Alpaca 是一种紧凑的 AI 语言模型,由斯坦福大学的一组计算机科学家创建。 它建立在 Meta 的 LLaMA 7B 模型之上,该模型拥有 7 亿个参数,并使用来自网络的大量文本进行训练。 为了微调羊驼,使用 OpenAI 的 text-davinci-52,000 模型生成了 003 个指令跟踪演示,该模型是一种能够根据自然语言指令执行各种任务的多功能模型。 羊驼更擅长遵循指示并为各种目的编写文本,包括撰写摘要、故事和笑话。 Alpaca 的培训成本低于 600 美元,其设计既具有成本效益又易于复制。 令人印象深刻的是,值得一提的是,Alpaca 甚至可以在笔记本电脑上运行。 我们正在使用斯坦福大学所做的方法训练一个类似于羊驼的模型,但有我们自己的改进。

这只是我们在实验室中使用最新技术进步的一种方式,并且由于一些强大的 NVIDIA GPU,我们可以做的不仅仅是推理; 我们正在训练。 请留意下一篇关于微调模型(如 Meta LLaMa)的文章。

参与 StorageReview 

电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | TikTok | RSS订阅