Llama 2:深入探讨 ChatGPT 的开源挑战者

AI资讯2年前 (2023)发布 GPTHub
11 0
Llama 2:深入探讨 ChatGPT 的开源挑战者

能够执行复杂推理任务的大型语言模型(LLM)在编程和创意写作等专业领域已显示出前景。然而,法学硕士的世界不仅仅是一个即插即用的天堂;可用性、安全性和计算需求方面存在挑战。在本文中,我们将深入探讨Llama 2的功能,同时提供通过 Google Colab 上的 Hugging Face 和 T4 GPU 设置此高性能 LLM 的详细演练。

这种开源大语言模型由 Meta 与 Microsoft 合作开发,旨在重新定义生成式人工智能和自然语言理解领域。Llama 2 不仅仅是另一个基于 TB 数据训练的统计模型;它是一种哲学的体现。强调开源方法作为人工智能开发的支柱,特别是在生成式人工智能领域。

Llama 2 及其对话优化替代品 Llama 2-Chat 配备了多达 700 亿个参数。它们经过了微调过程,旨在与人类偏好紧密结合,使它们比许多其他公开可用的模型更安全、更有效。这种微调的粒度通常是为封闭的“产品”LLM 保留的,例如ChatGPT和 BARD,它们通常不可供公众审查或定制。

Llama 2 技术深度探究

用于训练 Llama 2 模型;与它的前身一样,它使用自回归变压器架构,并在广泛的自监督数据语料库上进行了预训练。然而,它通过使用带有人类反馈的强化学习 (RLHF) 增加了额外的复杂性,以更好地符合人类行为和偏好。这在计算上是昂贵的,但对于提高模型的安全性和有效性至关重要。

Llama 2:深入探讨 ChatGPT 的开源挑战者

Meta Llama 2 训练架构

预训练和数据效率

Llama 2 的基础创新在于其预训练机制。该模型借鉴了其前身 Llama 1 的灵感,但引入了几项关键的增强功能来提升其性能。值得注意的是,训练的 token 总数增加了 40%,上下文长度增加了一倍。此外,该模型利用分组查询注意力(GQA)来增强推理可扩展性。

有监督微调 (SFT) 和人类反馈强化学习 (RLHF)

Llama-2-chat 已使用 SFT 和人类反馈强化学习 (RLHF) 进行了严格的微调。在此背景下,SFT 成为 RLHF 框架的一个组成部分,改进模型的响应,使其与人类的偏好和期望紧密结合。

OpenAI提供了富有洞察力的插图,解释了 InstructGPT 中采用的 SFT 和 RLHF 方法。与 LLaMa 2 非常相似,InstructGPT 也利用这些先进的训练技术来优化其模型的性能。

下图中的步骤 1 重点关注监督微调 (SFT),而后续步骤则完成人类反馈强化学习 (RLHF) 过程。

监督微调 (SFT) 是一个专门的过程,旨在针对特定的下游任务优化预训练的大型语言模型 (LLM)。与不需要数据验证的无监督方法不同,SFT 使用已预先验证和标记的数据集。

一般来说,制作这些数据集既昂贵又耗时。Llama 2 的方法是质量重于数量。仅通过 27,540 个注释,Meta 团队就达到了与人类注释者相媲美的性能水平。这与最近的研究非常吻合,研究表明即使有限但干净的数据集也可以带来高质量的结果。

在 SFT 过程中,预先训练的 LLM 暴露于标记数据集,其中监督学习算法发挥作用。该模型的内部权重根据特定于任务的损失函数计算出的梯度进行重新校准。该损失函数量化了模型的预测输出与实际真实标签之间的差异。

这种优化使法学硕士能够掌握标记数据集中嵌入的复杂模式和细微差别。因此,该模型不仅仅是一种通用工具,而且演变成一种专门的资产,擅长以高精度执行目标任务。

强化学习是下一步,旨在使模型行为与人类偏好更紧密地结合起来。

调整阶段利用人类反馈强化学习 (RLHF),采用重要性采样近端策略优化等技术引入算法噪声,从而规避局部最优。这种迭代微调不仅改进了模型,而且使其输出与人类期望保持一致。

Llama 2-Chat 使用二进制比较协议来收集人类偏好数据,标志着更加定性方法的显着趋势。该机制通知奖励模型,然后用于微调对话式人工智能模型。

Llama 2:深入探讨 ChatGPT 的开源挑战者

幽灵注意力:多轮对话

Meta 引入了一项新功能 Ghost Attention (GAtt),旨在增强 Llama 2 在多回合对话中的性能。这有效地解决了持续对话中上下文丢失的持续问题。GAtt 的作用就像一个锚,将初始指令链接到所有后续用户消息。与强化学习技术相结合,它有助于在较长的对话中产生一致、相关且符合用户需求的响应。

使用 download.sh 从 Meta Git 存储库

  1. 访问 Meta 网站:导航到Meta 的官方 Llama 2 网站并单击“下载模型”
  2. 填写详细信息:阅读并接受条款和条件以继续。
  3. 电子邮件确认:提交表单后,您将收到一封来自 Meta 的电子邮件,其中包含从其 git 存储库下载模型的链接。
  4. 执行 download.sh:克隆 Git 存储库并执行download.sh脚本。该脚本将提示您使用 Meta 中的 URL 进行身份验证,该 URL 将在 24 小时内过期。您还可以选择模型的尺寸 – 7B、13B 或 70B。

来自抱脸

  1. 接收接受电子邮件:从 Meta 获得访问权限后,前往Hugging Face
  2. 请求访问:选择您所需的型号并提交请求以授予访问权限。
  3. 确认:预计会在 1-2 天内收到“授予访问权限”电子邮件。
  4. 生成访问令牌:导航至 Hugging Face 帐户中的“设置”以创建访问令牌。

Transformers 4.31 版本与 LLaMa 2 完全兼容,并在 Hugging Face 生态系统中开放了许多工具和功能。从训练和推理脚本到使用位和字节进行 4 位量化以及参数高效微调 (PEFT),该工具包非常广泛。首先,请确保您使用的是最新版本的《变形金刚》并登录到您的 Hugging Face 帐户。

以下是在Google Colab环境中利用 GPU 运行时运行 LLaMa 2 模型推理的简化指南:

Llama 2:深入探讨 ChatGPT 的开源挑战者

Google Colab 模型 – T4 GPU

 

 

 

 

 

 

包安装

1
2
!pip install transformers
!huggingface-cli login

导入必要的 Python 库。

1
2
3
from transformers import AutoTokenizer
import transformers
import torch

初始化模型和分词器

在此步骤中,指定您将使用哪个 Llama 2 模型。在本指南中,我们使用 meta-llama/Llama-2-7b-chat-hf。

1
2
model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

设置管道

利用 Hugging Face 管道通过特定设置生成文本:

1
2
3
4
5
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto")

生成文本序列

最后,运行管道并根据您的输入生成文本序列:

1
2
3
4
5
6
7
8
9
sequences = pipeline(
'Who are the key contributors to the field of artificial intelligence?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for seq in sequences:
print(f"Result: {seq['generated_text']}")

A16Z 的 LLaMa 2 用户界面

Andreessen Horowitz (A16Z) 最近推出了专为 Llama 2 量身定制的基于 Streamlit 的尖端聊天机器人界面。该 UI 托管在 GitHub 上,保留会话聊天历史记录,并提供从 Replicate 托管的多个 Llama 2 API 端点中进行选择的灵活性。这种以用户为中心的设计旨在简化与 Llama 2 的交互,使其成为开发人员和最终用户的理想工具。对于有兴趣体验这一点的人,可以在Llama2.ai上观看现场演示。

Llama 2:它与 GPT 模型及其前身 Llama 1 有何不同?

规模多样

与许多可扩展性有限的语言模型不同,Llama 2 为具有不同参数的模型提供了许多不同的选项。该模型的参数范围从 70 亿到 700 亿个,从而提供一系列配置来满足不同的计算需求。

增强的上下文长度

该模型的上下文长度比 Llama 1 增加了 4K 令牌。这使其能够保留更多信息,从而增强其理解和生成更复杂和更广泛内容的能力。

分组查询注意力(GQA)

该架构使用GQA的概念,旨在通过缓存先前的令牌对来加快注意力计算过程。这有效地提高了模型的推理可扩展性,从而增强了可访问性。

性能基准

Llama 2:深入探讨 ChatGPT 的开源挑战者

Llama 2-Chat 模型与 ChatGPT 和其他竞争对手的性能分析

LLama 2 在性能指标方面树立了新标准。它不仅优于其前身 LLama 1,而且还为 Falcon 和 GPT-3.5 等其他型号提供了激烈的竞争。

Llama 2-Chat 最大的模型 70B 在 36% 的情况下也优于 ChatGPT,并在另外 31.5% 的情况下达到相同的性能。来源:论文

开源:社区的力量

Meta 和微软希望 Llama 2 不仅仅是一款产品;他们将其视为社区驱动的工具。Llama 2 可免费用于研究和非商业目的。他们的目标是使人工智能功能民主化,让初创公司、研究人员和企业能够使用它。开源范例允许对模型进行“众包故障排除”。开发人员和人工智能伦理学家可以进行压力测试、识别漏洞并加快提供解决方案。

虽然 LLaMa 2 的许可条款通常是宽松的,但也存在例外情况。Google 等月用户超过 7 亿的大型企业需要获得 Meta 的明确授权才能使用。此外,该许可证禁止使用 LLaMa 2 来改进其他语言模型。

Llama 2 目前面临的挑战

  1. 数据泛化:Llama 2 和 GPT-4 有时在不同任务中的一致高性能方面表现不佳。在这些场景中,数据质量和多样性与数据量一样重要。
  2. 模型透明度:考虑到人工智能先前的挫折产生了误导性的输出,探索这些复杂模型背后的决策原理至关重要。

Code Llama – Meta 的最新发布

Meta 最近发布了Code Llama,这是一种专门用于编程的大型语言模型,参数大小范围从 7B 到 34B。类似于ChatGPT 代码解释器;Code Llama 可以简化开发人员工作流程并使编程更容易实现。它支持各种编程语言并具有专门的变体,例如用于特定于 Python 的任务的 Code Llama-Python。该模型还提供不同的性能级别,以满足不同的延迟要求。Code Llama 已获得公开许可,邀请社区提供意见以进行持续改进。

结论

本文引导您在 Google Colab 上设置 Llama 2 模型以生成文本并支持 Hugging Face。Llama 2 的性能得益于一系列先进技术,从自回归变压器架构到人类反馈强化学习 (RLHF)。该模型拥有多达 700 亿个参数和 Ghost Attention 等功能,在某些领域超越了当前的行业标准,并且凭借其开放性,为自然语言理解和生成人工智能的新时代铺平了道路。

ChatGPTChatGPT中国站国内ChatGPT人工智能AIOpenAIChatGPT国内ChatGPT官网ChatGPT中文版ChatGPT体验ChatGPT国内站点ChatGPT中文网ChatGPT国内中国版ChatGPTChatGPT中国镜像ChatGPT国内镜像AI全家桶AI导航MJ绘画AI绘画技术人工智能绘画AI艺术创作智能绘图软件

© 版权声明

相关文章