Semantic Chunking
了解语义分块如何保留数据上下文,从而提升 AI 和 RAG 的准确性。了解如何使用 Ultralytics YOLO26 提取视觉分块。
语义分块是一种先进的数据预处理技术,用于在机器学习 (ML)和人工智能 (AI)中将大型数据集划分为更小且有意义的片段。如果你想知道在 AI 语境下“什么是分块”,它指的是将长串的非结构化数据——例如文档、视频或音频——拆分为易于处理的片段或分段。标准的分块定义通常包括按固定字符数或时间间隔拆分数据。然而,“按含义分块”或语义分块更进一步,会分析上下文并将相关信息归为一组。这样可以确保核心信息保持完整,避免任意拆分方法经常造成的上下文丢失。
语义分块如何工作?#
要理解如何进行语义分块,不妨看看它在现代生成式流程中的作用。那么,RAG 中的语义分块是什么?在为向量数据库准备数据时,嵌入模型会分析相邻句子或视觉元素,并计算它们之间的关系。系统利用余弦相似度等统计指标,识别主题发生变化的位置——这些位置通常称为断点——并在此处拆分数据。这样可以确保大型语言模型 (LLM)在查询期间检索到的数据块包含完整且连贯的语义,从而大幅提升生成响应的准确性。近期关于RAPTOR 和自适应图聚类的研究凸显了这种上下文感知策略优于固定大小拆分。
计算机视觉中的语义分块#
虽然语义分块传统上与自然语言处理 (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}")实际应用#
语义分块解决了各种 AI 工作流中的关键挑战。以下是两个具体示例:
- **用于文档 AI 的多模态 RAG:**解析复杂 PDF(例如财务报告)时,视觉分块可以确保围绕表格的边界框与对应的文本摘要归为一组。这样,AI 助手就能在不丢失数字上下文的情况下,准确回答高度具体的问题。
- **自动视频摘要:**在安防和监控场景中,连续视频流会根据检测到的事件进行语义分块,例如有人进入限制区域。系统利用对象跟踪,将相关帧组合成可执行的视频片段,而不是返回随机的 10 秒片段。管理这些海量数据集的团队通常依靠Ultralytics Platform,以无缝完成此类复杂事件驱动流程的标注、训练和部署。
相关概念#
务必将此技术与类似的 AI 术语区分开来:









