Flexible evaluation tool for language models. Easy to extend, highly customizable!
FlexEval は言語モデル評価のためのツールです。以下のような評価を行うことができます。
- Zero/few-shot の文脈内学習タスク
- チャットボット用の応答生成ベンチマーク(例:Japanese MT-Bench)の GPT-4 による自動評価
- 対数尤度に基づく多肢選択タスク
- テキストのパープレキシティの計算
その他のユースケースについては、ドキュメント(英語)を参照してください。
- 柔軟性:
flexeval
は柔軟に評価時の設定や評価対象の言語モデルを指定することができます。 - モジュール性:
flexeval
内の主要モジュールは容易に拡張・置換可能です。 - 明瞭性: 評価結果は明瞭に、全ての詳細が保存されます。
- 再現性:
flexeval
は再現性を重視しており、評価スクリプトによって保存された設定ファイルから、同じ評価を再現することができます。
pip install flexeval
以下の例では、aio
(AI王)というクイズに回答するタスクを使って、hugging face モデル sbintuitions/tiny-lm
を評価します。
flexeval_lm \
--language_model HuggingFaceLM \
--language_model.model "sbintuitions/tiny-lm" \
--eval_setup "aio" \
--save_dir "results/aio"
(上に挙げているモデルはあくまでデバッグ用であり、性能は全く期待できません。お好きなモデルに切り替えて試してみてください!)
--saved_dir
に結果が保存され、ファイル毎に以下の内容が含まれます。
config.json
: 評価の設定ファイルです。評価設定の確認、結果の再現に使用することができます。metrics.json
: 評価値を含むファイルです。outputs.jsonl
: 評価データセット内の各事例の入出力や、事例単位の評価値が含まれます。
コマンドライン引数や設定ファイルを指定することで、柔軟に評価設定を指定することができます。
Transformers のモデルの他にも、OpenAI ChatGPT や vLLM などの評価もサポートしています。 また、実装されていないモデルも容易に追加することができるはずです!
flexeval_presets
のコマンドで、aio
以外の利用可能な評価設定のプリセットを確認できます。一覧は Preset Configs で確認できます。- その他のタイプの評価設定に関しては Getting Started をご覧ください。
- 評価設定の詳細な指定方法については Configuration Guide を参照してください。
- Sarashina の評価で、実際の設定ファイルの例を確認できます。