Semantic Chunking
了解语义分块如何保留数据上下文以提高 AI 和 RAG 的准确性。探索如何使用 Ultralytics YOLO26 提取视觉块。
语义分块是一种先进的数据预处理技术,用于机器学习 (ML) 和 人工智能 (AI),旨在将大型数据集划分为更小、更有意义的片段。如果你想了解 AI 背景下的“什么是分块”,它本质上就是将长序列的非结构化数据(例如文档、视频或音频)分解为可管理的片段或分段的过程。标准的块定义通常涉及通过固定字符数或时间间隔来分割数据。然而,“语义分块”(或称意义分块)更进一步,它通过分析上下文并将相关信息组合在一起。这能确保核心信息保持完整,从而避免了任意分割方法中常见的上下文丢失问题。
Link to this section语义分块是如何工作的?#
要理解如何进行语义分块,了解它在现代生成式流水线中的作用会有所帮助。那么,RAG 中的语义分块是什么?在为向量数据库准备数据时,嵌入模型会分析相邻句子或视觉元素并计算它们之间的关系。通过使用余弦相似度等统计指标,系统会识别主题转换的点(通常称为断点)并在此处进行数据分割。这确保了大语言模型 (LLM) 在查询期间检索到的数据块包含完整、连贯的思想,从而显著提高了生成响应的准确性。近期关于 RAPTOR 和自适应图聚类的研究强调了这种上下文感知策略如何优于固定大小的分块。
Link to this section计算机视觉中的语义分块#
虽然传统上语义分块与自然语言处理 (NLP) 相关联,但它在计算机视觉和多模态 AI 中也高度相关。例如,在文档分析中,视觉语义块可以将图表及其解释性标题保持在一起,而不是根据严格的页面边界将它们分开。先进的云提供商和 API 工具提供了专门的语义分块配置来管理这些复杂的数据类型。
开发者可以利用 Ultralytics YOLO26 模型来自动化提取这些视觉块。通过检测图像或视频中的对象,你可以创建代表场景核心内容的局部意义片段。
from ultralytics import YOLO
# Load an Ultralytics YOLO26 model to extract visual semantics
model = YOLO("yolo26n.pt")
# Run inference to detect objects within a visual scene
results = model("scene.jpg")
# Group detected object classes to form a semantic visual chunk
visual_chunk = [model.names[int(cls)] for cls in results[0].boxes.cls]
print(f"Semantic visual chunk elements: {visual_chunk}")Link to this section实际应用#
语义分块解决了各种 AI 工作流程中的关键挑战。以下是两个具体示例:
- 用于文档 AI 的多模态 RAG: 在解析财务报告等复杂 PDF 时,视觉分块确保了围绕表格的边界框与其对应的文本摘要被组合在一起。这使得 AI 助手能够准确回答非常具体的问题,而不会丢失数字上下文。
- 自动视频摘要: 在安防和监控领域,连续的视频流会根据检测到的事件(例如有人进入限制区域)进行语义分块。利用对象跟踪,系统会将相关帧组合成一个可操作的视频片段,而不是返回随机的 10 秒切片。管理这些海量数据集的团队通常依赖 Ultralytics Platform 来无缝标注、训练和部署此类复杂的事件驱动流水线。
Link to this section相关概念#
将此技术与类似的 AI 术语区分开来非常重要:






