【CMU博士论文】结构化推理增强大语言模型(Part 0)
问题 :语言生成和推理领域的快速发展得益于围绕大型语言模型的用户友好库的普及。这些解决方案通常依赖于Seq2Seq范式,将所有问题视为文本到文本的转换。尽管这种方法方便,但在实际部署中存在局限性:处理复杂问题时的脆弱性、缺乏反馈机制以及内在的黑箱性质阻碍了模型的可解释性。
这表明,传统的文本输入-文本输出解决方案可能无法利用对模型利益相关者显而易见的有益结构属性。在模型开发过程中整合结构需要仔细审视问题设置,但通常相对简单的实现可以带来显著的回报——一点结构就可以产生很大作用。
重点:本文提出了通过在语言模型的设计和操作中整合结构化元素来解决这些局限性的方法。
结构:被定义为数据的系统性、层次性或关系性组织和表示,以及在学习和推理过程中引入结构约束。
- 在训练阶段,提出了训练图辅助问答模型的技术,并发现有助于有效生成序列集的顺序。
- 在推理阶段,提出了利用代码作为中间表示来整合结构的技术。
- 在推理后阶段,我们介绍了整合记忆的方法,使模型能够利用反馈而无需额外训练。
作者提出下一代AI系统将把大型语言模型视为强大的内核,在其上构建灵活的推理程序以增强复杂推理。
随着文本生成和推理的用户友好库的广泛普及,许多任务已成功地在seq2seq框架中实现,这不仅扩展到对话生成和摘要生成等自然适合这些范式的任务,还包括传统上与语言模型不相关的任务,如蛋白质序列预测、图生成、程序合成和结构化常识推理。
尽管通常不建议将任务适配到现有工具 [Paszke et al., 2017, Wolf et al., 2019],但这些库的易用性和可访问性有时会导致忽视使用这些现成解决方案所带来的固有权衡和局限性。
1.1.1 现有大型语言模型设置的局限性
反馈对于根据用户偏好定制模型输出和改善整体用户体验至关重要。然而,目前的Seq2Seq模型并不是为了接收直接反馈而设计的,这使得用户很难影响或指导模型的输出[Kreutzer等人,2018,Jaques等人,2019]。接下来我们将详细阐述这些挑战。
1 提供反馈的能力
提供反馈的能力将实现更具互动性和用户驱动的结果,从而实现更好的定制和改进的整体性能。例如,在对话系统中,在纽约市寻找意大利餐馆的用户可能希望澄清或更正Seq2Seq模型提供的信息。如果模型给出了一个不正确的位置,用户就很难给出反馈并引导模型找到想要的答案。更糟糕的是,如果没有保留反馈的能力,模型将继续重复同样的错误。
已经提出了几种方法来解决这个问题,例如从人类反馈中强化学习[Kreutzer等人,2018,Jaques等人,2019],用于序列预测的actor-critic算法[Bahdanau等人,2016],以及监督学习[Stiennon等人,2020,Ouyang等人,2022b]。然而,这些方法通常需要额外的训练或大量的数据,使得它们不太适合少量的学习或数据可用性有限的场景。尽管取得了这些进展,但在开发实用和有效的Seq2Seq模型在少镜头学习背景下的反馈机制方面仍有很大的研究差距。在本文中,我们的目标是研究这一差距,并探索新的方法,可以在不需要重新训练的情况下有效地纳入用户反馈,从而提高Seq2Seq模型在数据可用性有限的现实应用中的性能和适应性。
2 不匹配表示导致的脆性
Seq2Seq模型面临的一个主要挑战是它们在处理明显偏离文本数据的输入或输出时的脆弱性。当应用于非常规任务或领域时,这种限制可能导致性能不佳,这些任务或领域需要与训练期间遇到的表示不同[Lake等人,2017,Ratner等人,2017]。开发能够处理不同和不匹配表示的模型不仅可以提高它们的泛化能力,还可以扩展它们对更广泛任务的适用性。
例如,在大量英语文本语料库上训练的Seq2Seq模型可能不适合处理特定于领域的语言的输入或输出,例如数学方程或计算机代码。在处理不匹配表示方面解决这一差距对于创建更通用和健壮的Seq2Seq模型至关重要,这些模型可以适应各种现实世界的场景和任务[Graber等人,2018]。
3 未能利用数据中固有的结构
普通Seq2Seq模型的一个重大限制是,它们倾向于将输入和输出数据视为非结构化序列,往往忽略了可以用来增强模型理解和生成能力的任何底层结构或模式[Bastings等人,2017]。将领域特定的知识、结构或约束合并到模型体系结构或训练过程中,将支持更准确、有效和一致的输出生成,从而在专门的任务或领域中获得更好的性能。
类人文本生成和推理的关键能力
支持下一个令牌预测目标简单的一个常见论点是,它与人类处理和生成语言的方式相似[Heilbron et al., 2022]。然而,人类推理表现出的细微差别是当前模型难以复制的。以下几个例子突出了这些局限性:
- 生成多个候选项:人类经常创建和评估多个选项,这是标准LLM输出中不固有的过程。
- 迭代生成: 在像写作这样的任务中,人类参与评审和改进的迭代过程,而不是由法学硕士完成的一次性生成。
- 语境和世界知识:人类的交流依赖于超越直接文本数据的更广泛的知识和语境信息。
- 工具使用: 人们使用各种工具来完成任务。最重要的是,人们意识到什么时候需要一个特定的工具。
- 问题重构:人们经常重新表述问题并重新尝试。
- 优先处理简单的任务:一个常见的人类解决问题的策略是先处理问题的简单部分。
这些示例有一个共同的主题:需要超越简单的输入/输出关系。法学硕士提供了非凡的能力,但为了解决所有的任务,它们需要用更复杂的推理过程来增强。这种需求反映在少量提示技术的兴起中,其中使用搜索、自我改进和工具使用等策略来增强这些模型。这些技术中的许多都隐含地引入了结构元素,下面将对此进行解释。
1.1.2 注入结构:本文的贡献
某些问题可能提供一种固有的结构,可以用于可解释性或有效性。例如,在解决常识性推理问题时,将结果附加在捕获相关关系和依赖关系的知识图上可能是有用的[Han等人,2020]。解决这一差距并开发将结构信息纳入Seq2Seq模型的方法,有可能显著提高其在广泛领域和任务中的性能和适用性[Zhang等人,2019a,c]。
结构在人工智能领域是一个模棱两可的术语,有多种解释[Newell et al., 1972, Russell, 2010]。为了本文的目的,我们采用了一个广泛的结构视角,不仅包括其在组织训练数据中的使用[Bengio等人,2013,Schmidhuber, 2015],还包括其在整个模型开发和部署生命周期中的作用,从增强训练和推理结果[Vaswani等人,2017,Devlin等人,2019,Lake等人,2017],到提高最终结果有效性的推理后调整[Nye等人,2021b, Dohan等人,2022]。
定义1 (结构)。在结构增强生成与推理的背景下,期限结构是指:
图1.1:本论文提案概述:本论文的目标是在模型开发和部署管道中集成结构。
a. 以系统、分层或关系的方式组织和表示数据、知识或信息[Pearl等人,2000;Bengio等人,2013;Hovy等人,2013]。这有助于捕捉不同元素之间的潜在关系和依赖关系,使人工智能系统更容易理解、生成和使用自然语言进行推理。例如,组织知识图来表示领域中实体之间的关系。
b. 利用数据或问题域中存在的固有结构来优化结果[Bahdanau等人,2014,Vaswani等人,2017,Battaglia等人,2018]。这包括使用数据或知识的结构属性来改进推理、决策或生成,以及增强人工智能系统的效率、可解释性或可扩展性。例如,使用解析树的结构来指导生成语法正确的句子。
注意,这个定义超越了关注数据排列的传统结构定义,并在定义中包含了过程。因此,我们对结构的定义既包括数据的结构,也包括过程本身。
图1.2:本文四个部分的示例:(a)在数据中注入结构进行微调,(b)结构增强建模,©在推理过程中利用结构,以及(d) LLM的推理后增强。
1.2 论文概述
本文探讨了结构在当代语言生成和推理模型中的重要意义。全文共分为四个部分:
第一部分:在数据中注入结构用于调优,涵盖三个章节,探索大型语言模型(llm)在各种任务中的高级应用。
- 第2章研究了使用llm (NAACL 2021)生成文档的事件级时间图。它提出了使用llm自动生成文档事件级时间图的第一个研究,并证明了该方法的有效性。
- 第3章介绍了SETAUG,一种有效利用序不变性和基数性的条件集生成新算法(EMNLP 2022)。通过在增强数据上训练序列到序列模型,该方法在多个基准数据集上取得了显著的改进。
第二部分:结构辅助建模 深入研究了结构增强的生成和推理。
- 第5章重点介绍了文本风格迁移(ACL 2020),并提出了在没有并行数据的情况下有效和可解释的风格迁移技术。两个步骤的过程提高了性能和可解释性。
- 第6章研究了使用图的结构化情景推理(ACL 2021, EMNLP 2021)。提出了一种分层混合专家模型,该模型可以有效地学习输入噪声图的条件,以提高推理能力。
第4章提出了一种使用llm和程序轨迹数据集(DL4C 2022接受的初步数据集版本)的程序中有针对性的算法优化方法。这项工作正在进行中,旨在改进编程任务的优化过程。
第三部分:在推理过程中利用结构探讨了图生成、结构化常识推理和程序辅助语言模型的方法。
- 第7章介绍了COCOGEN,这是一种使用大型语言模型进行结构化常识推理的新方法(EMNLP 2022)。它将结构化的常识性推理任务视为代码生成任务,允许预先训练的代码LMs作为结构化的常识性推理器执行得更好。
- 第8章介绍了程序辅助语言模型(PAL)方法,它利用大型语言模型来理解和分解问题,同时将解决步骤外包给运行时(ICML 2023)。这种方法可以提高算术和符号推理任务的性能。
第四部分:llm的推理后增强 研究了两章,重点是通过用户交互和迭代改进来增强大型语言模型(llm)。第9章介绍了MEMPROMPT,这是一种将GPT-3与用户反馈记忆相结合的方法,可提高跨不同任务的准确性(EMNLP 2022, NAACL 2022)。通过将GPT-3与不断增长的误解记录和用户反馈相结合,系统可以根据过去的用户反馈为新的查询生成增强的提示。MEMPROMPT的一种变体,称为FB-NET,利用对结构化生成的微调模型输出中的fx错误的反馈,并在naacl2022上被接受。
第10章介绍了SELF-REFINE,这是一个通过生成多方面反馈来迭代精炼LLM输出的框架,在各种任务中展示了比直接生成的显著改进。拟议的工作旨在通过整合规划方法来扩展自我完善。
图1.1 作者的成果
关注微信公众号,获取更多资讯内容:
相关文章:
【CMU博士论文】结构化推理增强大语言模型(Part 0)
问题 :语言生成和推理领域的快速发展得益于围绕大型语言模型的用户友好库的普及。这些解决方案通常依赖于Seq2Seq范式,将所有问题视为文本到文本的转换。尽管这种方法方便,但在实际部署中存在局限性:处理复杂问题时的脆弱性、缺乏…...
Odoo创建一个自定义UI视图
Odoo能够为给定的模型生成默认视图。在实践中,默认视图对于业务应用程序来说是绝对不可接受的。相反,我们至少应该以合乎逻辑的方式组织各个字段。 视图在带有Actions操作和Menus菜单的 XML 文件中定义。它们是模型的 ir.ui.view 实例。 列表视图 列表视…...
Day16_集合与迭代器
Day16-集合 Day16 集合与迭代器1.1 集合的概念 集合继承图1.2 Collection接口1、添加元素2、删除元素3、查询与获取元素不过当我们实际使用都是使用的他的子类Arraylist!!! 1.3 API演示1、演示添加2、演示删除3、演示查询与获取元素 2 Iterat…...
html2canvas + jspdf 纯前端HTML导出PDF的实现与问题
前言 这几天接到一个需求,富文本编辑器的内容不仅要展示出来,还要实现展示的内容导出pdf文件。一开始导出pdf的功能是由后端来做的,然后发现对于宽度太大的图片,导出的pdf文件里部分图片内容被遮盖了,但在前端是正常显…...
【JVM】JVM调优练习-随笔
JVM实战笔记-随笔 前言字节码如何查看字节码文件jclasslibJavapArthasArthurs监控面板Arthus查看字节码信息 内存调优内存溢出的常见场景解决内存溢出发现问题Top命令VisualVMArthas使用案例 Prometheus Grafana案例 堆内存情况对比内存泄漏的原因:代码中的内存泄漏并发请求问…...
如何解决 CentOS 7 官方 yum 仓库无法使用
一、背景介绍 编译基于 CentOS 7.6.1810 镜像的 Dockerfile 过程中,执行 yum install 指令时,遇到了错误:Could not resolve host: mirrorlist.centos.org; Unknown error。 二、原因分析 官方停止维护 CentOS 7。该系统内置的 yum.repo 所使用的域名 mirrorlist.centos.o…...
分布式唯一id的7种方案
背景 为什么需要使用分布式唯一id? 如果我们的系统是单体的,数据库是单库,那无所谓,怎么搞都行。 但是如果系统是多系统,如果id是和业务相关,由各个系统生成的情况下,那每个主机生成的主键id就…...
嵌入式物联网在医疗行业中的应用——案例分析
作者主页: 知孤云出岫 目录 嵌入式物联网在医疗行业中的应用——案例分析引言1. 智能病房监控1.1 实时患者监控系统 2. 智能医疗设备管理2.1 设备使用跟踪与维护 3. 智能药物管理3.1 药物分配与跟踪 4. 智能远程医疗4.1 远程患者监控与诊断 总结 嵌入式物联网在医疗行业中的应…...
C语言 底层逻辑详细阐述指针(一)万字讲解 #指针是什么? #指针和指针类型 #指针的解引用 #野指针 #指针的运算 #指针和数组 #二级指针 #指针数组
文章目录 前言 序1:什么是内存? 序2:地址是怎么产生的? 一、指针是什么 1、指针变量的创建及其意义: 2、指针变量的大小 二、指针的解引用 三、指针类型存在的意义 四、野指针 1、什么是野指针 2、野指针的成因 a、指…...
【人工智能大模型】文心一言介绍以及基本使用指令
目录 一、产品背景与技术基础 二、主要功能与特点 基本用法 指令的使用 注意事项 文心一言(ERNIE Bot)是百度基于其文心大模型技术推出的生成式AI产品。以下是对文心一言的详细介绍: 一、产品背景与技术基础 技术背景:百度…...
AI绘画入门实践|Midjourney 的模型版本
模型分类 Midjourney 的模型主要分为2大类: 默认模型:目前包括:V1, V2, V3, V4, V5.0, V5.1, V5.2, V6 NIJI模型:目前包括:NIJI V4, NIJI V5, NIJI V6 模型切换 你在服务器输入框中输入 /settings: 回车后…...
Web3时代的教育技术革新:智能合约在学习管理中的应用
随着区块链技术的发展和普及,Web3时代正在为教育技术带来前所未有的革新和机遇。智能合约作为区块链技术的核心应用之一,不仅在金融和供应链管理等领域展示了其巨大的潜力,也在教育领域中逐渐探索和应用。本文将探讨智能合约在学习管理中的具…...
云计算实训室的核心功能有哪些?
在当今数字化转型浪潮中,云计算技术作为推动行业变革的关键力量,其重要性不言而喻。唯众,作为教育实训解决方案的领先者,深刻洞察到市场对云计算技能人才的迫切需求,精心打造了云计算实训室。这一实训平台不仅集成了先…...
芯科科技第五届物联网开发者大会走进世界各地,巡回开启注册
中国,北京 – 2024年7月18日 – 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)今日宣布,其2024年Works With开发者大会现正开放注册…...
Python创建Excel表和读取Excel表的基础操作
下载openpyxl第三方库 winr打开命令行输入cmd 这个如果不行可以试试其他方法,在运行Python代码的软件里也有直接下载的地方,可以上网搜索 创建Excel表 示例代码:最后要记得保存,可以加一句提示语句。 import openpyxl lst[100,…...
JVM(day2)经典垃圾收集器
经典垃圾收集器 Serial收集 使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。 ParNew收集器 ParNew 收集器除了支持多线程并行收集之外,其他与 …...
华为od机试真题 — 分披萨(Python)
题目描述 “吃货”和“馋嘴”两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。 但是粗心服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两人都想吃到最多的披萨,他们商量…...
ubuntu22.04 安装boost
下载boost压缩包,我这里上传了一份1_81_0版本tar -xzvf boost_1_81_0.tar.gzcd boost_1_81_0/sudo apt install build-essential g autotools-dev libicu-dev libbz2-dev -ysudo ./bootstrap.sh --prefix/usr/./b2sudo ./b2 install 上述7步完成后,相关…...
基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、SpringCloud、Layui、Echarts图表、Nodejs、爬…...
C语言 ——— 输入两个正整数,求出最小公倍数
目录 何为最小公倍数 题目要求 代码实现 方法一:暴力求解法(不推荐) 方法二:递乘试摸法(推荐) 何为最小公倍数 最小公倍数是指两个或者多个正整数(除了0以外)的最小的公共倍数…...
Langchain 对pdf,word,txt等不同文件的加载解析
项目中遇到各种数据资源想要加载近langchain构建本地知识ai系统,怎么加载对应的文件格式呢,一起研究下 引入Langchain from langchain.document_loaders import UnstructuredWordDocumentLoader,PyPDFium2Loader,DirectoryLoader,PyPDFLoader,TextLoad…...
BL201分布式I/O耦合器连接Profinet网络
钡铼技术的BL201分布式I/O耦合器是一个用于Profinet网络的设备,用于连接远程输入/输出(I/O)设备到控制系统,如可编程逻辑控制器(PLC),能够实现分布式的I/O连接和通信。 它支持标准Profinet IO …...
Pycharm 报错 Environment location directory is not empty 解
删除项目中ven文件夹(已存在的),然后再添加新的ven虚拟环境就可以了...
【Android】Intent基础用法及作用
文章目录 使用Intent在活动中穿梭组成显式Intent隐式Intent显式与隐式区别作用 活动间传递数据向下一个活动传递数据返回数据给上一个活动 使用Intent在活动中穿梭 Intent(意图)是一种重要的消息传递对象,用于在不同组件(如活动&…...
Web开发:ASP.NET CORE的后端小结(基础)
1.后端重定向到指定路由 public IActionResult Index(){return RedirectToAction("Index", "Main");//重定向>Main/Index} 【备注】如果在MainController的Index方法中return View();本质是 return View("Index"),返回和方法同名的…...
侧开知识点合集2
一、try .... catch.. AccessViolationException异常触发后,下列程序的输出结果为 static void Main(string[] args) { try { throw new AccessViolationException(); Console.WriteLine("error1"); } catch (Exception e) { Console.WriteLi…...
ARM/Linux嵌入式面经(十六):蔚来嵌入式一二三面面经
文章目录 static作用,局部static和全局static区别TCP三次握手Linux虚拟内存指针引用区别C++内存分区new/delete和malloc/free区别职业规划为什么选择蔚来介绍一下项目然后问我有没有内核级别开发经验,我说没有什么情况进入内核态一、主动式二、被动式三、其他方式注意事项示例…...
Apache BookKeeper 一致性协议解析
导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。Pulsar 存储层依托于 BookKeeper 组件,所以本文简单探讨一下 BookK…...
Solana的账户模型
Solana的账户模型与其他区块链平台(如以太坊)有所不同,其设计旨在提高性能和扩展性。以下是Solana账户模型的主要特点和工作原理: Solana账户模型概述 账户类型: 普通账户(User Accounts)&…...
iPython与Matplotlib:数据可视化的秘籍
iPython与Matplotlib:数据可视化的秘籍 前言 欢迎来到"iPython与Matplotlib:数据可视化的秘籍"教程!无论你是数据可视化新手还是希望提升技能的专业人士,这里都是你开始的地方。让我们开始这段数据可视化之旅吧&#…...
用vs2012做网站案例/百度下载官方下载安装
今天要做一个小Demo用来获取测试数据的,碰到一个特别基础性的语言基础问题,Mark下来。如果双目运算符号的左右两个数值类型为整型,则得出来的数值也为整型,例如一下一个小Demo:inta 64;intb 65;floatf (float)(b/a);f…...
wordpress电子商务主题下载/优化推广排名网站教程
如果你将应用程序生成x86而不是Any CPU时,在64位操作系统中不会出错错误,而在32位操作系统中可能会出现以下错误 “/xxxxx”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 未能加载文件或…...
花店网页模板html/北京seo顾问服务
1. 删除远程分支 如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的地方),可以用这个非常无厘头的语法来删除它:git push [远程名] :[分支名]。 如果想在服务…...
搜索推广 外贸/天津seo诊断技术
vue3 watch及computed的使用案例 //可以多个watch 一起使用 () => state.selectTreeList,(val) => {const treeData = _.cloneDeep(val)// 所属行业为:保理(6640),且所属地区只有省份,没有城市区县// 去...
专门做淘宝代运营的网站/竞价推广招聘
配置PHP.ini 更改配置项(必须)auto_prepend_file "C:\xampp\htdocs\auto_prepend_file.php" 更改配置项(可选)allow_url_include On auto_prepend_file.php文件内容 <?php /*** 引入static文件* param {array|str…...
今日国际新闻摘抄十条/百度关键词优化
👩🏻🚀博客主页:⚠️十八岁讨厌编程⚠️ 📖所属专栏:SpringBoot专栏💤 🌌写文目的:记录学习中的知识点 🛕目前已更新内容涵盖:🔥【前…...