最新的论文或者必看榜单
2023-RAG-非常全面: Retrieval-Augmented Generation for Large Language Models: A Survey
overview或者说摘要看这篇:
https://acl2023-retrieval-lm.github.io/
目前常用的几种:
- 最直接的RAG,query检索数据库一次。
- 训练retriever+llm,可以单独训练Retriver 本身, REPLUG Retrieval-Augmented Black-Box Language Models。这是一种成本比较小的方法,比如我就固定gpt4,我可以把retriver训练到和他特别契合。
- 不断的调整retriever的方式,比如使用生成的句子,每N个字,再去做一次检索,和我们搜索段落增强方法相似。针对when和what,可以有很多方法都需要尝试,比如Active Retrieval Augmented Generation,里面就是根据输出token的困惑度来决定是否继续去query。总之可以调试的空间很多。
- 另外retrieve本身的目标也可以调整,是chunk,还是page,还是 block 对结果都有可能有影响。
做深度报告的一种尝试
- 让gpt生产query,构建框架。替代事前的知识图谱,成本太高,并且用不用的上也不一定。
- 生产10个query,去检索,然后生产效评估。这其中可以引入投研知识来评价query好不好,现有生成好不好。
- 如果有必要,将query继续拆分做召回。
- 召回的方式,尝试多种,比如para,block,page, title block。
- 对 indexer再进行训练,比如选定gpt3.5或者gpt4再次做一次训练。
长文总结的一类新的方式
- 当前我们的做法,一个query,召回的基本都是相似性,可以理解为一个聚类。
- 长文总结,可能需要找到10个最能代表整篇文章的para。
- 所以还是要召回聚类,让后从聚类里面找最合适的chunk。
- 感觉内核和section召回差不多。因为文档结构本身是聚类的放在一块。