高難度な「要約の出来栄え評価」をLLMの文脈内学習で自動化
3つの要点
✔️ 文章要約の評価軸は多数あり、それらを評価するのは大変
✔️ 従来は多数の評価軸に基づく多次元評価を行うのに大規模データセットが必要
✔️ 提案は大規模言語モデルの文脈内学習を用いることで大規模データセットを不要化
Multi-Dimensional Evaluation of Text Summarization with In-Context Learning
written by Sameer Jain, Vaishakh Keshava, Swarnashree Mysore Sathyendra, Patrick Fernandes, Pengfei Liu, Graham Neubig, Chunting Zhou
(Submitted on 1 Jun 2023)
Comments: ACL Findings '23
Subjects: Computation and Language (cs.CL)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
普段文章をどのように評価しているでしょうか?
たとえば、分かりやすい文章を書くためのキーポイントとして、3Cがあります。Correct、Clear、Concise。正確で、明確で、簡潔であることです。一方で、文学はどうでしょうか?たとえば、古文の源氏物語の文章は、一文が長い傾向にあったり、省略表現が多かったりと、3Cとは言いにくいかもしれないですが、複雑な人間関係や巧みな心理描写から世界的に評価される文学となっています。
このように、文章に限りませんが、評価軸というのは多数あるものです。大規模言語モデルにより、秒速で文章の大量生成ができてしまうわけですが、その文章をどのように評価すればよいでしょうか?自然言語生成のさらなる発展に向けて、社会のニーズに沿った多次元的な評価軸で正しく評価する必要があります。
今回解説する論文は、そのような文章の多次元評価を大規模言語モデルの文脈内学習を用いて簡単化する研究です。文脈内学習とは、大規模言語モデルの入力にわずかな例を加えるだけで、それに続く質問にどう答えるべきかを大規模言語モデルが学習できる能力です。
この文脈内学習を活用することで、従来必要だった大規模データセットを与えずとも、所望の文章評価を行ってくれるのではないかという仮説を要約を例に検証したものです。それでは、問題設定、提案方法の仕組みと効果、検証結果について解説します。
問題設定
本論文では、文章を生成する手法のことを自然言語生成(Natural Language Generation, NLG)と呼んでいます。このNLGの生成した文章を評価するときの問題設定について説明します。
NLGへの入力シーケンスをx、NLGの出力シーケンスをyとします。文章要約であれば、xは元の文章であり、yは要約後の文章と考えればよいでしょう。
ある評価フレームワークはyの質を表すスコアsを出力します。スコア計算には、人間の生成したレファレンスrを使う場合と使わない場合がありえます。
本論文で対象とする多次元評価では、yをd個の品質指標で評価します。品質指標が一つの場合は、sはスカラーですが、複数ある場合はd次元のベクトルS=(s1,s2,...,sd)となります。ですので、多次元評価と呼んでいます。仰々しい呼び方ですが、単純に複数の指標で文章を評価しているだけです。
本論文では、Consistency、Relevance、Fluency、Coherenceの4つの次元でyを評価します。Consistencyは元の文章に対し内容が正しいかです。Relevanceは元の文章で顕著な情報を捉えているかです。Fluencyは要約文の1文レベルの品質です。Coherenceは複数の文章がなす構成、構造の品質です。
NLGの要約結果に対して、この4次元の評価を自動生成するというのが問題設定になります。
提案手法の仕組み
要約結果に対して、Consistency、Relevance、Fluency、Coherenceの4次元の自動評価結果を得るため、本論文では、図1に示すプロンプト(大規模言語モデルへの入力文)を大規模言語モデルに与えて要約文を評価する手法In-Context learning-based Evaluator(ICE)を提案しています。
図の青字の部分が例示です。Textが元の文章、Summaryが要約後の文章、ConsistencyがConsistency指標の評価結果(数字で回答させます)になります。このText、Summaryが要約評価手法の入力で、Consistenyが要約評価手法の出力になっており、入力に対する適切な出力を直接教えています。このText、Summary、Consistencyのセットが1個の教師データ(本論文では文脈内例と呼んでいる)といえるので、本例では、2個の文脈内例を与えて、あるテキストと要約の組に対してある評価軸の評価をさせています(本論文では、プロンプトの最後に来る、評価結果を回答させたい例をテスト例と呼んでいます)。
技術ポイント1.大規模言語モデルの文脈内学習を使う
大規模言語モデルには文脈内学習という能力が備わっています。文脈内学習は、大規模言語モデルの入力に、わずかな例(文脈内例)を加えるだけで、それに続く質問に、その例にならって答えてくれる能力です。本論文では、GPT-3のtext-davinci-003モデルという大規模言語モデルの文脈内学習を活用します。
技術ポイント2.意味を凝縮した単語をタグに、多次元評価の次元別に文脈内例を作る
今回は、問題設定の通り、元の文章、要約後の文章を与えられた時に、複数の観点での評価結果を割り当てるというのがやりたいことです。
そのために、文脈内学習を使うというの技術ポイント1でした。文脈内学習の性能に影響する要因はプロンプトの中身です。
本論文では、他のいろいろなプロンプトを試してみてこれじゃないとうまく評価できなかったなど、このプロンプトを採用した設計思想について説明がありません。理解を深めるために、文脈内学習がどんなもので、今回のプロンプトは適切なものなのか想像を交えて考えてみました。
文脈内学習が、input: xxx output: yyy input: zzz output: という形の文章を大規模言語モデルに入力すると、inputに対してこういうoutputをすればよいのだなという規則性を見出し、未知のinputに対し規則に従ってoutput:に続く言葉を埋めるものだとします。言い換えれば、inputに続く内容とoutputに続く内容に従って真の意味で規則性を見いだせる機能だとすれば、input、outputのような無機質なタグをつけもよさそうです。
しかし、今回のプロンプトでそうはなっていないので、そういったところもポイントと考えて良いのではないでしょうか?
第一に、提案手法では、図の例のように、Text、Summary、Consistentという無機質ではない、人間が理解しやすい単語を与えています。これにより、Textに関するSummaryのConsistentに関する部分が注目され、その規則性に注目することができるようになっている可能性があるように思えます。もしも、input、outputであれば、入力全体と出力全体の規則性を見い出だそうとして、規則を見出すのが難しくなりそうな感じがします。
第二に、提案手法は、単にoutputではなく、評価指標を表す言葉consistentを使っています。評価指標1と仮に書いた場合、評価指標という言葉から数値が当てはまる確率は高まりそうです。しかし、どんな値にすればよいかについては、output:と書くことと同じぐらいの示唆しか与えないように思います。逆により情報を与えるために、consistentの定義も含めてもよさそうに思いますが、逆に情報過多で大規模言語モデルがうまく処理しきれないような懸念もありそうです。そういった意味で、意味を凝縮した単語をタグに続けて、文脈内例を作るというのが有効に働いている可能性もありそうです。
第三に、提案手法は、outputで一気に多次元評価させるのではなく、評価軸別に、文脈内例、テスト例を作って、各評価を実行しています。一気に多次元評価させることは、大規模言語モデルが埋めるべき記入欄が増えるようなものですので、回答制御がより難しくなることは想像されますので、1度に1次元の評価結果だけ回答させる方が出力は安定しそうです。加えて、そもそも独立に評価すべき次元であれば、他の次元の評価結果が他の次元の評価に影響を与えるのはノイズになってしまうので、1次元ずつ評価するのは妥当な選択に思えます。
技術ポイント3. 文脈内例を分布に従って数個にチョイスする
わずかな例で学習できるのが文脈内学習の強みだと説明してきましたが、わずかな例でないと学習できないという側面もあります。本論文では、GPT-3を用いていますが、GPT-3に一度に入力可能な文章量(コンテキストウインドウサイズ)は最大でも4個だったそうです。そのため、本論文では、文脈内例を絞るため、文脈内例をためたプールから4つサンプルするという手法を採用しています。
サンプルの仕方は、一様サンプリングと層化サンプリングを提案しています。
一様サンプリングはすべてのサンプルを等確率でサンプルするもので、プール内の例の分布を再現する意図が込められいるそうです。こういわれると、プール内の例の作り方が性能に影響しそうですが、プール内の例の作り方の説明は特にありません。
層化サンプリングは、プール内の例をスコアの大、中の上、中の下、小の4つのグループに分けて、各グループから1個ずつサンプルする手法です。各スコアレンジの代表点をサンプルするという意図が込められているそうです。最低限、スコアの違いを理解するには、スコアが異なる例を与える必要があるので、妥当な処理に見えます。4つのグループで十分なのかと気になりましたが、本論文の付録を確認すると、正解となる人の評価は5段階評価と書いてありました。理想的にはグループは5つあった方がよさそうです。
本論文での検証結果に、人による評価手法と提案手法でのスコアの分布の比較があります。人間のスコアの分布と比較して、提案手法のスコア出力結果は、あるスコアの値の範囲に頻度が偏っている傾向はありましたが、人間のスコアの分布と近い傾向でした。一様サンプリングと層化サンプリングだと、一様サンプリングの方が人間のスコアの分布と近く、結果が安定的であるため、本論文では基本的に一様サンプリングを推奨しています。
提案手法の利点
本論文の提案手法ICEの利点は学習不要、拡張性の2つです。
学習不要
学習と一括りで言ってしまうと語弊がありますが、提案手法では、教師あり学習によるファインチューニングや大規模なデータセットは不要です。必要なのは、大規模言語モデルの推論時に与える少数の文脈内例です。
拡張性
今回注目しているのは「多次元」の評価なわけですが、提案手法は、新たな次元の評価がしたい場合、その次元の評価に対応する文脈内例を与えるだけで評価軸を増やせる拡張性を持っています。
検証結果
NLGの要約能力を提案手法で評価したときの比較結果を表1に示します。
比較手法(要約文評価手法)は人間が評価するHuman、既存の自動化手法であるROUGE-L、BARTSc. 、そして、提案手法のICEです。
ROUGE-Lは、評価対象の要約文と人間が作った参照要約文を比較し、共通して現れる最も長い単語列の長さを見て、長いほど質が良いと評価する手法です。共通部分が多ければ多いほど、品質が高いとするものです。
BARTSc. はBARTScoreで、文章の評価を文章生成タスクとして取り扱う手法です。BARTは、ある単語が与えられたときに次に来る確率が最も高い単語を出力する手法の一つですが、その確率モデルによって計算される確率がスコアになります。たとえば、元の文章が与えられた場合に、その要約文が生成される確率が最大化されるような要約文が品質の高いスコアを与えられます。
この比較手法によって評価されるNLGは、GPT-3、BRIO、T0の3つです。GPT-3はOpen AIの開発した大規模言語モデルです。BRIOは一つの文章から意図的に多様な要約文を生成するように学習し、ベストな要約文を選択して出力するNLGです。T0は、GPT-3より小規模なモデルながらGPT-3に匹敵する能力を持つとされるNLGです。
評価の結果、人による評価ではスコアの良い順にNLGを並べると、GPT-3、BRIO、T0になります。表1の背景色が赤の行、無色の行、青の行がそれぞれ、スコアの上、中、下を示します。つまり、この色の並びが同じ比較手法は、人による評価順位と一致することになります。
評価結果の中で、人による評価と色の並びが同じなのは、提案手法のICEのみです。つまり、ICEの評価精度は高いことが示されています。
一方で、ROUGE-LやBARTSc.は、人による評価では1位のGPT-3を3位に順位付けしており、人による評価とずれていることが分かります。
今回の比較手法のうち、ROUGE-LやBARTSc. は、人による評価と違ってGPT-3が生成した要約文を低評価しました。本論文では、この理由を、既存手法は人が作った参照要約文に基づき評価するものが多く、参照文に似ていないと高評価を得られないためと推測しています。もっといえば、参照文に似ていなくても、人から見れば好ましい要約文の良さを理解できないのではないかということになります。
一方で、提案手法は、人が作った参照要約文で訓練していない大規模言語モデルに基づく評価です。提案手法は、人が作った参照要約文に引っ張られずに、人間に近い評価ができると考察されています。
終わりに
今回は、機械が生成した要約文を多角的に自動で評価する手法について解説しました。大規模言語モデルの文脈内学習を使って評価する、いわゆるプロンプトエンジニアリングで要約文を自動評価するアイデアでした。
概念上はプロンプトエンジニアリングのFew-shot promptingという既存技術の範疇に入ってしまうように思える技術でしたが、非常に手軽で実用性の高いアイデアに思えました。
今回のプロンプトは手法説明だけを読むと、やりたいことに素直なプロンプトで当たり前なプロンプトにも見えますが、熟慮したからこそ、当たり前に思えるようなシンプルなプロンプトが見い出されているのではないかとも想像しています。
大規模言語モデルを活用すればできそうだから、実際に試してみたという論文は今後も出てきそうですし、こういった論文の知見は試しやすいので、実務に参考になると思います。
この記事に関するカテゴリー