LLMs之LLaMA2:LLaMA2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略

LLMs之LLaMA2:LLaMA2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略

导读:2023年7月18日,Meta重磅发布Llama 2!这是一组预训练和微调的大型语言模型(LLM),规模从70亿到700亿个参数不等。Meta微调的LLM称为Llama 2-Chat,专为对话使用场景进行了优化。Llama 2模型在我们测试的大多数基准测试中胜过开源聊天模型,并且根据Meta的人类评估,对于可靠性和安全性,可能是闭源模型的适当替代品。Meta提供了关于如何微调和提高Llama 2-Chat安全性的详细说明,以便让社区在Meta的工作基础上建立并为LBM的负责任开发做出贡献。
Llama 2 = Llama 1【RoPE+RMSNorm+SwiGLU+AdamW】+数据量新增40%+2Ttokens+4096+高质量SFT+RLHF对齐【PPO+Rejection 采样微调】:Llama 2模型是在2万亿个标记上进行训练的,Llama-2-chat模型还额外训练了超过100万个新的人类注释。Llama 2的数据比Llama 1多了40%,上下文长度增加了一倍。并且,Llama-2-chat使用从人类反馈中进行的强化学习来确保安全和有用。Llama 2 采用了 Llama 1 中的大部分预训练设置和模型架构,包括标准 Transformer 架构、使用 RMSNorm 的预归一化、SwiGLU 激活函数和旋转位置嵌入。 采用AdamW 优化器进行训练,其中 β_1 = 0.9,β_2 = 0.95,eps = 10^−5。同时使用余弦学习率计划(预热 2000 步),并将最终学习率衰减到了峰值学习率的 10%。Meta 在其研究超级集群(Research Super Cluster, RSC)以及内部生产集群上对模型进行了预训练。​​​​​​​
三个常用基准评估了 Llama 2 的安全性:采用 TruthfulQA 基准评估真实性+采用 ToxiGen 基准评估毒性+采用 BOLD 基准评估偏见。Meta 在安全微调中使用监督安全微调、安全 RLHF、安全上下文蒸馏。首先通过收集人类对安全性的偏好数据来进行 RLHF,其中注释者编写他们认为会引发不安全行为的 prompt,然后将多个模型响应与 prompt 进行比较,并根据一系列指南选择最安全的响应。接着使用人类偏好数据来训练安全奖励模型,并在 RLHF 阶段重用对抗性 prompt 以从模型中进行采样。Meta 通过上下文蒸馏完善了 RLHF 流程。
模型性能开源即秀+高昂承本A100+依旧走Open路线:Meta两个集群均使用了 NVIDIA A100。HuggingFace 机器学习科学家内森·兰伯特估算 Llama 2 的训练成本可能超过 2500 万美元。Meta公布了Llama 2 模型训练数据、训练方法、数据标注、微调等大量细节,对比发现,同等参数规模, Llama 2 能力超过所有的开源大模型;公布的测评结果显示,Llama 2 在包括推理、编码、精通性和知识测试等许多外部基准测试中都优于其他开源语言模型。
Llama 2的诞生,以及它开源的脾性,直接硬刚哪些说要Open却一点都不Open、一直在构建“技术围墙”的GPT-4,还有谷歌的PaLM 2。Llama 2将会是LLMs在开源领域的一个重要里程碑,未来将大概率加速改变大语言模型市场的格局和生态。
那么,今天,你的LLMs底座换了吗?

目录

LLaMA2的简介

LLaMA2的简介

1、基准测试

2、Llama-2-chat使用从人类反馈中进行的强化学习来确保安全和有用

LLaMA2的安装

1、下载下载模型权重和分词器

T1、从官网下载

T2、基于Hugging Face下载

2、安装

LLaMA2的使用方法

1、基础用法

(1)、模型推理

(2)、预训练模型

(3)、微调聊天模型


相关文章

LLMs之LLaMA:《LLaMA: Open and Efficient Foundation Language Models》翻译与解读

LLMs之LLaMA:《LLaMA: Open and Efficient Foundation Language Models》翻译与解读_ai自然语言处理_一个处女座的程序猿的博客-CSDN博客


 

LLaMA2的简介

地址

GitHub地址:GitHub - facebookresearch/llama: Inference code for LLaMA models

论文地址:
https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/

博客地址:https://ai.meta.com/resources/models-and-libraries/llama/

时间

2023年7月18日

作者

Meta

LLaMA2的简介

         2023年7月18日,Meta重磅发布Llama 2,就像官网阐述的那样,Meta正在释放这些大型语言模型的力量。Llama 2现在可供个人、创作者、研究人员和企业使用,以便他们能够负责任地实验、创新和扩展他们的想法。此版本包括预训练和微调Llama语言模型的模型权重和起始代码,范围从7B到70B个参数不等。
         Llama 2是在公开可用的在线数据源上进行预训练的。经过微调的模型Llama-2-chat利用了公开可用的指令数据集和超过100万个人类注释。在模型内部,Llama 2模型是在2万亿个标记上进行训练的,具有Llama 1的2倍的上下文长度。Llama-2-chat模型还额外训练了超过100万个新的人类注释。Llama 2的数据比Llama 1多了40%,上下文长度增加了一倍。并且,Llama-2-chat使用从人类反馈中进行的强化学习来确保安全和有用。
         Llama-2-chat是使用公开可用的在线数据对Llama 2进行预训练。然后使用监督式微调创建Llama-2-chat的初始版本。接下来,使用从人类反馈中进行的强化学习(RLHF)进行Llama-2-chat的迭代优化,其中包括拒绝抽样和近端策略优化(PPO)。

LLMs之LLaMA2:LLaMA2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略_第1张图片

1、基准测试

Llama 2在许多外部基准测试中优于其他开源语言模型,包括推理、编码、熟练度和知识测试。

LLMs之LLaMA2:LLaMA2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略_第2张图片

2、Llama-2-chat使用从人类反馈中进行的强化学习来确保安全和有用

LLMs之LLaMA2:LLaMA2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略_第3张图片

LLaMA2的安装

1、下载下载模型权重和分词器

T1、从官网下载

如果下载模型权重和分词器,需要访问Meta AI网站并接受Meta 的许可。一旦您的请求获得批准,您将通过电子邮件收到签名的URL。然后运行download.sh脚本,在提示开始下载时传递提供的URL。请确保只复制URL文本本身,不要使用右键单击URL时的“复制链接地址”选项。如果复制的URL文本以https://download.llamameta.net开头 ↗,那么您已正确复制它。如果复制的URL文本以https://l.facebook.com开头 ↗,则您复制错误了。

确保已安装wget和md5sum。然后运行脚本:

./download.sh

T2、基于Hugging Face下载

我们还提供了在Hugging Face上的下载。您必须首先使用与您的Hugging Face帐户相同的电子邮件地址从Meta AI网站请求下载。这样做后,您可以请求访问Hugging Face上的任何模型,在1-2天内,您的帐户将获得访问所有版本的权限。

2、安装

在具有PyTorch/CUDA的conda环境中,克隆存储库并在顶级目录中运行

pip install -e 

LLaMA2的使用方法

1、基础用法

(1)、模型推理

不同的模型需要不同的模型并行(MP)值

Model MP
7B 1
13B 2
70B 8

所有模型都支持最多4096个标记的序列长度,但我们根据max_seq_len和max_batch_size值预分配缓存。因此,请根据您的硬件设置这些值。

(2)、预训练模型

这些模型没有微调为聊天或问答。它们应该被提示,以便预期的答案是提示的自然延续。
有关一些示例,请参见example_text_completion.py。为了说明这一点,请查看下面的命令,以使用llama-2-7b模型运行它(nproc_per_node需要设置为MP值):

torchrun --nproc_per_node 1 example_text_completion.py \
    --ckpt_dir llama-2-7b/ \
    --tokenizer_path tokenizer.model \
    --max_seq_len 128 --max_batch_size 4

(3)、微调聊天模型

这些经过微调的模型是为对话应用程序而训练的。为了获得预期的特征和性能,需要遵循在chat_completion中定义的特定格式,包括INST和<>标签、BOS和EOS标记,以及它们之间的空格和换行符(我们建议对输入调用strip()以避免双空格)。
您还可以部署其他分类器,以过滤出被认为不安全的输入和输出。请参见llama-recipes存储库,了解如何将安全检查器添加到您的推断代码的输入和输出中的示例。
使用llama-2-7b-chat的示例:

torchrun --nproc_per_node 1 example_chat_completion.py
--ckpt_dir llama-2-7b-chat/
--tokenizer_path tokenizer.model
--max_seq_len 512 --max_batch_size 4

Llama 2是一项新技术,其使用存在潜在风险。到目前为止进行的测试并不能涵盖所有情况。为了帮助开发人员应对这些风险,我们创建了负责任的使用指南。更多详细信息可以在我们的研究论文中找到。

你可能感兴趣的:(NLP/LLMs,基础大模型,自然语言处理,LLaMA)