Qwen-Agent: 8kから1MコンテキストへのLLMの汎化
Qwenは、8kのコンテキストウィンドウに制限された大規模言語モデル(LLM)が最大100万トークンの文書を理解・処理できるようにする手法を導入しました。マルチレベルのエージェントアーキテクチャを構築することで、Qwenは高品質な長コンテキストの学習データを合成し、最終的にネイティブな1Mコンテキストチャットモデルのファインチューニングを実現できます。
3段階エージェントアーキテクチャ
短いコンテキストウィンドウの制限を克服するため、Qwenは3つのレベルにわたって複雑さが増すエージェントシステムを開発し、長コンテキスト処理の特定の失敗モードにそれぞれ対処します。
レベル1: キーワードベースの検索強化生成(RAG)
レベル1は、従来のRAGアプローチを用いて関連情報を8kトークンのウィンドウに収めます。検索精度を向上させるため、エージェントは3段階のプロセスを実行します:
- クエリ分解: モデルはユーザー指示(例: "reply in English")と実際の情報クエリ(例: "when were bicycles invented")を分離します。
- キーワード抽出: モデルは情報クエリから多言語キーワードを導き出します。
- BM25検索: エージェントはBM25アルゴリズムを使用して、これらのキーワードに基づく最も関連性の高いテキストチャンクを特定します。
Qwenは、ベクトルベースの検索は別個の埋め込みモデルを導入する複雑さに見合うほどの有意な改善をもたらさなかったと指摘しています。
レベル2: チャンク単位の読み取り
クエリとキーワードが重複しないために関連チャンクが見逃される「針が見つからない」問題を防ぐため、レベル2は力技の並列処理戦略を採用します:
- 関連性評価: 512トークンごとのチャンクをすべて並列で処理します。モデルは各チャンクを評価し、"None" を出力するか、関連する文を抽出します。
- 洗練された検索: 抽出された関連文を新たな検索クエリとして使用し、BM25で最も関連性の高いチャンクを取得します。
- 最終生成: これらの洗練された取得チャンクに基づいて最終的な回答を生成します。
レベル3: ステップバイステップ推論
マルチホップ推論(複数の異なる事実を結びつける必要がある回答)に対応するため、レベル3はレベル2エージェントをReActスタイルのツール呼び出しエージェント内のツールとしてラップします。
複雑な質問に直面した際、レベル3エージェントは問題をサブクエスチョンに分解します。レベル2エージェントに繰り返し問い合わせ、各応答をメモリに追加し、最終的な回答に十分な情報が揃うまで続けます。例えば、ベートーベンの第5交響曲と同じ世紀に発明された乗り物を探す場合、エージェントはまず交響曲の世紀を特定し、次にその世紀に発明された乗り物を検索します。
パフォーマンスベンチマーク
Qwenは、7Bチャットモデル("32k-Model")を使用してエージェントをテストし、標準的なRAG実装("4k-RAG")および完全エージェント戦略("4k-Agent")と比較しました。テストは、256kコンテキスト向けのNeedleBenchとLV-Evalベンチマークで実施されました。
主な発見:
- 短いコンテキスト: 32k-Modelは、短いコンテキストの複数部分を処理する能力が優れているため、4k-RAGを上回る可能性があります。
- 長いコンテキスト: 文書の長さが増すにつれ、4k-RAGは通常32k-Modelを上回り、32k-Modelが長コンテキスト向けに最適に訓練されていないことを示しています。
- エージェントの優位性: 4k-Agentはベンチマーク全体で一貫して32k-Modelと4k-RAGの両方を上回りました。
さらに、エージェントは1百万トークンの「干し草の中の針」圧力テストに成功しましたが、Qwenは現在、1Mトークンの実世界アプリケーションに対する信頼できる定量的ベンチマークが不足していると指摘しています。
モデル訓練への示唆
このエージェントフレームワークはデータ生成エンジンとして機能します。ボランティアとエージェントのやり取りを記録したり、エージェントを用いて他の合成データを相互検証したりすることで、Qwenは高品質な長コンテキストのファインチューニングデータセットを作成できます。このプロセスにより、エージェントレベルの能力をネイティブな1Mコンテキストチャットモデルに蒸留でき、実質的に「弱い」8kコンテキストモデルを用いて「強い」長コンテキストモデルを訓練することが可能になります。