LLM評価のベストプラクティス

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/best-practices-for-llm-evaluation_601903?spm=a2c65.11461433.0.0.4ee353553LTf3v)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# 大規模言語モデル（LLM）の評価

大規模言語モデル（LLM）の時代において、モデル評価はモデル選択とモデル最適化の重要な一部です。モデル評価は、人工知能（AI）の革新と実践を加速するために不可欠です。Platform for AI (PAI) の LLM 評価は、異なる基本モデル間の比較分析、同じモデルのファインチューニング版、同じモデルの定量的なバージョンなど、さまざまな評価シナリオをサポートしています。この記事では、異なるユーザーグループ向けに特定のデータセットタイプに基づいてより包括的で正確で焦点を絞ったモデル評価を実装する方法について説明します。これにより、AI分野での成果が向上します。

## 1. バックグラウンド情報
### 1.1 はじめに
LLMの時代において、モデルの効果性が大幅に向上したため、モデル評価の重要性が増しています。科学的かつ効率的なモデル評価は、開発者が異なるモデルのパフォーマンスを効率的に測定し比較するのを助けます。また、開発者が正確にモデルを選択および最適化することをガイドします。これにより、AIの革新とアプリケーション開発が加速されます。このような場合、プラットフォームベースのベストプラクティスは、LLM評価にとって重要です。この記事では、PAIにおけるLLM評価のベストプラクティスを提供し、AI開発者がLLMを評価するのに役立つ情報を提供します。この記事は、モデルの実際のパフォーマンスを反映し、業界の特定の要件を満たす評価プロセスを構築するのに役立ちます。これにより、AI分野での成果が向上します。次のセクションでは、この記事で説明するベストプラクティスを示します。

- モデル評価用のデータセットを準備し選択する。
- 業務要件に基づいてオープンソースまたはファインチューニングされたモデルを選択する。
- 適切な評価指標を選択して評価ジョブを作成する。
- シングルジョブまたはマルチジョブのシナリオで評価結果を解釈する。

## 2. プラットフォームの特徴
PAIのLLM評価プラットフォームを使用すると、さまざまなLLM評価シナリオでのモデルの効果性を比較できます。以下に例を示します：

- 基本モデルの比較：Qwen2-7B-Instruct vs. Baichuan2-7B-Chat
- 同じモデルのファインチューニング版の比較：特定のドメインのデータでトレーニングされたQwen2-7B-Instructの異なるエポックバージョンの比較
- 同じモデルの定量的なバージョンの比較：Qwen2-7B-Instruct-GPTQ-Int4 vs. Qwen2-7B-Instruct-GPTQ-Int8

この記事では、一般的に使用される公開データセット（MMLUやC-Evalなど）と企業固有のカスタムデータセットを組み合わせて、より包括的で正確で焦点を絞ったモデル評価を実現し、業務要件を満たすLLMを見つける方法について説明します。この記事では、エンタープライズ開発者とアルゴリズム研究者の特殊な要件を考慮しています。これらのベストプラクティスには以下の特徴があります：

- コード開発なしで完全なエンドツーエンドの評価リンクを提供し、主流のオープンソースLLMとファインチューニングされたモデルの一括評価をサポートする。
- カスタムデータセットファイルのアップロードを可能にし、10種類以上の内蔵一般的な自然言語処理（NLP）評価指標を提供し、評価スクリプトを開発する必要なく即座に評価結果を表示する。
- 多くのドメインの一般的な公開データセットに基づいたモデル評価をサポートし、公式の評価方法を完全に再現し、レーダーチャートで評価結果を包括的に表示する。データセットのダウンロードや評価プロセスの理解が必要ない。
- 同時に複数のモデルと複数のジョブの評価をサポートし、チャートで評価結果を比較表示し、単一の評価結果の詳細を表示して包括的な比較と分析を容易にする。
- 評価プロセスをオープンかつ透明にし、結果の再現性を可能にする。評価コードはModelScopeと共同で構築された<a href=https://github.com/modelscope/evalscope target=_blank>eval-scope</a>コードリポジトリでオープンソース化されており、評価結果の詳細を確認し再現することが容易である。

## 3. 料金
LLM評価はQuickStartに依存しています。QuickStartは無料です。QuickStartを使用してモデルを評価する場合、Deep Learning Containers (DLC) 評価ジョブの料金が発生します。詳しくは<a href=https://www.alibabacloud.com/help/en/pai/product-overview/billing-of-dlc target=_blank>DLCの料金</a>をご覧ください。
カスタムデータセットを選択してモデル評価を行う場合、Object Storage Service (OSS) の使用料が発生します。詳しくは<a href=https://www.alibabacloud.com/help/en/oss/product-overview/billing-overview/ target=_blank>料金概要</a>をご覧ください。

## 4. シナリオ1: エンタープライズ開発者向けのカスタムデータセットを使用したモデル評価
多くの場合、企業は特定のドメインで豊富なデータを蓄積しています。企業はこれらのデータを最大限に活用して、LLMを使用してアルゴリズムを最適化する必要があります。エンタープライズ開発者は、特定のドメインで蓄積されたカスタムデータセットに基づいて、オープンソースまたはファインチューニングされたLLMを評価することで、そのドメインでのLLMの効果性をよりよく理解することができます。カスタムデータセットに基づくモデル評価では、PAIのLLM評価プラットフォームはNLP領域の標準的なテキストマッチング手法を使用して、モデルの評価結果と実際の結果との間のマッチングスコアを計算します。スコアが高いほど良いモデルです。この評価方法は、特定のデータに基づいてモデルがビジネスシナリオに適しているかどうかを評価するのに役立ちます。次のセクションでは、モデル評価中のいくつかの重要なポイントを強調します。詳しくは<a href=https://www.alibabacloud.com/help/en/pai/user-guide/model-evaluation target=_blank>モデル評価</a>をご覧ください。

### 4.1 カスタムデータセットの準備
- カスタムデータセットの形式説明：カスタムデータセットに基づいてモデル評価を行う場合、JSONL形式のデータセットファイルを準備する必要があります。例えば、<a href=https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20241127/uobofb/llmuses_general_qa_test.jsonl target=_blank>llmuses_general_qa_test.jsonl</a> (76 KB) です。以下のサンプルコードは、データセットファイルの例を示しています：
  json
  [{question: "中国が紙を発明したのは正しいですか？", answer: "はい"}]
  [{question: "中国が火薬を発明したのは正しいですか？", answer: "はい"}]
  
  `question` フィールドは質問列を識別し、`answer` フィールドは回答列を識別します。必要な形式のデータセットファイルをOSSにアップロードしてください。詳しくは<a href=https://www.alibabacloud.com/help/en/oss/user-guide/upload-objects-to-oss/ target=_blank>オブジェクトのアップロード</a>をご覧ください。
- OSS内のデータセットファイルに基づいてカスタムデータセットを作成します。詳しくは<a href=https://www.alibabacloud.com/help/en/pai/user-guide/create-and-manage-datasets#section-4bc-w03-ung target=_blank>データセットの作成と管理</a>をご覧ください。

### 4.2 業務要件
# カスタムデータセット評価結果の確認

ジョブ詳細ページの「評価レポート」タブの「カスタムデータセット評価結果」セクションで、モデルのRecall-Oriented Understudy for Gisting Evaluation (ROUGE) と Bilingual Evaluation Understudy (BLEU) メトリックに基づくスコアを表示します。レーダーチャートも評価ファイル内の各データレコードの評価詳細を表示します。

## 複数の評価ジョブの比較結果
左側のナビゲーションパネルで、「クイックスタート」>「モデルギャラリー」を選択します。表示されたページで、「ジョブ管理」をクリックします。「ジョブ管理」ページの「トレーニングジョブ」タブで、「評価ジョブ」タブをクリックします。表示されたタブで、比較したい評価ジョブを選択し、「比較」をクリックします。「評価結果比較」ページの「カスタムデータセット評価結果」タブで、比較結果を表示します。以下のセクションでは評価結果の分析について説明します：

- カスタムデータセットのデフォルト評価メトリックには、rouge-1-f, rouge-1-p, rouge-1-r, rouge-2-f, rouge-2-p, rouge-2-r, rouge-l-f, rouge-l-p, rouge-l-r, bleu-1, bleu-2, bleu-3, および bleu-4 が含まれます。
- rouge-n メトリックはN-gramの重複を計算するために使用されます。N は連続する単語の数を示します。rouge-1 と rouge-2 は最も一般的に使用されるメトリックです。rouge-1 は unigram に対応し、rouge-2 は bigram に対応します。
- rouge-l メトリックは最長共通部分列 (LCS) に基づいています。
- BLEU は機械翻訳の品質を評価するために広く使用される測定値です。BLEU は、機械翻訳と参照翻訳間のN-gramの重複を計算してスコアリングされます。bleu-n メトリックはN-gramの一致を計算するために使用されます。
- 最終的な評価結果は、「Result Output Path」パラメータで指定されたパスに保存されます。

## シナリオ2: アルゴリズム研究者による公開データセットを使用したモデル評価
アルゴリズム研究は多くの場合、公開データセットに基づいて行われます。アルゴリズム研究者がオープンソースまたはファインチューニングされたモデルを選択する際、研究者は権威ある公開データセットでのモデルの評価結果を参照します。しかし、LLM の時代には様々な公開データセットが存在するため、アルゴリズム研究者は自分の領域に適した公開データセットの調査と選択、そして各データセットの評価プロセスの理解に長い時間を費やす必要があります。これを支援するために、PAI は複数のドメインからの公開データセットを統合し、各データセットの公式評価メトリックを再現することで、最も正確な評価フィードバックを得て、より効率的な LLM 研究を促進します。

公開データセットに基づくモデル評価では、PAI の LLM 評価プラットフォームは、数学的能力、知識能力、推論能力などの LLMS の包括的な能力を評価するために、ドメインごとに公開データセットを分類します。高いスコアは良いモデルを示します。これは LLM 評価で最も一般的な評価方法です。以下にモデル評価のいくつかの重要なポイントを強調します。詳細については、[Model evaluation](https://www.alibabacloud.com/help/en/pai/user-guide/model-evaluation) を参照してください。

### 1. 公開データセットの説明
PAI の公開データセットには、MMLU, TriviaQA, HellaSwag, GSM8K, C-Eval, CMMLU, TruthfulQA が含まれます。他の公開データセットも追加されています。

| データセット | サイズ | データレコード | ドメイン |
| --- | --- | --- | --- |
| [MMLU](https://modelscope.cn/datasets/modelscope/mmlu/summary) | 166 MB | 14042 | 知識 |
| [TriviaQA](https://modelscope.cn/datasets/modelscope/trivia_qa/summary) | 14.3 MB | 17944 | 知識 |
| [C-Eval](https://modelscope.cn/datasets/modelscope/ceval-exam/summary) | 1.55 MB | 12342 | 中国語 |
| [CMMLU](https://modelscope.cn/datasets/modelscope/cmmlu/summary) | 1.08 MB | 11582 | 中国語 |
| [GSM8K](https://modelscope.cn/datasets/modelscope/gsm8k/summary) | 4.17 MB | 1319 | 数学 |
| [HellaSwag](https://modelscope.cn/datasets/modelscope/hellaswag/summary) | 47.5 MB | 10042 | 推論 |
| [TruthfulQA](https://modelscope.cn/datasets/modelscope/truthful_qa/summary) | 0.284 MB | 816 | セキュリティ |

### 2. ビジネス要件に基づいてモデルを選択
#### オープンソースモデル
PAI コンソールの左側ナビゲーションパネルで、「クイックスタート」>「モデルギャラリー」を選択します。モデルにマウスポインタを合わせると、評価可能なモデルには「Evaluate」ボタンが表示されます。
![IMAGE](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/7811762371/p810220.png)

#### ファインチューニング済みモデル
PAI コンソールの左側ナビゲーションパネルで、「クイックスタート」>「モデルギャラリー」を選択します。モデルにマウスポインタを合わせると、評価可能なモデルには「Evaluate」ボタンが表示されます。[モデルのファインチューニング](https://www.alibabacloud.com/help/en/pai/user-guide/model-deployment-and-training)を行います。その後、PAI コンソールの左側ナビゲーションパネルで、「クイックスタート」>「モデルギャラリー」を選択します。表示されたページで、「ジョブ管理」をクリックします。「ジョブ管理」ページの「トレーニングジョブ」タブで、目的のトレーニングジョブを見つけ、「タスク名/ID」列のトレーニングジョブ名をクリックします。表示されたページの右上隅に「Evaluate」ボタンが表示されます。
![IMAGE](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/7811762371/p810245.png)

モデル評価は、Hugging Face の AutoModelForCausalLM タイプのすべてのモデルをサポートしています。

### 3. 評価ジョブの作成と実行
モデル詳細ページの右上隅で、「Evaluate」をクリックします。
![IMAGE](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/7811762371/p810254.png)

以下の表は主要なパラメータを説明しています。

| パラメータ | 説明 |
| --- | --- |
| データセットソース | 公開データセットを選択します。 |
| 結果出力パス | 最終的な評価結果を保存する OSS パス。 |
| リソースグループタイプ | ビジネス要件に基づいて、公開リソースグループまたは汎用コンピューティングリソースグループを選択します。 |
| ジョブリソース | 「リソースグループタイプ」パラメータを「公開リソースグループ」に設定した場合、システムはモデルの仕様に基づいてジョブリソースを推奨します。 |
| 提出 | 提出ボタンをクリックします。 |

### 4. 評価結果の確認
#### 単一評価ジョブの評価結果
左側のナビゲーションパネルで、「クイックスタート」>「モデルギャラリー」を選択します。表示されたページで