第3章 モデルの評価
新しいモデルの改善を測定する場合は、評価プロセスを使用してそのパフォーマンスをベースモデルと比較できます。また、モデルと直接チャットして、新しいモデルが作成したナレッジを学習したかどうかを定性的に確認することもできます。モデルの改善についてより定量的な結果が必要な場合は、RHEL AI CLI で評価プロセスを実行できます。
3.1. 新しいモデルの評価 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、RHEL AI CLI で評価プロセスを実行できます。
前提条件
- 起動可能なコンテナーイメージを使用して RHEL AI をインストールしている。
-
スキルまたはナレッジを盛り込んだカスタムの
qna.yamlファイルを作成している。 - データ生成プロセスが実行されている。
- RHEL AI トレーニングプロセスを使用してモデルがトレーニングされている。
-
prometheus-8x7b-v2-0ジャッジモデルをダウンロードしている。 - マシンの root ユーザーアクセス権がある。
手順
-
qna.yamlファイルを作成した作業中の Git ブランチに移動します。 さまざまなベンチマークで評価プロセスを実行できるようになりました。各コマンドには、評価するトレーニング済み
samplesモデルへのパスが必要です。これらのチェックポイントには~/.local/share/instructlab/checkpointsフォルダーからアクセスできます。MMLU_BRANCH ベンチマーク - ナレッジの貢献がモデルにどのような影響を与えたかを測定する場合は、次のコマンドを実行して
mmlu_branchベンチマークを実行します。$ ilab model evaluate --benchmark mmlu_branch --model ~/.local/share/instructlab/phased/phase2/checkpoints/hf_format/<checkpoint> \ --tasks-dir ~/.local/share/instructlab/datasets/<generation-date>/<node-dataset> \ --base-model ~/.cache/instructlab/models/granite-7b-starter以下は、
- <checkpoint>
- 複数フェーズトレーニング中に生成された最高スコアのチェックポイントファイルを指定します。
- <node-dataset>
モデルのトレーニングに使用された .jsonl ファイルと同じタイムスタンプを持つ、SDG 中に生成された
node_datasetsディレクトリーを~/.local/share/instructlab/datasets/<generation-date>ディレクトリーに指定します。出力例
# KNOWLEDGE EVALUATION REPORT ## BASE MODEL (SCORE) /home/user/.cache/instructlab/models/instructlab/granite-7b-lab/ (0.74/1.0) ## MODEL (SCORE) /home/user/local/share/instructlab/phased/phases2/checkpoints/hf_format/samples_665(0.78/1.0) ### IMPROVEMENTS (0.0 to 1.0): 1. tonsils: 0.74 -> 0.78 (+0.04)
MT_BENCH_BRANCH ベンチマーク - スキルの貢献がモデルにどのような影響を与えたかを測定する場合は、次のコマンドを実行して
mt_bench_branchベンチマークを実行します。$ ilab model evaluate \ --benchmark mt_bench_branch \ --model ~/.local/share/instructlab/phased/phase2/checkpoints/hf_format/<checkpoint> \ --judge-model ~/.cache/instructlab/models/prometheus-8x7b-v2-0 \ --branch <worker-branch> \ --base-branch <worker-branch>以下は、
- <checkpoint>
- 複数フェーズトレーニング中に生成された最高スコアのチェックポイントファイルを指定します。
- <worker-branch>
- タクソノミーツリーにデータを追加するときに使用したブランチを指定します。
- <num-gpus>
評価に使用する GPU の数を指定します。
出力例
# SKILL EVALUATION REPORT ## BASE MODEL (SCORE) /home/user/.cache/instructlab/models/instructlab/granite-7b-lab (5.78/10.0) ## MODEL (SCORE) /home/user/local/share/instructlab/phased/phases2/checkpoints/hf_format/samples_665(6.00/10.0) ### IMPROVEMENTS (0.0 to 10.0): 1. foundational_skills/reasoning/linguistics_reasoning/object_identification/qna.yaml: 4.0 -> 6.67 (+2.67) 2. foundational_skills/reasoning/theory_of_mind/qna.yaml: 3.12 -> 4.0 (+0.88) 3. foundational_skills/reasoning/linguistics_reasoning/logical_sequence_of_words/qna.yaml: 9.33 -> 10.0 (+0.67) 4. foundational_skills/reasoning/logical_reasoning/tabular/qna.yaml: 5.67 -> 6.33 (+0.67) 5. foundational_skills/reasoning/common_sense_reasoning/qna.yaml: 1.67 -> 2.33 (+0.67) 6. foundational_skills/reasoning/logical_reasoning/causal/qna.yaml: 5.67 -> 6.0 (+0.33) 7. foundational_skills/reasoning/logical_reasoning/general/qna.yaml: 6.6 -> 6.8 (+0.2) 8. compositional_skills/writing/grounded/editing/content/qna.yaml: 6.8 -> 7.0 (+0.2) 9. compositional_skills/general/synonyms/qna.yaml: 4.5 -> 4.67 (+0.17) ### REGRESSIONS (0.0 to 10.0): 1. foundational_skills/reasoning/unconventional_reasoning/lower_score_wins/qna.yaml: 5.67 -> 4.0 (-1.67) 2. foundational_skills/reasoning/mathematical_reasoning/qna.yaml: 7.33 -> 6.0 (-1.33) 3. foundational_skills/reasoning/temporal_reasoning/qna.yaml: 5.67 -> 4.67 (-1.0) ### NO CHANGE (0.0 to 10.0): 1. foundational_skills/reasoning/linguistics_reasoning/odd_one_out/qna.yaml (9.33) 2. compositional_skills/grounded/linguistics/inclusion/qna.yaml (6.5)
オプション: MMLU および MT_BENCH ベンチマークを使用して、各チェックポイントを手動で評価できます。標準化されたナレッジやスキルのセットに対して任意のモデルを評価できるため、独自のモデルのスコアを他の LLM と比較できます。
MMLU - 標準化されたナレッジデータセットに対する新しいモデルの評価スコアを確認する場合は、次のコマンドを実行して
mmluベンチマークを設定します。$ ilab model evaluate --benchmark mmlu --model ~/.local/share/instructlab/phased/phase2/checkpoints/hf_format/samples_665 --skip-server以下は、
- <checkpoint>
複数フェーズトレーニング中に生成されたチェックポイントファイルの 1 つを指定します。
出力例
# KNOWLEDGE EVALUATION REPORT ## MODEL (SCORE) /home/user/.local/share/instructlab/phased/phase2/checkpoints/hf_format/samples_665 ### SCORES (0.0 to 1.0): mmlu_abstract_algebra - 0.31 mmlu_anatomy - 0.46 mmlu_astronomy - 0.52 mmlu_business_ethics - 0.55 mmlu_clinical_knowledge - 0.57 mmlu_college_biology - 0.56 mmlu_college_chemistry - 0.38 mmlu_college_computer_science - 0.46 ...
MT_BENCH - 標準化されたスキルセットに対する新しいモデルの評価スコアを確認する場合は、次のコマンドを実行して
mt_benchベンチマークを設定します。$ ilab model evaluate --benchmark mt_bench --model ~/.local/share/instructlab/phased/phases2/checkpoints/hf_format/samples_665以下は、
- <checkpoint>
複数フェーズトレーニング中に生成されたチェックポイントファイルの 1 つを指定します。
出力例
# SKILL EVALUATION REPORT ## MODEL (SCORE) /home/user/local/share/instructlab/phased/phases2/checkpoints/hf_format/samples_665(7.27/10.0) ### TURN ONE (0.0 to 10.0): 7.48 ### TURN TWO (0.0 to 10.0): 7.05
3.1.1. Domain-Knowledge ベンチマーク評価 リンクのコピーリンクがクリップボードにコピーされました!
Domain-Knowledge ベンチマーク評価は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
RHEL AI、MMLU、および MMLU_branch における現在のナレッジ評価ベンチマークは、複数の選択問題に回答する機能についてモデルを評価します。モデルの回答がある程度正しい場合や間違っている場合に、評価を与える方法がありませんでした。
Domain-Knowledge ベンチマーク (DK-bench) の評価では、カスタム評価用の質問を作成し、モデルの回答をスケールに基づいて採点することができます。
各回答は参照回答と比較され、ジャッジモデルによって以下のスケールで採点されます。
| スコア | 基準 |
|---|---|
| 1 | その回答は完全に誤っているか、無関係であるか、または参照回答と意味のある形で一致していません。 |
| 2 | 回答は参照回答と一部一致しているものの、大きな誤り、重要な省略、または無関係な情報が含まれています。 |
| 3 | 回答は全体的に参照回答と一致しているものの、詳細や明確さが不足している、または軽微な誤りが含まれています。 |
| 4 | 回答はほぼ正確で、参照回答と高い整合性があり、軽微な問題や省略がある程度です。 |
| 5 | 回答は完璧で、参照回答と完全に一致しており、明確で、綿密かつ詳細に渡っています。 |
前提条件
- 起動可能なコンテナーイメージを使用して RHEL AI をインストールしている。
- RHEL AI トレーニングプロセスを使用してモデルがトレーニングされている。
- prometheus-8x7b-v2-0 judge モデルをダウンロードしている。
- マシンの root ユーザーアクセス権がある。
手順
カスタム評価を利用するには、モデルに回答させて評価したいすべての質問を含む
jsonlファイルを作成する必要があります。DK-bench
jsonlファイルの例{"user_input":"What is the capital of Canada?","reference":"The capital of Canada is Ottawa."}以下は、
- user_input
- モデルへの質問が含まれています。
- reference
- 質問への回答が含まれています。
カスタム評価の質問を使用して DK-bench ベンチマークを実行するには、以下のコマンドを実行します。
$ ilab model evaluate --benchmark dk_bench --input-questions <path-to-jsonl-file> --model <path-to-model>以下は、
- <path-to-jsonl-file>
-
質問と回答が含まれる
jsonlファイルへのパスを指定します。 - <path-to-model>
評価するモデルへのパスを指定します。
コマンドの例
$ ilab model evaluate --benchmark dk_bench --input-questions /home/use/path/to/questions.jsonl --model ~/.cache/instructlab/models/instructlab/granite-7b-labdomain-Knowledge ベンチマーク評価の出力例
# DK-BENCH REPORT ## MODEL: granite-7b-lab Question #1: 5/5 Question #2: 5/5 Question #3: 5/5 Question #4: 5/5 Question #5: 2/5 Question #6: 3/5 Question #7: 2/5 Question #8: 3/5 Question #9: 5/5 Question #10: 5/5 ---------------------------- Average Score: 4.00/5 Total Score: 40/50