文本的RAG我们都已经很熟悉了但是如果数据以原始视频转录文本的形式存储没有合适的时间结构那么相比标准的 PDF 或文本文档如何检索视频里面的内容呢针对同样的问题还可以换一个更高层次的问法“这个视频整体在讲什么”系统会出现幻觉或者返回一段泛泛的答案——检索器看到的只是孤立的短片段看不到整体。这个问题问题不在 LLM而是在分块策略本身。本文会拆解视频分块的具体机制从基础的文本解析往前推进一步构建一个能够理解视频时间结构与组织结构的系统。分块简介分块Chunking指的是把大段信息切分为更小、有意义的片段以便大语言模型LLM或向量数据库进行检索和处理。视频分块为什么不同于文本分块为文本文档构建 RAG 流水线时可以依赖段落、换行符或固定数量的 Token 这些标准分隔标记。视频则天然是多模态、带时间维度的。一段视频文件不是一份文档而是一个由时间驱动的交互流包含画面切换和语音对话。基于停顿的分块第一种真正可用的工程方案是基于停顿的分块Pause-Based Chunking。说话人在不同思路、幻灯片切换或话题切换之间会自然留出停顿。这些天然边界可以用来切分视频转录文本。假设转录文本中包含每句话或每段话的起止时间戳。算法比较前一段的结束时间与后一段开始时间之间的间隔仅靠停顿分块为什么会失败停顿检测是一个不错的起点但根据查询类型的不同它存在两类结构性缺陷。说话人在解释一个复杂概念时短暂喘了口气算法可能会从这里切出一个新块上下文也随之被割裂块 1“CI/CD 把……的过程自动化”块 2“……构建、测试和部署软件。”如果检索系统只取出块 1LLM 收到的就是一个不完整的句子缺少给出完整技术性回答所需的上下文。要在保留基于停顿分段优势的同时解决上下文割裂可以引入带重叠的窗口策略。通过保留一段重叠例如 5 秒或若干句话相邻分块之间的上下文得以保留。如果数据是节奏很快、几乎没有停顿的教程视频基于停顿的分块就会失效——切出的块要么过大、要么过小都缺乏意义。当不存在明显停顿、音频几乎是连续的就回退到基于长度的递归策略检查停顿如果有使用基于时间的边界。回退条件如果某个片段没有停顿且超过最大长度例如 200 个词按句子边界进行切分。基于 LLM 的主题分块要解决这类高层次的查询需要一种更进阶的策略基于 LLM 的主题分块LLM-Based Topic Chunking。把数据不再视作一条条独立的话语而是将细粒度分块送入 LLM让它对片段做聚类和摘要归纳出有意义的主题。把细粒度分块和一个用于生成主题与元数据的 Prompt 一起传给模型{ topic: Introduction to CI/CD Fundamentals, summary: Covers the basic definition of CI/CD, its role in modern deployment, and the foundational stages of a build pipeline., start: 0, end: 120, key_terms: [CI/CD, deployment, build stage] }把细粒度分块与主题分块结合起来生产级的 RAG 系统会同时用上两种策略细粒度分块存入向量数据库用于具体信息的检索例如时间戳和精确答案。主题分块用于全局检索和摘要类任务。整体串起来端到端的处理 Pipeline 是这样的总结分块不只是数据预处理的一个前置步骤——数据被切分的方式决定了检索系统对它的理解程度。从简单、均匀的切分转向利用自然停顿与 LLM 驱动主题分段的多层、多模态架构Agent 才能拿到回答具体技术问题和宽泛主题问题所需的上下文。https://avoid.overfit.cn/post/6d24a4a88971454bb68d54c82772a759by Rishav Aich
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
文本的RAG我们都已经很熟悉了但是如果数据以原始视频转录文本的形式存储没有合适的时间结构那么相比标准的 PDF 或文本文档如何检索视频里面的内容呢针对同样的问题还可以换一个更高层次的问法“这个视频整体在讲什么”系统会出现幻觉或者返回一段泛泛的答案——检索器看到的只是孤立的短片段看不到整体。这个问题问题不在 LLM而是在分块策略本身。本文会拆解视频分块的具体机制从基础的文本解析往前推进一步构建一个能够理解视频时间结构与组织结构的系统。分块简介分块Chunking指的是把大段信息切分为更小、有意义的片段以便大语言模型LLM或向量数据库进行检索和处理。视频分块为什么不同于文本分块为文本文档构建 RAG 流水线时可以依赖段落、换行符或固定数量的 Token 这些标准分隔标记。视频则天然是多模态、带时间维度的。一段视频文件不是一份文档而是一个由时间驱动的交互流包含画面切换和语音对话。基于停顿的分块第一种真正可用的工程方案是基于停顿的分块Pause-Based Chunking。说话人在不同思路、幻灯片切换或话题切换之间会自然留出停顿。这些天然边界可以用来切分视频转录文本。假设转录文本中包含每句话或每段话的起止时间戳。算法比较前一段的结束时间与后一段开始时间之间的间隔仅靠停顿分块为什么会失败停顿检测是一个不错的起点但根据查询类型的不同它存在两类结构性缺陷。说话人在解释一个复杂概念时短暂喘了口气算法可能会从这里切出一个新块上下文也随之被割裂块 1“CI/CD 把……的过程自动化”块 2“……构建、测试和部署软件。”如果检索系统只取出块 1LLM 收到的就是一个不完整的句子缺少给出完整技术性回答所需的上下文。要在保留基于停顿分段优势的同时解决上下文割裂可以引入带重叠的窗口策略。通过保留一段重叠例如 5 秒或若干句话相邻分块之间的上下文得以保留。如果数据是节奏很快、几乎没有停顿的教程视频基于停顿的分块就会失效——切出的块要么过大、要么过小都缺乏意义。当不存在明显停顿、音频几乎是连续的就回退到基于长度的递归策略检查停顿如果有使用基于时间的边界。回退条件如果某个片段没有停顿且超过最大长度例如 200 个词按句子边界进行切分。基于 LLM 的主题分块要解决这类高层次的查询需要一种更进阶的策略基于 LLM 的主题分块LLM-Based Topic Chunking。把数据不再视作一条条独立的话语而是将细粒度分块送入 LLM让它对片段做聚类和摘要归纳出有意义的主题。把细粒度分块和一个用于生成主题与元数据的 Prompt 一起传给模型{ topic: Introduction to CI/CD Fundamentals, summary: Covers the basic definition of CI/CD, its role in modern deployment, and the foundational stages of a build pipeline., start: 0, end: 120, key_terms: [CI/CD, deployment, build stage] }把细粒度分块与主题分块结合起来生产级的 RAG 系统会同时用上两种策略细粒度分块存入向量数据库用于具体信息的检索例如时间戳和精确答案。主题分块用于全局检索和摘要类任务。整体串起来端到端的处理 Pipeline 是这样的总结分块不只是数据预处理的一个前置步骤——数据被切分的方式决定了检索系统对它的理解程度。从简单、均匀的切分转向利用自然停顿与 LLM 驱动主题分段的多层、多模态架构Agent 才能拿到回答具体技术问题和宽泛主题问题所需的上下文。https://avoid.overfit.cn/post/6d24a4a88971454bb68d54c82772a759by Rishav Aich