人工智能
Llama 2:深入探讨 ChatGPT 的开源挑战者
大型语言模型 能够完成复杂推理任务的法学硕士(LLM)在编程和创意写作等专业领域已显示出前景。 然而,法学硕士的世界不仅仅是一个即插即用的天堂; 可用性、安全性和计算需求方面存在挑战。 在本文中,我们将深入探讨 骆驼2,同时提供了通过 Google Colab 上的 Hugging Face 和 T4 GPU 设置这个高性能 LLM 的详细演练。
这种开源大语言模型由 Meta 与 Microsoft 合作开发,旨在重新定义生成式人工智能和自然语言理解领域。 Llama 2 不仅仅是另一个基于 TB 数据训练的统计模型; 它是一种哲学的体现。 强调开源方法作为人工智能开发的支柱,特别是在生成式人工智能领域。
Llama 2 及其对话优化替代品 Llama 2-Chat 配备了多达 70 亿个参数。 它们经过了微调过程,旨在与人类偏好紧密结合,使它们比许多其他公开可用的模型更安全、更有效。 这种微调的粒度通常是为封闭的“产品”法学硕士保留的,例如 ChatGPT 和 BARD,通常不接受公众监督或定制。
Llama 2 技术深度探究
用于训练 Llama 2 模型; 与它的前身一样,它使用自回归 变压器架构,在广泛的自监督数据语料库上进行了预训练。 然而,它通过使用带有人类反馈的强化学习 (RLHF) 来增加额外的复杂性,以更好地符合人类行为和偏好。 这在计算上是昂贵的,但对于提高模型的安全性和有效性至关重要。
预训练和数据效率
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 引入了一项新功能 Ghost Attention (GAtt),旨在增强 Llama 2 在多回合对话中的性能。 这有效地解决了持续对话中上下文丢失的持续问题。 GAtt 的作用就像一个锚,将初始指令链接到所有后续用户消息。 与强化学习技术相结合,它有助于在较长的对话中产生一致、相关且符合用户需求的响应。
使用 download.sh 从 Meta Git 存储库
- 访问元网站: 导航 Meta 的 Llama 2 官方网站 然后单击“下载模型”
- 填写详细信息:阅读并接受条款和条件以继续。
- 邮件确认:提交表单后,您将收到一封来自 Meta 的电子邮件,其中包含从其 git 存储库下载模型的链接。
- 执行download.sh:克隆Git存储库并执行
download.sh
脚本。 该脚本将提示您使用 Meta 中的 URL 进行身份验证,该 URL 将在 24 小时内过期。 您还可以选择模型的尺寸 - 7B、13B 或 70B。
来自抱脸
- 接收录取电子邮件:从 Meta 获得访问权限后,前往 拥抱脸.
- 申請途徑:选择您所需的型号并提交授予访问权限的请求。
- 确认:预计会在 1-2 天内收到“授予访问权限”电子邮件。
- 生成访问令牌:导航至 Hugging Face 帐户中的“设置”以创建访问令牌。
Transformers 4.31 版本与 LLaMa 2 完全兼容,并在 Hugging Face 生态系统中开放了许多工具和功能。 从训练和推理脚本到使用位和字节进行 4 位量化以及参数高效微调 (PEFT),该工具包非常广泛。 首先,请确保您使用的是最新版本的《变形金刚》并登录到您的 Hugging Face 帐户。
这是在以下环境中运行 LLaMa 2 模型推理的简化指南 谷歌合作实验室 环境,利用 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 在性能指标方面树立了新标准。 它不仅优于其前身 LLama 1,而且还为 Falcon 和 GPT-3.5 等其他型号提供了激烈的竞争。
Llama 2-Chat 最大的模型 70B 在 36% 的情况下也优于 ChatGPT,并在另外 31.5% 的情况下达到相同的性能。 来源: 纸类
开源:社区的力量
Meta 和微软希望 Llama 2 不仅仅是一款产品; 他们将其视为社区驱动的工具。 Llama 2 可免费用于研究和非商业目的。 他们的目标是使人工智能功能民主化,让初创公司、研究人员和企业能够使用它。 开源范例允许对模型进行“众包故障排除”。 开发人员和人工智能伦理学家可以进行压力测试、识别漏洞并加快提供解决方案。
虽然 LLaMa 2 的许可条款通常是宽松的, 例外 确实存在。 Google 等月用户超过 700 亿的大型企业需要获得 Meta 的明确授权才能使用。 此外,该许可证禁止使用 LLaMa 2 来改进其他语言模型。
Llama 2 目前面临的挑战
- 数据概括:Llama 2 和 GPT-4 有时在处理不同任务时无法保持一致的高性能。 在这些场景中,数据质量和多样性与数据量一样重要。
- 模型透明度:考虑到人工智能先前的挫折产生了误导性的输出,探索这些复杂模型背后的决策原理至关重要。
Code Llama – Meta 的最新发布
元最近宣布 代码骆驼 这是一个专门用于编程的大型语言模型,参数大小范围从 7B 到 34B。 如同 ChatGPT 代码解释器; Code Llama 可以简化开发人员工作流程并使编程更容易实现。 它支持各种编程语言并具有专门的变体,例如用于特定于 Python 的任务的 Code Llama-Python。 该模型还提供不同的性能级别,以满足不同的延迟要求。 Code Llama 已获得公开许可,邀请社区提供意见以进行持续改进。
结论
本文引导您在 Google Colab 上设置 Llama 2 模型以生成文本并支持 Hugging Face。 Llama 2 的性能得益于一系列先进技术,从自回归变压器架构到人类反馈强化学习 (RLHF)。 该模型拥有多达 70 亿个参数和 Ghost Attention 等功能,在某些领域超越了当前的行业标准,并且凭借其开放性,为自然语言理解和生成人工智能的新时代铺平了道路。