解锁基于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.mzph.cn/news/747325.shtml

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

相关文章

计算机图形学学习(一)——线的绘制、三角形填充绘制

以下摘抄自本人的计算机图形学上机报告 实验内容及要求&#xff1a; 理解并掌握中点画线法、Bresenham算法、扫描线法和重心坐标法的基本原理和算法步骤。使用编程语言C实现上述算法&#xff0c;并编写相应的代码。对于直线绘制算法&#xff0c;要求能够绘制水平、垂直、斜向等…

【消息队列开发】 实现内存加载

文章目录 &#x1f343;前言&#x1f333;实现思路&#x1f6a9;读取消息长度&#x1f6a9;读取相应长度的消息&#x1f6a9;进行反序列化&#x1f6a9;判定是否有效&#x1f6a9;加入有效消息&#x1f6a9;收尾工作&#x1f6a9;代码实现 ⭕总结 &#x1f343;前言 本次开发目…

未解决的问题:字符数组中元素的个数

情形1&#xff1a; #include<stdio.h> int main() {int arr_int1[10];int arr_int2[]{1,2,3,4,5};char arr_char1[10];char arr_char2[]"world";char arr_char3[]{h,e,l,l,o};int i;i0;while(arr_char2[i]!\0){i;}printf("%d\n",i);i0;while(arr_ch…

lwip优化任务优先级

在lwIP中&#xff0c;ethernetif_input线程负责接收和处理从以太网接口接收到的数据包&#xff0c;而tcpip主线程则负责处理lwIP协议栈中的各种事件和数据包。一般情况下&#xff0c;ethernetif_input线程的优先级应该设置为低于tcpip主线程的优先级。 这是因为在实时操作系统…

HarmonyOS ArkUI入门—HarmonyOS ArkUI来开发一个健康饮食应用

本文演示如果在DevEco Studio 3里面&#xff0c;用HarmonyOS的ArkUI来开发一个健康饮食应用。体验HarmonyOS 3最新API 9&#xff01; 获取HarmonyOS应用 HarmonyOS的ArkUI来开发一个健康饮食的ArkUI程序“ArkUIHealthyDiet”&#xff0c;基础代码已经有了[1]&#xff0c;个人…

20 OpenCV像素重映

文章目录 像素重映remap 重映算子代码示例 像素重映 简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去&#xff0c;形成一张新的图像。 g(x,y)是重映射之后的图像&#xff0c;h(x,y)是功能函数&#xff0c;f是源图像 remap 重映算子 Remap…

Java项目:52 springboot基于SpringBoot的旅游网站的设计与实现013

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 旅游网站主要功能如下&#xff1a; 1.用户管理&#xff1a;注册、登录、退出、修改密码&#xff1b; 2.分类显示&#xff1a;显示旅游路线的分类&am…

MD5算法:密码学中的传奇

title: MD5算法&#xff1a;密码学中的传奇 date: 2024/3/15 20:08:07 updated: 2024/3/15 20:08:07 tags: MD5起源算法原理安全分析优缺点比较技术改进示例代码应用趋势 MD5算法起源&#xff1a; MD5&#xff08;Message Digest Algorithm 5&#xff09;算法是由MIT的计算机…

OpenHarmony教程指南—ArkTS时钟

简单时钟 介绍 本示例通过使用ohos.display 接口以及Canvas组件来实现一个简单的时钟应用。 效果预览 使用说明 1.界面通过setInterval实现周期性实时刷新时间&#xff0c;使用Canvas绘制时钟&#xff0c;指针旋转角度通过计算得出。 例如&#xff1a;"2 * Math.PI /…

Python QT 之PySide6简单入门

目录 1.开发环境配置 1.1 下载PySide6 2.2 配置pycharm相关快捷方式 PySide6_Designer - QT Designer 设计UI PySide6_UIC - 将QT Designer生成的UI文件转换为python文件 PySide6_RCC - 将RCC文件转换为python文件 2.第一个开发实例 2.1 QT desiger设计界面 2.2 将ui文…

一篇普通的生活周记

学习进度汇报&#xff1a; 这周主要是参考着视频敲完了一个vue2后台项目&#xff0c;主要是vue2element-ui,因为之前写项目的时候用过lay-ui&#xff0c;虽然是结合着node.js写的&#xff0c;但是大差不差&#xff0c;所以上手也很快。同时&#xff0c;学长发给我们了ruoyi项目…

关于如何重燃学习的激情

3月1日是我回学校的第一天。经历了长达8个月在家的昏暗时刻&#xff0c;我这10天的感觉和在家的感觉发生了翻天覆地的变化&#xff0c;最明显的莫过于学习状态的改变。 倒不是说在家学的不好&#xff0c;而是说在学校&#xff0c;我对学习的整体感觉&#xff0c;以及专注程度&…

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)

1. 题目解析 题目链接&#xff1a;206. 反转链表 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针&#xff0c;并返回该链表逆序后的新头结点。递归…

【LeetCode热题100】160. 相交链表(链表)

一.题目要求 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数…

获取淘宝商品详情API数据指南(item_get-获得淘宝商品详情)

获取淘宝商品详情API数据是一个复杂的过程&#xff0c;涉及到多个步骤和可能的权限问题。以下是一个基本的指南&#xff0c;帮助你了解如何使用item_get接口获取淘宝商品详情。 1. 注册淘宝开放平台账号 首先&#xff0c;你需要在淘宝开放平台注册一个账号。这是获取API权限和…

稀碎从零算法笔记Day18-LeetCode:移除链表元素

前言&#xff1a;接近20day的时间&#xff0c;终于来到了链表。 题型&#xff1a;指针、链表 链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你…

使用 Docker Compose 快速搭建监控网站 uptime-kuma

有时候需要监控自己搭建的一些网站、服务是否正常运行&#xff0c; 这时候可以考虑使用一个监控网站&#xff0c; 定时的进行检测&#xff0c; 记录网站、服务的运行状态&#xff0c; 在这推荐使用 uptime-kuma。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539…

精读《精通 console.log》

1 引言 本周精读的文章是 Mastering JS console.log like a Pro&#xff0c;一起来更全面的认识 console 吧&#xff01; 2 概述 & 精读 console 的功能主要在于控制台打印&#xff0c;它可以打印任何字符、对象、甚至 DOM 元素和系统信息&#xff0c;下面一一介绍。 c…

【机器学习】机器学习创建算法第2篇:K-近邻算法【附代码文档】

机器学习&#xff08;算法篇&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习算法课程定位、目标&#xff0c;K-近邻算法&#xff0c;1.1 K-近邻算法简介&#xff0c;1.2 k近邻算法api初步使用定位,目标,学习目标,1 什么是K-近邻算法,…

Docker-数据卷、网络、dockerfile、挂载

目录 一、数据卷 二、MySQL数据 三、具名和匿名挂载 1、匿名挂载 2、具名挂载 3、指定挂载 四、Dockerfile 1、数据卷容器 2、dockerfile构建步骤 五、数据卷容器 1、实现多个容器之间数据共享 2、多个mysql之间共享数据库 六、Docker网络 1、Docker0 1、查看容器…