技術 約7分で読めます

Chroma Context-1、フロンティアLLMと同等の検索性能を20Bパラメータで実現

RAGの標準的な実装は「1回のクエリで類似ドキュメントを取得し、それをコンテキストに詰めてLLMに渡す」シングルパス構造だ。Difyで社内ヘルプデスクを構築した話でも触れたが、実用上はGraphRAGやリランキングで精度を上げていく流れになる。ただ、シングルパスの根本的な弱点は残る。「あるドキュメントを読んで初めて次のクエリが決まる」マルチホップな質問に対して構造的に対処できない。

フロンティアLLMをエージェントとして使えばマルチホップ検索は解決できる。NeMo RetrieverのアジェンティックRAGがReACTループで示したように、LLMが検索クエリを反復改善しながら必要な情報を段階的に収集するアプローチだ。ただしフロンティアモデルのコストとレイテンシは本番運用では重い。

Chromaが2026年3月26日に公開したContext-1はこのコスト問題を直撃する。gpt-oss-20Bをベースにした20Bパラメータの検索特化エージェントモデルで、自己編集型コンテキスト管理機構をRLで学習させた。重みはApache 2.0でオープン公開されている。

自己編集コンテキストとは何か

エージェントが検索を繰り返すと、取得済みドキュメントがコンテキストウィンドウに蓄積し続ける。Claudeの1Mコンテキストのようにウィンドウ自体が広がっても、雑音に埋もれて精度が下がる問題(context rot)は解消しない。この問題に対するアプローチはいくつか出てきている。

アプローチ代表例仕組み
外部プロキシ型Compresr Context GatewayエージェントとLLM APIの間にプロキシを挟み、先読み要約やツール出力圧縮でトークンを削減
ウィンドウ拡張型Claude 1M, Gemini 2Mコンテキストウィンドウ自体を大きくして蓄積に耐える
モデル内蔵型Context-1モデル自身が不要なパッセージを積極的に削除する

Context-1は3番目の「モデル内蔵型」だ。エージェントが使えるツールは4種類で構成されている。

ツール説明
search_corpus(query)BM25と密ベクトルのハイブリッド検索。RRFで融合後、リランカーを通して上位チャンクを返す
grep_corpus(pattern)Regex検索。最大5チャンク返却
read_document(doc_id)ドキュメント全文読み込み
prune_chunks(chunk_ids)指定チャンクをコンテキストから除去

search_corpus が使っているBM25は転置インデックスに基づく古典的なランキング関数で、TF-IDFの発展形にあたる。密ベクトル検索と組み合わせるハイブリッド構成は現在のRAGで広く採用されており、BM25がキーワードの正確な一致を拾い、密ベクトルが意味的な類似性をカバーする。RRF(Reciprocal Rank Fusion)は複数の検索結果リストを順位の逆数で統合するアルゴリズムで、NeMo Retrieverのパイプラインでもフォールバックとして使われていたものと同じだ。

4番目の prune_chunks が核心になる。検索を重ねながら不要と判断したチャンクを削除し、コンテキストウィンドウを常にクリーンに保つ。学習時には「プルーニング後のチャンクも報酬計算の対象に含める」設計で、削除の精度も最適化対象になっている。

flowchart TD
    A[クエリ入力] --> B[search_corpus / grep_corpus<br/>で情報収集]
    B --> C{必要な情報が<br/>揃ったか?}
    C -- 不十分 --> D[read_documentで<br/>詳細読み込み]
    D --> E[prune_chunksで<br/>不要チャンク削除]
    E --> F[トークン使用量を<br/>トラジェクトリに追記]
    F --> B
    C -- 十分 --> G[最終回答生成]
    H[ソフト閾値超過] -.-> E
    I[ハードカットオフ到達] -.-> J[prune以外の<br/>ツールコール拒否]

トークンバジェット管理も組み込まれている。ターンごとに使用量をトラジェクトリに追記し([Token usage: 14,203/32,768])、ソフト閾値を超えたらプルーニングか最終回答の生成を促し、ハードカットオフではprune以外のツールコールを拒否する。

合成データ生成パイプライン

人手アノテーションに頼らないスケーラブルなタスク生成が設計の要だ。4ドメインでデータを生成している。

ドメインデータソースチャンク規模
WebWikipediaタイトルをシードに、SerperとJina AI Readerで収集大規模
Finance2025年SEC提出書類1707社(10-K, 20-F)大規模
LegalUSPTO特許公報2026年1月〜1500件。§102/§103拒絶引用中規模
EmailEpsteinファイル(2025年11月公開)+Enronメール、984ユニークスレッド拡張後396,510チャンク

Emailドメインは特殊で、Epsteinコーパス単独では小さすぎるため、Enronメールの名前・日付を置換してデータ拡張した。これによりチャンク数が1,366から396,510に増えた。

タスク生成の品質担保にはExtraction-based Verificationを使っている。LLMに「supporting documentからの原文引用(document_quotes)」と「clueからの対応箇所(clue_quotes)」の両方を抽出させ、正規化してマッチを確認する手法だ。人手ラベルとの一致率はWebで84.40%、Financeで93%、Emailで87.5%を示している。

強化学習の設計

SFT段階

大型モデル(Kimi K2.5など)でエージェントループを実行してSFTトラジェクトリを生成する。失敗トラジェクトリも学習データに含める(分布特性が精度より重要という判断)。フィルタリング基準は以下のとおり。

  • trajectory recall > 50% かつ output recall > 40% → 全量使用
  • 低リコールは確率的に含める
  • ゼロリコールは最大5%(失敗モードの露出)
  • trajectory recall >> output recall の乖離は除外(探索と選択の乖離を強化しないため)

RL段階: CISPOアルゴリズム

ベースモデルはgpt-oss-20b(LoRA適用)。アルゴリズムにはGRPOの変形であるCISPOを使用する。

16のオープンソースRLライブラリ比較で整理したように、現在のLLM向けRLはGRPOファミリーが主流になっている。GRPOはグループ内の相対的な報酬差で方策を更新するアルゴリズムで、PPOのようにクリティックモデルが不要なため計算効率が高い。Context-1のCISPOはその変形で、重要度サンプリング重みがクリップ範囲外になったときの処理が異なる。GRPOでは「ゼロ勾配」になるところを、CISPOでは「デタッチした係数でスケーリング」する。これによりプルーニング決定やクエリ改変のようなレアなトークン列も学習に貢献できる。

DRGRPOのunbiased lossやDAPOのclip-higherも試したが、CISPOが最も安定したと報告されている。

各学習ステップで128クエリをサンプルし、クエリごとに8つの独立環境でロールアウトする(1024トラジェクトリ/ステップ)。全8ロールアウトが同一報酬になったステップは廃棄する(グループ内正規化で勾配がゼロになるため)。

報酬は5成分から構成される。

報酬コンポーネント内容
アウトカム報酬Fβスコア(β初期値はrecall 16倍重視。エポックをまたいでrecall 4倍までアニーリング)
プロセス報酬trajectory recall(探索中に正解に到達したか)
ファイナルアンサーボーナス正解を含むチャンクを取得で +1.0
繰り返しプルーニングペナルティ3回超の連続prune呼び出しに0.1/回(上限0.5)
ターン数ペナルティ64〜128ターンで0→0.5に線形増加

2段階カリキュラムで学習する。フェーズ1は低難度(少ないホップ数)、フェーズ2は高難度(多ホップ)という難易度カリキュラムと、エポック間でFβのβをrecall重視からprecision重視へとアニーリングする報酬カリキュラムを組み合わせている。

学習規模は約5エポック・300ステップで、230ステップ付近で収束が確認されている。検索インフラはChroma Cloud内でコレクションをレプリケーションし、ピーク3000+クエリ/秒を捌いた。

ベースモデルとの比較

RLによる学習でエージェントの振る舞いがどう変わったかを示す数値がある。

指標gpt-oss-20bContext-1変化
並列ツールコール/ターン1.522.56+68%
ターン/トラジェクトリ6.75.2-22%
プルーニング精度0.8240.941+14pt

ターン数が減り、プルーニング精度が上がり、並列検索が増えた。少ないステップで多くの情報を集め、不要な情報を高精度で捨てる、というエージェントとしての効率がRLで改善されている。

単一タスク(Web domain task 1_0)での直接比較では次のとおり。

指標gpt-oss-20bContext-1
Trajectory Recall0.6400.739
Output Recall0.3610.641
F10.3070.487
Final Answer Found0.5410.798

フロンティアモデルとのベンチマーク比較

Context-1の4xは4つのロールアウトをRRFで結合する構成で、並列実行可能なため「フロンティアモデルへの単一APIコールより安価」という位置づけだ。

生成ベンチマーク(Final Answer Found)での主要比較(Webドメイン、難易度2以上)。

モデルWebFinanceLegalEmail
Context-1 (4x)0.970.820.950.98
Context-1 (1x)0.880.640.890.92
gpt-5.40.970.670.950.97
sonnet-4.60.960.720.910.97
opus-4.60.980.840.940.98
gemini-3.1-pro0.970.820.880.94

Emailドメインは学習データに含まれていないにもかかわらず大幅に改善しており、汎化性能が確認できる。Financeでの精度がやや低いのはトークンバジェット制約による早期終了が影響しているとされており、200k context・no prune構成では0.82まで回復する。

公開ベンチマーク(BrowseComp+、FRAMES、HotpotQA)でも同様の傾向で、Context-1 (4x)はHotpotQAをほぼ飽和させ、FRAMESでは0.96とフロンティアと並ぶ。

推論はvLLMで提供。NVIDIA B200上でMoE層をMXFP4量子化して400〜500 tok/sのスループットを実現している。