>解锁在检索型发电一代(抹布)中块的力量:深度潜水
有效地处理大量文本数据对于构建强大而有效的检索生成(RAG)系统至关重要。 本文探讨了各种构成策略,对于优化数据处理和改善AI驱动应用程序的性能至关重要。 我们将深入研究不同的方法,强调他们的优势和劣势,并提供实用的例子。 目录的表抹布中有什么块?
- >
- 块的重要性
- 了解抹布架构和块状
- >抹布系统的共同挑战
- 选择最佳块策略
- 基于字符的文本块
- 递归字符文本用langchain 分裂
- 文档特定的块(html,python,json等)
- >语义块与兰班和Openai
- 代理分解(LLM驱动的块) >
- 基于截面的块
- >上下文块,用于增强检索
- >保存远距离上下文的后期块
- 结论
分解是将大型文本文档分为较小,更易于管理的单元的过程。 这对于抹布系统至关重要,因为语言模型的上下文窗口有限。 块确保相关信息保留在这些范围之内,从而最大程度地提高信噪比并提高模型性能。 目的不仅是要拆分数据,而且是要优化其向模型的显示,以增强可检索性和准确性。
>
为什么要块很重要? 色度联合创始人安东·特洛伊尼科夫(Anton Troynikov)强调,在上下文窗口中无关紧要的数据可显着降低应用程序效率。 分块对于:至关重要
克服上下文窗口限制:确保由于尺寸限制而不会丢失关键信息。
- 提高信号噪声比率:过滤不相关的内容,提高模型精度。
- >提高检索效率:
促进相关信息的更快,更精确的检索。 特定于任务的优化: -
抹布架构和块
抹布架构涉及三个关键阶段:
- >块:原始数据分为较小的,有意义的块。
- 嵌入:块被转换为向量嵌入。 根据用户查询,检索相关的块
- > 检索和生成:相关块,LLM使用检索到的信息生成响应。
抹布系统中的挑战
抹布系统面临几个挑战: - 检索问题:
- 不准确或不完整地检索相关信息。 生成困难:
- 幻觉,无关或有偏的输出。 集成问题:
- 难以将检索到的信息相干地组合。>
> 理想的块策略取决于几个因素:内容类型,嵌入模型和预期的用户查询。 考虑内容的结构和密度,嵌入模型的令牌限制以及用户可能会提出的问题的类型。
1。基于字符的文本块
这种简单的方法根据字符数将文本分配到固定尺寸的块中,无论语义含义如何。 虽然简单明了,但它通常会破坏句子的结构和上下文。 示例使用Python:
2。递归字符文本用langchaintext = "Clouds come floating into my life..." chunks = [] chunk_size = 35 chunk_overlap = 5 # ... (Chunking logic as in the original example)
分裂 >这种方法使用多个分离器(例如,双新线,单个新线,空格)递归地分配文本,并合并较小的块以优化目标字符大小。 它比基于角色的块更复杂,提供更好的上下文保存。 示例使用Langchain:
3。文档特定的块# ... (LangChain installation and code as in the original example)
使用格式特定的分隔符,此方法将块适应不同的文档格式(HTML,Python,Markdown等)。 这确保了块尊重文档的固有结构。 原始响应中提供了使用Langchain进行Python和Markdown的示例。
4。语义块与兰班和Openai 语义块的语义块根据语义含义分开文本,使用句子嵌入等技术来识别自然断点。 这种方法确保每个块代表一个连贯的想法。使用Langchain和OpenAI嵌入式的示例:代理块利用LLM来识别文本中的自然断点,从而产生了更多相关的块。 这种方法利用LLM对语言和上下文的理解来产生更有意义的细分。 示例使用OpenAI API:
text = "Clouds come floating into my life..." chunks = [] chunk_size = 35 chunk_overlap = 5 # ... (Chunking logic as in the original example)
6。基于截面的块>此方法利用文档的固有结构(标题,小标题,部分)来定义块。这对于结构良好的文档(例如研究论文或报告)特别有效。 使用Pymupdf和潜在的Dirichlet分配(LDA)进行基于主题的块:
# ... (LangChain installation and code as in the original example)
7。上下文块上下文块的重点是在每个块中保存语义上下文。 这样可以确保检索到的信息连贯且相关。示例使用Langchain和自定义提示:
# ... (OpenAI API key setup and code as in the original example)
8。晚分块>较晚的分块延迟块,直到为整个文档生成嵌入后。这可以保留远距离上下文依赖性,从而提高了嵌入和检索的准确性。使用Jina嵌入模型的示例:
# ... (OpenAI API key setup and code as in the original example)
结论>有效的块对于构建高性能的抹布系统至关重要。切块策略的选择显着影响信息检索的质量和产生的响应的连贯性。 通过仔细考虑数据的特征和应用程序的特定要求,开发人员可以选择最合适的块方法来优化其抹布系统的性能。 请记住,始终优先考虑在每个块中保持上下文的完整性和相关性。
>
以上是抹布系统的8种类型的块 - 分析Vidhya的详细内容。更多信息请关注PHP中文网其他相关文章!

拥抱Face的OlympicCoder-7B:强大的开源代码推理模型 开发以代码为中心的语言模型的竞赛正在加剧,拥抱面孔与强大的竞争者一起参加了比赛:OlympicCoder-7B,一种产品

你们当中有多少人希望AI可以做更多的事情,而不仅仅是回答问题?我知道我有,最近,我对它的变化感到惊讶。 AI聊天机器人不仅要聊天,还关心创建,研究

随着智能AI开始融入企业软件平台和应用程序的各个层面(我们必须强调的是,既有强大的核心工具,也有一些不太可靠的模拟工具),我们需要一套新的基础设施能力来管理这些智能体。 总部位于德国柏林的流程编排公司Camunda认为,它可以帮助智能AI发挥其应有的作用,并与新的数字工作场所中的准确业务目标和规则保持一致。该公司目前提供智能编排功能,旨在帮助组织建模、部署和管理AI智能体。 从实际的软件工程角度来看,这意味着什么? 确定性与非确定性流程的融合 该公司表示,关键在于允许用户(通常是数据科学家、软件

参加Google Cloud Next '25,我渴望看到Google如何区分其AI产品。 有关代理空间(此处讨论)和客户体验套件(此处讨论)的最新公告很有希望,强调了商业价值

为您的检索增强发电(RAG)系统选择最佳的多语言嵌入模型 在当今的相互联系的世界中,建立有效的多语言AI系统至关重要。 强大的多语言嵌入模型对于RE至关重要

特斯拉的Austin Robotaxi发射:仔细观察Musk的主张 埃隆·马斯克(Elon Musk)最近宣布,特斯拉即将在德克萨斯州奥斯汀推出的Robotaxi发射,最初出于安全原因部署了一支小型10-20辆汽车,并有快速扩张的计划。 h

人工智能的应用方式可能出乎意料。最初,我们很多人可能认为它主要用于代劳创意和技术任务,例如编写代码和创作内容。 然而,哈佛商业评论最近报道的一项调查表明情况并非如此。大多数用户寻求人工智能的并非是代劳工作,而是支持、组织,甚至是友谊! 报告称,人工智能应用案例的首位是治疗和陪伴。这表明其全天候可用性以及提供匿名、诚实建议和反馈的能力非常有价值。 另一方面,营销任务(例如撰写博客、创建社交媒体帖子或广告文案)在流行用途列表中的排名要低得多。 这是为什么呢?让我们看看研究结果及其对我们人类如何继续将


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3汉化版
中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。