微信扫码
与创始人交个朋友
我要投稿
本文Key Takeaway:
01
背景
但其实,大家对比的时候常比较的是IFT或SFT跟RAG,增量预训练比较少,而实际上个人觉得这一环可能对很多领域知识任务的提升更大,尤其是跟通用语料差异较大的部分,Yi 技术报告里有提到增量预训练对于上下文窗口也有很大的帮助,所以对于很多领域来说,在考虑RAG或SFT之前,请先考虑增量预训练。对于注入知识和长度拓展都有很大的益处。推荐增量预训练(较少频次)->SFT->RAG 迭代式优化。
02
RAG框架
Naive RAG、Advanced RAG和Modular RAG。一图胜千言,同济这个综述图建议反复看,增强框架记忆。实际企业中,可能大部分都在Advanced RAG中进行检索器细节的打磨,对于召回的效果,以及LLM总结推理生成效果的调优。
03
几个Advanced RAG方法
所谓高级,自然是针对不同的问题得到了很好的解决。例如:
内容缺失:检索不出正确答案=》召回准确性
漏掉排名靠前的文档:Top K的召回率需要保证百分百=》rank准确性
推理能力:哪些文档要,哪些文档不要,根据文档准确精简回答问题=》推理总结准确性
回答第一个问题:这里介绍几个Prompt Engineerin Base的Query改写或扩展的方法:
HyDE:使用大模型回答Query生成《假设文档》,再用 《假设文档》去库里搜
Step-back Prompting: 从具体问题到抽象问题去问
Meta Cove :对于复杂Query,验证的方式是通过将问题拆的比较细,然后分开去找答案,这样获取到的知识更全面,比一个query去召回肯定更好
思考:其实这几个思路,都是在把复杂的难以理解的用户问题,转化为大模型或者检索系统更好理解的“黑话“,降低理解成本,效果自然就上来了。
针对第二个问题,其实就是精细化文档排序问题:
LLM ReRank:看到的比较少,大部分还是直接拿API级别的对召回文档排序。
BGE ReRanker:FlagEmbedding开源的交叉编码器模型
bge-reranker,具有比向量模型更强大的排序能力。官方建议使用或者微调它来重新排序向量模型返回的top-k文档,提高最终结果的相关性。工业界用的还是比较多,代码使用起来也非常方便,推荐!
针对第三个问题,其实看大家讨论的比较少,主要是有了知识后的回答总结,看起来是个润色的工作, 但实际还有很多推理的事情。例如:
问题:如何安装充电桩,需要布线11米怎么收费?
文档:5米-10米需要xx的钱,10米以上打九折......等
那就得理解这样得逻辑,不只是知识密集型了。这一类得问题目前经验是只有API级别的如GPT4 、KimiChat这些才有可能解决得比较好,其他方法也在思考中,如您有想法也可留言提出。
这些方法其实很多,这里就不全部介绍了,只是近期比较感兴趣以及几篇论文里测过这几个比较有效就介绍下,实际可能需要都进行尝试。不过所有的方法,只要理解好了在前述特定的框架中就知道优化的方向。
04
落地的一些选型
个人比较倾向于技术落地,所以会关注各家的实际技术选型,这里列一些常见方案供参考。
技术问答机器人
意图识别:/
检索召回:使用BGE Embedding进行检索,为提升效果,使用RetroMAE方式(如图所示使用全参数的bert作为encoder加上单层的transformer layer作为decoder,预测mask词)进行领域增强
排序生成:检索结果优化使用RAG-Fusion (Fusion如图所示,由LLM生成不同query1 query2 ... query n 后按RRF打分;RRF打分是按如图所示对多个检索渠道按排名的倒数综合打分)& Re-rank(BGE-ReRank)
RAG平台
意图识别:使用意图识别进行场景分流:采用bge_large_en向量模型 + 大模型的技术方案检索召回:
使用Cohere Embedding (100+ Multilingual能力)进行检索;工程上使用OpenSearch多路混合召回(向量和关键字), 同时包含Sparse Vector Retrieval(term expansion)
排序生成:使用BGE进行ReRank 如亚马逊这个example:
private-llm-qa-bot/notebooks/embedding/bge_zh_research.ipynb at main · aws-samples/private-llm-qa-bot · GitHub
知识库:LLM自有知识->网络搜索->内部知识库 的ReRank方向
baichuan
意图识别:未知。不过baichuan2论文里有提及对齐过程包含了非常多层级意图分类,所以猜测会做很细粒度的工作
检索召回:query扩展使用Meta CoVe以及Think Step-Further(前文有介绍);检索策略选择稀疏检索+向量检索(自研baichuan-text-embedding)
排序生成: 未知rerank模型;self-crituque:让大模型基于 Prompt、从相关性和可用性等角度对检索回来的内容自省,与 Prompt 最匹配、最优质的候选内容
注:”/“ 表明不清楚这块的优化。
05
总结
正如前文所说,RAG是一套系统,并非什么新的技术,只不过在大模型时代,这套系统显得格外的重要。所以会出现层出不穷的文章和最佳实践,我们需要做的,就是在实际项目中快速落地并针对自己的场景进行调优,有了很多心得之后自然可以成体系。本文也只是介绍了rag中的大体框架和一些优化方法,没有涉及的方面如 多模态、语料到知识库的清洗,rag系统的正确评估、自动生成引文等等还有非常多,希望后面结合一些落地的场景和paper有继续深入的介绍。
Reference:
1、chendanqi综述ACL 2023 Tutorial:
Retrieval-based LMs and Applications
https://acl2023-retrieval-lm.github.io/
2、BGE:
https://github.com/FlagOpen/FlagEmbedding/blob/master/examples/search_demo/run.py
3、RAG or 微调:
https://arxiv.org/pdf/2312.05934.pdf
4、 对比不同高级RAG优化技术的实际效果:
https://arxiv.org/pdf/2404.01037.pdf
5、RAG思考的快与慢 思维推理:
https://mp.weixin.qq.com/s/TpRTXwyh7R6ZFN9BdCxVfQ
6、RAG框架:
https://github.com/infiniflow/ragflow/blob/main/README_zh.md
7、综述类:
Retrieval-Augmented Generation for Large Language Models: A Survey 。
链接:https://arxiv.org/abs/2312.10997
8、RAG实践的坑:
https://mp.weixin.qq.com/s/Yj0hZxxtToK3DAqDvwc1EA
9、综述:
https://arxiv.org/pdf/2312.10997
10、同济综述:
https://mp.weixin.qq.com/s/mDw6Q1dEWxKZQBv3jp5utg
11、advanced rag:
https://mp.weixin.qq.com/s/Zwzfv327RmNvT6gc7n1JpQ
12、百川rag:
https://mp.weixin.qq.com/s/0-DMnMYG-vk5xgWJzAg_Tg
13、RAG-Fusion:
https://arxiv.org/pdf/2402.03367.pdf
14、RRF:
https://safjan.com/implementing-rank-fusion-in-python/
15、RetroMAE:
https://arxiv.org/pdf/2205.12035.pdf
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-06
比Kimi还好用?AI写作神器「橙篇」来势汹汹 欲夺长文创作之未来
2024-07-06
暴走WAIC:跟AI+教育有关的,都在这儿↑
2024-07-02
【研究成果】ArchGPT:利用大语言模型支持传统建筑遗产的更新与保护
2024-06-28
所有男生女生,AI 卖货主播来咯!
2024-06-28
AI+医疗专题报告:院内场景丰富,AI 全面赋能医疗健康领域
2024-06-20
AI 背后 B 端设计师的机会
2024-06-20
30 款让教师工作更轻松的 AI 工具
2024-06-13
知识图谱(KG)和大模型(LLMs)双轮驱动的企业级AI平台构建之道暨行业调研
2024-05-03
2023-07-06
2023-06-30
2024-05-25
2024-04-28
2023-06-29
2023-07-03
2023-07-01
2023-07-10
2023-06-29