Elasticsearch:一切都与这些分块有关!
作者来自 Elastic Kathleen DeRusso探索用于 LLMs 的 chunking 和 snippet 提取重点介绍用于识别并发送给 rerankers 和 LLMs 等模型的最相关 chunks 和 snippets 的增强功能。Elasticsearch 内置了大量新功能帮助你为自己的使用场景构建最佳搜索解决方案。欢迎参加我们关于构建现代 Search AI 体验的动手式网络研讨会学习如何将这些功能付诸实践。你也可以开始免费的 cloud trial或立即在本地机器上试用 Elastic。如今如果你做过语义搜索或上下文工程可能已经大量接触过 chunks。如果你不熟悉 chunkschunk 是从较大文档中提取的一小段有意义的内容。这篇博客提供了关于 chunking 的扎实基础概览解释了它为什么重要以及不同的 chunking 策略。在这篇博客中我们想聚焦于 chunking 主题中的一个具体问题即定义发送给大语言模型 LLM 或其他模型的最佳上下文。模型能够接收的上下文 token 数量是有限的但即使在这个限制之内发送大量内容也可能导致相关性下降原因包括上下文衰减context rot或 “丢失在中间” 等问题即重要信息被隐藏在大段文本中而被忽略。这引出了一个问题我们如何把这件事做得更好检索器中的重排序我们首先从检索器入手具体是 text_similarity_reranker 检索器。我们知道许多 cross-encoder 重排序模型在处理长文档时表现不佳。这是因为这些重排序模型会将较长内容截断到模型的 token 窗口内丢弃其余内容。如果文档中最相关的部分在发送给重排序器之前被截断这实际上会导致搜索相关性下降。为了解决这个问题我们为 text_similarity_reranker 检索器引入了 chunk_rescorer。当指定该参数时我们不会将整个文档发送给重排序器而是先对文档进行 chunking并根据重排序推理文本对每个 chunk 进行评估。我们通过将每个 chunk 索引到一个临时的内存 Lucene 索引中并对这些 chunks 执行 BM25 文本搜索来实现这一点。然后返回最优的 chunks 供重排序器进一步评估。chunk rescorer 的使用非常简单只需对 API 调用做一个小改动即可GET books/_search { retriever: { text_similarity_reranker: { retriever: { standard: { query: { match: { author: Tolkien } } } }, rank_window_size: 10, field: semantic_text, inference_text: are all who wander lost?, chunk_rescorer: { size: 1 } } } }在评估 chunk rescorer 时我们发现对于许多会发生截断的模型都有显著提升包括 Elastic Reranker 和 Cohere 的 rerank-english-v3.0 模型。然而当我们对 jina-reranker-v2-base-multilingual 进行评估时效果并不那么显著因为 Jina 已在内部解决了长文档问题。我们使用 Multilingual Long-Document Retrieval MLDR 英文数据集进行了评估。这是一个包含非常长文章内容的数据集许多重排序模型在该数据集上都会触发文档截断问题。下表展示了在使用 BM25 文本搜索且 rank_window_size 为 32 时的评估结果Reranker modelNDCG10NDCG10 NDCG10 with chunk rescoringjina-reranker-v2-base-multilingual0.7711450.764488Cohere rerank-english-v3.00.5925880.707842.rerank-v1-elasticsearch0.4781210.751994值得注意的是在不进行重排序的情况下原始 BM25 结果的 Normalized Discounted Cumulative Gain NDCG 得分即相关性得分接近 0.64。更多背景可参考这篇论文。这意味着对于会发生截断的 rerankers在处理长文档时重排序后的结果实际上比不进行重排序还要差。需要注意的是这一问题仅适用于长文档能够完全放入 token 窗口的较短文档不会受到该问题影响。在我们评估的 rerankers 中Jina 是唯一一个开箱即用就能很好处理长文档的 reranker这得益于其滑动窗口方法。在使用 Elastic Learned Sparse EncodeR ELSER 的 semantic_text 字段时我们看到了更好的基线性能但整体结果差异与之前相似。我们认为对于会发生截断的模型这些结果足够有前景因此将 chunk rescorer 作为一个可选特性发布以便为相关模型带来额外的相关性提升。但我们建议在将其用于生产之前先针对具体的 rerankers 进行评估。ES|QL然而chunk 提取的真正威力在于 Elasticsearch Query Language ES|QL 。我们希望让 chunks 和 snippets 成为 ES|QL 中的一等公民这样就可以轻松地将它们提取出来并重新用于 reranking、发送到 LLM 上下文或其他用途。我们首先在 Elasticsearch 9.2 版本中引入了 CHUNK 函数FROM books | EVAL chunks CHUNK(description)CHUNK 是一个极简原语它接收一些字符串内容文本字段、semantic text 字段或任何其他字符串类型的行内容并将其进行 chunk。你可以查看并与这些 chunks 交互还可以尝试使用不同的 chunking 设置FROM books | EVAL chunks CHUNK(description, {strategy: sentence, max_chunk_size: 25, sentence_overlap: 0})然后你可以将 chunk 与现有原语结合使用例如 MV_SLICE 和 MV_EXPAND以格式化 chunks 在行输出中的表示方式FROM books | WHERE MATCH(author, Tolkien) | EVAL chunks CHUNK(semantic_description, {strategy: sentence, max_chunk_size: 25, sentence_overlap: 0}) | EVAL truncated MV_SLICE(chunks, 0, 2) | MV_EXPAND truncated | KEEP title, truncated这很好但我们真正想要的是获取查询的最匹配 snippets因此我们在 Elasticsearch 9.3 版本中引入了 TOP_SNIPPETSFROM books | EVAL snippets TOP_SNIPPETS(description, ring)我们增加了对返回 snippet 数量和单词长度的控制使用基于句子的 chunking 策略FROM books | EVAL snippets TOP_SNIPPETS(description, ring, { num_snippets: 3, num_words: 25 }) | MV_EXPAND snippets | KEEP title, snippets当你加入 COMPLETION 时这就融入了 LLMs 的更大框架。以下是我们设想 TOP_SNIPPETS 与 LLM 集成的示例FROM books METADATA _score | WHERE semantic_description:what are hobbits? | SORT _score DESC | LIMIT 10 | FORK ( EVAL snippets TOP_SNIPPETS(semantic_description, what are hobbits?, {num_snippets: 3}) | COMPLETION CONCAT(Answer what are hobbits, snippets) WITH {inference_id: my-completion-endpoint})在这个示例中我们执行语义搜索但对于每个文档我们识别该文档中的最优 snippets。我们将高度相关的 snippets 发送到 completion 命令而不是整个文档。这是一个简单文档的示例但你也可以在此使用 reranking并且未来当有多个分支可用时同样格式将支持混合搜索 hybrid search 。我们还可以在最新版的 RERANK 中利用 snippetsFROM books | WHERE MATCH(title, ring) | EVAL snippets TOP_SNIPPETS(semantic_description, what are hobbits?, { num_snippets: 3, num_words: 25 }) | RERANK what are hobbits? ON snippets WITH { inference_id : my-reranker }我们的下一步思考关于 chunking 和 snippet 提取的故事还没有结束实际上才刚刚开始。我们正在研究如何将现有的 semantic_text chunks 开箱即用地整合到 chunking 和 snippet 提取策略中。同时我们也在探索还需要哪些功能才能让 snippet 提取成为在 Elastic Agent Builder 等产品中值得使用的功能。总体而言我们很高兴分享这些工具并期待在我们不断优化获取 LLM 最佳上下文策略的过程中收到你的反馈原文https://www.elastic.co/search-labs/blog/llm-chunking-snippet-extraction

相关新闻

2026全球工业大数据平台顶尖玩家:本土崛起与国际竞逐

2026全球工业大数据平台顶尖玩家:本土崛起与国际竞逐

2026全球工业大数据平台顶尖玩家:本土崛起与国际竞逐 2026年工业大数据平台强榜 经过综合评估,2026年的工业大数据平台领域呈现出鲜明的时代特征:中国玩家在深耕本土场景、结合行业Know-How方面优势凸显,而国际巨头则凭借技术积…

2026/7/7 15:09:43 阅读更多 →
伪造令牌提权Windows ring3 最高权限

伪造令牌提权Windows ring3 最高权限

伪造令牌提权Windows ring3 最高权限 起因是我想在搞一些操作windows进程的事情时,老是需要右键以管理员身份运行,感觉很麻烦。就研究了一下怎么提权,顺手瞄了一眼Windows下用户态权限分配,然后也是感谢《深入解析Windows操作系统…

2026/7/7 15:54:51 阅读更多 →
强烈安利专科生必看!10款AI论文网站深度测评

强烈安利专科生必看!10款AI论文网站深度测评

强烈安利专科生必看!10款AI论文网站深度测评 2026年专科生论文写作工具测评:为什么需要这份榜单? 随着AI技术的不断进步,越来越多的学术辅助工具被开发出来,帮助学生提升论文写作效率与质量。对于专科生而言&#xf…

2026/7/7 16:19:42 阅读更多 →

最新新闻

PIC18F86K22与MC74HC165A实现高效IO扩展方案

PIC18F86K22与MC74HC165A实现高效IO扩展方案

1. 项目背景与核心价值 在嵌入式系统开发中,IO资源紧张是常见的设计瓶颈。当我们需要监控多个输入信号(如按钮、传感器状态)时,传统方法会占用大量MCU引脚,这在PIC18F86K22这类引脚资源有限的微控制器上尤为明显。MC74…

2026/7/7 16:19:46 阅读更多 →
3步快速解锁网易云音乐:ncmdump工具的完整指南

3步快速解锁网易云音乐:ncmdump工具的完整指南

3步快速解锁网易云音乐:ncmdump工具的完整指南 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 你是否曾为网易云音乐下载的NCM格式文件无法在其他播放器使用而烦恼?ncmdump正是解…

2026/7/7 16:19:46 阅读更多 →
一文讲透LLM对齐三剑客:PPO、GRPO、DPO原理、差异与选型指南

一文讲透LLM对齐三剑客:PPO、GRPO、DPO原理、差异与选型指南

引言 在大模型落地的工程实践中,「预训练监督微调(SFT)」早已是行业标配,能覆盖 90%以上的通用业务场景。但如果想突破能力天花板——无论是让模型的数学推理、代码生成再上一个台阶,还是严格管控输出风格、筑牢内容安…

2026/7/7 16:19:46 阅读更多 →
Source Han Serif CN:企业级字体技术架构与高可用部署方案

Source Han Serif CN:企业级字体技术架构与高可用部署方案

Source Han Serif CN:企业级字体技术架构与高可用部署方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在现代数字化产品开发中,字体技术架构的选择直接影响…

2026/7/7 16:17:46 阅读更多 →
基于PIC18与LV30的嵌入式条码扫描系统开发指南

基于PIC18与LV30的嵌入式条码扫描系统开发指南

1. 项目概述与硬件选型在嵌入式系统开发中,条码扫描功能的需求日益增长,特别是在零售、物流和工业自动化领域。这个项目展示了如何使用LV30条码扫描引擎和PIC18LF26K40微控制器构建一个高效的条码扫描系统。LV30是Rakinda公司生产的一款高性能影像引擎&a…

2026/7/7 16:15:45 阅读更多 →
STM32F446RE与LV30模块的条码识别系统设计与优化

STM32F446RE与LV30模块的条码识别系统设计与优化

1. 项目背景与核心需求解析在零售、仓储和物流自动化领域,条码识别系统的可靠性和适应性直接决定了作业效率。传统解决方案通常面临三个主要痛点:对介质表面材质的适应性差(如反光包装、曲面标签)、电子屏幕条码识别率低&#xff…

2026/7/7 16:15:45 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻