菜单

快速入门

相关源文件

本文档为用户提供了Llama 2的入门基础信息,包括安装、模型下载和运行基本推理。有关模型架构的详细信息,请参阅模型架构;有关特定文本生成技术,请参阅文本生成系统

系统组件与安装

Llama 代码库包含几个关键组件,它们协同工作以实现大型语言模型的文本生成。

Sources: README.md42-72

安装 Llama 2

  1. 克隆代码库并进入其目录
  2. 安装软件包及其依赖项

这将安装所需的依赖项

  • torch
  • fairscale
  • fire
  • sentencepiece

Sources: requirements.txt1-4 setup.py1-16 README.md45-50

工作流概述

使用 Llama 2 的典型工作流程包括下载模型权重、选择模型大小以及使用其中一个示例脚本运行推理。

Sources: README.md42-72 README.md73-112

下载模型

在运行推理之前,您需要下载模型权重

  1. 访问 Meta 网站并注册以下载模型
  2. 接受许可协议以通过电子邮件接收签名 URL
  3. 运行下载脚本
  4. 当提示时,输入电子邮件中的 URL(手动复制链接)

注意:在运行脚本之前,请确保您已安装 wgetmd5sum。链接在 24 小时或一定数量的下载后会过期。

可用的模型包括

  • 预训练:llama-2-7b, llama-2-13b, llama-2-70b
  • 针对聊天微调:llama-2-7b-chat, llama-2-13b-chat, llama-2-70b-chat

或者,您可以通过在存储库的模型卡上请求访问来通过 Hugging Face 获取模型。

Sources: README.md27-39

运行推理

模型并行值

不同的模型需要不同的模型并行 (MP) 值,应在 --nproc_per_node 参数中指定

模型MP
7B1
13B2
70B8

所有模型都支持最长 4096 个标记的序列长度,但缓存是根据 max_seq_lenmax_batch_size 值预先分配的。请根据您的硬件能力设置这些参数。

Sources: README.md73-82

推理过程

下图说明了文本生成过程中组件如何交互

Sources: README.md85-112

使用预训练模型

预训练模型未针对聊天或问答进行微调。应提示它们,使预期答案是提示的自然延续。

运行预训练模型(例如 llama-2-7b)

Sources: README.md85-96

使用微调聊天模型

这些微调模型是为对话应用训练的。为了获得预期的功能和性能,需要遵循特定的格式,包括 INST<<SYS>> 标签、BOSEOS 标记,以及正确的空白。

运行微调聊天模型(例如 llama-2-7b-chat)

Sources: README.md98-112

参数参考

运行示例脚本时,可以配置以下几个参数

参数描述示例
--ckpt_dir模型检查点目录的路径llama-2-7b/
--tokenizer_path分词器模型的路径tokenizer.model
--max_seq_len最大序列长度(最高 4096)512
--max_batch_size最大处理批次大小6
--nproc_per_node进程数(应与 MP 值匹配)1(对于 7B)

请根据您的硬件能力和模型大小调整这些参数。

Sources: README.md61-72 README.md73-84

常见问题

  • 如果您在下载时遇到 403: Forbidden 错误,您的链接可能已过期。请请求新链接。
  • 确保您的 --nproc_per_node 值与您正在使用的模型的 MP 值匹配。
  • 对于聊天模型,请确保输入格式正确(带有适当的标签)以获得预期结果。
  • 如果遇到内存不足问题,请尝试减小 max_seq_lenmax_batch_size

Sources: README.md35-36 README.md67-71