向量搜索和RAG - 平衡准确性和上下文
24.webp
引言
大型语言模型(LLMs)已经取得了显著进步,特别是在机器学习和自然语言处理方面,使机器能够轻松处理复杂任务。然而,随着LLM技术的发展,它面临了一个独特的问题:AI幻觉。这是指AI生成错误或虚假信息的情况,使我们质疑这些系统的可信度。Zilliz的开发者倡导者Christy Bergman,拥有丰富的AI/ML经验,最近在非结构化数据聚会上讨论了这些幻觉的影响以及它们如何影响AI系统的推出。
观看Christy的演讲
在她的演讲中,Christy讨论了AI幻觉的原因及其影响。她还提到了一个主要概念,称为检索增强生成(RAG),这是一种通过提供与用户问题相关的、最新的信息来使语言模型更可靠的方法。这种技术有助于确保模型能够访问最新数据,如最近的新闻或研究,以提供更好的答案并减少错误。
理解AI幻觉
AI幻觉指的是基于大型语言模型的人工智能系统,特别是生成事实错误、误导或完全编造的输出的现象。
这个问题可能有几种原因:
- 缺乏上下文:AI模型可能没有足够的上下文来生成准确的响应,尤其是在处理复杂或微妙的查询时。
- 训练数据问题:用于训练AI模型的数据可能包含错误、偏见或过时的信息,模型可能会无意中复制这些信息。
- 过度泛化:AI模型可能会从训练数据中过度泛化,导致在面对新颖输入时得出错误的推断。
- 设计限制:一些AI架构并未设计为验证其输出的真实性,而是专注于基于训练数据生成统计上可能的响应。
RAG如何缓解幻觉
检索增强生成(RAG)是一种先进的自然语言处理方法,旨在提高AI模型的准确性和可靠性,特别是减少幻觉。
Christy解释说,RAG是一种将您自己的数据集成到生成性AI过程中的新方法。它的工作原理简单来说是这样的:
你首先将数据输入到嵌入模型中。这个模型将信息转换成称为向量的一组数字,然后将这些数字存储在向量数据库中。
当你提出一个问题时,同一个嵌入模型也会将你的查询转换成向量,然后在数据库或向量空间中搜索最近的向量邻居。一旦找到最接近的匹配项,它就使用该匹配项作为上下文,连同你的问题一起,来提示大型语言模型。这样,你得到的答案更有可能是准确的。
构建RAG系统的挑战
构建检索增强生成(RAG)系统涉及几个复杂的步骤和决策。以下是一些关键挑战:
选择嵌入模型
在选择嵌入模型时,你可以关注几个关键因素:
- 向量维度:选择产生易于使用大小向量的模型。
- 检索性能:看看像Cohere和Voyager这样知名模型的表现如何。
- 模型大小:考虑模型的大小,确保它适合你的计算能力。
- 准确性:确保模型能够把握对你领域或产品重要的细微差别。
- 可扩展性:确保模型能够随着你需求的增长处理更多数据。
选择索引
选择合适的索引结构对系统性能至关重要。这涉及考虑:
- 可扩展性:索引必须能够扩展到数百万或数十亿文档而不会慢得不可接受。
- 内存占用:有效使用内存很重要,特别是处理大型数据集时。
- 检索速度与准确性的权衡:检索文档的速度和它们与查询的匹配准确性之间通常存在权衡。
分块
分块涉及将文档拆分成更小的、语义上连贯的部分,以便于更精确的检索。
- 确定块大小:太大,块可能不够集中;太小,可能会丢失重要上下文。
- 保持连贯性:确保每个块本身保持有意义和连贯。
- 处理重叠:决定如何管理可能适合多个块的信息。
关键词或语义搜索
关键词搜索和语义搜索之间的选择可以影响系统理解和响应查询的能力。
重新排序器
重新排序器是额外的模型或算法,用于细化初始检索结果,旨在提高选定文档的相关性和准确性,以生成最终响应。
RAG还活着吗?
Christy演讲中一直困扰我的一个问题是,现在长上下文LLMs正在提升它们的游戏水平,RAG是否仍然是明星。
对决:长上下文能否抛弃RAG?
这是让所有人讨论的问题。让我们分解它。
- 成本和效率
- 检索和推理动态
- 可扩展性和数据复杂性
- 合作而非竞争
OpenAI RAG与定制RAG
嗯,你已经看到了RAG是什么以及它带来的挑战。现在,是时候深入到构建RAG的技术方面了。具体来说,我们将讨论OpenAI的RAG以及它与使用向量数据库如Milvus构建定制RAG的比较。
RAG评估方法
为了评估RAG管道,你需要单独和一起查看两部分。你还需要检查性能是否有所提高。为此,你需要两件事:一个评估指标和一个数据集。
使用其他LLMs作为评委评估LLMs
评估大型语言模型(LLMs)可能具有挑战性。一种解决方案是让LLMs相互评估。这个过程涉及生成测试用例并测量模型的性能。
结论
就是这样!我们已经涵盖了AI幻觉以及RAG如何帮助解决问题。Christy展示了如何构建RAG需要仔细选择嵌入模型、索引和语义搜索方法。通过解决AI幻觉问题并利用动态检索最新信息,RAG为创建更可靠、上下文感知的AI系统提供了强大的工具。
技术干货
我决定给 ChatGPT 做个缓存层 >>> Hello GPTCache
我们从自己的开源项目 Milvus 和一顿没有任何目的午饭中分别获得了灵感,做出了 OSSChat、GPTCache。在这个过程中,我们也在不断接受「从 0 到 1」的考验。作为茫茫 AI 领域开发者和探索者中的一员,我很愿意与诸位分享这背后的故事、逻辑和设计思考,希望大家能避坑避雷、有所收获。
2023-4-14技术干货
LLMs 记忆体全新升级:六大新功能全面出击,用户体验值拉满!
本次,我们新增了价格计算器、取消存储配额限制、自动暂停不活跃数据库等功能,用户体验感再上新台阶。通过阅读本文,用户可以快速、详尽地了解 Zilliz Cloud 的六大新功能!
2023-5-5技术干货
向量数据库的行业标准逐渐清晰!Vector DB Bench 正式开源!
本文将从 Vector DB Bench 的特点和优点出发,帮助开发者全面、客观、高效地评估向量数据库。
2023-6-21