詳細解釋
Needle in a Haystack(大海撈針測試)的縮寫,用於評估 LLM 的長上下文窗口能力的測試方法。
測試方法:
- 在非常長的文檔(如 100K tokens)中隨機插入一個特定事實(「針」)
- 問模型關於這個事實的問題
- 檢查模型能否從大量無關信息(「乾草堆」)中找到並正確回答
為何重要:
- 長上下文不等於有效利用:許多模型聲稱支持 128K,但實際上會「遺忘」中間內容
- 實際應用:法律合同審查、代碼庫理解、多輪對話都需要真正的長程注意力
測試變體:
- 多針測試:插入多個事實,測試同時回憶多個信息點
- 深度測試:針放在不同深度(開頭、中間、結尾、特定百分比處)
- 干擾測試:周圍放置相似但錯誤的信息,測試區分能力
當前表現(2024):
- GPT-4、Claude 3.5:在 128K 上下文內表現良好
- 開源模型:Llama 3.1 在 128K 表現優秀,但早期版本(如 Llama 2)在 8K+ 就明顯下降
- Gemini 1.5 Pro:聲稱 2M 上下文,NIAH 測試表現良好
局限性:NIAH 僅測試「信息檢索」,不測試「長程推理」(如理解第 1 頁和第 100 頁的關聯)。