Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Semantic Chunking

セマンティックチャンク化は、隣接する文の埋め込み類似度を測定し、トピックが変わる箇所で文書を分割します。これにより、各チャンクに1つのアイデアがまとまります。

セマンティックチャンク分割は、文字数やトークン数を固定して区切るのではなく、隣接する文の埋め込みを比較してトピックの変化点を見つけ、検索拡張生成(RAG)や検索向けに文書を分割します。各チャンクが一つのアイデアを扱うため、ベクトルデータベース内の単一ベクトルでその内容を適切に表現でき、検索されたチャンクから大規模言語モデル(LLM)に一つのまとまった考えを渡せます。セクション末尾と次のセクション冒頭が混在することもありません。

セマンティックチャンク分割の仕組み#

Greg Kamradtのテキスト分割チュートリアルによって広く知られ、LangChainのSemanticChunkerとして実装された一般的なアルゴリズムは、4つのステップで構成されます。まずテキストを文に分割し、各文を、ノイズを抑えるために隣接する文とグループ化することも多い方法で、埋め込みに変換します。連続する各文の組のコサイン類似度を距離に変換します。しきい値を使って距離が通常より大きい箇所を分割点とします。LangChainのデフォルトは文書内のすべての距離の95パーセンタイルで、標準偏差、四分位範囲、勾配に基づくしきい値も利用できます。分割点の間にある文が一つのチャンクを構成します。LlamaIndexのセマンティックスプリッターも同じパーセンタイルによる分割点を使います。

import numpy as np
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
sentences = [
    "The XR-12 coolant pump circulates water through the press line.",
    "Inspect the XR-12 pump seals for leaks every week.",
    "A worn pump bearing grinds loudly before it fails.",
    "The staff cafeteria now opens for breakfast at 7:00.",
    "The cafeteria menu adds vegetarian lunches in May.",
]

# 各文とその次の文とのコサイン距離
embeddings = model.encode(sentences, normalize_embeddings=True)
distances = 1 - np.sum(embeddings[:-1] * embeddings[1:], axis=1)

# 距離が95パーセンタイルを超える箇所で新しいチャンクを開始
threshold = np.percentile(distances, 95)
chunks = [[sentences[0]]]
for sentence, distance in zip(sentences[1:], distances):
    if distance > threshold:
        chunks.append([])
    chunks[-1].append(sentence)
print(np.round(distances, 2))
print(*[" ".join(chunk) for chunk in chunks], sep="\n")

隣接する文の距離は0.56、0.64、0.98、0.62です。そのため、ポンプのベアリングから食堂へ話題が移る0.98の箇所だけが分割点となり、XR-12ポンプについての3文のチャンクと、食堂についての2文のチャンクが出力されます。

チャンク分割戦略の比較#

  • 固定サイズ分割: 通常は隣接するチャンクを一部重ねながら、Nトークンごとに分割します。高速で予測しやすい一方、トピックの境界は考慮しません。
  • 再帰的分割: 段落の区切り、次に改行、次に文の順に使い、各部分がサイズ上限に収まるまで分割します。LangChainは汎用テキストに対して、再帰的な文字分割器を推奨しています。
  • 構造を考慮した分割: 見出し、Markdownのセクション、HTML要素、またはPDFのページレイアウトに沿って分割します。
  • セマンティックチャンク分割: 意味の変化に沿って分割しますが、インデックス作成時にすべての文を埋め込みに変換する必要があり、チャンクのサイズにも大きなばらつきが生じます。そのため、実装では最小長と最大長を設けます。
  • レイトチャンク分割とコンテキスト検索: 先行するチャンクに指示対象がある代名詞など、文書全体の文脈を欠くチャンクに対処します。また、上記のいずれの境界設定方法とも組み合わせられます。

ロボティクスにおけるアクションチャンク分割は、名称が同じだけで別の手法です。ここではポリシーが、将来のモーターコマンド列を一つの単位として予測します。

テキスト以外のセマンティックチャンク分割#

音声テキスト変換システムの文字起こしには段落区切りがないため、埋め込みベースの分割点は、会議やポッドキャストの話題の変化を特定する一般的な方法です。動画も内容に沿って分割できます。そのため、動画理解やマルチモーダルRAGでは、任意の10秒区間ではなく、各クリップに一つの出来事を収められます。Ultralytics YOLO26は、人や車両が映るシーンの境界を提供します。トラッキングモードでは、検出した各物体にフレーム間で一貫したIDが付与されるため、新しいIDがシーンに入ったときにクリップを開始し、追跡中のIDがすべてシーンから退出したときにクリップを終了するパイプラインを構築できます。

セマンティックチャンク分割は検索性能を向上させるか#

文字起こし、スクレイピングしたウェブページ、連結したメモのように、見出しなしで無関係な話題が並ぶ場合、トピックに基づく境界が最も重要になります。また、セマンティックチャンクは埋め込みモデルとしきい値に依存するため、どちらかが変わると同じ文書でも異なるチャンクに分割されます。どちらも実際のクエリに対する再現率を基準に調整する必要があります。研究論文Is Semantic Chunking Worth the Computational Cost?(2024年)は、文書検索、根拠検索、検索ベースの回答生成でセマンティック分割と固定サイズ分割を比較し、セマンティック分割の追加計算によって固定サイズのチャンクを一貫して上回る改善は得られないと報告しました。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう