LLMの文章生成の結果を評価するG-EVALを調べてみた

Table of Content

概要

LLMなどで作成されたテキストの品質を自動測定するのは難しい。
コサイン類似度やBLEUなどの手法があるが、それは人間の判断とは違いが多い。

G-EVALではタスクの導入と評価基準から評価手順をLLMで作成させた評価手順を用いてLLMに文章を評価させる。

同じ評価手順で結果を複数回取得して、その評価結果からスコアを算出する

和訳したPDFまたは原文を参照。

G-EVAL: NLG Evaluation using GPT-4 with Better Human Alignment
https://arxiv.org/pdf/2303.16634

作者のGitHub
https://github.com/nlpyang/geval

メモ

AutoCotで評価手順を自動で生成すると論文にはあるが、GitHubのコードでそれを行なっている形跡は見えなかった。

もしかしてGitHubに用意してあるプロンプトがすでにAutoCotの結果かもしれないが、それをどう作ったかがいまいち読み取れなかった。

スコアリングについては以下のようにchatgptAPIを呼び出す際に同じプロンプトでnを指定して結果を複数回取得している。
https://github.com/nlpyang/geval/blob/main/gpt4_eval.py#L41

論文中では出力トークンの確率を使用してスコアを正規化し、それらの重み付き総和とあるが、実際は単純な平均に見える
https://github.com/nlpyang/geval/blob/main/meta_eval_summeval.py#L58

logprobsがコメントアウトしてあるので、途中でやめた?
https://github.com/nlpyang/geval/blob/main/gpt4_eval.py#L40

その後

「A Closer Look into Using Large Language Models for Automatic Evaluation」にG-EVALの評価の論文が書かれている。
https://aclanthology.org/2023.findings-emnlp.599/

  • 自動Chain-of-Thought(CoT)を使用しない方が、特定の評価基準で人間の評価と高い相関を示すことがある
  • LLMに単にスコアを出力させるのではなく、そのスコアに対する「理由の説明」を求めることで、人間の評価との相関を向上させる