当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

来源:机器之心 2023-09-13 18:46:04 0浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符》,这篇文章主要讲到等等知识,如果你对科技周边相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

基于 Transformer 的大型语言模型(LLM)已经展现出执行上下文学习(ICL)的强大能力,并且几乎已经成为许多自然语言处理(NLP)任务的不二选择。Transformer 的自注意力机制可让训练高度并行化,从而能以分布式的方式处理长序列。LLM 训练所用的序列的长度被称为其上下文窗口。

Transformer 的上下文窗口直接决定了可以提供示例的空间量,从而限制了其 ICL 能力。
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
如果模型的上下文窗口有限,那么为模型提供稳健示例的空间就更少,而这些稳健示例正是执行 ICL 所用的。此外,当模型的上下文窗口特别短时,摘要等其它任务也会受到严重妨碍。

就语言本身的性质来说,token 的位置对有效建模来说至关重要,而自注意力由于其并行性,并不会直接编码位置信息。Transformer 架构引入了位置编码来解决这个问题。

原始的 Transformer 架构使用了一种绝对正弦位置编码,之后其被改进成了一种可学习的绝对位置编码。自那以后,相对位置编码方案又进一步提升了 Transformer 的性能。目前,最流行的相对位置编码是 T5 Relative Bias、RoPE、XPos 和 ALiBi。

位置编码有一个反复出现的限制:无法泛化在训练期间看到的上下文窗口。尽管 ALiBi 等一些方法有能力做一些有限的泛化,但还没有方法能泛化用于显著长于其预训练长度的序列。
    
已经出现了一些试图克服这些限制的研究成果。比如,有研究提出通过位置插值(PI)来稍微修改 RoPE 并在少量数据上微调来扩展上下文长度。

两个月前,Nous Research 的 Bowen Peng 在 Reddit 分享了一种解决思路,即通过纳入高频损失来实现「NTK 感知型插值」。这里的 NTK 是指 Neural Tangent Kernel(神经正切核)。
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
其声称经过 NTK 感知型扩展的 RoPE 能让 LLaMA 模型的上下文窗口大幅扩展(超过 8k),同时还无需任何微调,对困惑度造成的影响也极小。

近日,他与另外三位合作者的相关论文出炉了!
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
  • 论文:https://arxiv.org/abs/2309.00071
  • 模型:https://github.com/jquesnelle/yarn

在这篇论文中,他们对 NTK 感知型插值做出了两点改进,它们分别侧重于不同的方面:

  • 动态 NTK 插值法,无需微调就能用于预训练模型。
  • 部分 NTK 插值法,当使用少量更长上下文的数据微调后,模型能取得最佳表现。

研究者表示,在这篇论文诞生前,就已经有研究者将 NTK 感知型插值和动态 NTK 插值用于一些开源模型。比如 Code Llama(使用 NTK 感知型插值)和 Qwen 7B(使用动态 NTK 插值)。

在这篇论文中,基于之前有关 NTK 感知型插值、动态 NTK 插值和部分 NTK 插值的研究成果,研究者提出了 YaRN(Yet another RoPE extensioN method),一种可以高效扩展使用旋转位置嵌入(Rotary Position Embeddings / RoPE)的模型的上下文窗口的方法,可用于 LLaMA、GPT-NeoX 和 PaLM 系列模型。研究发现,只需使用原模型预训练数据规模大约 0.1% 量的代表性样本进行微调,YaRN 就能实现当前最佳的上下文窗口扩展性能。
  
方法

旋转位置嵌入(Rotary Position Embeddings / RoPE)最早由论文《RoFormer: Enhanced transformer with rotary position embedding》引入,也是 YaRN 的基础。

简单来说,RoPE 可以写成如下形式:
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
对于使用固定上下文长度预训练的 LLM,如果使用位置插值(PI)来扩展上下文长度,则可以表示为:
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
可以看出 PI 对所有 RoPE 维度都会做同等延展。研究者发现 PI 论文中描述的理论插值界限不足以预测 RoPE 和 LLM 内部嵌入之间的复杂动态。下面将描述研究者发现并解决的 PI 的主要问题,以便读者了解 YaRN 中各种新方法的背景、起因和解决理由。
    
高频信息丢失 ——NTK 感知型插值

如果只从信息编码的角度看 RoPE,根据神经正切核(NTK)理论,如果输入维度较低且对应的嵌入缺乏高频分量,那么深度神经网络难以学习高频信息。

为了解决在对 RoPE 嵌入插值时丢失高频信息的问题,Bowen Peng 在上述 Reddit 帖子中提出了 NTK 感知型插值。这种方法不会对 RoPE 的每个维度进行同等扩展,而是通过更少地扩展高频和更多地扩展低频来将插值压力分散到多个维度。

在测试中,研究者发现在扩展未经微调的模型的上下文大小方面,这种方法优于 PI。但是,这种方法有一个重大缺点:由于它不只是一种插值方案,某些维度会被外推入一些「界外」值,因此使用 NTK 感知型插值进行微调的效果不及 PI。

更进一步说,由于存在「界外」值,理论上的扩展因子就无法准确地描述真实的上下文扩展程度。在实践中,对于给定的上下文长度扩展,必须将扩展值 s 设置得比期望的扩展值高一点。
       
相对局部距离的损失 —— 部分 NTK 插值

对于 RoPE 嵌入,有一个有趣的观察:给定一个上下文大小 L,存在某些维度 d,其中的波长 λ 长于预训练阶段见过的最大上下文长度(λ > L),这说明某些维度的嵌入可能在旋转域中的分布不均匀。

PI 和 NTK 感知型插值会平等地对待所有 RoPE 隐藏维度(就好像它们对网络有同样的效果)。但研究者通过实验发现,网络会给某些维度不同于其它维度的待遇。如前所述,给定上下文长度 L,某些维度的波长 λ 大于或等于 L。由于当一个隐藏维度的波长大于或等于 L 时,所有的位置配对会编码一个特定的距离,因此研究者猜想其中的绝对位置信息得到了保留;而当波长较短时,网络仅可获得相对位置信息。

当使用扩展比例 s 或基础变化值 b' 来拉伸所有 RoPE 维度时,所有 token 都会变得与彼此更接近,因为被一个较小量旋转过的两个向量的点积会更大。这种扩展会严重损害 LLM 理解其内部嵌入之间小的局部关系的能力。研究者猜测这种压缩会导致模型对附近 token 的位置顺序感到困惑,从而损害模型的能力。

为了解决这个问题,基于研究者观察到的现象,他们选择完全不对更高频率的维度进行插值。

他们还提出,对于所有维度 d,r β 的维度就完全不插值(总是外推)。

使用这一小节描述的技术,一种名为部分 NTK 插值的方法诞生了。这种改进版方法优于之前的 PI 和 NTK 感知型插值方法,其适用于无微调和已微调模型。因为该方法避免了对旋转域分布不均匀的维度进行外推,因此就避免了之前方法的所有微调问题。  
 
动态缩放 —— 动态 NTK 插值

当使用 RoPE 插值方法无微调地扩展上下文大小时,我们希望模型在更长的上下文大小上慢慢地劣化,而不是在扩展度 s 超过所需值时在整个上下文大小上完全劣化。

在动态 NTK 方法中,扩展度 s 是动态计算的。

在推理过程中,当上下文大小被超过时,就动态地更改扩展度 s,这样可让所有模型在达到训练的上下文限制 L 时缓慢地劣化而不是突然崩溃式劣化。   
  
增加用于长距离的平均最小余弦相似度 ——YaRN

即便解决了前面描述的局部距离问题,为了避免外推,也必须在阈值 α 处插值更大的距离。直觉来看,这似乎不应该是个问题,因为全局距离无需高精度也能区分 token 位置(即网络只需大概知道 token 是在序列的开头、中间或末尾即可)。

但是,研究者发现:由于平均最小距离随着 token 数量的增加而变得更近,因此它会使注意力 softmax 分布变得更尖(即减少了注意力 softmax 的平均熵)。换句话说,随着长距离衰减的影响因插值而减弱,网络会「更加关注」更多 token。这种分布的转变会导致 LLM 输出质量下降,这是与之前问题无关的另一个问题。

由于当将 RoPE 嵌入插值到更长的上下文大小时,注意力 Softmax 分布中的熵会减少,因此研究者的目标是逆转这种熵减(即增加注意力 logit 的「温度」)。这可以通过在应用 softmax 之前将中间注意力矩阵乘以温度 t > 1 来完成,但由于 RoPE 嵌入被编码为一个旋转矩阵,就可以简单地按常数因子 √t 来扩展 RoPE 嵌入的长度。这种「长度扩展」技巧让研究可以不必修改注意力代码,这能大幅简化与现有训练和推理流程的集成,并且时间复杂度仅有 O (1)。

由于这种 RoPE 插值方案对 RoPE 维度的插值不均匀,因此很难计算相对于扩展度 s 所需的温度比例 t 的解析解。幸运的是,研究者通过实验发现:通过最小化困惑度,所有 LLaMA 模型都遵循大致相同的拟合曲线:
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
研究者是在 LLaMA 7B、13B、33B 和 65B 上发现这个公式的。他们发现这个公式也能很好地适用于 LLaMA 2 模型(7B、13B 和 70B),差别很细微。这表明这种熵增特性很常见,可以泛化到不同的模型和训练数据。

这种最终修改方案产出了 YaRN 方法。新方法在已微调和未微调场景中都胜过之前所有方法,而且完全不需要修改推理代码。只需要修改一开始用于生成 RoPE 嵌入的算法。YaRN 如此简单,使其可以在所有推理和训练库中轻松实现,包括与 Flash Attention 2 的兼容性。
     
实验

实验表明 YaRN 能成功扩展 LLM 的上下文窗口。此外,他们仅训练了 400 步就得到了这一结果,这差不多只有模型的原始预训练语料库的 0.1%,与之前的研究成果相比有大幅下降。这说明新方法具有很高的计算效率,没有额外的推理成本。

为了评估所得到的模型,研究者计算了长文档的困惑度,并在已有基准上进行了评分,结果发现新方法胜过所有其它上下文窗口扩展方法。

首先,研究者评估了上下文窗口增大时模型的性能表现。表 1 总结了实验结果。
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
表 2 展示了在 50 个未截断的 GovReport 文档(长度至少为 16k token)上的最终困惑度。
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符
为了测试使用上下文扩展时模型性能的劣化情况,研究者使用 Hugging Face Open LLM Leaderboard 套件评估了模型,并将其与 LLaMA 2 基准模型以及公开可用的 PI 和 NTK 感知型模型的已有分数进行了比较。表 3 总结了实验结果。
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

到这里,我们也就讲完了《想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于理论,Neural Tangent Kernel,NTK 感知型插值,Transformer的知识点!

版本声明
本文转载于:机器之心 如有侵犯,请联系study_golang@163.com删除
对话生成:AIGC引领游戏开发新潮流,创造环境与物体只需对话对话生成:AIGC引领游戏开发新潮流,创造环境与物体只需对话
上一篇
对话生成:AIGC引领游戏开发新潮流,创造环境与物体只需对话
机器学习为未来核聚变发电厂寻找合适的氢同位素组合
下一篇
机器学习为未来核聚变发电厂寻找合适的氢同位素组合
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    514次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    499次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO  AI Mermaid 流程图:自然语言生成,文本驱动可视化创作
    AI Mermaid流程图
    SEO AI Mermaid 流程图工具:基于 Mermaid 语法,AI 辅助,自然语言生成流程图,提升可视化创作效率,适用于开发者、产品经理、教育工作者。
    436次使用
  • 搜获客笔记生成器:小红书医美爆款内容AI创作神器
    搜获客【笔记生成器】
    搜获客笔记生成器,国内首个聚焦小红书医美垂类的AI文案工具。1500万爆款文案库,行业专属算法,助您高效创作合规、引流的医美笔记,提升运营效率,引爆小红书流量!
    422次使用
  • iTerms:一站式法律AI工作台,智能合同审查起草与法律问答专家
    iTerms
    iTerms是一款专业的一站式法律AI工作台,提供AI合同审查、AI合同起草及AI法律问答服务。通过智能问答、深度思考与联网检索,助您高效检索法律法规与司法判例,告别传统模板,实现合同一键起草与在线编辑,大幅提升法律事务处理效率。
    451次使用
  • TokenPony:AI大模型API聚合平台,一站式接入,高效稳定高性价比
    TokenPony
    TokenPony是讯盟科技旗下的AI大模型聚合API平台。通过统一接口接入DeepSeek、Kimi、Qwen等主流模型,支持1024K超长上下文,实现零配置、免部署、极速响应与高性价比的AI应用开发,助力专业用户轻松构建智能服务。
    462次使用
  • 迅捷AIPPT:AI智能PPT生成器,高效制作专业演示文稿
    迅捷AIPPT
    迅捷AIPPT是一款高效AI智能PPT生成软件,一键智能生成精美演示文稿。内置海量专业模板、多样风格,支持自定义大纲,助您轻松制作高质量PPT,大幅节省时间。
    424次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码