嵌入与重排序
介绍
OpenRouter 接入 Voyage AI 提供前沿的嵌入(embedding)和重排序(reranker)技术。
嵌入模型是基于神经网络(如Transformer)的模型,能够将非结构化且复杂的数据(如文档、图片、音频、视频或表格数据)转换为密集的数值向量(即嵌入向量),这些向量能捕捉数据的语义信息。它们作为数据点的表示或索引,是语义搜索和检索增强生成(RAG)的核心组成部分,而RAG是目前构建领、专用或企业专用聊天机器人及其他AI应用的主流方法。
重排序模型是能够输出查询与多个文档之间相关性分数的神经网络。常见的做法是使用这些分数对通过嵌入方法(或基于词法的搜索算法,如BM25和TF-IDF)初步检索到的文档进行重新排序。筛选得分最高的文档可以将检索结果优化为更相关的子集。
我们同时提供了嵌入和重排序模型的API接口,可接收您的数据(如文档、查询或查询-文档对)并返回相应的嵌入向量或相关性分数。嵌入模型和重排序器作为模块化组件,能够与RAG技术栈的其他部分(如向量数据库和生成式大语言模型LLM)无缝集成。
什么是检索增强生成?
检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种热门的生成式AI框架,它通过在大语言模型(LLM)生成过程中引入相关且最新的信息来增强其能力。此方法使LLM能够利用当前的领域特定数据补充其预训练知识。RAG是一种经济高效的解决方案,可在无需昂贵且耗时的微调或重新训练整个模型的情况下,针对特定用例定制LLM。
检索增强生成:助力更智能的AI
检索增强生成让企业能够借助通用大语言模型实现专业领域应用,而无需依赖昂贵的定制训练模型。RAG直接解决了这些模型的核心局限性——通过用当前、领域特定的信息增强查询来提升生成能力。这使得企业能够整合实时信息、专有数据集以及原始模型训练未涵盖的专业文档。通过透明化地提供证据支持响应,RAG提升了可信度并降低了幻觉风险。
什么是大语言模型?
大语言模型(LLM)是一种旨在理解和生成类人文本的人工智能形式。作为自然语言处理(NLP)的高级应用,LLM能够从海量训练数据中学习模式、结构和语法规则,从而对用户提示生成连贯的响应。其优势在于无需针对具体任务进行训练即可执行广泛的语言生成任务,这使其成为聊天机器人、翻译、内容创作和摘要等多场景的通用工具。
大语言模型的局限性
大语言模型是通过分析海量训练数据集学习的复杂神经网络。开发这些模型需要巨大的计算资源,导致成本高昂且耗时漫长。此外,托管和维护定制LLM所需的专用基础设施形成了显著的资金壁垒,仅限具备充足技术投资的资源充足组织使用。
LLM擅长回答历史/记录性内容相关的问题,但其知识受限于训练数据的时效性。对于需要最新信息的查询,它们无法在不重新训练的情况下回答近期事件,因而效果受限。
同样,LLM无法直接回答关于企业内部文档或其他组织特有领域数据集的问题。这一限制对企业希望通过AI技术实现深度专业化知识的需求提出了严峻挑战。
这些局限性还凸显了LLM的另一大问题:幻觉。缺乏可验证信息时,语言模型可能生成看似合理实则完全虚构的响应。此倾向会对需要准确性和可靠性的应用场景构成重大风险。
未使用RAG增强的LLM系统示意图
下图展示了未使用RAG增强的LLM系统的工作流程及其局限性:
此图表清楚地展示了:
- 用户需求:具体且有上下文的查询
- 系统处理:缺乏上下文的LLM处理
- 输出结果:模糊且非特定的回答
- 核心问题:无法提供个性化、精准的建议
检索增强生成(RAG)的优势
RAG因其相对简单的架构和显著的性能提升而广受欢迎。
成本效益高
RAG 让组织能够将通用的预训练模型应用于专业领域,而无需投入定制化模型的高昂开发成本。通过高效检索确保仅包含必要信息,能够优化按 token 收费的 LLM 使用,从而降低 API 开销。
领域定制化
RAG 使组织能够通过整合专业知识库,将预训练模型适配到特定领域。这样,模型可以直接生成关于专有文档或行业特定内容的回答,无需额外定制训练。尽管微调也能带来类似效果,但其时间、成本与维护投入远高于 RAG。
实时洞察
通过动态检索外部最新数据,RAG 让大语言模型能够基于实时信息生成回答。这克服了静态训练数据集的知识局限性,使模型能够提供关于近期事件和新兴趋势的分析。
透明度
RAG 通过为生成内容提供来源引用和证据,提升了 AI 回答的可靠性。通过将每个回答关联到知识库中的具体来源,用户能够验证信息的准确性和出处,减少幻觉风险并增强对 AI 输出的信任。
适应性强
RAG 的核心优势之一是能轻松适配前沿模型。随着语言模型或检索技术的进步,组织可以直接替换新版模型或调整检索策略,而无需重构整个系统。此灵活性确保了 RAG 系统始终保持技术领先性。
检索增强生成(RAG)的工作原理
RAG 包含三个关键阶段:数据摄入、检索和生成。
数据摄入
在摄入阶段,组织需为检索准备知识库。原始数据从内部文档、数据库或外部资源等渠道收集,经过清洗、格式化并拆分为更小的可管理片段。每个片段通过嵌入模型转换为向量表示(捕获文本语义),随后存入向量数据库以支持高效的语义搜索与检索。
信息检索
当用户提交查询时,系统会在生成前检索相关上下文。查询语句会通过摄入阶段相同的嵌入模型转为向量表示。随后,向量搜索引擎从数据库中查找与查询语义最接近的文档片段。可能辅以过滤、排序或权重调整技术,确保仅返回最相关信息,从而提升最终回答的准确性。
生成阶段
检索到相关上下文后,系统会结合原始提示、检索到的段落和特定指令构建增强提示。大语言模型据此生成回答,综合其预训练知识与检索内容。此方法确保回答既基于外部数据源,又符合用户意图,从而提供更精准的结果。
使用RAG增强的LLM系统示意图
下图展示了RAG系统如何通过检索相关上下文来增强LLM的回答能力:
此RAG增强系统的关键优势:
- 智能检索:通过向量嵌入找到最相关的上下文信息
- 精准回答:结合专有数据和用户查询生成具体建议
- 可验证性:回答基于实际的产品数据和用户评论
- 个性化:考虑具体需求(户外活动、舒适保暖、时尚)提供针对性建议
检索增强生成(RAG)的行业应用案例
RAG 已在多个行业中应用,释放大型语言模型(LLM)和人工智能的变革潜力。
制造业:通过设备手册和维护日志增强 LLM,提供实时操作指导。RAG 使技术人员能够快速获取机械的精确信息,减少停机时间并提升设备性能。
客户支持:利用内部文档、产品指南和支持历史记录诊断问题。RAG 帮助支持团队即时检索有用内容,缩短响应时间并提高首次解决率,从而高效处理客户查询。
医疗保健:综合医学研究、临床指南和患者记录,支持诊断决策和治疗建议。RAG 让医疗专业人员能够获取最新的医学知识,同时提供透明、基于证据的见解。
金融服务:整合监管文件、市场报告和合规指南,支持投资研究、风险评估和法规遵循。RAG 使金融分析师能够快速检索和分析复杂、最新的金融信息。
软件工程:查阅文档和代码片段,辅助工程师编写代码。RAG 还能通过基于类似记录问题建议潜在修复方案来帮助调试,提高生产力和代码质量。
检索增强生成的关键概念
分块(Chunking)
分块是数据摄取过程的一部分,可提高系统准确性并降低成本。它将大块内容分解为更小、可管理的片段,以便检索。目标是创建有意义且上下文完整的块,确保其保留足够信息的同时减少冗余。
有效的分块需平衡粒度和完整性,使系统能检索相关信息,而不会因无关细节淹没 LLM。结构良好的分块可提高检索精度、减少 token 使用,并生成更准确且经济高效的响应。
嵌入模型(Embedding Models)
嵌入模型将数据转换称为“向量”的数值表示,以捕捉语义含义。这使得系统能理解词、短语和文档之间的关系,提升检索相关信息的准确性。
在摄取阶段,嵌入模型处理每个数据块,将其转换为向量后存储到向量数据库中。用户提交查询时,系统使用相同的嵌入模型将查询转换为向量。
不同类型的嵌入模型支持不同用例。通用模型适用于广泛场景,而领域特定模型(如法律、医疗或金融)可提升专业领域的检索精度。多模态模型不仅能处理文本,还能处理图片、音频等数据类型,实现更高级的检索能力。某些模型甚至能生成文本的数值表示,直接与图片或视频对比,实现真正的多模态检索。
语义搜索(Semantic Search)
语义搜索通过关注用户查询背后的含义,显著改进关键词搜索。利用嵌入技术,查询和文档均被转换为捕捉语义的向量。即使用户查询词未直接出现在内容中,向量数据库也能找到最相关的文档。
此方法能更好地理解上下文,确保结果更准确和相关。通过识别同义词、相关概念和词形变化,语义搜索提升用户体验并减少歧义,使结果更符合用户意图。
重排序(Reranking)
重排序是一种在初始检索后优化结果相关性的技术。检索到一组文档后,重排序模型会根据它们与用户查询的相关性重新排序。该模型可利用文档质量、上下文相关性或基于机器学习的评分等额外特征优化结果。
重排序有助于优先展示最有用的上下文信息,提高准确性和用户满意度。当初始检索返回范围较广的结果时,它尤其有用,可帮助系统微调选择并呈现最相关的答案。
提示工程(Prompt Engineering)
提示工程涉及精心设计输入 LLM 的指令,以引导其生成符合期望的输出。通过有效构建提示,可确保模型生成更准确、相关和恰当的回答。这一过程包括提供清晰指令、相关上下文,有时还需示例以帮助模型理解任务。
在 RAG 中,提示工程的关键作用是将检索到的文档与原始用户查询结合,生成连贯且精确的响应。精心设计的提示能减少歧义、过滤无关信息,并确保模型与用户意图一致,从而提升输出质量。
优化检索增强生成应用
RAG 解决方案可通过多种策略优化,以提高准确性并改善终端用户体验。
优化信息检索
改进 RAG 的信息检索可从以下方面入手:
- 检查分块技术,确保文档被拆分为有意义且上下文相关的片段。
- 选择合适的嵌入模型以捕捉内容语义。领域特定模型可能在某些用例中表现更佳。
- 除语义搜索外,评估关键词搜索或混合方法是否能提升检索效果。
- 在初始检索后应用重排序方法以优化结果准确性。
- 调整检索文档数量:过多会引入噪声,过少可能遗漏重要上下文。找到平衡点有助于提升检索性能和相关性。
优化答案生成
改进 RAG 的语言生成可采取以下方法:
- 通过提示工程构建查询和上下文,引导语言模型生成更准确和相关的响应。清晰的指令、上下文和示例能减少歧义并提升输出质量。
- 评估不同模型或领域特定 LLM,确保生成的回答符合用例的细微差别,提高相关性和准确性。
- 考虑可调模型参数(如温度值)以控制响应的创造性。
优化生产级扩展
确保 RAG 系统为生产环境做好准备,需为关键组件选择一流供应商:
- 向量数据库:选择支持高效搜索和索引的平台,尤其是可扩展的快速近似最近邻(ANN)搜索。高级向量数据库可能还支持元数据过滤,通过额外上下文信息缩小搜索结果范围,从而提升准确性和速度。
- 嵌入模型:需平衡向量的高维性与存储和检索效率。高维嵌入能捕捉更丰富的语义关系,但会增加计算成本、存储需求和检索时间。
- 大型语言模型(LLM):选择与用例需求匹配的 LLM,确保其能准确解释检索信息并生成连贯且上下文相关的响应。LLM 的选择还影响系统整体成本和性能——更大模型可能提供更高准确性,但会带来更高延迟和计算需求。需评估响应时间、输出质量和基础设施要求,以选择性能与效率平衡的模型。
检索增强生成的挑战
RAG 的主要挑战之一是难以集中和组织内容以实现高效检索。RAG 系统需要访问跨多个领域的大量数据,但如何组织这些内容以使模型能高效检索最新且相关的信息是一项复杂任务。数据可能分散在不同平台、格式和数据库中,难以确保全面覆盖和准确性。此外,确保多源一致性也至关重要。检索到的信息可能存在矛盾、过时或不完整,从而混淆知识库并削弱生成响应的质量和可靠性。这些挑战凸显了对更复杂索引和检索系统的需求,以使 RAG 模型能获取最佳内容并生成相关且准确的输出。
另一项重大挑战是 RAG 目前仅限于回答问题,而无法执行更复杂的任务。尽管 RAG 系统擅长基于检索信息生成响应,但在执行查询或内容生成之外的操作时表现不佳。这一限制源于 RAG 的设计初衷——从外部源拉取相关数据并基于该数据生成输出,而非与现实环境交互或操作。因此,尽管 RAG 模型可辅助信息检索和内容生成,但其在问题解决或决策等任务上的能力仍待开发,限制了其在动态应用中的潜力。
创建具备记忆的交互式检索增强生成
通过为 RAG 添加记忆功能,可扩展其能力以创建更交互式的体验,使其能记住过去交互中的关键细节和上下文。传统 RAG 系统通常在不保留多次交换信息的情况下响应查询,导致体验脱节。通过集成记忆机制,RAG 系统可存储当前和过往对话中的相关事实、偏好或见解,并在需要时调用这些信息。这使得系统能提供更个性化、上下文感知的响应,创造更无缝的体验。随着时间推移,系统会加深对用户需求的理解,调整响应以更贴合并吸引用户,使体验更像持续对话而非孤立查询。
检索增强生成与生成式 AI 的未来
RAG 领域的新技术将持续涌现,提升其以更高效、自适应和智能的方式检索和生成信息的能力。关键发展方向包括:
- 高级检索机制:使 RAG 系统能动态访问更广泛的来源,包括专业数据库、非结构化内容和实时信息。这些改进将使 RAG 系统更具上下文感知能力,从而在各领域生成高度相关且准确的输出。
- 生成式 AI 代理能力:集成代理能力将使 AI 系统不仅能检索和生成响应,还能基于收集的信息执行问题解决、数据分析和决策等操作。这些代理系统将更交互式、自主和智能,推动 RAG 在自动化研究、个性化推荐和交互式虚拟助手等应用中的核心地位,开启响应式与主动式 AI 的新时代。
微调 vs. 检索增强生成
微调(Fine-tuning) 是通过额外训练修改语言模型的过程,本质上将新知识或行为永久嵌入模型的参数记忆中。此方法需要大量计算资源和专业知识,且因模型大小限制而难以容纳新信息。此外,任何修改均为永久性,无法轻松更新。微调模型可提供领域特定结果,但存在显著的训练时间和成本问题,难以及时更新。
检索增强生成(RAG) 则动态检索训练数据之外的内容,再生成语言输出。这使得 RAG 模型能整合新数据而无需修改底层参数,更灵活且可扩展,尤其适合知识密集型任务,避免了微调的需求。
文本嵌入
目前提供以下文本嵌入模型:
模型 | 上下文长度 (tokens) | 嵌入维度 | 描述 |
---|---|---|---|
voyage‑3‑large | 32,000 | 1024 (默认), 256, 512, 2048 | 最佳的通用和多语言检索质量 |
voyage‑3.5 | 32,000 | 1024 (默认), 256, 512, 2048 | 针对通用和多语言检索质量进行优化 |
voyage‑3.5‑lite | 32,000 | 1024 (默认), 256, 512, 2048 | 针对延迟和成本进行优化 |
voyage‑code‑3 | 32,000 | 1024 (默认), 256, 512, 2048 | 针对代码检索进行优化 |
voyage‑finance‑2 | 32,000 | 1024 | 针对金融检索和RAG进行优化 |
voyage‑law‑2 | 16,000 | 1024 | 针对法律检索和RAG进行优化同时在所有领域都有改进的性能 |
voyage‑code‑2 | 16,000 | 1536 | 针对代码检索进行优化(比替代方案好17%)/ 上一代代码嵌入 |
多模态嵌入
多模态嵌入模型可以将来自多个模态的非结构化数据转换到一个向量空间中。Voyage 的多模态嵌入模型支持文本和内容丰富的图片(例如图表、照片、幻灯片和文档截图),无需复杂的文本提取或ETL流程。与传统的多模态模型(如CLIP)不同——这些模型会分别处理文本和图片——Voyage 的多模态嵌入模型可以直接对包含交替文本和图片的输入进行向量化。CLIP的架构使其无法用于混合模态搜索,因为文本向量和图片向量通常会与同一模态中的不相关项对齐。Voyage 的多模态嵌入模型通过单一主干网络处理所有输入,从而消除了此偏差。
Voyage 目前提供以下多模态嵌入模型:
模型 | 上下文长度 (tokens) | 嵌入维度 | 描述 |
---|---|---|---|
voyage‑multimodal‑3 | 32,000 | 1024 | 能够对交替文本和内容丰富的图像(如PDF截图、幻灯片、表格、图表等)进行向量化的强大多模态嵌入模型。 |
重排序
重新排序器(reranker)在给定一个查询和多个文档时,会返回查询与文档之间的相关性(排名)。这些文档通常是基于嵌入的检索系统的初步结果,而重新排序器会对这些候选文档的排名进行优化,并提供更准确的相关性得分。
与分别编码查询和文档的嵌入模型不同,重新排序器是交叉编码器,能够同时处理查询和文档的组合,从而实现更精确的相关性预测。因此,常见的做法是在通过基于嵌入的搜索(或基于词汇的搜索算法如BM25和TF-IDF)检索出最靠前的候选文档后,再应用重新排序器。
目前Voyage提供以下重新排序模型:
模型 | 上下文长度 (tokens) | 描述 |
---|---|---|
rerank-2 | 16,000 | 通用重新排序器针对质量进行了优化并支持多语言 |
rerank-2-lite | 8000 | 通用重新排序器针对延迟和质量进行了优化并支持多语言 |