解锁基于LLMS的咒语:通过上下文学习重新思考对齐

一、写作动机:

最近的一项研究,LIMA,表明仅使用1K个示例进行SFT也可以实现显著的对齐性能,这表明对齐微调的效果可能是“表面的”。(知识和推理能力来源于预训练,而不是必须通过对齐微调获得的。)这引发了对对齐调整如何确切地转变基础LLM的问题。作者通过检查基础LLMs及其对齐的对应版本之间的token分布变化(例如,Llama-2和Llama2-chat),来分析对齐微调的效果。结果显示,基础LLMs及其对齐微调版本在大多数token位置的解码上表现几乎相同(即,它们共享排名靠前的token)。大多数分布变化发生在风格token(例如,话语token、安全声明)上。这些直接证据强烈支持对齐微调主要学习采用AI助手的语言风格的假设,并且用于回答用户查询的知识主要来自基础LLMs本身。基于这些发现,我们通过提出研究问题重新思考LLMs的对齐:我们可以多大程度地在没有SFT或RLHF的情况下对齐基础LLMs?

二、主要贡献:

作者介绍了一种简单的、不需要微调的对齐方法,URIAL(未调整的LLMs与重新风格化的上下文对齐)。URIAL纯粹通过基础LLMs的上下文学习(ICL)实现有效的对齐,只需要三个恒定的风格示例和一个系统提示。作者对各种示例进行了细致且可解释的评估,命名为just-eval-instruct。结果表明,具有URIAL的基础LLMs可以与通过SFT(Mistral-7b-Instruct)或SFT+RLHF(Llama-2-70b-chat)对齐的LLMs的性能相匹配甚至超越。

三、解密通过Token分布偏移的对齐:

对于给定的用户查询q = {q1, q2, · · · },将其输入到对齐模型g(x)中,通过贪婪解码获得其输出o = {o1, o2, · · · }。对于每个位置t,在该位置定义一个“上下文”为xt = q + {o1, · · · , ot−1}。将对齐模型在预测该位置的下一个标记时的概率分布定义为Palign,其中ot具有最高概率。作者的分析驱动了一个问题:如果从对齐模型g切换到基础模型f以解码此位置的下一个标记,会发生什么?

在整个标记词汇表上分析两个分布之间的差异是具有挑战性的,特别是在解码时启用抽样时。如下图所示,使用贪婪解码的对齐模型g首先用于生成完整输出o。对于每个位置t,根据基础模型f预测的概率Pbase对标记进行排序。ot在此排序列表中的排名被定义为“基础排名”,表示为η。这导致了三种类型的位置:(1)未偏移的位置(η = 1):ot在Pbase和Palign中都是排名最高的标记,具有最高概率;(2)边缘位置(1 < η ≤ 3):虽然ot在Pbase中不是排名最高的标记,但仍有可能被用于解码,具有第二或第三高的概率。(3) 偏移位置(η > 3):在这种情况下,ot 很可能不会被Pbase抽样,这表明了从Pbase到Palign的显著分布偏移。

对于对齐微调的总结:

  • 对齐只影响了很小一部分token;在大多数位置上,基础和对齐的LLMs在解码时的行为相同,它们共享相同的排名最高的token。
  • 对齐主要涉及风格token,例如话语token、过渡词和安全声明,这些token仅占总token位置的很小一部分。
  • 对齐对于较早的token更为关键。对于大多数位置,对齐模型的排名最高的token在基础模型排名前五的token内。
  • 基础LLMs已经获得了足够的知识来遵循指令。当给定适当的上下文作为前缀时,它们的行为与对齐的LLMs非常相似。

四、URIAL方法:

由两部分组成:ICL示例的风格化输出和用于上下文对齐的系统提示。(URIAL使用尽可能少的K=3个恒定上下文示例)

五、实验:

5.1、数据集和模型:

合并了五个现有数据集:(1) AlpacaEval2 (Li等人,2023a),(2) MT-Bench (Zheng等人,2023),(3) LIMA (Zhou等人,2023),(4) HH-RLHF-redteam (Ganguli等人,2022)和(5) MaliciousInstruct (Huang等人,2023)。控制了大小,以确保评估是可承受的,同时保持任务和主题的多样性,以进行全面分析。最终,创建了一个包含1,000个示例的集合,我们称之为just-eval-instruct。来自前三个子集的800个示例专注于评估LLMs的帮助性,来自最后两个子集的200个示例针对测试LLMs的无害性的红队指令。

选取了三个主要的基础LLMs进行实验:Llama-2-7b、Llama-2-70bq (通过GPTQ进行4位量化 (Frantar等人,2022)) 和 Mistral-7b (v0.1) (Jiang等人,2023a)。请注意,这三个LLMs没有使用任何指令数据或人类偏好数据进行微调。

四个构建在这些基础模型上的对齐模型:它们是Vicuna-7b (v1.5)、Llama-2-7b-chatq、Llama-2-70b-chat和Mistral-7b-Instruct。除了这些开源LLMs,还包括了OpenAI GPTs的结果(即gpt-3.5-turbo和gpt-4)。

5.2、评估:

提出了一个关于以下六个方面的多方面、可解释的评估协议:有帮助性,清晰度,事实性,深度,参与度和安全性,开发了基于评分的模板,以促使OpenAI GPTs在每个描述的方面上评估LLM输出,以及对其评估的理由。使用GPT-4来评估800个常规指令,以评估前五个方面,而使用ChatGPT来评估200个有关安全方面的红队测试和恶意指令。在每个方面上,将得到一个从1到5的分数,表示‘强烈不同意’,‘不同意’,‘中立’,‘同意’和‘强烈同意’。

5.3实验结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541192.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带大家做一个,易上手的家常炒紫甘蓝

这里 拿了半个紫甘蓝 半个就够炒一盘子 按 片 切成 片条 因为 你切开就会发现 里面很多地方会变成一条一条的 切小一点 因为紫甘蓝相对其他蔬菜 会硬一些 切大了 不好咬 然后过清水洗干净 两瓣蒜 切片 然后 起锅烧油 下入三个干辣椒 炒一小会儿 然后 下入 甘蓝翻炒 翻炒几…

uni-app微信小程序上拉加载,下拉刷新

pages.json配置官网链接 onPullDownRefresh、onReachBottom函数跟生命周期同级 data() {return {orderList:[],total: null, //总共多少条数据page: 1,pageSize: 10,} }, onLoad() {}, mounted(){this.getInfo() }, methods:{getInfo(){API.getListxxx().then(res > {const…

寻找用户痛点塑造产品价值 4大注意事项

移动互联网时代&#xff0c;用户价值不言而喻&#xff0c;只有拥有用户思维&#xff0c;寻找到用户痛点&#xff0c;塑造出产品价值&#xff0c;才能打造出爆款产品。因此要塑造产品价值&#xff0c;核心是寻找用户痛点。如果没有找到用户痛点&#xff0c;意味着产品无法满足用…

Linux 管道

目录 一、认识管道 二、匿名管道 pipe函数 用法&#xff1a; pipefd&#xff1a; 匿名管道通信&#xff1a; 三、命名管道 概念&#xff1a; 创建&#xff1a; 特性&#xff1a; 用途&#xff1a; 四、命名管道和匿名管道的区别 命名&#xff1a; 持久性&#xff1a;…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Refresh)

可以进行页面下拉操作并显示刷新动效的容器组件。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 从API version 11开始&#xff0c;Refresh子组件会跟随手势下拉而下移…

Autosar教程-Mcal教程-Lin配置教程

3.7LIN配置、生成 3.7.1 配置通用设置 3.7.2 配置Dem参数 3.7.3 配置Lin通道 3.7.4配置生成命令 参照Dio生成命令方法&#xff0c;创建Lin生成命令&#xff0c;创建完成后按下面提供的信息配置生成命令。 实际上MCAL代码并不能单独生成&#xff0c;它需要和BSW的配置文件一…

企业如何高效管理微信里的客户?

对于企业来说&#xff0c;懂得高效管理微信列表的客户是非常重要的一件事&#xff0c;只有把客户管理好了&#xff0c;才能更好地提高客户的满意度和忠诚度&#xff0c;我们的销售业务才能顺利进行。 那么&#xff0c;应该怎样管理才能算是高效管理呢&#xff1f;下面就给大家…

DLL修复,快速补救带来了文件丢失问题,完美解救计算困境!

动态链接库&#xff08;DLL&#xff09;文件在Windows操作系统中扮演着重要角色&#xff0c;它们允许多个程序共享同一个功能或信息&#xff0c;从而节省系统资源并简化编码。但是&#xff0c;当DLL文件发生错误时&#xff0c;它可能导致软件崩溃或无法正常工作。在本文中&…

【MySQL】4. 表的操作

表的操作 1. 创建表 语法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明&#xff1a; field 表示列名 datatype 表示列的类型 character set 字符集&#xff0c…

一文轻松学会远程服务器/docker内 vscode,调试(debug)无/多参数/bash以及多工作空间运行的python程序,欢迎大佬补充,一起学习

至于如何SSH、docker以及无需参数的程序调试这篇就先不说了。本篇文章主要记录一下多参数和多工作空间调试的问题。 一、launch.json文件 如上图所示&#xff0c;正常情况下当我们想要调试项目名字为0的目录下的train.py文件时&#xff0c;我们会按顺序点1&#xff0c;2&#…

labview技术交流-判断两个数组的元素是否完全相同

问题来源 分析并判断两个一维数组中包含的元素是否完全相同&#xff0c;不考虑索引顺序。比如说[1,5,7,3]和[3,5,7,1]是完全相同的两个一维数组&#xff0c;那[1,5,7,3]和[5,7,1,4]就不是相同的数组。结合我给出的示例&#xff0c;大家有没有什么思路呢&#xff1f; 思路分析 …

探秘Kafka位移在消息旅程中的神奇

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 探秘Kafka位移在消息旅程中的神奇 前言什么是消费者位移消费者位移的定义和作用&#xff1a;消费者位移对于消息传递的一致性至关重要的原因&#xff1a; 位移的存储方式位移信息的存储方式&#xff1…