关注我们.

人工智能

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

mm
梅塔骆驼 2 法学硕士

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

这个开源大型语言模型由 Meta 与微软合作开发,旨在重新定义生成式人工智能和自然语言理解的领域。Llama 2 不仅仅是一个基于 TB 级数据训练的统计模型,它更体现了一种理念。这种理念强调开源方法是人工智能开发的支柱,尤其是在生成式人工智能领域。

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

Llama 2 技术深度探究

用于训练 Llama 2 模型; 与它的前身一样,它使用自回归 变压器架构,已在大量自监督数据上进行预训练。然而,它通过使用带人类反馈的强化学习 (RLHF) 增加了额外的复杂性,以便更好地与人类行为和偏好保持一致。这在计算上耗费大量资源,但对于提升模型的安全性和有效性至关重要。

Meta Llama 2 训练架构

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

幽灵注意力:多轮对话

Meta 推出了一项新功能——幽灵注意力 (GAtt),旨在提升 Llama 2 在多轮对话中的表现。这有效地解决了对话过程中持续存在的上下文丢失问题。GAtt 就像一个锚点,将初始指令与所有后续用户消息联系起来。结合强化学习技术,GAtt 有助于在较长的对话中生成一致、相关且符合用户意图的响应。

使用 download.sh 从 Meta Git 存储库

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

来自抱脸

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

Transformers 4.31 版本与 LLaMa 2 完全兼容,并开放了 Hugging Face 生态系统中的众多工具和功能。从训练和推理脚本到使用 Bitsandbytes 的 4 位量化以及参数高效微调 (PEFT),该工具包功能丰富。首先,请确保您使用的是最新版本的 Transformers 并登录了您的 Hugging Face 帐户。

以下是在 谷歌合作实验室 环境,利用 GPU 运行时:

Google Colab 模型 - T4 GPU

Google Colab 模型 – T4 GPU

 

 

 

 

 

 

包安装

!pip install transformers
!huggingface-cli login

导入必要的 Python 库。

from transformers import AutoTokenizer
import transformers
import torch

初始化模型和分词器

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

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

设置管道

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

pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto")

生成文本序列

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

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 上,保留会话聊天历史记录,并提供从托管在多个 Llama 2 API 端点中进行选择的灵活性 复制。 这种以用户为中心的设计旨在简化与 Llama 2 的交互,使其成为开发人员和最终用户的理想工具。 对于那些有兴趣体验这一点的人,可以在以下位置观看现场演示: 骆驼2.ai.

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

规模多样

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

增强的上下文长度

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

分组查询注意力(GQA)

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

性能基准

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

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

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

Llama 2-Chat 最大的模型 70B 在 36% 的情况下也优于 ChatGPT,并在另外 31.5% 的情况下性能与 ChatGPT 持平。资料来源: Paper

开源:社区的力量

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

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

Llama 2 目前面临的挑战

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

Code Llama – Meta 的最新发布

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

隆重推出 Code Llama,一款用于编码的人工智能工具

结语

本文指导您如何在 Google Colab 上搭建支持 Hugging Face 的 Llama 2 模型进行文本生成。Llama 2 的卓越性能得益于一系列先进技术,包括自回归 Transformer 架构和带人类反馈的强化学习 (RLHF)。凭借高达 70 亿个参数以及幽灵注意力 (Ghost Attention) 等功能,该模型在某些领域的表现超越了当前的行业标准。此外,其开放性也为自然语言理解和生成式 AI 的新时代铺平了道路。

在过去的五年里,我一直沉浸在机器学习和深度学习的迷人世界中。 我的热情和专业知识使我为 50 多个不同的软件工程项目做出了贡献,特别关注人工智能/机器学习。 我持续的好奇心也吸引了我对自然语言处理的兴趣,这是我渴望进一步探索的领域。