高效的大型语言模型适应方法:提升基础性的解决方案

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

谷歌的AI搜索工具建议用户“吃石头”对健康有益,这一搞笑的回答引发了众人哗然。为了提高LLMs(大型语言模型)的可靠性,我们推出了AGREE,一种基于学习的框架,旨在使LLMs能够在回答中提供准确的引用,从而提高用户的信任度。

近年来,LLMs在多跳推理、生成计划和使用工具和API等各种能力上展示了显著进步,显示出在许多下游应用中的巨大潜力。然而,在现实世界中部署时,LLMs的可靠性有时会因“幻觉”问题而受损,即模型生成了看似合理但实际上并不准确的信息。当LLMs被要求回答涉及广泛世界知识的开放性问题时,“幻觉”问题更为常见,这在需要高度准确性的领域,如新闻报道和教育内容中尤其具有风险。

为了应对LLMs的“幻觉”问题,基础性研究致力于追溯其声明到可靠的来源。这样的系统不仅能提供连贯且有用的回答,还能通过引用外部知识来支持其声明。

在我们即将在NAACL 2024上展示的论文“提升基础性的大型语言模型适应方法”中,我们介绍了一个新的LLM基础性框架,称为AGREE(Adaptation for GRounding EnhancEment),它使LLMs能够自我基础化其回答中的声明,并提供精确的引用,增强用户信任并扩展其潜在应用。在五个数据集上的全面实验表明,AGREE比以前的基于提示或事后引用的方法在基础性方面有显著提升,通常能实现超过30%的相对改进。

改进基础性的整体方法

以前改善基础性的研究主要遵循两种显著的范式。一种是使用额外的自然语言推理(NLI)模型事后添加引用,这种方法严重依赖于LLM嵌入中的知识,无法很好地扩展到超出该范围的事实。另一种常见的基础性方法是利用LLMs的指令跟随和上下文学习能力。这种方法要求LLMs仅通过少量演示提示来学习基础性,实际效果并不理想。

我们的新框架AGREE采用整体方法,结合基于学习的适应和测试时适应(TTA),以改善LLMs的基础性和引用生成。不同于以前的基于提示的方法,AGREE对LLMs进行微调,使其能够自我基础化其回答中的声明并提供准确的引用。这种在预训练LLMs之上进行的微调需要良好的基础性回答(带有引用),为此我们引入了一种方法,可以从未标记的查询中自动构建这样的数据。经过微调的LLMs的自我基础化能力进一步赋予了它们TTA能力,能够迭代地改进其回答。

微调LLMs以实现自我基础化

在训练期间,AGREE从未标记的查询中收集合成数据,然后使用这些数据微调基础LLM,使其能够自我基础化其声明。针对一个未标记的查询,我们首先使用检索模型从可靠来源(如维基百科)检索相关段落。然后,我们向基础LLM呈现检索到的段落并采样一组初始回答(不带引用)。接下来,我们使用一个NLI模型(在我们的例子中,是Google TrueNLI模型的变体),来判断一个声明是否由段落支持,帮助为初始回答添加引用。对于初始回答中的每个句子,我们使用NLI模型找到可以支持该句子的段落,并相应地添加引用。对于没有支持段落的句子,我们不会添加引用。

测试时适应

在测试时,AGREE引入了一种迭代推理策略,使LLM能够根据其自我生成的引用主动寻找更多信息。针对一个查询,我们首先使用检索模型获取初始段落集。然后,我们迭代执行以下步骤:1)在每次迭代中,适应后的LLM生成包含对段落集引用的回答,并找到没有引用的任何不支持声明。2)接着,我们根据引用信息主动向LLM提供更多信息——如果存在不支持声明,我们会使用这些声明检索更多可靠来源的信息,否则,我们会包括使用查询检索到的更多未见段落,以获取更完整的信息。

实验

我们进行了全面的实验,展示AGREE在有无TTA情况下的有效性。我们在五个数据集上对其进行了评估,包括两个域内数据集(NQ和StrategyQA)和三个域外数据集(ASQA、QAMPARI和一个内部QA数据集“Enterprise”)以测试我们框架的泛化能力。我们将AGREE应用于适应两个LLMs,并将其与一个竞争性的基于提示的基线(ICLCite)和一个事后引用的基线(PostCite)进行比较。

主要实验结果

实验结果表明AGREE在文本语料库中生成的回答具有更好的基础性(通过引用召回率衡量),并为其回答提供了准确的引用(通过引用精确度衡量)。它在各个数据集上都显著优于所选择的基线。

  1. 微调对于优越的基础性非常有效。
  2. 改进可以泛化。
  3. TTA提高了基础性和回答正确性。

AGREE不仅在域内数据集上表现出色,在域外数据集上的零样本设定下也能有效泛化,这表明我们的框架具有显著的泛化优势。

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

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

相关文章

jenkins升级,涉及ssh remote执行出现Algorithm negotiation fail

问题:jenkins升级,发现自由风格job和流水线在用到ssh remote命令连接远程服务器的时候出现Algorithm negotiation fail错误。如下错误:1、algorithmName"server_host_key",2、algorithmName"kex" com.jcraft…

表查询基础【mysql】【表内容 增,删,改,查询】

博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客MySQL之旅_花果山~程序猿的博客-CSDN博客Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我…

【EXCEL_VBA_常用过程 函数】

结合日常工作需要,收录或改写相关过程及函数,现共享给大家,希望能对大家有所帮助! 目录 1. 过程 1.1 批量处理框架Application.GetOpenFilename 2. 功能函数 2.1 字符串数组比对 / 两组数据比对是否一致(不要求元素…

服务器硬件基础知识以及如何部署相关应用

服务器硬件是构成服务器物理基础的组件集合,它们共同工作以提供计算服务、数据存储、网络通信等功能。以下是一些关键的服务器硬件基础知识: 1. 处理器(CPU) 作用:服务器的大脑,负责执行程序指令和处理数…

Redis(十三) 事务

文章目录 前言事务的特性Redis事务的执行原理Redis中使用事务WATCH UNWATCH实现乐观锁 前言 前面我们学习 MySQL 的时候,肯定也学习了事务。事务是什么?给大家举个例子:假如我给朋友微信转账,我给他转了 100 块钱,当我…

【14】bat脚本备份mysql数据

说明 1、请注意windows的bat脚本语法 2、请注意linux和windows的格式 3、请注意时间是个位数的问题 一、参数说明 1、参数说明: setlocal ENABLEDELAYEDEXPANSION 是延迟变量 setlocal和endlocal 是必须要一起用 @echo on 是开启显示,方便调试 :: 注释 cd /d D:\dbbackup …

Golang | Leetcode Golang题解之第114题二叉树展开为链表

题目: 题解: func flatten(root *TreeNode) {curr : rootfor curr ! nil {if curr.Left ! nil {next : curr.Leftpredecessor : nextfor predecessor.Right ! nil {predecessor predecessor.Right}predecessor.Right curr.Rightcurr.Left, curr.Righ…

格式转化——Labelme标注好的json文件批量转为png(标签)文件(物体为红色,背景为黑色)和jpg原图

作用如题目,批量将标注好的json文件转成png标签,jpg原图,其中标签时红黑图。 代码如下: import argparse import base64 import json import os import os.path as osp import imgviz import PIL.Image import yaml from labelm…

Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册

文章目录 前言Dashboard开发总结 前言 后台管理系统中的Dashboard是一种图形化的信息显示工具,通常用于提供一个特定领域或系统的概况。它可以帮助用户监控和分析数据,快速获取重要信息。可以帮助用户监控业务状况、分析数据、获取关键信息和管理资源。…

list的模拟实现(一)

嗨喽大家好,时隔许久阿鑫又给大家带来了新的博客,list的模拟实现(一),下面让我们开始今天的学习吧! list的模拟实现(一) 1.list splice接口的使用 2.list尾插的实现 3.list的迭代…

Python编程的黑暗魔法:模块与包的神秘力量!

哈喽,我是阿佑,今天给大家讲讲模块与包~ 文章目录 1. 引言1.1 模块化编程的意义1.2 Python中模块与包的概念概述 2. 背景介绍2.1 Python模块系统模块的定义与作用Python标准库简介 2.2 包的结构与目的包的定义与目录结构包在项目组织中的重要性 3. 创建与…

Linux CentOs如何升级openssl

1.获取 OpenSSL 1.1.n 源码 wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz tar -xzf openssl-1.1.1n.tar.gz cd openssl-1.1.1n 2.编译和安装 OpenSSL 1.1.n ./config --prefix/usr/local/openssl-1.1.1n --openssldir/usr/local/openssl-1.1.1n shared zlib m…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数,strstr()的使用介绍和模拟实现。 模拟实现这个函数,可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力,有兴趣的话就请往下看吧。 strstr函数介绍 函数功能: strstr函…

synchronized什么情况下会释放锁?

synchronized关键字可以用于实现线程之间的同步,它可以修饰方法或代码块,保证在同一时间只有一个线程能够访问被synchronized修饰的代码。 synchronized会在以下情况下释放锁: 代码块执行完毕: 当一个线程执行完了一个被synchro…

Three.js 研究:3、创建一个高科技圆环

打开Alpha混合 修改环形颜色,更改发光的颜色,更改发光的强度为2 更改世界环境灯光

使用 Docker Compose 接管现有容器的文档

前言 在使用 Docker 容器技术时,有时我们可能需要 Docker Compose 来接管并管理已经存在的容器。这通常发生在容器手动启动或由其他部署流程创建后,我们希望利用 Docker Compose 来简化未来的管理任务。 准备工作 在尝试接管现有容器之前,…

如何编辑 PDF 中的文本?4个有效的编辑PDF方法

PDF 文件可以轻松打开和查看,但修改要复杂得多 - 尤其是在 PDF 中的文本编辑方面。 知道如何离线编辑 PDF 中的文本对于任何需要快速更改而无需在线加载文档或担心安全问题的人来说都非常有益。它使用户能够更好地控制他们的文档,并有更广泛的字体和图形…

着急联系媒体投稿发表文章有什么好方法?

作为一名曾经的信息宣传员,我深知在紧张的宣传节点上,急于将精心撰写的文章推向更广阔的读者群体,那种紧迫感和焦虑几乎成了常态。记得那段时间,为了能让稿件得到及时有效的曝光,我不得不亲自踏上了一场寻找媒体联系方式的“马拉松”。那时,我手头的资源有限,仅有的几个联系方式…

JRT1.7发布

JRT1.7连仪器在线演示视频 JRT1.5实现质控主体、1.6基本完成质控;本次版本推进到1.7,1.7集菜单权限、登录、打印导出客户端、初始化、质控、Linux客户端、仪器连接和监控体系各种功能大全,上十年写系统用到的都全了。 这次直接挑战检验最难…

就业信息|基于SprinBoot+vue的就业信息管理系统(源码+数据库+文档)

就业信息管理系统 目录 基于SprinBootvue的就业信息管理系统 一、前言 二、系统设计 三、系统功能设计 1前台功能模块 2后台功能模块 4.2.1管理员功能 4.2.2学生功能 4.2.3企业功能 4.2.4导师功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…