発展:言語モデルの評価(BLEU・ROUGE から人手・AI採点まで)
自然言語処理の応用のレッスンの続きとして、言葉を作るモデルの良し悪しをどう測るのかを掘り下げます。正解が一つに決まらない生成の評価がなぜ難しいのか、言葉の重なりで測る BLEU と ROUGE、意味の近さで測る BERTScore、複数の課題をまとめて測るベンチマーク、そして人手やほかのモデルに採点させるやり方とその落とし穴までを実装のコードは扱わず、それぞれが何を測っているのかに絞って説明します。
ねらい
このレッスンは、自然言語処理の応用のレッスンの続きにあたる発展(はってん)の記事です。言葉を作るモデルを育てたり選んだりするには、その良し悪しを測るものさしが要ります。分類なら正解率で測れますが、文章を作る仕事は、正解が一つに決まりません。ここでは、その測り方を見ていきます。
この記事は、ある程度の知識のある人に向けた深掘りです。評価指標のレッスンで、正解率や適合率といった、分類の測り方に触れていることを前提にします。実装のコードは扱いません。それぞれのものさしが、何をどこまで測れているのか、という中身に絞ります。
1. なぜ、生成の評価は難しいのか
まず、難しさの正体をはっきりさせます。文章を作る仕事の評価が難しいのは、主に3つの理由からです。
1つ目は、正解が一つに決まらないことです。同じ内容をいくらでも違う言葉で言い表せます。良い答えが無数にあるので、「これと一字一句同じか」では測れません。
2つ目は、良さが多面的なことです。文章の良さには、内容が合っているか、筋が通っているか、読みやすいか、事実に反していないか、といったいくつもの面があります。1つの点数に、これらをすべて押し込めるのは難しいのです。
3つ目は、機械には意味の判定が難しいことです。人なら、言葉づかいが違っても内容が同じだと分かります。しかし機械に、その「内容が同じ」を判定させるのは、簡単ではありません。
これらの難しさに、いろいろな角度から挑んできたのが、これから見るものさしたちです。完璧なものさしは、いまだにありません。それぞれが、良さの一部を別の角度から測っています。
理解の確認
文章を作る仕事の評価が難しいのは、正解が一つに決まらないこと、良さが内容・筋・読みやすさ・正確さなど多面的なこと、そして意味が同じかどうかの判定が機械には難しいことによります。完璧なものさしはなく、それぞれが良さの一部を別の角度から測ります。
2. 言葉の重なりで測る:BLEU と ROUGE
いちばん素朴な測り方は、モデルの出した文章と、人が用意したお手本の文章とで、どれだけ言葉が重なっているかを数えることです。この考え方に立つ、代表的な2つを見ます。
1つは、BLEU(ブルー)です。主に機械翻訳の評価で使われてきました。BLEU は、モデルの訳文の中の言葉の並びが、お手本の訳文にどれだけ含まれているかを測ります。ここでの「言葉の並び」は、テキストの数値化のレッスンで学んだ n-gram、つまり連続するいくつかの語のまとまりです。モデルの出した n-gram が、お手本にどれだけ現れるかを数え、その割合を点数にします。お手本に多く含まれるほど、良い訳とみなします。
もう1つは、ROUGE(ルージュ)です。主に要約の評価で使われてきました。BLEU と考え方は似ていますが、向きが逆です。ROUGE は、お手本の要約の中の言葉の並びが、モデルの要約にどれだけ拾えているかを測ります。お手本の大事な内容をモデルがどれだけ取りこぼさず拾えたか、を見る向きです。
この2つは、計算が軽く、同じ土俵で機械的に比べられる利点があります。一方、弱点もはっきりしています。言葉の重なりだけを見るので、言葉づかいが違うが内容は同じ、という良い答えを低く採点してしまいます。逆に、言葉は重なるが意味が通らない文章を高く採点することもあります。あくまで、言葉の重なりという一面を測っている、と押さえてください。
理解の確認
BLEU は主に翻訳で、モデルの訳文の言葉の並び(n-gram)がお手本にどれだけ含まれるかを測ります。ROUGE は主に要約で、お手本の言葉の並びをモデルがどれだけ拾えたかを測ります。どちらも言葉の重なりで測るため軽くて比べやすい一方、言葉づかいが違うが内容は同じ良い答えを低く採点しがちです。
3. 意味の近さで測る:BERTScore
言葉の重なりの弱点、つまり「言葉づかいが違うと内容が同じでも低く出る」を補うために、意味の近さで測る考え方が生まれました。その代表が BERTScore(バートスコア)です。
BERTScore は、名前のとおり、言語モデルのレッスンで学んだ BERT のような、文脈をとらえるモデルを使います。モデルの出した文章と、お手本の文章をそれぞれ意味のベクトルの並びに変えます。そして、言葉そのものの一致ではなく、ベクトルどうしの近さで、内容の合い具合を測ります。単語の分散表現のレッスンで見たように、意味の近い言葉はベクトルが近くなります。だから、「車」と「自動車」のように、言葉は違っても意味が近ければ、近いと判定できます。
こうすると、言葉づかいの違いに強くなります。同じ内容を別の言葉で言っても、意味が近ければ、きちんと高く評価できます。言葉の重なりで測る BLEU や ROUGE が取りこぼしていた、言い換えの良さをすくい上げられます。
ただし、これも万全ではありません。意味の近さは測れても、文章の筋が通っているか、事実に反していないか、といった面までは、うまく測れません。BERTScore もまた、良さの一面、つまり内容の意味の近さをより賢く測るものさしだ、と押さえてください。
理解の確認
BERTScore は、BERT のような文脈をとらえるモデルで、モデルの文章とお手本を意味のベクトルにし、ベクトルの近さで内容の合い具合を測ります。言葉が違っても意味が近ければ高く評価でき、BLEU や ROUGE の弱点である言い換えの取りこぼしを補います。ただし筋の通りや事実の正しさまでは測れません。
4. 複数の課題でまとめて測る:ベンチマーク
1つの文章の良し悪しではなく、モデルの力を全体として測るには、多くの課題をまとめて解かせて、成績を見ます。この、共通の試験問題集をベンチマーク(benchmark)と呼びます。言語モデルのレッスンで学んだ GLUE が、その代表でした。
ベンチマークのねらいは、同じ土俵で、かたよりなく力を測ることです。1つの課題だけでは、たまたま得意な課題かもしれません。文章の意味の判定、質問への答え、推論など、いくつもの課題をまとめて解かせ、その成績を見れば、力のかたよりをならして測れます。新しいモデルが出るたびに、同じベンチマークで前のモデルと比べれば、進歩を追えます。
ただし、ベンチマークにも落とし穴があります。1つは、ベンチマークの問題が、学習のデータにまぎれ込んでいると、実力以上に高い点が出てしまうことです。試験問題を事前に見て覚えているようなものです。もう1つは、ベンチマークで高い点が、実際の役立ちと、いつも一致するとはかぎらないことです。ものさしに合わせて作り込むと、そのものさしの点は上がっても、本当の使い勝手は上がらない、ということが起こりえます。ベンチマークは便利ですが、その点数が何を意味するかは、注意して読む必要があります。
理解の確認
ベンチマークは、多くの課題をまとめて解かせ、同じ土俵でかたよりなく力を測る共通の試験問題集です(GLUE など)。ただし、問題が学習データにまぎれ込むと実力以上の点が出ること、高い点が実際の役立ちと一致するとはかぎらないこと、という落とし穴があります。
5. 人手とAIに採点させる:その利点と落とし穴
言葉の重なりや意味の近さでは、文章の総合的な良さまでは測り切れません。そこで、人や、別のモデルに採点させるやり方が使われます。
人手による採点は、いちばん信頼できるとされます。人なら、内容・筋・読みやすさ・正確さをまとめて判断できます。とくに、2つの応答を見せて「どちらが良いか」を選ばせるやり方は、アライメントのレッスンで見た、人の好みの集め方にもつながります。一方で、人手は費用と時間がかかり、採点する人によって判断がばらつく、という弱点があります。
そこで近年は、別の大規模言語モデルに採点させるやり方も広く使われます。これをAIを審査員にする(LLM-as-a-judge)と呼びます。人手より速く安く、多くの応答を採点できます。ただし、落とし穴があります。採点役のモデルにも癖があり、長い答えや、体裁の整った答えを中身によらず高く採点しがちな傾向が知られています。また、採点役のモデルの限界が、そのまま採点の限界になります。採点役より賢い答えを正しく評価できるとはかぎりません。
要点は、どのものさしにも、測れる面と測れない面があることです。だから実際には、複数のものさしを組み合わせ、それぞれが何を測っているかをわきまえて使います。1つの点数だけを見て、モデルの良し悪しを決めつけない、という姿勢が大切です。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。