モデルを微調整した後、モデルが期待する効果を達成したかどうかを評価することで判断する必要があります。タスクによって目標が異なるため、使用する評価方法も異なります。
例えば、分類タスクではモデルが正しいカテゴリーを判断できるかどうかを主に注目します;情報抽出タスクでは必要な情報が完全で正確に抽出されているかどうかを注目します;生成タスクでは答えが正しいかどうかを判断するだけでなく、内容の完備性と関連性も注目します;音声認識は誤認識率で評価されます;画像生成では自動指標と人工評価を組み合わせて判断します。
具体的なテスト方法については【先評再選:用EvalScopeでオープンソースモデルの最初のレポートを作成】をご参照ください。この章では、様々なタスクでどのような評価指標が使われるかをお伝えします~
テキスト分類はモデルを微調整する際の比較的一般的なタスクで、例えば意図識別、感情分類、故障分類、リスク分類などがあります。
通常、予測結果は以下の4つの状況に分類されます:
正確率は、すべてのサンプル中で予測が正しい割合を表します:
\mathrm{Accuracy}=\frac{TP+TN}{TP+TN+FP+FN}
例えば、1000件のデータをテストし、モデルが900件を正しく予測した場合、Accuracyは90%になります。Accuracyはモデルの全体の分類効果を比較的直感的に反映します。しかし、異なるカテゴリーのデータ数が大きく異なる場合、Accuracyだけを見ると誤判定的な結果になる可能性があります。1000件の感情分類データの中に20件の負のデータしかない場合、モデルがすべてのデータを「肯定的」と予測するだけで、Accuracyは98%にもなる可能性がありますが、実際の20件の負のデータが1件も識別できていません。そのため、カテゴリーの分布が不均衡な場合、通常はPrecision、Recall、F1と合わせてモデルを評価する必要があります。
精度(Precision)は、モデルが正のサンプルと予測したデータの中で、どれだけが本当に正のサンプルであるかを表します:
$\mathrm{Precision}=\frac{TP}{TP+FP} $
召還率(Recall)は、ラベルが正のサンプルの中で、どれだけがモデルによって成功して識別されたかを表します:
$\mathrm{Recall}=\frac{TP}{TP+FN} $
F1スコアはPrecisionとRecallを総合的に評価し、F1が高いほどPrecisionとRecallの間で比較的良好なバランスが取られていることを示します。
F1 = 2 \times \frac{\mathrm{Precision} \times \mathrm{Recall}}
{\mathrm{Precision} + \mathrm{Recall}}
正確率、精度、召還率、F1スコアはモデルの全体効果を数値で表すことができますが、モデルがどのカテゴリーを間違えやすいかを知りたい場合には、混同行列を用いてさらに分析する必要があります。混同行列は、テストデータの真のカテゴリーとモデルの予測されたカテゴリーを対照し、それぞれのカテゴリー間の予測状況を統計し、結果を行列に並べたものです。
例えば、テストセットにネットワーク障害、ハードウェア障害、ソフトウェア障害の3種類のカテゴリーがあり、モデルの予測結果は以下の通りです:
| 真のカテゴリー \ 預測されたカテゴリー | ネットワーク障害 | ハードウェア障害 | ソフトウェア障害 |
| ネットワーク障害 | 45 | 2 | 3 |
| ハードウェア障害 | 1 | 47 | 2 |
| ソフトウェア障害 | 6 | 2 | 42 |
各行はデータの真のカテゴリーを表し、各列はモデルの予測されたカテゴリーを表します。行列の対角線上の数字は予測が正しいデータの数を示します。例えば50件のネットワーク障害データの中で、45件が正しく識別されています。非対角線上の数字は予測が誤った状況を示します。例えば、6件のソフトウェア障害がネットワーク障害と誤って予測されています。混同行列からは、モデルが正しく予測したデータの数が見えるだけでなく、どのカテゴリーがどのカテゴリーと混同しやすいかも分かります。上記の結果では、ソフトウェア障害がネットワーク障害と誤って予測されることが比較的多く、モデルがこの2つのカテゴリーを区別する能力がまだ向上する余地があることを示しています。これらの混同しやすいカテゴリーを分析することで、モデルの問題点をさらに発見し、以降の訓練データの補充やモデルの最適化の参考となります。
ログイン ディスカッションに参加
命名实体識別(NER)、フィールド抽出、構造化情報抽出などの場合、一般的に使用される評価指標にはフィールドの正確率、実体レベルのPrecision、Recall、F1が含まれます。異なる指標は評価の粒度が異なるため、具体的なタスクに合わせて使用します。
フィールドの正確率は、モデルが指定されたフィールドの抽出が正しいかどうかを測るために使用されます。計算方法は以下の通りです:
\text{フィールド正確率} =
\frac{\text{正しく抽出されたフィールドの数}}
{\text{抽出すべきフィールドの総数}}
複数のフィールドを含むタスクの場合、それぞれのフィールドの正確率を個別に統計することも可能です。例えば会社名、人名の正確率を計算し、モデルがどのフィールドで抽出能力が弱いかを分析できますが、この方法の欠点はモデルが漏れ抽した実体を特定できない点です。そのため、複数の実体を含む情報抽出タスクでは、さらに実体レベルのPrecision、Recall、F1を用いてより詳細な評価が必要です。
命名实体識別(NER)タスクでは、実体レベルのPrecision、Recall、F1で評価します。この部分は前節の分類人評価と類似しています。
その中で:
Precisionは、モデルが識別した実体の中で、どれだけが正しいかを測ります:
Precision = \frac{TP}{TP + FP}
Recallは、標準解答にある実体の中で、どれだけがモデルによって成功して識別されたかを測ります:
Recall = \frac{TP}{TP + FN}
F1はPrecisionとRecallを総合的に評価します:
F1 =
\frac{2 \times Precision \times Recall}
{Precision + Recall}
Precisionが高いほど、モデルが識別した実体の全体が比較的正確であることを示します。Recallが高いほど、モデルが漏れた実体が少ないことを示します。F1は両方のパフォーマンスを総合的に評価する指標です。
分類と情報抽出タスクとは異なり、大言語モデル生成の内容は比較的開放性が高く、モデルの出力は唯一の標準的な答えが存在しないことが多く、このようなタスクでは正確性、完備性、関連性、フォーマットの遵守、幻覚(Hallucination)などの複数の観点から評価する必要があります。
正確性は、モデル生成の内容が正しいかどうかを判断する主要な要素です。事実、結論、推論結果などにエラーがないかを評価します。微調整後のモデルは、回答が流暢でフォーマットが整っている場合でも、中に事実や結論のエラーが含まれていると、モデルが良好な生成効果を得ているとは言えません。正確性は生成結果を評価する際の最も基本的な要件です。
完備性は、モデルが質問に十分に回答し、必要な重要な情報を漏らしていないかを判断します。ある回答は内容自体に明らかなエラーがないにもかかわらず、質問の一部しか回答しておらず、重要な情報が漏れている場合があります。このような場合、モデルの回答は一定の正確性を持つものの、完備性は不足しています。完備性は回答が正しいかどうかだけでなく、必要に応じて回答する内容がすべて回答されているかどうかも評価する観点です。
関連性は、モデル生成の内容がユーザーの質問に沿っているかどうかを判断します。大言語モデルは時々大量の見たままで合理的な内容を生成し、質問との関連性が低い場合があります。これらの内容自体はエラーがないかもしれませんが、回答の有効性を低下させます。関連性の良い回答はユーザーの質問に直接回答し、不必要、重複、過度に拡張した内容を最小限に抑えます。
実際のアプリケーションでは、回答内容自体に加えて、モデルは指定されたフォーマットで出力する必要もあります。例えば、JSON形式で結果を返すように要求する場合、または規定されたフィールド、順序、構造で内容を整える必要がある場合があります。フォーマットの遵守は、モデルが与えられた出力要件に従って内容を生成しているかどうかを評価します。回答内容が正しいとしても、規定されたフォーマットで出力しないと、後続のプログラムが正常に解析や利用できない場合があります。インストラクション微調整や固定出力要件を持つモデルでは、フォーマットの遵守も重要な評価次元となります。
幻覚(Hallucination)とは、モデルが根拠のない、事実に反する、または空想の内容を生成した場合を指します。モデルが某の情報を知らない場合、情報不足を説明せず、見たままで合理的に見える実際に存在しない事実を生成した場合が典型的な幻覚問題です。
幻覚は正確性と一定の関連性がありますが、評価の重点が異なります。正確性は回答内容が正しいかどうかを評価しますが、幻覚はモデルが根拠のある情報を生成したかどうかを評価します。知識問答など事実の信頼性が高い要求があるシーンでは、モデルの幻覚状況を重点的に評価する必要があります。
音声認識(ASR)タスクでは、識別精度と処理効率の両方から評価する必要があります。CERとWERは識別結果のエラー状況を測るために使用され、RTFはモデルの音声処理速度を測るために使用されます。
CERとWERの説明の前に、音声認識エラー率計算で一般的に使用されるいくつかの記号について説明します:
CERとWERはこれらのエラーを基に計算されますが、両者の主な違いは統計単位が異なる点です。
CER(Character Error Rate、文字エラー率)は、文字単位で音声認識結果と標準テキストとの差異を測る指標です。計算式は以下の通りです:
CER = \frac{S + D + I}{N}
CERが低いほど、通常音声認識結果がより正確であることを示します。中国語の音声認識タスクではCERが比較的よく使用される評価指標です。
WER(Word Error Rate、単語エラー率)はCERの計算方法と基本的に同じです:
WER = \frac{S + D + I}{N}
CERは文字を基本単位として使用し、WERは単語を基本単位として使用し、英語などの単語を基本単位とする言語の音声認識タスクで多く使用されます。
識別結果が正確かどうかだけでなく、音声認識モデルが実際にデプロイされた際には処理速度も考慮する必要があります。RTF(Real-Time Factor、リアルタイムファクター)は音声認識処理効率を測る一般的な指標です。計算式は以下の通りです:
RTF =
\frac{\text{モデルの処理時間}}
{\text{音声の長さ}}
例えば、10秒の音声が5秒で識別が完了した場合:
RTF = \frac{5}{10} = 0.5
RTFが小さいほど、モデルの処理速度が速いことを示します。RTFが1未満の場合、モデルの処理速度が音声の実際の再生速度を上回り、基本的なリアルタイム処理の条件を満たしています。
CER、WER、RTFなどの指標以外に、様々なテスト環境でモデルを評価することも可能です。例えば、背景雑音、異なる口音、遠距離録音、複数の人が話している等の条件下でそれぞれCERまたはWERを計算し、複数のシーンでのエラー率を比較することで、モデルの複雑な環境での識別能力と安定性をさらに評価できます。
テキスト-to-音声(Text-to-Speech、TTS)の目標は、入力テキストを自然で明瞭な音声に変換することです。テキスト生成モデルとは異なり、TTSモデルは生成内容が入力テキストと一致することだけでなく、音声の自然度、音色、生成速度も注目する必要があります。TTSモデルは内容の正確性、音声の自然度、話者類似度、推論性能などから評価されます。
TTSではまず、入力テキストが正しく朗読されることを保証する必要があります。誤読、漏読、重複などがないかを評価します。評価の際には、ASRモデルでTTS生成した音声を再識別してテキストにし、その結果と元の入力テキストとを比較します。内容の正確性の指標は前章のASRにおける指標と一致し、字誤率(CER)と単語誤率(WER)を計算します。
正しくテキストを朗読するだけでなく、TTS生成した音声は自然度が良いものが必要です。例えば、語速が適切か、停顿が自然か、トーンが流暢か、機械的な感じがないかなどを評価します。通常、平均意見スコア(Mean Opinion Score、MOS)を使用します。評価の際には複数のテスト者に生成音声を聴かせ、ある程度の評価基準で点数をつけます。通常は1~5点のスコアで、1点は音声品質が悪い、5点は自然で流暢、真の人間の音声に近いことを示します。
最終的なMOSは以下のように表されます:
MOS = \frac{1}{M}\sum_{i=1}^{M}s_i
ここで、$M$は評価に参加した人数、$s_i$は第$i$位の評価者から与えられた点数です。
MOSは生成音声のユーザーの聴感を比較的直感的に反映できますが、人工試聴に依存するため評価コストが高く、同時に主観的な性質も有します。
音声クローン、複数の話者TTS、ゼロサンプルTTSモデルの場合、音声の自然度を保証するだけでなく、生成音声が目標の話者の音色特徴を保持しているかどうかを評価する必要があります。一般的な方法は、参考音声と生成音声のそれぞれから話者ベクトル(Speaker Embedding)を話者識別モデルで抽出し、両者のベクトル間の余弦類似度を計算することです:
SIM =
\frac{
\mathbf{e}{ref} \cdot \mathbf{e}{gen}
}{
|\mathbf{e}{ref}| |\mathbf{e}{gen}|
}
ここで、$\mathbf{e}{ref}$は参考音声の話者ベクトル、$\mathbf{e}{gen}$は生成音声の話者ベクトルを表します。
SIMが高いほど、生成音声が参考話者の音色特徴に近いことを示します。この指標は特に音声クローンモデルの効果評価に適しています。
推論性能についても、TTSは音声認識モデルと類似して、リアルタイムファクター(RTF)を用いて処理効率を測ることができます。違いは、音声認識におけるRTFは識別にかかった時間と入力音声の長さの比として使用されるのに対し、TTSでは生成にかかった時間と生成音声の長さの比として使用されます。RTFが小さいほど、モデルの音声生成効率が高いことを示します。
RTFの計算式は以下の通りです:
RTF =
\frac{T_{infer}}{T_{audio}}
ここで、$T_{infer}$は生成音声に必要な推論時間、$T_{audio}$は最終的に生成された音声の長さを表します。
ストリーミングTTSモデルの場合には、さらに最初の可聴音声が出力されるまでの時間(Time to First Audio)を考慮することも可能です。この時間が短いほど、ユーザーが生成音声を早く聴けるため、リアルタイムな音声インタラクションシーンでは特に重要です。
文生図、図生図、画像編集などのタスクでは、単一の指標で生成効果を全面的に評価することは難しいです。例えば、文生図では生成した画像がテキストの説明に合っているかどうかを判断する必要があります。画像編集では生成結果が元画像の主体や構造をどのように保持しているかを判断する必要があります。また、画像生成モデルの全体効果を評価する際には、生成画像の品質と真実性も考慮する必要があります。
文生図タスクでは、まず生成した画像が入力テキストの説明に合っているかどうかを判断する必要があります。例えば、プロンプトで特定の主体、シーン、スタイルを生成するように要求した場合、モデル生成の画像はこれらの内容を含んでいなければなりません。
一般的な評価の考え方は、CLIPなどの視覚言語モデルを用いて、テキストと画像を同じ特徴空間にマッピングし、両者間の類似度を計算するものです。CLIP はRadfordらが2021年に提案したもので、大規模な「画像—テキスト」データセットを用いて学習し、モデルが画像内容と自然言語との対応関係を学習するようになります。画像とテキストの余弦類似度は以下の通りです:
Similarity =
\frac{\mathbf{v}{image}\cdot\mathbf{v}{text}}
{|\mathbf{v}{image}||\mathbf{v}{text}|}
ここで、
\mathbf{v}{image}
は画像特徴ベクトル、$\mathbf{v}{text}$はテキスト特徴ベクトルを表します。通常、類似度が高いほど、画像とテキストが全体の意味でより近いことを示します。このような方法は全体の意味が一致しているかどうかを評価しますが、テキストのすべての詳細が正確に生成されているかどうかは保証しません。例えば、画像中の数、位置、詳細が正確かどうかを判断するのは難しいです。
図生図や画像編集タスクでは、通常は元の画像または参考画像が提供されます。このようなタスクでは、生成結果がテキスト要求を満たしているかどうかだけでなく、元画像の重要な内容が正しく保持されているかどうかも評価する必要があります。
例えば、商品画像編集では背景、照明、全体のスタイルを変更できるが、商品主体、外観構造、ロゴなどの重要な情報を保持したい場合があります。このような場合、生成画像と参考画像の差異を比較することで編集効果を評価できます。
SSIM(Structural Similarity Index、構造相似性指数)は2004年にWangらによって提案された、全参照画像品質評価の古典的な方法です。これは明るさ、コントラスト、構造などの面で2つの画像を比較し、特に画像構造の変化に注目します。
SSIM以外に、LPIPS(Learned Perceptual Image Patch Similarity)も使用できます。LPIPSは深層ニューラルネットワークを用いて画像特徴を抽出し、特徴間の距離に基づいて2つの画像の視覚的感知上の差異を測ります。関連研究によると、深層特徴は人間が画像の類似度を感知する際の感覚を良好に反映します。SSIMとLPIPSは両者とも参考画像が必要ですが、評価する角度は少し異なります:SSIMは画像構造の変化をより注目し、LPIPSは視覚的感知上の差異をより注目します。実際のタスクでは、画像編集の目的に合わせて適切な指標を選択できます。
画像編集、図生図など参考画像を必要とするタスクでは、生成画像と参考画像の類似度を計算することも可能です。
前述の指標は生成した1枚の画像とテキストまたは参考画像との関係を比較するものですが、画像生成モデルの全体生成効果を評価したい場合には、複数の生成画像に対して統計的な分析を行う必要があります。
FID(Fréchet Inception Distance)はHeuselらが2017年に提案し、生成画像と真の画像の特徴分布上の差異を測るために使用されます。FID。FIDはまず画像モデルで真の画像と生成画像の特徴を抽出し、それぞれの特徴の分布を統計し、2つの分布間の距離を