LLMのロングコンテキスト性能を評価するベンチマーク手法。大量のテキスト(haystack)の特定位置に短い情報(needle)を挿入し、モデルがその情報を正確に検索・回答できるかを測定する。コンテキスト長と挿入位置の2軸でヒートマップを生成し、モデルの検索精度を可視化する。
Needle-in-a-Haystack(NIAH)テストとは、LLMのロングコンテキスト処理能力を定量的に評価するベンチマーク手法である。2023年11月にGreg Kamradt氏が提案し、大量の無関係なテキスト(haystack=干し草の山)の中に短い特定の情報(needle=針)を挿入して、モデルがその情報を正確に取り出せるかを測定する。
NIAHテストの標準的な実施手順:
この2軸ヒートマップにより、モデルがコンテキストのどの位置・どの長さで情報検索に失敗するかが一目で分かる。
| モデル | コンテキスト長 | 全域正答率 | 弱点 | テスト年 |
|---|---|---|---|---|
| Claude 3.5 Sonnet | 200K | 99%+ | ほぼなし | 2024 |
| Gemini 1.5 Pro | 1M+ | 99%+ | 極端な長さ(>500K)で若干低下 | 2024 |
| GPT-4 Turbo | 128K | 95〜98% | 中間部(30〜70%)で精度低下 | 2024 |
| Llama 3.1 70B | 128K | 96〜99% | 100K超の末尾付近で若干低下 | 2024 |
| Mistral Large 2 |
| 128K |
| 97〜99% |
| 最末尾(>95%)で若干低下 |
| 2024 |
| Qwen2.5-72B | 131K | 96〜98% | 中間部で若干低下 | 2024 |
| GPT-4(初代) | 8K | 90〜95% | 中間部で明確な低下 | 2023 |
NIAHテストで明らかになった重要な知見がLost in the Middle(中間部での情報喪失)問題である:
基本NIAHテストの限界を克服するための拡張版:
NIAHテスト結果から得られた実践的な対策:
Q1: NIAHテストで100%を達成したモデルは本当に完璧なのか? A: 単一のneedleの検索は最も基本的なテストであり、100%達成は必要条件に過ぎない。実用的なロングコンテキスト処理にはMulti-Needle検索、推論チェーン、情報統合などより複雑な能力が求められる。RULERやBABILongなどの拡張ベンチマークで総合評価すべきである。
Q2: Lost in the Middleは2026年現在でも問題なのか? A: 最新のフラッグシップモデル(Claude 4系、Gemini 2.0系)ではほぼ解消されている。ただしオープンソースの小型モデル(7B〜13Bクラス)やFine-tuning済みモデルでは依然として中間部の精度低下が見られる場合がある。
Q3: 自分のモデルでNIAHテストを実施するにはどうすればよいか? A: Greg Kamradtの公開リポジトリ(github.com/gkamradt/LLMTest_NeedleInAHaystack)をクローンし、テスト対象モデルのAPIを設定するだけで実行できる。LMSys社のRULERベンチマークも公開されており、より包括的な評価が可能である。