人工智能
Llama 2:深入探索开源挑战者ChatGPT

大型语言模型(LLMs)能够执行复杂的推理任务,在编程和创意写作等领域显示出希望。然而,LLMs的世界并不是一个简单的插件和播放的天堂;在可用性、安全性和计算需求方面存在挑战。在本文中,我们将深入探讨Llama 2的功能,同时提供一个详细的设置指南,使用Hugging Face和T4 GPU在Google Colab上设置这个高性能LLM。
由Meta与Microsoft合作开发的这个开源大型语言模型旨在重新定义生成性AI和自然语言理解的领域。Llama 2不仅仅是一个在海量数据上训练的统计模型;它体现了一种哲学。这种哲学强调开源方法是AI开发的骨干,特别是在生成性AI领域。
Llama 2和其对话优化版本Llama 2-Chat,配备了多达70亿参数。它们经过精细调优的过程,使其与人类偏好紧密对齐,使其比许多其他公开可用的模型更安全、更有效。这种精细调优的粒度通常为闭源“产品”LLMs所保留,例如ChatGPT和BARD,它们通常不对公众开放审查或定制。
Llama 2的技术深度解析
为了训练Llama 2模型;像其前身一样,它使用自回归变换器架构,预训练在大量自监督数据上。然而,它添加了一个额外的复杂层次,使用强化学习和人类反馈(RLHF)更好地与人类行为和偏好对齐。这在计算上是昂贵的,但对于提高模型的安全性和有效性至关重要。
预训练和数据效率
Llama 2的基础创新在于其预训练方案。该模型从其前身Llama 1中汲取灵感,但引入了几个关键的增强功能来提高其性能。值得注意的是,训练令牌的总数增加了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被暴露在标记数据集中,监督学习算法开始发挥作用。模型的内部权重根据任务特定的损失函数计算出的梯度进行重新校准。该损失函数量化了模型的预测输出和实际真实标签之间的差异。
这种优化使LLM能够掌握标记数据集中嵌入的复杂模式和细微差别。因此,该模型不仅仅是一个通用工具,而是演变成一个专门的资产,能够以高精度执行目标任务。
强化学习是下一步,旨在更紧密地将模型行为与人类偏好对齐。
调优阶段利用了强化学习从人类反馈(RLHF),采用了重要性采样和近端策略优化等技术,以引入算法噪声,从而避免局部最优。这种迭代精细调优不仅提高了模型的性能,还将其输出与人类期望对齐。
Llama 2-Chat使用二元比较协议来收集人类偏好数据,标志着一种趋势,即更倾向于定性方法。这种机制告知了奖励模型,这些模型随后用于精细调优对话式AI模型。
幽灵注意力:多回合对话
Meta引入了一个新功能,幽灵注意力(GAtt),旨在增强Llama 2在多回合对话中的性能。这种方法有效地解决了对话中上下文丢失的问题。GAtt像一个锚点一样,将初始指令链接到所有后续用户消息。结合强化学习技术,它有助于在更长的对话中产生一致、相关且与用户对齐的响应。
从Meta Git仓库使用download.sh
- 访问Meta网站:导航到Meta的官方Llama 2网站,点击“下载模型”。
- 填写详细信息:阅读并接受条款和条件以继续。
- 电子邮件确认:提交表格后,您将从Meta收到一封电子邮件,包含从其Git仓库下载模型的链接。
- 执行download.sh:克隆Git仓库并执行
download.sh脚本。该脚本将提示您使用来自Meta的URL进行身份验证,该URL在24小时后过期。您还需要选择模型的大小——7B、13B或70B。
从Hugging Face
- 接收接受电子邮件:在从Meta获得访问权限后,前往Hugging Face。
- 请求访问:选择所需的模型并提交请求以授予访问权限。
- 确认:在1-2天内预计会收到“已授予访问权限”的电子邮件。
- 生成访问令牌:导航到Hugging Face账户中的“设置”以创建访问令牌。
Transformers 4.31版本与Llama 2完全兼容,并在Hugging Face生态系统中开放了许多工具和功能。从训练和推理脚本到4位量化和参数高效精细调优(PEFT),工具包是广泛的。要开始使用,请确保您使用的是最新的Transformers版本,并登录到您的Hugging Face账户。
以下是运行Llama 2模型推理的简化指南,使用Google Colab环境和GPU运行时:
包安装
<p>!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(
'谁是人工智能领域的关键贡献者?\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 UI
Andreessen Horowitz(A16Z)最近推出了一个基于Streamlit的聊天机器人界面,专门为Llama 2设计。该界面托管在GitHub上,保留会话聊天历史,并提供了从Replicate上托管的多个Llama 2 API端点中选择的灵活性。这种以用户为中心的设计旨在简化与Llama 2的交互,使其成为开发人员和最终用户的理想工具。对于那些有兴趣体验的人来说,Llama2.ai上有一个现场演示。
Llama 2:它与GPT模型和前身Llama 1有什么不同
规模的多样性
与许多语言模型不同,Llama 2提供了多种具有不同参数的模型选项。该模型的规模从7亿到70亿参数不等,提供了一系列配置以满足不同的计算需求。
上下文长度增强
该模型的上下文长度比Llama 1增加了4K令牌。这使其能够保留更多信息,从而增强其理解和生成更复杂、更广泛内容的能力。
分组查询注意力(GQA)
该架构使用分组查询注意力(GQA)的概念,旨在通过缓存以前的令牌对来加速注意力计算过程。这种方法有效地提高了模型的推理可扩展性,从而提高了可访问性。
性能基准
Llama 2已经树立了新的性能标准。它不仅优于其前身Llama 1,还对其他模型(如Falcon和GPT-3.5)提供了显著的竞争。
Llama 2-Chat的最大模型(70B)在36%的实例中优于ChatGPT,并在另外31.5%的实例中与其性能相匹配。来源:论文
开源:社区的力量
Meta和Microsoft希望Llama 2不仅仅是一个产品;他们将其视为一个社区驱动的工具。Llama 2对于研究和非商业目的都是免费访问的。他们旨在民主化AI能力,使其对初创企业、研究人员和企业开放。开源范式允许“众包故障排除”模型。开发人员和AI伦理学家可以加速测试、识别漏洞并提供解决方案。
当前Llama 2面临的挑战
- 数据泛化:Llama 2和GPT-4有时在不同任务中表现出不一致的高性能。数据质量和多样性与数据量一样重要。
- 模型透明度:鉴于AI模型以前曾产生误导性输出,探索这些复杂模型背后的决策理由至关重要。
代码Llama – Meta最新发布
Meta最近宣布了代码Llama,这是一种专门用于编程的大型语言模型,参数大小从7B到34B不等。与ChatGPT代码解释器类似,代码Llama可以简化开发人员的工作流程,使编程更加便捷。它支持多种编程语言,并提供专用版本,如代码Llama-Python,用于Python特定任务。该模型还提供不同性能级别,以满足多样化的延迟需求。开源授权,代码Llama邀请社区输入以进行持续改进。
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
结论
本文已经指导您完成在Google Colab上使用Hugging Face设置Llama 2模型以进行文本生成的过程。Llama 2的性能由一系列高级技术推动,从自回归变换器架构到强化学习和人类反馈。具有多达70亿参数和幽灵注意力等功能,该模型在某些领域超越了当前的行业标准,并且由于其开源性质,它为自然语言理解和生成性AI的新时代铺平了道路。

















