邢台专业网站建设价格公司网络营销推广

张小明 2026/1/13 7:05:40
邢台专业网站建设价格,公司网络营销推广,自己做网站建议,新媒体ui设计是干什么的RAG索引是将知识转化为可搜索数值数据的过程#xff0c;是检索增强生成的关键基础。文章详解了六种索引策略#xff1a;块索引、子块索引、查询索引、摘要索引、分层索引和混合索引#xff0c;每种策略适用于不同场景和数据类型。成功的RAG系统需选择适当的索引策略#xf…RAG索引是将知识转化为可搜索数值数据的过程是检索增强生成的关键基础。文章详解了六种索引策略块索引、子块索引、查询索引、摘要索引、分层索引和混合索引每种策略适用于不同场景和数据类型。成功的RAG系统需选择适当的索引策略遵循数据结构提高相关性并减少噪音从而降低模型幻觉提供准确可靠的系统响应。前排提示文末有大模型AGI-CSDN独家资料包哦—检索增强生成Retrieval-Augmented Generation, RAG正在改变大型语言模型LLMs利用外部知识的方式。问题在于许多开发者误解了 RAG 的实际作用。他们关注存储在向量数据库中的文档并认为所有的“魔法”始于此、终于此但这完全是错误的。索引和检索根本不是一回事。索引在于你如何选择表示的知识。检索在于模型可以看到哪些部分的知识。一旦你了解到了这个差异整个思路就会很清晰就会明白自己对模型的推理、速度和基础性有多大的控制权。什么是 RAG 索引RAG 索引是检索的基础。它是将原始知识转化为可经由相似性查询搜索的数值数据的过程。这些数值数据被称为嵌入embeddings嵌入捕获的是含义而不仅仅是表面的文本。可以将其视为构建一个可搜索的知识库语义地图。每个知识块、摘要或查询变体都成为地图上的一个点。地图组织得越好当用户提问时你的检索器就能越好地识别出相关的知识。如果你的索引出了问题例如知识块太大、嵌入捕捉到了噪音或者数据的表示没有反映用户的意图那么再好的 LLM 也帮不了你多少。检索的质量始终取决于数据索引的有效性而不是你的机器学习模型有多优秀。为什么它很重要你检索到的内容并不一定是你索引的内容。你的 RAG 系统的力量在于你的索引能否有效地反映含义而非文本。索引明确了你的检索器看待知识的框架。当你将索引策略与你的数据和用户需求相匹配时检索会变得更精确模型将减少幻觉用户将获得准确的补全。一个设计良好的索引能将 RAG 从一个检索管道转变为一个真正的语义推理引擎。真正有效的 RAG 索引策略假设我们有一篇关于 Python 编程的文档文档是一种多功能编程语言广泛应用于数据科学、机器学习和开发。它支持多种编程范式并拥有、和等丰富的库生态系统。现在让我们探讨何时有效地使用每种 RAG 索引策略以及如何为构建高性能检索系统而实现这些策略。1. 块索引Chunk Indexing这是大多数 RAG 管道的起点。你将大型文档拆分成更小的、语义连贯的块并使用某个嵌入模型对每个块进行嵌入。然后这些嵌入被存储在一个向量数据库中。示例代码# 1. Chunk Indexing def chunk_indexing(document, chunk_size100): words document.split() chunks [] current_chunk [] current_len 0 for word in words: current_len len(word) 1# 1 for space current_chunk.append(word) if current_len chunk_size: chunks.append( .join(current_chunk)) current_chunk [] current_len 0 if current_chunk: chunks.append( .join(current_chunk)) chunk_embeddings [embed(chunk) for chunk in chunks] return chunks, chunk_embeddings chunks, chunk_embeddings chunk_indexing(doc_text, chunk_size50) print(Chunks:\n, chunks)核心逻辑是将文档按字数或字符数分割成多个块然后对每个块生成嵌入向量。最佳实践对于短篇文本始终将块保持在200-400 个 Token左右对于长篇技术内容可保持在500-800 个 Token。确保避免在句中或段落中间进行分割使用逻辑性的、语义上的断点以获得更好的分块效果。最好使用20-30% 的重叠窗口以确保在边界处不会丢失上下文。权衡块索引是简单且通用的索引方式。然而更大的块可能会损害检索精度而更小的块可能会分散上下文并用不连贯的片段使 LLM 感到不知所措。2. 子块索引Sub-chunk Indexing子块索引是在块索引基础上进行精炼的一层。在嵌入正常知识块时你会将知识块进一步划分成更小的子块。在进行检索时你将子块与查询进行比较一旦子块匹配你的查询完整的父块就会作为输入传递给 LLM。这种方法有效的原因子块使你能够以一种更精确、更微妙、更准确的方式进行搜索同时保留了你进行推理所需的大上下文。例如你可能有一篇长篇研究文章而该文章中某一部分内容的子块可能就是长段落中某个公式的解释从而提高了精度和可解释性。# 2. Sub-chunk Indexingdef sub_chunk_indexing(chunk, sub_chunk_size25): words chunk.split() sub_chunks [] current_sub_chunk [] current_len 0 for word in words: current_len len(word) 1 current_sub_chunk.append(word) if current_len sub_chunk_size: sub_chunks.append( .join(current_sub_chunk)) current_sub_chunk [] current_len 0 if current_sub_chunk: sub_chunks.append( .join(current_sub_chunk)) return sub_chunks# Sub-chunks for first chunk (as example)sub_chunks sub_chunk_indexing(chunks[0], sub_chunk_size30)sub_embeddings [embed(sub_chunk) for sub_chunk in sub_chunks]print(Sub-chunks:\n, sub_chunks)何时使用对于每个段落中包含多个不同观点的数据集会很有优势例如知识库、教科书、研究文章等会是理想的选择。权衡由于嵌入有所重叠预处理和存储成本略高但它在查询和内容之间的对齐方面有实质性的提升。3. 查询索引Query Indexing在查询索引的情况下原始文本不会被直接嵌入。相反我们会生成针对每个知识块的几个假想问题然后嵌入这些问题文本。这样做部分是为了弥合用户提问方式与文档描述事物方式之间的语义鸿沟。例如如果你的知识块说“LangChain 拥有用于构建 RAG 管道的实用工具”模型会生成类似这样的查询我如何在 LangChain 中构建 RAG 管道LangChain 有哪些用于检索的工具# 3. Query Indexing - generate synthetic queries related to the chunkdef generate_queries(chunk): # Simple synthetic queries for demonstration queries [ What is Python used for?, Which libraries does Python support?, What paradigms does Python support? ] query_embeddings [embed(q) for q in queries] return queries, query_embeddingsqueries, query_embeddings generate_queries(doc_text)print(Synthetic Queries:\n, queries)然后当任何真实用户提出类似问题时检索将直接命中其中一个索引的查询。最佳实践在编写索引查询时建议使用 LLM 为每个知识块生成3-5 个查询。你也可以对所有相似的问题进行去重或聚类以缩小实际索引的规模。何时使用问答系统或大多数用户交互都由自然语言问题驱动的聊天机器人。用户很可能会询问“是什么”、“如何做”或“为什么”等类型查询的搜索体验。权衡虽然合成扩展增加了预处理时间和空间但它为面向用户的系统提供了有意义的检索相关性提升。4. 摘要索引Summary Indexing摘要索引允许你在嵌入之前将资料片段重构成更小的摘要。你将完整的原始内容保留在另一个位置然后在摘要版本上执行检索。这种方法的好处结构化、密集或重复的源材料例如电子表格、政策文件、技术手册通常是直接从原始文本嵌入会捕获噪音的材料。摘要抽象掉了不那么相关的表面细节对于嵌入而言语义上更有意义。例如原始文本说“2020 年至 2025 年的温度读数范围为 22 至 42 摄氏度异常归因于厄尔尼诺现象。” 摘要将是“年度温度趋势2020-2025涉及厄尔尼诺相关的异常现象。” 摘要表示形式将焦点集中在概念上。示例代码# 4. Summary Indexingdef summarize(text): # Simple summary for demonstration (replace with an actual summarizer for real use) ifPythonin text: returnPython: versatile language, used in data science and web development with many libraries. return textsummary summarize(doc_text)summary_embedding embed(summary)print(Summary:, summary)何时使用处理结构化数据表格、CSV、日志文件。技术性或冗长的内容如果使用原始文本嵌入嵌入效果会不佳。权衡如果摘要过于抽象可能会有损失细微差别/事实准确性的风险。对于特定领域尤其是法律、金融等的关键研究应链接到原始文本进行参考。5. 分层索引Hierarchical Indexing分层索引将信息组织成多个不同级别文档、章节、段落、子段落。你分阶段进行检索从广泛的介绍开始逐步缩小到特定的上下文。顶层组件检索相关文档的章节下一层检索在这些检索到的文档章节内的特定上下文的段落或子段落。这意味着什么分层检索可以减少系统中的噪音并且在你需要控制上下文大小时非常有用。当处理大量文档且无法一次性全部拉取时这尤其有用。它还可以提高后续分析的可解释性因为你可以知道是哪个文档的哪个部分促成了最终答案。示例代码# 5. Hierarchical Indexing # Organize document into levels: document - chunks - sub-chunks hierarchical_index { document: doc_text, chunks: chunks, sub_chunks: {chunk: sub_chunk_indexing(chunk) for chunk in chunks} } print(Hierarchical index example:) print(hierarchical_index)最佳实践使用多个嵌入级别或嵌入与关键词搜索的组合。例如最初仅使用 BM25 检索文档然后使用嵌入更精确地检索那些相关的块或组件。何时使用拥有数千份文档的企业级 RAG。从书籍、法律档案或技术 PDF 等长篇来源中检索。权衡由于需要多个检索级别复杂性增加。还需要额外的存储和预处理来进行元数据/摘要。由于多步骤检索查询延迟增加不适合大型非结构化数据。6. 混合索引Hybrid Indexing / Multi-Modal知识不仅仅存在于文本中。在混合索引形式中RAG 通过做两件事来处理多种形式的数据或模态检索器使用针对每种可能模态专门化或调优的不同编码器生成的嵌入。然后它从每个相关的嵌入中获取结果并使用评分策略或**晚期融合late-fusion**方法将它们结合起来生成响应。以下是其用法的示例使用CLIP 或 BLIP处理图像和文本标题。使用CodeBERT 或 StarCoder嵌入来处理代码。示例代码# 6. Hybrid Indexing (example with text image)# Example text and dummy image embedding (replace embed_image with actual model)def embed_image(image_data): # Dummy example: image data represented as length of string (replace with CLIP/BLIP encoder) return [len(image_data) / 1000]text_embedding embed(doc_text)image_embedding embed_image(image_bytes_or_path_here)print(Text embedding size:, len(text_embedding))print(Image embedding size:, len(image_embedding))何时使用混合索引处理包含图像或图表的技术手册或文档。多模态文档或支持文章。产品目录或电子商务。权衡检索逻辑和存储模型更为复杂但在响应中能提供更丰富的上下文理解并在领域内具有更高的灵活性。成功的 RAG 系统取决于针对数据类型和待回答问题的适当索引策略。索引指导着检索器找到什么以及语言模型将以什么为基础进行生成使其成为超越检索的关键基础。你使用的索引类型可能是块、子块、查询、摘要、分层或混合索引并且该索引应遵循数据中存在的结构这将提高相关性并消除噪音。精心设计的索引过程将减少幻觉并提供一个准确、值得信赖的系统。读者福利倘若大家对大模型感兴趣那么这套大模型学习资料一定对你有用。针对0基础小白如果你是零基础小白快速入门大模型是可行的。大模型学习流程较短学习内容全面需要理论与实践结合学习计划和方向能根据资料进行归纳总结包括大模型学习线路汇总、学习阶段大模型实战案例大模型学习视频人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】AI大模型学习路线汇总大模型学习路线图整体分为7个大的阶段全套教程文末领取哈第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。大模型实战案例光学理论是没用的要学会跟着一起做要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。大模型视频和PDF合集这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一跟着老师的思路由浅入深从理论到实操其实大模型并不难。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站编辑主要做什么海外贸易平台

第一章:Shell脚本的基本语法和命令Shell 脚本是 Linux 和 Unix 系统中自动化任务的核心工具,它通过解释执行一系列命令来完成特定功能。编写 Shell 脚本通常以指定解释器开头,最常见的是 Bash,脚本首行使用 #!/bin/bash 来声明。脚…

张小明 2026/1/10 3:43:42 网站建设

h5网站开发公司怎么运营自己的网站

RunCat 365:让可爱猫咪在任务栏奔跑的系统监控神器 【免费下载链接】RunCat_for_windows A cute running cat animation on your windows taskbar. 项目地址: https://gitcode.com/GitHub_Trending/ru/RunCat_for_windows 厌倦了枯燥的任务栏和冰冷的系统监控…

张小明 2026/1/13 2:13:22 网站建设

怎么做网站赚钱软件鲅鱼圈网站在哪做

矩阵、狄拉克符号与经典及量子计算基础 1 方阵相关性质 方阵具有多种重要性质,基于这些性质可定义出在经济学和金融领域有广泛应用的特殊方阵。假设 (A) 是一个 (NN) 的可逆复值方阵,与之相关的矩阵如下: |矩阵类型|符号|分量规则|示例(以 (A = \begin{pmatrix}1 & …

张小明 2026/1/10 3:43:39 网站建设

国际贸易官方网站跨境电商网站建设开发

提供单电阻采集Foc,stm32 f1/f3芯片由于是源码不换在电机控制领域,磁场定向控制(FOC)技术因其能够实现高精度、高性能的电机控制而备受青睐。而单电阻采集方案则以其成本低、硬件设计简单的优势,在实际应用中有着广泛的…

张小明 2026/1/9 15:38:34 网站建设

制作网站的程序wordpress下载最新版本

如何快速掌握纪念币预约自动化工具:终极完整指南 【免费下载链接】auto_commemorative_coin_booking 项目地址: https://gitcode.com/gh_mirrors/au/auto_commemorative_coin_booking 还在为每次纪念币预约时的手忙脚乱而烦恼吗?纪念币预约自动化…

张小明 2026/1/10 3:43:35 网站建设

公司网站建设费属于宣传费吗中资咨询管理有限公司

构建支持 SQL 持久化的销售线索管理应用 在当今数字化的时代,数据的持久化和管理对于各类应用程序来说至关重要。特别是在销售领域,有效地存储和处理销售线索信息能够显著提升销售效率和业务成果。本文将详细介绍如何构建一个支持 SQL 持久化的销售线索管理应用,通过逐步的…

张小明 2026/1/10 5:51:00 网站建设