
最近,我们与Cohere联合举办了一场虚拟活动[1],深入探讨了检索增强生成(RAG)[2]的世界,重点关注如何在概念验证阶段之外构建RAG应用。Elastic的首席解决方案架构师Lily Adler和Cohere的高级产品经理Maxime Voisin分享了在这一不断发展的自然语言处理(NLP)[3]领域中的挑战、解决方案和最佳实践。

为什么要构建与大语言模型互补的解决方案堆栈?
大语言模型(LLMs)[4]虽然强大,但并不完美。它们经常会犯一些荒谬的错误,例如建议在披萨上涂胶水或吃石头——这些错误源于其训练数据中缺乏逻辑层。这就是RAG的用武之地,通过添加一个关键的控制和上下文层来帮助LLM生成更准确的响应。RAG的核心在于将相关的信息检索系统与LLM集成,以增强文本生成。通过将LLM置于上下文相关的数据中,RAG不仅提高了响应的准确性,还显著降低了成本并增强了整体控制能力。它帮助利用外部知识源,使AI输出更加可靠和相关。

你的RAG性能取决于你的检索引擎。虽然没有万能的解决方案,但有一些最佳实践。
Maxime Voisin, Cohere的高级产品经理
理解RAG架构
一个基本的RAG架构从用户问题开始,使用向量数据库[5]来检索相关数据,如文档、图像和音频。这些数据为LLM提供了生成更准确响应的必要上下文。
然而,一个高级的RAG设置涉及多个层次,每一层都发挥着关键作用:
• 数据层: 确定信息的类型(结构化或非结构化)和存储方式。有效的数据管理对于高质量的信息检索至关重要。
• 模型层: 包括基础LLM和嵌入模型。微调这些模型对于处理特定任务和提高文本生成性能至关重要。
• 应用层: 管理检索、提示和应用逻辑,确保相关文档无缝集成到工作流程中。
• 分析和部署层: 确保解决方案适用并高效部署。持续分析有助于优化模型性能并适应新数据。

战略性数据层管理
有效的RAG解决方案始于对数据格局的深入理解。处理非结构化数据[6](如图像或文档)或结构化数据[7](如数据库)时,强大的数据分块策略至关重要:
• 大块与小块: 在上下文丰富性和精确性之间平衡。大块提供更多上下文,但可能降低精确性,而小块更精确,但可能缺乏完整信息。
• 令牌重叠: 确保块之间的连续上下文,有助于保持检索信息的一致性。
• 合并相关块: 在参考源进行验证时保持精确性,确保提供信息的可靠性。
安全和法律考虑也至关重要。访问控制机制(如LDAP、Active Directory)和隐私问题(如使用命名实体识别来编辑敏感信息)必须仔细管理,以确保合规性和用户信任。这些措施对于防止数据泄漏和未经授权访问敏感信息至关重要。
评估模型层
使用人工标注的数据集和适当的指标选择(召回率与精确率)是有效信息检索的基础。此外,成本和速度也是关键因素,需要在这些元素之间进行权衡:
• 召回率: 确保检索到所有相关文档。在法律或合规场景中,高召回率至关重要,因为遗漏相关信息可能会带来重大后果。
• 精确率: 确保检索到的文档高度相关。在消费者应用中,高精确率很重要,以避免用户沮丧。
有效微调LLM对于优化这些指标和提高RAG系统的整体性能至关重要。
应对生成模型中的挑战
为了提高生成模型的可验证性并减少幻觉,使用提供引用的模型,选择幻觉率较低的模型,并改善上下文窗口的利用。这将增强生成文本的一致性。此外,专为RAG应用训练的模型可以显著降低不准确性的可能性,并提高系统的整体可靠性。

LLM会犯错,人类也会犯错,尽管LLM犯的错误有时更荒谬,因为没有逻辑层。
Lily Alder, Elastic的首席解决方案架构师
超越RAG基础:策略和最佳实践
加入我们,探索检索增强生成(RAG)的高级技术,提升你的RAG系统。
观看网络研讨会[8]
高级RAG技术
• 并行查询: 通过并行搜索查询处理多部分问题显著提高RAG系统的响应准确性,使其能够应对复杂的用户请求。这种技术使系统能够同时分解和处理查询的不同部分,确保全面准确的响应。
• RAG与工具结合: 通过集成工具处理复杂数据类型(如电子表格和SaaS应用)扩展RAG功能,为AI应用如工作助理开辟新可能性。此集成使RAG系统能够与外部知识源交互,提供更全面的答案。例如,查询数据库或电子表格以提供数据驱动的响应可以增强系统在业务和生产力应用中的效用。
• 代理性RAG: 为RAG系统配备代理功能,允许其进行顺序推理和动态规划,使其能够应对更复杂的查询。代理性RAG系统可以利用多种工具并根据收集的结果调整计划。这种灵活性使其具有更高级的问题解决能力,能够处理需要多个步骤和逻辑推理的复杂任务。
大规模部署检索增强生成
扩展RAG解决方案涉及三个主要领域:
1. 成本管理: 选择高效模型并优化向量搜索[9]数据库以有效控制成本。成本分析和定期监控有助于识别优化领域,确保解决方案保持成本效益。
2. 安全性和可靠性: 实施灾难恢复、服务级别目标,并采用站点可靠性工程(SRE)方法以确保稳健的基础设施。这些措施有助于维护正常运行时间和可靠性,这对于生产环境至关重要。
3. 持续分析: 利用可观察性工具监控和评估LLM响应,随着时间的推移,适应变化并确保一致的性能。持续评估有助于维护信息检索的质量并适应任何不断发展的需求。
实际实施策略
LangChain、LlamaIndex、Autogen和Cohere的API等工具和框架提供现成的解决方案,以高效实施高级RAG系统。利用这些工具可以避免从头开始,加速部署并减少开销。它们提供了信息检索和自然语言处理任务的预构建组件,使实现更加快速和可靠。
例如,LangChain[10]可以通过将不同过程链接在一起来帮助构建复杂的工作流程,而LlamaIndex则提供了快速检索的高效索引解决方案。另一方面,Autogen通过提供一系列预配置的设置和模板简化了响应的生成。
合作与资源
Elastic和Cohere一直处于信息检索和RAG研究与开发的前沿。以下是深入了解RAG的方法:
• 观看完整的网络研讨会:超越RAG基础:实施RAG的策略和最佳实践[11]。
• 通过AI Playground[12]测试最新的AI搜索功能,这是一个免费动手实验室,涵盖如何构建RAG系统。
• 要了解更多内容和动手研讨会,请访问Elastic Search Labs[13]。此资源提供了与各种RAG用例相关的有价值的信息、教程和代码示例,包括使用Elastic和Cohere的教程。
• 开始免费试用[14],以开始构建具有搜索AI的应用。
通过了解RAG的复杂性并在自然语言处理中实施最佳实践,你可以构建强大的AI应用,这些应用利用外部知识源提供更准确和可靠的响应。无论你专注于简单的RAG系统还是更高级的实现,目标都是创建可扩展、成本效益高并通过精确的信息检索和文本生成提供价值的解决方案。
Elastic AI生态系统
Cohere是Elastic AI生态系统[15]中的重要合作伙伴,提供开发人员预构建的Elasticsearch向量数据库集成[16],来自行业领先的AI公司的受信任网络,提供无缝访问GenAI应用的关键组件,包括AI模型、云基础设施、MLOps框架、数据准备和摄取平台以及AI安全与操作。
这些集成[17]帮助开发人员:
• 通过RAG提供更相关的体验
• 从多个来源准备和摄取数据
• 试验和评估AI模型
• 利用GenAI开发框架
• 观察和安全地部署AI应用
引用链接
[1]
虚拟活动: https://www.elastic.co/virtual-events/beyond-rag-basics[2]
检索增强生成(RAG): https://www.elastic.co/what-is/retrieval-augmented-generation[3]
自然语言处理(NLP): https://www.elastic.co/what-is/natural-language-processing[4]
大语言模型(LLMs): https://www.elastic.co/what-is/large-language-models[5]
向量数据库: https://www.elastic.co/what-is/vector-database[6]
非结构化数据: https://www.elastic.co/what-is/unstructured-data[7]
结构化数据: https://www.elastic.co/what-is/structured-data[8]
观看网络研讨会: https://www.elastic.co/virtual-events/beyond-rag-basics[9]
向量搜索: https://www.elastic.co/what-is/vector-search[10]
LangChain: https://www.elastic.co/blog/langchain-tutorial[11]
超越RAG基础:实施RAG的策略和最佳实践: https://www.elastic.co/virtual-events/beyond-rag-basics[12]
AI Playground: https://www.elastic.co/demo-gallery/ai-playground[13]
Elastic Search Labs: https://search-labs.elastic.co/search-labs[14]
开始免费试用: https://www.elastic.co/cloud/generative-ai-trial-overview[15]
Elastic AI生态系统: https://www.elastic.co/partners/ai-ecosystem[16]
集成: https://www.elastic.co/search-labs/integrations[17]
集成: https://www.elastic.co/search-labs/integrations




