長いコンテキストへ対応したローカルLLMを自分の文書で評価する方法

目次
「128Kコンテキスト対応」のような数字は、一度に扱える入力の上限を考える重要な仕様だ。
ただし、その長さ全体を同じ精度で理解できることまでは示していない。必要なのは、自分が使う長さの文書で、必要な作業を安定してこなせるかだ。
自分の用途に近い文書で試す
内容を自分で確認できる長文を用意する。機密情報を含む場合は評価用に安全な複製を作る。
説明文、議事録、仕様書など、自分が実際に使う種類に近い文書を選ぶ。
評価では、答えがどこに書かれているか自分で分かる文書を使う方が、モデルの失敗を確認しやすい。
文書の長さを段階的に増やす
最初から最大コンテキスト長へ入れず、短い文書、中くらいの文書、長い文書のように段階を作る。
同じ質問形式を使い、どの長さから精度が落ちるかを見る。
重要情報を置く位置も、
- 冒頭
- 中央
- 末尾
で変える。
これで「文書が長いと失敗する」のか、「末尾にある情報だけ拾いにくい」のかを分けやすい。
3種類の作業を別々に評価する
1. 特定情報の抽出
文書内に一箇所だけある固有情報を正しく取り出せるかを見る。
2. 文書全体の要約
主要な論点を落とさずまとめられるかを見る。
3. 離れた箇所を組み合わせる質問
文書の前半と後半など、離れた場所にある情報を合わせないと答えられない質問を使う。
一つの固有情報を見つけられただけで、長文全体の要約や複数箇所の参照まで成功したとは判断しない。
実行環境で入力が切られていないか確認する
モデルが公称する最大コンテキスト長と、実際に実行環境へ設定した長さは別だ。
llama.cppなどを使う場合はコンテキスト設定やKVキャッシュ条件を確認し、入力が途中で切り捨てられていないかログやトークン数を見る。
モデルの品質を評価する前に、そもそも全文が入力されているか確認することが重要だ。
質問と回答だけでなく条件も残す
各試行で次を保存する。
モデル / リビジョン:
実行環境 / バージョン:
コンテキスト設定:
文書の長さ:
重要情報の位置:
質問:
回答:
入力の切り捨て有無:
失敗が見えたときに、「最大値まで使える・使えない」という二択へせず、自分の用途で安定して使える実用的な長さを採用する。
評価用の質問セット自体を作りたい場合は、ローカルLLMを自分の質問セットで評価する方法も確認できる。
まとめ
- 最大コンテキスト長の仕様と、長文を正しく扱える品質は別に評価する
- 文書の長さだけでなく、重要情報を冒頭・中央・末尾へ置いて差を見る
- 単純な情報抽出、要約、離れた箇所を組み合わせる質問を別々に試す
- 入力が途中で切られていないか確認し、質問・回答・実行条件を保存する
公式サイトで次に進む
この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。
llama.cpp
local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。
この記事で扱ったデータ
モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。
参照した情報源を見る(1件)
参照情報源
- llama.cpp server README — current optionsggml-org/llama.cpp情報源を開く ↗