上周,Meta 发布了免费可商用的开源大模型 Llama2,来自 Huggingface 的机器学习科学家 Nathan Lambert 依据论文内容迅速写了一篇分析文章来梳理 Llama 2 的技能关键,现在他又写了一篇后续文章来补充内容,以下是文章原文。

有用 VS 无害

有人发现,Llama-2-chat 在安全过滤器方面表现出一些过于灵敏的行为。即使是问询一些无害的事情,比如「怎么制作辣椒蛋黄酱」或「怎么终止一个进程」,结果会导致该模型张狂地标明它无法做到,如下图所示:

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

关于这种现象,一种常见的理论解释是运用 RLHF(Reinforcement Learning from Human Feedback)办法太久导致的,这也揭示了大型言语模型范畴的趋势。在 RLHF 中,练习期间运用的首要功能指标是偏好模型(preference model)中奖赏的单调添加。这就存在两个问题:a)练习时运用的奖赏模型是不完好的。b)忽视了对中间练习技巧的有用评价。

只需咱们练习的奖赏模型在验证集上只能到达 65-75% 的准确率,模型就会由于过长时间的 RLHF 而呈现这种状况。当模型关于奖赏模型采纳过多优化进程时,它会过于倾向该奖赏模型喜爱的行为,假如对模型进行更全面的评价或许会得出不同的定论。

现在还没有一个有用且全面的解决方案,但是本文作者的团队正在尝试在 RL 练习的每个 epoch 中运用 MT Bench 和其他主动的 NLP 评价办法。现在,至少在对话模型范畴,LLM 的练习与用户希望十分不匹配。

Meta 的评价显示,对话模型或许有两个潜在的丧命缺点:

1、该模型据会拒绝答复高达 27%的边际问题,这与初创公司 Anthropic 的研讨严密相关。Anthropic 提出一种方案:首要开宣布一个有用的言语模型,然后再让这个言语模型无害,由于一起进行这两项工作会导致模型呈现「回避行为」。Meta 应该正在想办法解决这个问题。

这种「有用性 VS 无害性」之间的权衡是开源社区面对的根本问题。如下图(右)所示,模型在「边际数据集」上拒绝答复的状况骤增。

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

2、奖赏模型集成办法还有一个重要问题 —— 在有些状况下会呈现高度不合 —— 例如,有用性很强、安全性很低时应该怎么做,反之亦然,如下图所示:

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

显然,这种集成办法虽然是一个很棒的技能创新,但还需要进一步改进。

如今,在人工智能范畴,「公开(public)」这个概念被极度滥用,网络上的信息和数据被视为公开的,但事实却并非如此。Meta 无法明确地阐明他们是否涉嫌侵犯了版权或服务条款,但毫无疑问的是,Meta 在访问数据和文档方面还有很大的改进空间。

推理与微调

现在有许多办法能够让 7b 或 13b 的大模型在 GPU 上运转,并且将很快就能够在 iPhone 上运转。

但 70b 的更大模型要杂乱一些。有研讨标明 70b 的模型在加载 4 位量化的状况下会运用 36-38GB 的 VRAM。假如将量化添加到 8 位(float16),内存预计会相应地添加。而在任何单个 GPU 上运用完好的、非量化模型会十分困难。

在文本生成推理方面,HuggingFace 提供了如下 GPU 主张:

  • 关于 7B 模型,主张挑选 “GPU [medium] – 1x Nvidia A10G”;

  • 关于 13B 模型,主张挑选 “GPU [xlarge] – 1x Nvidia A100″;

  • 关于 70B 模型,主张挑选 “GPU [xxxlarge] – 8x Nvidia A100″。

HuggingFace 社区成员从头编写了 HuggingFace Transformers 的部分代码,使其对 Llama 模型愈加节省内存、更快速,并支持运用 RoPE 办法扩展上下文长度。

具体来说,这种改进使 Llama 2 70B 模型在序列长度是 4096 时推理速度约为 10.5 tokens / 秒,并且没有呈现内存溢出的状况。一起,序列长度为 8192 时,推理速度为每秒 8 tokens / 秒,仍然没有内存溢出。

在微调方面,运用 TRL 库(Transformer Reinforcement Learning)就能够很容易地运转有监督的微调,你能够在 T4 GPU 上练习 Llama 2 7B 模型,甚至能够在单个 A100 GPU 上练习 70B 模型。这阐明这种技能是适当容易完成的,大多数消费级 GPU 都能够用于微调 7B 或 13B 的模型变体。值得注意的是,RLHF 办法需要在内存中存储更多的梯度计算。

但是,Open LLM 排行榜的榜首仍然是从 LLaMA v1 微调出来的模型,为什么会这样?

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

有些评论标明,这似乎是由于排行榜上缺乏足够多的评价类型(即将进行更改),在评价集上或类似的数据集上微调模型很容易获得更高的功能。跟着时间的推移,运用相同数据集微调 Llama 2 得到的模型简直肯定会功能更好。

此外,Llama 2 还有一些值得重视的方面,包含:

东西的运用:Llama 2-Chat 仅经过语义就能够了解东西的运用和 API 参数,虽然其从未接受过运用东西的练习。将 LLM 用作东西具有极大的潜力。为了推动其发展,咱们需要一些标准的评价环境。

Prompt 方面的问题:prompt 或许是导致回避行为的问题所在。Llama 2 的 prompt 是个需要持续重视的问题,由于依据 LLaMA v1 的评价结果,prompt 是导致不一致结果的重要因素。

代码生成:Llama 2 在代码生成方面不够好,许多人标明他们更乐意运用 ChatGPT。关于这一点,Yann Lecun 暗示 Meta 或许会再发布一个版别。

有趣的商业答应:Meta 的答应规定,在发布时具有超过 7 亿活泼用户的公司不能商业化运用该模型。

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

Ghost 注意力

许多言语模型都存在一个问题:你在第一轮告诉它做某事(例如「用海盗的风格答复」,那么经过一两轮对话后模型就会忘掉这个要求。

Meta 在论文中解释了这种多轮指令的要求:

在对话设置中,有些指令应该适用于一切对话次序,例如简练地答复,或许「扮演」某个人物。

为了让 Llama 2 有用地遵从多轮指令,Meta 提出了 Ghost Attention(GAtt),这是一种类似于上下文蒸馏的新办法。GAtt 并不是有必要完成的进程,但它的确能让言语模型更好地遵从多轮指令。

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

RLHF 的一些细节

RS

练习进程:Llama 2 运用的丢失函数实践上并不是那么清楚。在 Meta 的论文中,他们说运用了迭代式练习,因此实践结果与 PPO(Proximal Policy Optimization)并没有太大的区别,但他们并未对丢失函数进行详细阐明。这有点让人难以了解,该研讨简直肯定是在高奖赏样本上运用了 LLM 的标准自回归猜测丢失,而这对结果有很大影响。

研讨团队观察到拒绝采样(RS)从头练习样本会导致模型能力退化。为了解决这个问题,他们从头引入了曩昔版别中的高分样本,改进了模型功能。这是 RLHF 办法中常见的对奖赏模型过拟合的一种方式。

一切较小的对话模型都是在大模型的数据上进行练习的,ChatGPT 很或许也是这样练习的。这是由于科技公司希望充分利用其最大和最优模型的出色推理能力,将其优势延续下去。

在采样进程中,他们运用高温度(high temperature)参数来获得多样化的输出,并添加批量样本的最大奖赏。

有必要依据模型和批量大小(batch size)逐步调整温度参数。Llama 2 的论文中有许多关于温度参数的内容,不太清楚有多少是针对特定状况的。

你能够参阅如下项目的内容来更好地了解 Llama 2 模型:

Llama 2第二波划重点:过于「谨慎」、代码生成改进空间大

项目地址:github.com/lvwerra/trl…

PPO

在 Llama 2 中,PPO 的完成包含许多稀有的技巧,并持续简化了 RLHF 办法,包含:

  • 运用了 InstructGPT 中提出的 SFT 束缚项,经过在丢失函数中添加额定的项来比较人类注释者编写的文本与模型生成结果之间的间隔,以坚持模型散布挨近人类书写示例。

  • 运用来自偏好集合的安全 tag,将生成结果传递给安全性偏好模型。这种办法很或许在未来会运用到更多的模型中,也有或许 GPT-4 模型已经运用了该办法。

  • 对最后的线性层得分进行白化(whiten)处理以稳定练习。本质上讲,Llama 2 的研讨创建了一个不同的线性层,帮助梯度在奖赏模型中表现得更好。这是一个有趣的技巧。

以上就是 Nathan Lambert 关于 Llama 2 的第二篇分析文章的首要内容。