Vol.042025年7月9日
AI

RAG の chunk size を 256 に固定する理由

512 や 1024 でも動く。でも 256 が多くのケースで「ちょうどいい」のはなぜか。検索精度と再構成可能性のバランスから。

SoSoraEndo2025年7月9日1 min219

chunk が大きいと

512 トークン以上にすると、1 つの chunk に複数のトピックが混ざる。クエリと意味的に近い chunk を選んでも、半分は関係ない情報が入る確率が上がる。

chunk が小さすぎると

128 以下にすると、文の途中で切れる。文脈が断絶して、再構成(generation)の質が下がる。

256 が「ちょうどいい」根拠

  • 日本語で約 200 字 / 英語で約 350 単語 — 1 段落分
  • 文の境界で切りやすく、文脈が保たれる
  • top-K=5 でも 1280 トークン → context window に余裕

オーバーラップを 64 入れる

def chunk(text, size=256, overlap=64):
    out = []
    i = 0
    while i < len(text):
        out.append(text[i:i+size])
        i += size - overlap
    return out

段落をまたぐ文脈損失を防げる。

まとめ

RAG の chunk size は「トピック分離 vs 文脈保持」のバランス。256 は多くのコーパスで局所最適。違う領域なら実測で動かす。

Tags

Reaction

Share

X (Twitter)