语言模型的校准技术:增强概率评估

使用 DALLE-3 模型生成的图像

目录

一、说明

二、为什么校准对 LLM 模型至关重要

三、校准 LLM 概率的挑战

四、LLM 的高级校准方法

4.1 语言置信度

4.2 增强语言自信的先进技术

4.3 基于自一致性的置信度

4.4 基于 Logit 的方法

五、代理模型或微调方法

5.1 使用代理模型进行置信度评估

5.2 识别不确定性:R-tuning

5.3 LITCAB:小改变,大影响

5.4 ASPIRE:更智能的模型响应

六、结论


一、说明

        语言模型,尤其是大型语言模型 (LLM),凭借其理解和生成类人语言的能力,彻底改变了人工智能领域。这些模型不仅能够在零样本设置下或通过定制提示执行各种任务,而且它们的灵活性和多样性也使它们在多个领域中非常有用。

        然而,尽管它们很有效,但一个经常面临挑战的关键方面是这些模型的校准——确保它们提供的关于各种输出的概率真实反映这些输出正确的真实可能性。

        本文探讨了 LLM 校准的必要性,确定了围绕其概率评估的核心问题,并探讨了实现更好模型校准的当代方法。

二、为什么校准对 LLM 模型至关重要

        LLM 的本质是围绕处理和生成基于语言的输出,这些输出不仅准确,而且被分配了正确的置信水平。校准(或使模型的置信度与其准确性保持一致的过程)是必不可少的,因为:

        - 值得信赖的 AI 决策:正确校准的置信度分数使用户能够信任和依赖 AI 做出的决策,了解模型何时可能正确或不正确。

        - 风险管理:在医疗诊断或自动驾驶等安全关键应用中,过度自信但不正确的预测可能会导致灾难性后果。

        - 模型调试和改进: 校准可以帮助开发人员了解模型的弱点并相应地对其进行优化。

三、校准 LLM 概率的挑战

        大型语言模型通常面临几个影响其概率校准的障碍:

        - 封闭模型约束:许多 LLM 以黑匣子的形式运行,直接访问对数概率的访问受到限制,使理解和调整置信度分数的过程变得复杂。

        - 训练中的错位:使用人类反馈强化学习 (RLHF) 等技术改进的模型可能会变得天真地校准错误。根据论文[1],使用最广泛的LLMs是通过人类反馈的强化学习(RLHF-LLMs)进行微调的。一些研究表明,RLHF-LLMs产生的条件概率校准非常差。研究结果表明,RLHF-LLMs可能会优先考虑严格遵守用户偏好,而不是产生校准良好的预测,这可能导致校准不良。这显示了一个关键挑战,即使用 RLHF 训练的模型可能缺乏准确可靠输出所需的必要概率校准。

        - 特定任务的校准需求: LLM 的通用训练通常不会针对特定任务或领域进行调整,需要额外的校准以使其与特定需求或应用程序保持一致。

四、LLM 的高级校准方法

为了应对校准挑战,我们可以尝试多种技术,如下所述:

描述各种校准技术

4.1 语言置信度

        “语言置信度”是指语言模型(LLM)不仅提供答案,而且还明确地评估其响应的置信度的技术。这种方法涉及使用某些方法来获得对模型对其答案的置信度的更可靠评估。

        基本实现

        在最简单的形式中,口头信心涉及向 LLM 提出问题和任何相关上下文,然后明确要求提供信心分数。这种直接方法为更复杂的技术奠定了基础。

4.2 增强语言自信的先进技术

  1. 思维链 (CoT) 提示: 思维链提示涉及在模型提供答案之前从模型中引出分步推理过程。该方法不仅增强了模型响应的清晰度和丰富性,还可以通过观察推理步骤中的逻辑一致性来提高置信水平的估计。
  2. 多步骤置信度激发:该技术通过在推理或解决问题过程的各个步骤捕获置信度分数来优化置信度测量。最终置信水平是所有个人置信度分数的乘积,提供了确定性的复合度量。
  3. Top-K 响应和置信度评分: 该模型生成多个可能的答案(Top-K 响应),而不是单个响应,每个答案都伴随着一个单独的置信度分数。然后,选择置信度得分最高的答案作为最终答案。这种方法反映了涉及评估多个假设的决策过程。
  4. 多种提示技术:利用各种提示可以更准确地校准置信度估计。提示的多样性可能源于不同的措辞、上下文或概念角度,使模型的评估对有偏见或信息不足的响应更加稳健。
  5. 数值概率与语言表达式:在某些情况下,模型通过与正确可能性直接相关的数值概率来表达其置信度。相反,也可以使用“极有可能”或“可能不会”等语言表达方式。
  6. 使用多个假设进行提示: 最初,模型会生成多个没有置信度评级的答案候选者。在随后的交互中,他们评估每个答案的正确概率。研究表明,以这种方式评估多个假设可以显着改善校准。

参考论文

有效表达置信度的能力因模型而异,在不同的模型架构和世代中观察到一些差异。

4.3 基于自一致性的置信度

        基于自一致性的置信度方法是一种复杂的方法,通过生成对同一查询的多个响应并分析这些响应之间的一致性来评估语言模型的置信度。该技术基于这样一种想法,即不同条件下的高一致性表明对响应准确性的高度置信度。

        生成多个响应

        为了从模型中获得一系列答案,采用了几种策略:

        自我随机化: 这涉及在不同的设置下多次输入相同的问题。调整“温度”参数是这里的常用方法,它通过改变输出的预测性或随机性来操纵模型响应的多样性。

        提示扰动: 通过释义改变问题的措辞,以唤起不同角度的回答。这通过检查模型是否在措辞不同但概念相似的提示中保持一致来测试模型的稳健性。

        误导性提示:在提示中引入故意错误或误导性提示,以评估模型的稳定性。与人体测试类似,这种方法观察模型是否像一个自信的人一样,可以忽略误导性信息并坚持正确或一致的反应。

        聚合策略

为了综合调查结果并分配最终置信度分数,可以考虑不同的聚合策略:

        一致性测量: 这检查了模型在不同条件下提供相同答案的一致性,反映了稳定性和可靠性。

        平均置信度(平均值):计算加权平均值,其中对具有较高一致性和个人置信度得分的答案给予更多权重,从而提供总体置信度的精细度量。

        配对排名策略: 此策略在使用模型的 Top-K 预测的场景中特别有用,它强调模型预测中的排名信息,有助于评估最可能和最一致的响应。

4.4 基于 Logit 的方法

        基于 Logit 的校准是提高大型语言模型 (LLM) 概率预测可靠性的关键技术。当模型输出原始分数(如对数)时,它们通常不会直接转换为真正的概率分布。校准技术调整这些对数以反映更准确的概率,这对于实际应用中的稳健决策至关重要。下面,我们将深入探讨用于基于 logit 的校准的一些方法:

        1. 对代币(token)的平均置信度

        为了在语言模型的预测中得出更一致的置信度估计,一种常用的方法是对标记的置信度(对数概率)进行平均。这可以针对所有令牌或选择性子集完成,具体取决于特定应用程序或数据集的特征。其结果是更平滑、更通用的模型确定性度量,减少了任何单个代币可变性的影响。

        2. 普拉特缩放(Sigmoid)

        Platt 缩放或 S 形标定是一种逻辑回归模型,应用于原始模型的输出对数。通过在 logit 上拟合 sigmoid 函数,此方法将它们转换为校准概率。校准涉及学习两个参数,通常表示为“A”和“B”,它们缩放和移动对数以更好地与实际观察到的概率保持一致。这种方法特别有用,因为它对于二元分类任务简单且有效。

参考

        3. 等渗回归

        与 Platt 缩放不同,等渗回归在对数和概率之间不假定任何函数形式。它是一种非参数方法,拟合非递减函数,使预测概率与目标概率对齐。这种分段常数函数非常灵活,可以更准确地反映某些场景中的真实分布,特别是当对数和概率之间的关系更复杂或非线性时。

        4. 温度标度

        温度缩放是一种后处理技术,可在不更改模型预测的情况下调整模型的置信度。它涉及在应用 softmax 函数将它们转换为概率之前,将 logits 除以称为“温度”的常量。最佳温度通常通过最小化验证数据集上的交叉熵损失来确定。这种方法很有吸引力,因为它对校准过程产生了极简主义的影响,保持了原始对数的相对顺序。

五、代理模型或微调方法

微调是一种高级校准方法,它使用特定数据和目标调整模型,以便更好地为特定任务做好准备。让我们探索几种创新方法,这些方法有助于微调这些模型,以提供更可靠、更精确的置信度分数。

5.1 使用代理模型进行置信度评估

一种引人入胜的方法[2]使用第二种通常更简单的模型来评估主要模型(如 GPT-4)的答案的可信度:

它的作用:例如,LLAMA2 等辅助模型可用于通过提供相同的提示并提取 GPT-4 模型响应的分数来获取其他模型(如 GPT-4)生成的答案的对数概率

令人惊讶的效果:尽管二级模型可能不那么强大,但与单独使用语言线索相比,这种方法已被证明可以产生更好的结果(通过曲线下面积或 AUC 测量)。

5.2 识别不确定性:R-tuning

R-tuning 在可以说“我不知道”的时候教一个模型——认识到它自己的局限性。微调过程包括以下步骤

识别不确定性: 它通过进行预测并将其与地面事实进行比较,发现模型的答案在火车集中可能不稳定或有问题的情况

有把握地训练:然后,它使用标记为“确定”或“不确定”的示例来教授模型,确保它从这些区别中学习。在训练期间使用“我确定”或“我不确定”等短语来表达置信度,重点是从令牌生成到降低错误。

参考

5.3 LITCAB:小改变,大影响

LITCAB 引入了一个微小而有效的校准层:

简单添加:它在模型末尾添加一个线性层,该层根据输入文本调整每个响应的预测可能性。

- 高效和有效: 这种微小的调整增强了模型的判断力,而不会增加太多复杂性——原始模型大小的变化不到 2%。

5.4 ASPIRE:更智能的模型响应

为预测分配置信度分数并允许选择性预测。ASPIRE,包括三个阶段:

1.T Ask 特定调优:它使用 PEFT 技术修改特定的自适应参数,同时保持主模型不变,优化特定任务的响应。

2. 答案抽样:它使用这些调整为每个问题生成多个可能的答案,它使用波束搜索作为解码算法来生成高似然输出序列,并使用 Rouge-L 度量来确定生成的输出序列是否正确基于真实

3.自我评价学习:最后,引入另一组调整,帮助模型自行判断其反应是对还是错,提高其自我评价能力。

        通过这些方法,语言模型不仅变得更加先进,而且更符合用户的上下文和期望,从而实现更可靠和更上下文感知的交互。

六、结论

        校准大型语言模型是一项复杂而重要的工作,可以提高 AI 应用程序的可靠性和安全性。通过使用和组合上面讨论的各种创新方法,我们可以显着改善这些模型在无数上下文中的理解和交互方式,为真正的智能系统铺平道路,这些系统可以以高度的可信度和正确性做出决策。

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

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

相关文章

Python 网络爬虫:深入解析 Scrapy

大家好,在当今数字化时代,获取和分析网络数据是许多项目的关键步骤。从市场竞争情报到学术研究,网络数据的重要性越来越被人们所认识和重视。然而,手动获取和处理大量的网络数据是一项繁琐且耗时的任务。幸运的是,Pyth…

Stable Diffusion安装记录II

文章目录 前言0 更改python路径(跳过)1 Torch is not able to use GPU1.1 确认显卡1.2 安装nvdia驱动 1.3 检查CUDA1.4更改启动脚本 2 依赖安装2.1 pip install报错2.2 git报错2.3 卡在installing requirements 3 启动咯~3.1 clip报错 4 成功运行4.1 遗留…

go 针对 time类型字段,前端查询,后端返回数据格式为UTC时间

测试代码 package mainimport ("context""log""net/http""time""github.com/gin-gonic/gin""go.mongodb.org/mongo-driver/bson""go.mongodb.org/mongo-driver/bson/primitive""go.mongodb.org/m…

Ubuntu22.04之解决:Flameshot无法截图问题(二百三十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

低代码是什么?开发系统更有什么优势?

低代码(Low-Code)是一种应用开发方法,它采用图形化界面和预构建的模块,使得开发者能够通过少量的手动编程来快速创建应用程序。这种方法显著减少了传统软件开发中的手动编码量,提高了开发效率,降低了技术门…

Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游&#xff…

堆排序-java

这次主要讲了堆排序和堆的基本构造,下一期会详细讲述堆的各种基本操作。 文章目录 前言 一、堆排序 1.题目描述 2.堆 二、算法思路 1.堆的存储 2. 结点下移down 3.结点上移up 4.堆的基本操作 5.堆的初始化 三、代码如下 1.代码如下: 2.读入数据&#xff…

重庆人文科技学院建立“软件安全产学研基地”,推动西南地区软件安全发展

5月29日,重庆人文科技学院与开源网安签订了《产学研校企合作协议》,并举行了“重庆人文科技学院产学研基地”授牌仪式,此次合作不仅深化了双方在软件安全领域的产学研紧密联结,更是对川渝乃至西南地区软件供应链安全发展起到重要的…

C++17之std::void_t

目录 1.std::void_t 的原理 2.std::void_t 的应用 2.1.判断成员存在性 2.1.1.判断嵌套类型定义 2.1.2 判断成员是否存在 2.2 判断表达式是否合法 2.2.1 判断是否支持前置运算符 2.2.3 判断两个类型是否可做加法运算 3.std::void_t 与 std::enable_if 1.std::void_t 的…

相机等效焦距

1. 背景 物理焦距我们很熟悉,但是在接触实际的相机参数时,相机厂家会提到一个参数等效焦距,甚至有时候不提供物理焦距,这时候如果我们得到真实的物理焦距需要进行一定的转换.在介绍两者之间的转换关系前,先介绍一下等效焦距的由来. 如上图,假设在某一个镜头,其成像面会出现图…

操作系统 - 文件管理

文件管理 考纲内容 文件 文件的基本概念;文件元数据和索引节点(inode) 文件的操作:建立,删除,打开,关闭,读,写 文件的保护;文件的逻辑结构;文件的物理结构目录 目录的基…

Multipass虚拟机磁盘扩容

Multipass 是一个用于轻松创建和管理 Ubuntu 虚拟机的工具,特别适合开发环境。要使用 Multipass 扩大虚拟机的磁盘容量,你需要经历几个步骤,因为 Multipass 自身并不直接提供图形界面来调整磁盘大小。不过,你可以通过结合 Multipa…

UE5 Http Server

前言 最近要用UE 作为一个服务器去接收来自外部的请求,从而在UE中处理一些内容,但是之前只做过请求,哪整过这玩意,短期内还得出结果,那怎么搞嘞,本着省事的原则就找找呗,有没有现成的&#xff0…

Golang | Leetcode Golang题解之第123题买卖股票的最佳时机III

题目&#xff1a; 题解&#xff1a; func maxProfit(prices []int) int {buy1, sell1 : -prices[0], 0buy2, sell2 : -prices[0], 0for i : 1; i < len(prices); i {buy1 max(buy1, -prices[i])sell1 max(sell1, buy1prices[i])buy2 max(buy2, sell1-prices[i])sell2 m…

【Linux】进程间通信(System V IPC)

这节我们开始学习System V IPC方案。 分别是共享内存&#xff0c;消息队列与信号量 会着重讲解共享内存&#xff0c;但是消息队列与信号量只会说明一下原理。 原因&#xff1a;System V是新设计的一套标准 与文件的整合度不高只能进行本地通信 更何况&#xff0c;我们现在有…

IP代理池是什么?

从事跨境行业的朋友们总会有一个疑问&#xff0c;为什么自己所合作的IP代理商的IP在使用的过程中账号会有莫名封禁的问题&#xff0c;会不会是自己在使用的过程中错误的操作违反了平台的规则&#xff0c;其实不然有可能会是IP代理池纯净度不高的问题&#xff0c;有可能自己在使…

基于Jenkins+Kubernetes+GitLab+Harbor构建CICD平台

1. 实验环境 1.1 k8s环境 1&#xff09;Kubernetes 集群版本是 1.20.6 2&#xff09;k8s控制节点&#xff1a; IP&#xff1a;192.168.140.130 主机名&#xff1a;k8s-master 配置&#xff1a;4C6G 3&#xff09;k8s工作节点 节点1&#xff1a; IP&#xff1a;192.1…

基于字典树可视化 COCA20000 词汇

COCA20000 是美国当代语料库中最常见的 20000 个词汇&#xff0c;不过实际上有一些重复&#xff0c;去重之后大概是 17600 个&#xff0c;这些单词是很有用&#xff0c;如果能掌握这些单词&#xff0c;相信会对英语的能力有一个较大的提升。我很早就下载了这些单词&#xff0c;…

C++一个StringBad类

设计一个字符串类,下面的代码是一个不好的设计,起名StringBad。 //stringbad.h #pragma once //一个设计有问题的string类 #include <iostream> using namespace std;class StringBad { public:StringBad();//默认构造函数StringBad(const char* s);//构造函数~StringBa…

Java web应用性能分析之【jvisualvm远程连接云服务器】

Java web应用性能分析之【java进程问题分析概叙】-CSDN博客 Java web应用性能分析之【java进程问题分析工具】-CSDN博客 前面整理了java进程问题分析和分析工具&#xff0c;现在可以详细看看jvisualvm的使用&#xff0c;一般java进程都是部署云服务器&#xff0c;或者托管IDC机…