首页 > 其他分享 >如何做好chatFile?如何做RGA?

如何做好chatFile?如何做RGA?

时间:2024-01-03 11:34:57浏览次数:55  
标签:检索 召回 如何 模型 回答 问题 RGA chatFile 数据



chatFile

chatFile相关问题。这里有一篇综述论文,讲的很清楚!推荐研读

https://simg.baai.ac.cn/paperfile/25a43194-c74c-4cd3-b60f-0a1f27f8b8af.pdf

简单处理流程

用户输入问题 ——> 把问题做BM25召回+把问题embedding然后做语义召回 ——> 召回结果筛选,大于某个阈值,则用于构建prompt ——> 模型返回结果 ——>页面回显

第一个阶段,数据解析

能解析:表格数据、图片数据、各个类型数据doc  PDF  markdown等

能分类:如何定制规则,不同的数据,不用的切分策略

扩展存储:类似将标题数据进行独立存储。这里有哪些数据是要继续扩展的,在后续的检索过程中可能会用到。

上下文数据:包括问答过程中的上下文?是否要存储。

像通义千问,就把问题都给记下来了。所以可以对问题进行总结。

如何做好chatFile?如何做RGA?_算法

数据切分规则:不同的数据,如何指定切分规则,才能更好的保留上下文内容。

问题生成方向:给用户生成问题,是为了获取很好的召回效果。就像出题一样,在出题前应该已经有正确答案了。反之会严重影响体验。

目前在问题生成上,存在较多的问题,经常发现,模型自己给的问题,无法正确回答!

问题能够正确回答,应该先理解问的是什么。其次是搜索能够把正确的内容召回,模型才有可能回答出来。而,能够搜索到的前提,是已经提前构建好有关数据。 所以在数据构建阶段,不仅要保证不丢失数据,还需要构建更多的元数据。

第二个阶段,召回阶段

意图识别,先弄清楚 再到处理action上。是QA?摘要?总结?同看全文,标题提取?脉络分析?事件? 经典反例:eg1 这篇文章在说什么?显然不能去搜索,应该去召回摘要。eg2 关于某某问题,都包含了哪几个点?此时

query 改写:用模型去改写query是否会有提生,看到比人有把问题经过GPT4,然后搜索召回会有提升。

思维链条:

问题拆解:是否需要将用户的复杂问题,进行拆分,然后再召回?

多路召回策略:

尽可能把和问题相关的数据召回。

第三个阶段,数据精排

多路召回后的数据,是否都包含了答案?如何把噪音数据清理掉

多路召回的数据,如何做排序提升?目前分为BM25召回和向量检索召回。两者有各自的特点。向量语义检索,跟具有普适性,用户的问法可能和文档中的内容描述方式不一样,此时语义检索可以发挥好的作用。而BM25在用户输出的内容和文档强相关的时候,往往能获取到更好的效果,例如用户问题中的诸多关键词,都在原文中出现了,往往召回效果会比向量语义检索更好。 两者又有同样的缺点,在问题描述较短的时候,召回的效果较差。很短的词语在向量模型中,会丢失语义,因为在embedding的时候,就是用段落做的embedding。如果拿一个很短的词语去搜,不一定会有好的召回结果(这里可以探索,有没有更有效的文本嵌入模型)。同样BM25在很短词的检索场景下,召回会有太多的干扰项,如果一个词语被提及很多次,也同样不知道那条是答案。 

检索阶段的目标,是把和问题最相关的答案,尽可能的排在前边。其次是把和问题不相关的噪音数据排除掉,否则会出现回答错误的情况。

第四个阶段,构建prompt

通过合理的构建prompt,获取更好的回答。根据微软最近发的论文,好的prompt,模型即使不进行微调,也能获取较好的答案。

适配还是提示?微软最新《通用大模型是否超过专业领域微调大模型》论文,GPT-4多种策略提示超越医学大模型

对于模型回答的结果,条理不够清晰。没有针对问题去做总结性的回答。文心一言和通义这点比较好。这里是不是可以通过prompt来做提升?

第五个阶段,模型回答

对于模型回答的结果,能否做验证?

第六个阶段,日志收集

全链路日志收集。用于快速研判错误。

对于日志的分析,如何将问题内循环,转为提升策略?尤其是用户踩的问答,如果作为反例去规避?

要不要把问答的内容,在构建成数据。作为检索的补充?

基于大模型的自动化测试

在通义chatGPT、千问上和文心一言上,生成问题。然后把这些问题,分别用chatGPT、文心一言、yayifile上去测试回答结果。然后把各个模型的结果做比对。暂时认为回答多的正确。 然后把问题,和回答不对的结果,回答正确的结果,做比对。 整体实现基于大模型的自动化测试。

相关产品

https://www.chatpdf.com/

https://monica.im/webapp/doc-chat

Chat with PDF | Chat PDF | ChatPDF

ChatPDF: Free Online Chat With PDFs - Powered by ChatGPT

PDF.ai | Chat with your PDF documents

ChatPDF powered by AI - Shulex VOC

文心一言 、通义千问 都有该功能

通义千问

如何做好chatFile?如何做RGA?_chatFile_02

文心一言

如何做好chatFile?如何做RGA?_机器学习_03

标签:检索,召回,如何,模型,回答,问题,RGA,chatFile,数据
From: https://blog.51cto.com/u_15812686/9080805

相关文章

  • 如何在使用logstash导出的时候,包含索引名称和_id
    这里,我的需求是,把es中的数据导出到本地文件中,一行一个json。我还需要把原来数据中的_id保存下来,在新的集群中导入的时候,指定_id。这里有一个配置文件!logstash配置文件如下#SampleLogstashconfigurationforcreatingasimple#Beats->Logstash->Elasticsearchpipeline.......
  • 数据从A集群,使用logstash迁移到B集群,如何保持_Id一致
    有时候,我们在跨集群数据同步的时候,需要保持_id一致。这里给出一个案例。这里直接给出一个配置文件input{elasticsearch{hosts=>"es.production.mysite.org"index=>"mydata-2018.09.*"query=>'{"query":{"query_string&qu......
  • 武汉灰京文化:游戏中如何平衡社交心理与娱乐体验
    一款游戏的魅力在于其带给用户的娱乐体验以及带给用户的无限想象空间。然而,作为一个游戏研发者,我们不仅要考虑游戏的体验感、吸引力和创新性,还要考虑玩家在游戏中的心理需求。其中,社交心理占据了重要的位置。玩家们在追求娱乐体验的同时,希望能够从游戏中结交新朋友,收获友情经验,解决......
  • 如何批量发送邮件分别给不同的人?
    在现代社会中,电子邮件已经成为人们日常沟通和工作中不可或缺的一部分。对于需要向多个人发送个性化邮件的情况,学会如何批量发送邮件分别给不同的人是非常重要的技能。本文将为您详细介绍这一过程,并提供一些建议,让您能够高效而专业地处理大量邮件收件人。1.选择合适的邮件客户端首......
  • 如何批量发送邮件分别给不同的人?
    在现代社会中,电子邮件已经成为人们日常沟通和工作中不可或缺的一部分。对于需要向多个人发送个性化邮件的情况,学会如何批量发送邮件分别给不同的人是非常重要的技能。本文将为您详细介绍这一过程,并提供一些建议,让您能够高效而专业地处理大量邮件收件人。1.选择合适的邮件客户端首......
  • 如何使用Pytest进行自动化测试
    为什么需要自动化测试自动化测试有很多优点,但这里有3个主要的点可重用性:不需要总是编写新的脚本,除非必要,即使是新的操作系统版本也不需要编写脚本。可靠性:人容易出错,机器不太可能。当运行不能跳过的重复步骤/测试时,速度会更快。全天运行:您可以在任何时间或远程启动测试。夜间运......
  • 如何利用Kotlin实现闲鱼采集
    利用Kotlin实现网络数据采集(例如闲鱼的数据采集)需要您使用网络请求库和HTML解析库。下面是一个基本的示例,使用Kotlin中的Ktor库进行网络请求和解析HTML页面内容。importio.ktor.client.*importio.ktor.client.engine.okhttp.*importorg.jsoup.Jsoupsuspendfunfe......
  • 铺先生:如何才能做到完美的选址?这些思维要具备
    如何才能做到完美的选址?选址是店铺经营的基本!这时候很多朋友可能就回想,要是有能选择到完美的地址就好了,完美的地址固然存在,但是却并非人人都能选到。下面小编就来跟大家说说具备什么思维才能做到吧。1. 流量考察思维店铺的选址是离不开流量的,真正懂得如何去选址的人,往往对流量的重......
  • 如何更好的进行API管理
    相信无论是前端,还是后端的测试和开发人员,都遇到过这样的困难。不同工具之间数据一致性非常困难、低效。多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。API管理的难点在哪?开发人员在Swagger定义好文档后,接口调试的时候还需要去Postman再定义一遍。前端......
  • Kubernetes与Docker"分手"之后如何设计DevOps流水线
    一、前言总所周知,从Kubernetes1.24版本开始已经弃用Docker这个陪伴它风声水起的"初恋女友",届时在Kubernetes社区掀起了异常"轩然大波",影响甚至波及到社区之外的,也导致了Kubernetes不得不写好几篇博客来反复解释这么做的原因,虽然是老生常谈的问题了,如今距离1.24版本正式发布已过去......