摘要: 本文分享了作者在RAG(Retrieval Augmented Generation)领域过去8个月的实践经验。作者团队为Usul AI(9M页面)和一家未命名的法律AI企业(4M页面)构建了RAG系统。在尝试使用Langchain和Llamaindex构建原型后,作者发现初始结果不尽人意,经过几个月的优化,最终实现了满意的性能。文章中详细介绍了提高RAG系统性能的关键点,包括查询生成、重排序、分块策略、元数据注入到LLM以及查询路由等。此外,作者还介绍了他们使用的工具和技术栈,并宣布将相关经验开源。
讨论: 这段内容主要讨论了基于大型语言模型(LLM)的检索增强生成(RAG)技术。其中,mediaman分享了他们在合成查询生成方面的经验,通过生成多个查询变体和并行搜索来提高检索效果。bityard对自托管的定义提出了疑问,认为需要依赖多个第三方服务。daemonologist强调了使用基于LLM的重排序器的重要性,并建议在UI中强调搜索功能。pietz介绍了他们使用的代理RAG方法,该方法允许LLM调整查询、多次搜索和使用多个工具。js98分享了他一年半前关于处理数百万页面的RAG经验。jweewee询问了关于版本控制嵌入的方法。badlogic认为查询扩展和非平凡分块是提高RAG性能的关键,而leetharris认为基于嵌入的RAG在现实生活中的应用有限。hatmanstack推荐使用S3 Vectors和Bedrock知识库进行实现,而esafak对某个分块器的设计提出了批评。
原文标题:Production RAG: what I learned from processing 5M+ documents
原文链接:https://blog.abdellatif.io/production-rag-processing-5m-documents
讨论链接:https://news.ycombinator.com/item?id=45645349