当前位置: 首页 > news >正文

归因问答-有效归因实践

1 RTR实践 

RTR, Retrieve-then-Read, 使用BM25进行稀疏检索,然后使用GTR进行密集检索,最后将检索到的高分段落拼接后输入FiD模型进行答案生成,这些高分段落就是其FiD答案的归因段落。

2 Post-hoc-retrieval实践

Post-hoc-retrieval是事后检索,首先LLM在基于少量提示的情况下,直接根据输入问题生成答案。然后将问题和答案拼接成一个查询,再次进行稀疏或稠密检索,得到k(k>1)个相关段落,最后进一步选择BM25或GTR得分最高的包含LLM生成答案的段落作为归因。

3 LLM检索生成实践

LLM作为检索模型,通过提示和微调的组合,直接根据问题和原始语料文档,生成答案和指向原始语料文档中归因语料的指针,整个过程没有使用稀疏或稠密检索。LLM采用wikipedia句子训练调优时,则归因过程可分两个阶段,首先LLM依据输入查询生成Wikipedia URLs;其次所有weikipedia段落中BM25分值最高者作为归因段落。

4 AutoAIS重排归因实践

AutoAIS用来评估归因QA,当然也可以用来优化归因。针对RTR和post-hoc retrieval生成的待选归因段落,不同于之前采用BM25或GTR得分,这里采用AutoAIS对待选段落进行打分,并选择得分最高者作为最终归因段落。

---

BM25

BM25(Best Matching 25),是基于词频(TF)、逆文档频率(IDF)、及文档长度来计算文档D和查询Q间的相关性,在处理长文档和短查询时表现出色,ES的全文检索内置了BM25算法。

BM25公式

Score(D, Q) = \sum_{i=1}^{n} IDF(q_i) \cdot \frac{f(q_i, D)\cdot (k_1 +1)}{f(q_i, D)+k_1 \cdot (1-b+b\frac{\left | D \right |}{avgdl})}

IDF公式

IDF(q_i) = log \left( \frac{N-n(q_i)+0.5}{n(q_i)+0.5} + 1\right )

其中:

Score(D,Q)是文档D与查询Q的相关性得分。

N 是文档集合中的文档总数

n(qi)是包含词qi的文档数量

qi 是查询中的第 i 个词。

f(qi, D)是词qi在文档D中的频率,衡量一个词在文档中重要性的基本指标。词频越高,这个词在文档中的重要性通常越大。

IDF(qi) 是词qi的逆文档频率,是衡量一个词对于整个文档集合的独特性或信息量的指标,由整个文档集合中包含该词的文档数量决定的。一个词在很多文档中出现,其IDF值就会低,反之则高。罕见词通常有更高的IDF值,在相关性评分中拥有更大权重。

|D|是文档D的长度,也就是D中的词汇数量,用于调整词频的影响。较长文档可能因为|D|取值大就有更高的词频。

avgdl是整个文档集合中所有文档长度的平均值,用于标准化不同文档的长度,以便可以对不同长度文档进行公平比较。

k1是正系数,可调,通常在1.2到2之间,用于控制词频饱和度。较高的k1值意味着词频对评分影响更大。

b用于控制文档长度对评分影响的参数,可调,取值在0到1之间。b=1时文档长度的影响最大,b=0 时文档长度不影响评分,b通常设0.75。

GTR

Generalizable T5-based dense Retrievers (GTR),基于sentence-transformers框架的语义搜索模型。它将句子和段落映射到768维向量空间,专门针对语义搜索任务优化。该模型由T5-base编码器转换而来,能生成高质量句子嵌入,适用于多种NLP任务。

GTR模型链接

https://www.kaggle.com/models/google/gtr?tfhub-redirect=true

FiD

FiD, Fusion-In-Decoder, FiD将检索回来的每个passage都与question通过encoder分别编码,然后concat在一起输入decoder生成最终的回复。顾名思义叫做Fusion-in-Decoder

reference

---

Attributed-QA

https://github.com/google-research-datasets/Attributed-QA/tree/main

Attributed Question Answering: Evaluation and Modeling for Attributed Large Language Models

https://arxiv.org/pdf/2212.08037

归因问答-如何进行自动评估

https://blog.csdn.net/liliang199/article/details/149009697

ALCE

https://github.com/princeton-nlp/ALCE

RAG提效利器——BM25检索算法原理和Python实现

https://zhuanlan.zhihu.com/p/670322092

Large Dual Encoders Are Generalizable Retrievers

https://arxiv.org/pdf/2112.07899

Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering

https://aclanthology.org/2021.eacl-main.74.pdf

http://www.xdnf.cn/news/1076473.html

相关文章:

  • 笔记本电脑怎样投屏到客厅的大电视?怎样避免将电脑全部画面都投出去?
  • Nginx重定向协议冲突解决方案:The plain HTTP request was sent to HTTPS port
  • Qt中使用QSettings数据或结构体到INI文件
  • 用 YOLOv8 + DeepSORT 实现目标检测、追踪与速度估算
  • 05【C++ 入门基础】内联、auto、指针空值
  • 物联网数据洪流下,TDengine 如何助 ThingLinks 实现 SaaS 平台毫秒级响应?
  • 在Linux中下载docker
  • 【SQL优化案例】索引创建不合理导致SQL消耗大量CPU资源
  • SpringBoot - 定时任务改Cron不重启,调度规则生效
  • RuoYi-Vue前后端分离版实现前后端合并
  • 用Fiddler中文版抓包工具掌控微服务架构中的接口调试:联合Postman与Charles的高效实践
  • docker desktop部署本地gitlab服务
  • 学习昇腾开发的第12天--安装第三方依赖
  • 基于springboot的养老院管理系统
  • LINUX2.6设备注册与GPIO相关的API
  • Vue3 中 Excel 导出的性能优化与实战指南
  • JavaScript 安装使用教程
  • ip网络基础
  • FastGPT与MCP:解锁AI新时代的技术密码
  • 百度轮岗:任命新CFO,崔珊珊退居业务二线
  • 使用Electron开发跨平台RSS阅读器:从零到一的完整指南
  • Linux查看空间大小相关命令内容
  • 数据结构复习4
  • 前端计算机视觉:使用 OpenCV.js 在浏览器中实现图像处理
  • Oracle 常用函数
  • 38.docker启动python解释器,pycharm通过SSH服务直连
  • 【软考高项论文】论信息系统项目的进度管理
  • Zookeeper安装使用教程
  • SQL规范
  • IDEA相关配置记录