第6章 大規模言語モデルの評価
大規模言語モデル (LLM) は、テキストの認識や生成などの自然言語処理タスク用に設計された人工知能 (AI) プログラムの一種です。
データサイエンティストは、出力の正確性と品質を確保するために、さまざまなメトリクスに照らして大規模言語モデルを監視する必要がある場合があります。要約、言語の有害性、質問回答の精度などの機能や特徴を評価して、その情報をもとにモデルのパラメーターを改善できます。
Red Hat OpenShift AI は、LM-Eval と呼ばれる機能で、サービスとしての言語モデル評価 (LM-Eval-aaS) を提供しています。LM-Eval は、さまざまな評価タスクで生成言語モデルをテストするための統一的なフレームワークを提供します。
次のセクションでは、評価ジョブをアクティブ化し、モデルの能力の分析を生成できる LMEvalJob
カスタムリソース (CR) を作成する方法を説明します。
6.1. LM-Eval のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
LM-Eval は、大規模言語モデルを評価するために設計されたサービスであり、TrustyAI Operator に統合されています。
このサービスは、次の 2 つのオープンソースプロジェクトに基づいて構築されています。
- EleutherAI が開発する LM Evaluation Harness: 言語モデルを評価するための包括的なフレームワークを提供します。
- Unitxt: 追加機能により評価プロセスを強化するツールです。
以下では、評価ジョブを開始して結果を取得するための LMEvalJob
カスタムリソース (CR) を作成する方法について説明します。
LM-Eval のグローバル設定
LM-Eval サービスの設定可能なグローバル設定は、trustyai-service-operator-config
という名前の TrustyAI Operator のグローバル ConfigMap
に保存されています。グローバル設定は、Operator と同じ namespace にあります。
LM-Eval では次のプロパティーを設定できます。
プロパティー | デフォルト | 説明 |
---|---|---|
|
|
利用可能な GPU があるかどうかを検出し、LM Evaluation Harness の |
|
| LM-Eval ジョブのイメージ。このイメージには、LM Evaluation Harness と Unitxt の Python パッケージが含まれています。 |
|
|
LM-Eval ドライバーのイメージ。ドライバーの詳細は、 |
|
| 評価ジョブを実行するときのイメージ取得ポリシー。 |
| 8 | モデル推論 API を呼び出すときのデフォルトのバッチサイズ。デフォルトのバッチサイズはローカルモデルでのみ使用できます。 |
| 24 | ユーザーが評価ジョブで指定できる最大バッチサイズ。 |
| 10s | 評価ジョブ用のジョブ Pod をチェックする間隔。 |
| true |
LMEval ジョブがオンラインモードを |
| true |
LMEval ジョブが |
ConfigMap
の設定を更新したら、Operator を再起動して新しい値を適用します。
allowOnline
設定は、Red Hat OpenShift AI の Operator レベルではデフォルトで無効になっています。allowOnline
を使用すると、外部ソースからアーティファクトを自動的にダウンロードする権限がジョブに与えられるためです。
allowOnline
モードの有効化
allowOnline
モードを有効にするには、次のコードを使用して TrustyAI Operator の ConfigMap
にパッチを適用します。
kubectl patch configmap trustyai-service-operator-config -n redhat-ods-applications \ --type merge -p '{"data":{"lmes-allow-online":"true","lmes-allow-code-execution":"true"}}'
kubectl patch configmap trustyai-service-operator-config -n redhat-ods-applications \
--type merge -p '{"data":{"lmes-allow-online":"true","lmes-allow-code-execution":"true"}}'
その後、次のコマンドで TrustyAI Operator を再起動します。
kubectl rollout restart deployment trustyai-service-operator-controller-manager -n redhat-ods-applications
kubectl rollout restart deployment trustyai-service-operator-controller-manager -n redhat-ods-applications