Press "Enter" to skip to content

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

大型语言模型(LLMs)在编程和创意写作等专业领域展现了复杂推理任务的潜力。然而,LLMs的世界并不是一个即插即用的天堂;在可用性、安全性和计算需求方面存在挑战。在本文中,我们将深入探讨Llama 2的能力,同时提供通过Hugging Face和Google Colab上的T4 GPU设置这个高性能LLM的详细步骤。

由Meta与微软合作开发的这个开源大型语言模型旨在重新定义生成AI和自然语言理解的领域。Llama 2不仅仅是又一个在数千兆字节的数据上训练的统计模型;它是一种哲学的体现。这种哲学强调开源方法作为AI发展的基础,尤其是在生成AI领域。

Llama 2及其面向对话的替代品Llama 2-Chat配备了高达700亿个参数。它们经过了一系列微调过程,旨在使它们与人类偏好密切一致,使它们比许多其他公开可用的模型更安全和更有效。这种微调的精细程度通常保留给封闭的“产品”LLMs,如ChatGPT和BARD,这些模型通常不可供公众审查或定制。

Llama 2的技术深度探究

为了训练Llama 2模型,就像它的前身一样,它使用了自回归变换器架构,在大量自监督数据上进行了预训练。然而,它通过使用强化学习与人类反馈(RLHF)引入了额外的复杂性层面,以更好地与人类行为和偏好保持一致。这是计算上昂贵的,但对于提高模型的安全性和有效性至关重要。

Llama 2:深入探究ChatGPT的开源挑战者 四海 第1张

Meta Llama 2训练架构

预训练和数据效率

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

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

Llama-2-chat经过了严格的监督微调和强化学习与人类反馈(RLHF)的训练。在这个背景下,SFT作为RLHF框架的一个重要组成部分,用于使模型的响应与人类的偏好和期望密切一致。

OpenAI提供了一个详细说明,解释了InstructGPT中使用的SFT和RLHF方法。与Llama 2一样,InstructGPT也利用这些先进的训练技术来优化其模型的性能。

下图中的第1步集中在监督微调(SFT),而后续步骤完成了来自人类反馈的强化学习过程(RLHF)。

Llama 2:深入探究ChatGPT的开源挑战者 四海 第2张

Instruction-GPT

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

通常,创建这些数据集是昂贵且耗时的。Llama 2的方法是质量优先于数量。Meta团队仅使用了27,540个注释,就达到了与人类注释者竞争的性能水平。这与最近的研究表明,即使是有限但干净的数据集也可以产生高质量的结果。

在SFT过程中,预训练的LLM接触到一个带有标签的数据集,监督学习算法开始发挥作用。模型的内部权重基于从任务特定损失函数计算得到的梯度进行重新校准。该损失函数量化了模型预测输出与实际标签之间的差异。

这种优化使LLM能够理解标记数据集中嵌入的复杂模式和细微差别。因此,该模型不仅仅是一个通用工具,而是逐渐演变成为一种专门的资产,能够以高度准确性执行目标任务。

强化学习是下一步,目标是更紧密地与人类偏好的模型行为相一致。

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

Llama 2-Chat采用了二进制比较协议来收集人类偏好数据,标志着更多定性方法的明显趋势。这个机制通知了奖励模型,然后用于对会话AI模型进行微调。

Llama 2:深入探究ChatGPT的开源挑战者 四海 第3张

Ghost Attention:多轮对话

Meta引入了一个新特性,Ghost Attention(GAtt),旨在增强Llama 2在多轮对话中的性能。这有效地解决了正在进行的对话中上下文丢失的持续问题。GAtt起到了锚定作用,将初始指令与所有后续用户消息联系起来。结合强化学习技术,它有助于在更长的对话中产生一致、相关和与用户对齐的响应。

从Meta Git存储库使用download.sh

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

来自Hugging Face

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

Transformers 4.31版本与LLaMa 2完全兼容,并在Hugging Face生态系统中提供了许多工具和功能。从训练和推断脚本到使用bitsandbytes进行4位量化和参数高效微调(PEFT),工具包非常丰富。要开始,请确保您使用的是最新的Transformers版本,并登录到您的Hugging Face帐户。

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

Llama 2:深入探究ChatGPT的开源挑战者 四海 第4张

Google Colab模型-T4 GPU

包安装

!pip install transformers
!huggingface-cli登录

导入必要的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(
    '谁是人工智能领域的重要贡献者?\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"结果:{seq['generated_text']}")

A16Z针对LLaMa 2的用户界面

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

Llama 2:深入探究ChatGPT的开源挑战者 四海 第5张

LLaMa2.ai

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

多样性的规模

与许多提供有限可扩展性的语言模型不同,Llama 2为您提供了各种具有不同参数的模型选项。该模型从70亿到700亿个参数进行扩展,从而提供了适应各种计算需求的配置范围。

增强的上下文长度

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

分组查询注意力(GQA)

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

性能基准

Llama 2:深入探究ChatGPT的开源挑战者 四海 第6张

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可以免费用于研究和非商业用途。他们旨在使AI能力民主化,使其对初创公司、研究人员和企业可访问。开源模式允许对模型进行“众包故障排除”。开发人员和AI伦理学家可以进行压力测试、识别漏洞并加速提供解决方案。

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

Llama 2当前面临的挑战

  1. 数据概括:无论是Llama 2还是GPT-4,在各种任务中都有时候无法始终高效。在这些情况下,数据质量和多样性与数据量一样重要。
  2. 模型透明度:鉴于AI产生误导性输出的先前挫折,探索这些复杂模型背后的决策原理至关重要。

Code Llama – Meta最新发布

Meta最近宣布了Code Llama,它是一个专门用于编程的大型语言模型,参数大小范围从7B到34B不等。与ChatGPT Code Interpreter类似,Code Llama可以简化开发者的工作流程,使编程更加容易。它支持各种编程语言,并提供了专门的变体,例如Code Llama–Python用于Python特定任务。该模型还提供不同的性能级别以满足不同的延迟要求。Code Llama是开源许可的,欢迎社区的参与和持续改进。

介绍Code Llama,一个用于编码的AI工具

结论

本文介绍了在Google Colab上使用Hugging Face支持设置Llama 2模型进行文本生成的步骤。Llama 2的性能得益于一系列先进技术,包括自回归变压器架构和带有人类反馈的强化学习(RLHF)。该模型拥有高达7000亿个参数,并具有Ghost Attention等功能,在某些领域优于当前的行业标准,并且由于其开放性,为自然语言理解和生成式AI开启了新时代。

Leave a Reply

Your email address will not be published. Required fields are marked *