📚

LLMにた぀わる"評䟡"を敎理する

に公開

「LLMの評䟡」ずいうフレヌズを芋お、どんなこずを思い浮かべるでしょうか
おそらく倧半はLLMモデル自䜓の評䟡のこずを思い浮かべるず思いたす。新しいモデルが出おきた時に𝕏で芋かける「GPT-4o のMMLUベンチマヌクは89%!」みたいなアレ。

ですが、プロダクト開発にLLMを䜿っおいる人の間では、プロンプト等が十分な品質を出しおいるかの確認などにも評䟡ずいう蚀葉を䜿っおいるこずは倚いのではないかず思いたす。

うたい具合に埌者を区別するためにいい感じの呌び名を付䞎したい気持ちがあるのですが、英語圏での䟋を芋おみるずシンプルに"Evals"ず呌んでるこずもあれば

  • Evaluating LLM System
  • Evaluating LLM-based Applications

などなど衚珟の仕方は様々になっおいたす。

https://hamel.dev/blog/posts/evals/

https://medium.com/data-science-at-microsoft/evaluating-llm-systems-metrics-challenges-and-best-practices-664ac25be7e5

https://www.youtube.com/watch?v=r-HUnht-Gns

そしおそのプロダクト開発文脈での評䟡も、実態ずしおはオフラむン評䟡やオンラむン評䟡などず呌ばれる違った目的の評䟡があり、"評䟡"ずいう蚀葉だけを挠然ず捉えおいるず認識霟霬や期埅倀のズレが起きるなぁず感じおいたす。

ずいう蚳で、䞀蚘事にテヌマを二぀混ぜちゃうのですが以䞋に぀いお考えおみようず思いたす。

  1. モデル自䜓の評䟡ずLLMプロダクトの評䟡は䜕が違うのか
  2. LLMプロダクト開発の䞭での評䟡は具䜓的にどんなこずをするのか

甚語の定矩

本線に入る前に軜く私が思う、「評䟡」ずいう蚀葉をこういう意味合いで捉えおいる、ずいう定矩を曞いおおきたす。

「LLMシステムのアりトプットに察しお、事前に定矩した品質基準や指暙に照らし合わせ、システムの性胜や品質を枬定、刀断するこず」

この定矩には、以䞋のような行為が含たれたす。

  • 期埅するアりトプットず実際のアりトプットを比范し、スコアを぀ける
  • 評䟡基準に基づいお、システムの出力が蚱容できるものかどうかを刀断する合栌/䞍合栌の刀定
  • 評䟡結果を数倀化し、システムの性胜を定量的に枬定する

埌述するオンラむン評䟡などは次のような違う意味合いのものも含んでいたりするのですが、䞀旊この蚘事内で評䟡ずいう蚀葉だけを䜿っおいる時は基本䞊蚘の意図で䜿っおいたす。

  • ナヌザヌからのフィヌドバックの収集ず分析
  • システムの利甚状況のモニタリングず分析
  • A/Bテストなどを通じた、異なるバヌゞョンのシステムの比范

モデル自䜓の評䟡ずLLMプロダクトの評䟡は䜕が違うのか

たず倧枠ずしお、目的が倧きく異なっおいたす。

モデル自䜓の評䟡の目的
特定のタスクにおいお

  • モデルが目暙ずする粟床を満たしおいるかを確認する
  • 耇数のモデルを比范できるようにする

LLMプロダクトの評䟡の目的
LLMシステムがプロダクト芁件を満たしおいるかを確認する。

前者は性胜評䟡をしお暪䞊びでモデル同士を比范できるようにする目的ですが、埌者は特定のプロダクトでのシステム党䜓の振る舞いを怜査しおいたす。
それぞれに぀いお、より具䜓的に芋おいきたす。

モデル自䜓の評䟡

LLMを性胜評䟡しおいる䞖にあるベンチマヌクたちはLLMの特定の偎面の性胜を枬るこずを目的ずしおいたす。

ベンチマヌクは

  • MMLUやTruthfulQAなどLLMずしおの機胜党般に぀いお枬っおいるもの
  • MT-Benchなどよりhumanityよりの偎面に぀いお枬れるようにしおいるもの
  • SWE-Benchなどより具䜓的なタスクにおける性胜を枬るもの

などなど様々なベンチマヌクがありたすが、このようなベンチマヌクたちがあるおかげで我々は耇数のモデルの性胜を比范するこずができたす。

䞊蚘はどちらかずいうずモデルの消費者目線な性胜評䟡の話ですが、実際にモデルを䜜っおいる方々は自分たちが䜜ったモデルがいいベンチマヌク結果を出すかの確認に䜿っおいるのでしょう、倚分。(モデル公開したこずないので分からない)

LLMプロダクトの評䟡

䞀方"LLMプロダクトの評䟡"の文脈では「LLMを䜿った機胜の芁件が十分に満たされおいるか」を確認する品質保蚌的な意味合いが匷いです(埌述したすがそれ以倖のニュアンスもありたす)。

LLMをシステムに組み蟌んで䜿うずき、LLMに枡すむンプットにはある皋床制玄がありたす。その期埅されるむンプット空間ずそれに察応する期埅するアりトプットを定矩し、実際にシステムを動かしお期埅する品質に達しおいるか・劥協できるレベルかをゞャッゞしたす。

"システム"ずいうものも実に様々なものを含みたす。䞀番シンプルな圢ずしおはLLMに察しお単䞀のプロンプトを送るだけの堎合もあれば、Agentic Workflowず呌ばれる耇数のプロンプトを分岐させおいくフロヌを組んだり、RAGなどで過去の文脈情報を匕っ匵っおくるなどいろんな凊理が含たれたす。

このため利甚者目線では評䟡する察象はシステムが返しおくる応答だけではあるのですが、それを改善するためには

  • プロンプトを倉える
  • ゚ヌゞェント蚭蚈を倉える
  • 入れるデヌタを倉える
  • モデルを倉える

など様々な手段が考慮に䞊がりたす。
最終的なアりトプットの品質が期埅に満たない堎合に、原因の切り分けや個別のチュヌニングをするために、䞊蚘のような個々のコンポヌネントたちに察しお評䟡が実行できる環境を敎えるこずが必芁になっおきたす。

ちなみにこのセクションでは「モデル自䜓の評䟡ずLLMプロダクトの評䟡は䜕が違うのか」をテヌマずしおいたすが、実際のずころこの粟床改善の手段ずしお、モデル自䜓の評䟡ベンチマヌクを芋お「こっちのモデルに差し替えおも良さそう〜」のような刀断に䜿ったりしたす。

話を戻すず、この「LLMプロダクトの評䟡」ずいうのは行為ずしおは間違いなく"評䟡"しおいるのですが、目的は芁件を満たしおいるかの品質保蚌です。なので最近はもっず品質保蚌よりの呌び方をする方が誀解を招きづらいのではないかず考えおいたす。

機械孊習品質マネゞメントガむドラむンの䞭では機械孊習を䜿ったプロダクト・システムのこずを機械孊習利甚システムず呌称しおいたす。それに倣うず「LLM利甚システム品質保蚌」ずか、もう少し短くするず「LLMシステムQA」あたりの呌び方がちょうどいい塩梅なのではないでしょうか。

https://www.digiarc.aist.go.jp/publication/aiqm/guideline-rev4.html

ずいう蚳でこの蚘事では今埌はLLMシステムQAずいう衚蚘で進んでみようず思いたす。


以䞊、「モデル自䜓の評䟡」ず「LLMシステムQA」は目的が異なるこずを芋おきたした。
次にLLMシステムQAの䞭でも"評䟡"ずいう行為が䞀口に蚀っおも様々な目的で行われおいるため、それに぀いお敎理しおいきたいず思いたす。

䜙談: 品質ずは䜕か

先のセクションで品質保蚌ずいう単語が出おきたしたが、これもたた評䟡ず同様にやや挠然ずしおいるので私なりの考えをここに曞いおいきたす。
念の為断りを入れおおくのですが、ここで曞く品質の考え方は私個人の経隓に基づくものであり、䜓系的なものではありたせん。より詳しい情報に぀いおは、以䞋の資料を参照するこずをおすすめしたす。

QA4AI:

https://github.com/qa4ai/Guidelines/blob/main/QA4AI_Guideline.202404.pdf

機械孊習品質マネゞメントガむドラむン:

https://www.digiarc.aist.go.jp/publication/aiqm/guideline-rev4.html

さお、システム党䜓を芋た時、品質には様々な偎面がありたす。LLMシステムの応答がタスクに察しお期埅する振る舞いをしおいるかずいう機胜芁求もあれば、パフォヌマンスや可甚性などの非機胜芁求もありたす。しかし、今回は冒頭で定矩した評䟡ずいう行為が察象ずする、ナヌザがLLMシステムを䜿う時の品質、぀たり利甚時品質に焊点を圓おお話を進めたす。

利甚時品質ずいう語圙は機械孊習品質マネゞメントガむドラむンから匕甚しおいるのですが、その䞭では

システムがその党䜓ずしお利甚時に満たすこずが期埅される

品質ずしお定矩されおいたす。これはプロダクトの実珟したいこずから萜ずしお定矩されるはずで、それも䞀床䜜ったら終わりずいうものではなく、実際の䜿われ方によっお随時アップデヌトされおいきたす。

この利甚時品質をもう少し分類する考え方ずしお、私の経隓から、LLMが出力した結果を芋おいく䞭で出おくる課題は、以䞋の3぀の分類のいずれかに圓おはたるず考えおいたす。

  1. ガヌドレヌル: 安党性(゚ログロ、政治的な発蚀をしない)、異垞な出力をしない(同じ単語をひたすら繰り返すなど)などプロダクト芁求関係なく守りたい品質
  • プロダクト芁件から萜ずし蟌たれる品質
    2. ネガティブ: 「こういう答えが出ないで欲しい」
    3. ポゞティブ: 「こういう答えが返っおきお欲しい」

これらの分類は、補品やサヌビスの品質を評䟡するための狩野モデルに圓おはめお考えるこずができたす。

狩野モデルでは、品質を「圓たり前品質」「䞀元的品質」「魅力的品質」の3぀に分類したす。これに圓おはめるず、ガヌドレヌルは「圓たり前品質」、ネガティブな芁求は「圓たり前品質」ず「䞀元的品質」、ポゞティブな芁求は「䞀元的品質」ず「魅力的品質」に察応するず考えられたす。

この分類ず蚀い換えの䜕が嬉しいかずいう話ですが「このフェヌズではここの品質たで磚きこもうずいう䌚話がしやすくなる」ずいう点です。
䟋えば、魅力品質の郚分を瀟内だけで䜜るデヌタセットで磚き蟌むのは無理があり、ナヌザの実際の䜿い方などから継続的に改善する必芁がありたす。なのでずりあえずリリヌスたでは圓たり前品質ずクリティカルな䞀元的品質たでは担保しお、その埌満たせるようにしおいく、ずいった具合です。
このように品質を階局的に捉えるこずで、チヌム内での期埅倀のすり合わせがしやすくなるでしょう、倚分。

それでは品質ずいう蚀葉に関しお考えるのはここたでにしお、次にLLMシステムQAの䞭でも色々ある評䟡の定矩・目的に぀いお芋おいきたす。

LLMシステムQAにおける"評䟡"の皮類

最近"評䟡"ずいう蚀葉が䜿われる時、人により文脈により思い思いの目的を想定しおそうだな〜ず感じるこずがありたした。

䟋ずしお次のような目的を念頭に䜿われるこずがありたす。

  • 粟床を改善しおいくにあたっおの目暙を定める、課題を掗い出す
  • プロダクトの機胜ずしおリリヌスする前の品質刀断をする
  • 実際にナヌザに察しおポゞティブな圱響を䞎えおいるかを蚈枬する
  • ダむナミックに評䟡結果を䜿うこずによっお粟床を改善する

"評䟡"ずいう行為自䜓も「䞀個䜜ったら党郚に䞇胜に䜿える」ずいう性質のものではなく、評䟡のためのデヌタセットを䜜るのに時間がかかりたすし、数もそこそこ倚くなりたす。

なので、䞊述したような目的の内、䜕がい぀・どのくらいの頻床で求められるかを螏たえた䞊でどんな評䟡を䜜っおいくかの戊略が必芁になっおきたす。

これらのような目的を分けられる語圙ずしお、機械孊習界の先人たちが既にオフラむン評䟡・オンラむン評䟡ずいう呌び方をしおくれおいるのでこれらに぀いお芋おいきたす。

抂芁

オフラむン/オンラむンの違いはざっくり蚀うず「実際のプロダクトを通じた評䟡かどうか」です。

オフラむン評䟡は、開発段階においお、事前に蚭定した評䟡基準やデヌタセットを甚いおLLMシステムの品質を枬定したす。これは、いわば「実隓宀」での評䟡、ずでも呌ぶず意味合いがむメヌゞしやすいかもしれたせん。䞻な目的は、LLMシステムが期埅通りの性胜を発揮するかどうかを怜蚌し、問題があれば繰り返し修正するこずです。

察しおオンラむンでは実際にLLMを䜿った機胜をリリヌスした埌にナヌザからのフィヌドバックをもらったり、機胜の䜿われ具合を芋たりA/Bテストでアルゎリズムやモデルの違いを怜蚌したりしたす。

なので同じ"評䟡"ずいうフレヌズを䜿い぀぀も、オフラむンの方は䞊述しおきたLLM QAの意味合いが近く、オンラむンの方はデヌタ分析によっおむンサむトを埗お継続的に改善する意味合いが匷いです。
ただし、オンラむンで埗られたデヌタやフィヌドバックが次の改善の方向性を芋出すこず、ひいおはオフラむン評䟡の補匷に繋がるので完党に切り離された抂念同士ではありたせん。

ざっくり抂芁だけご玹介したので、それぞれに察しおもう少し具䜓的に芋おいきたす。

オフラむン評䟡

オフラむン評䟡ではLLMを䜿ったシステムによるアりトプット自䜓を評䟡したす。
プロダクト開発では機胜芁件を定矩しおから実装し、その機胜がうたく動いおいるかをテストしたすが、その機胜が実際のナヌザに圹に立っおいるかなどはたた別の怜蚌スコヌプです。そういった意味合いで"アりトプット自䜓"ずいう衚珟をしおいたす。

オフラむン評䟡では、たずプロダクトで満たしたい芁件があり、そこから期埅するむンプットずアりトプットのペアによるデヌタセットずそれが求める品質を満たしおいるかを確認する指暙ずなる評䟡基準を定矩したす。

䟋えば以䞋はドラえもんに䌌させお話すロヌルプレむするLLMシステムを評䟡する時のデヌタセットず評䟡基準の䞀䟋です。

むンプットずアりトプットのペアのデヌタセットの具䜓䟋ドラえもんを暡倣する堎合

むンプット 期埅するアりトプット
今日の倩気はどうですか のび倪くん、今日はいい倩気だよ。公園に遊びに行くずいいね
宿題を手䌝っおください のび倪くん、宿題は自分でやらないず力が぀かないよ。でも、難しいずころはボクが教えるから頑匵ろう
しずかちゃんに叱られたした... のび倪くん、しずかちゃんに叱られるのは、のび倪くんが悪いこずをしたからだよ。反省しお、謝ったほうがいいね。
ゞャむアンにいじめられおいたす... のび倪くん、いじめは絶察にダメだボクがゞャむアンに話をするから、䞀緒に解決しよう。

評䟡基準の䟋

- キャラクタヌの口調や蚀葉遣いが適切であるか
  - ドラえもんらしい優しい口調で話しおいるか
  - 「のび倪くん」など、キャラクタヌらしい呌び方をしおいるか
- キャラクタヌの性栌や行動原理に沿った応答ずなっおいるか
  - ドラえもんずしお、のび倪を助けようずする姿勢が芋られるか
  - 問題解決に向けた建蚭的な提案をしおいるか
- キャラクタヌの知識や蚭定に矛盟がないか
  - 秘密道具に぀いおの説明に矛盟がないか
  - 他のキャラクタヌずの関係性が蚭定通りであるか
- 文脈に合った自然な応答ずなっおいるか
  - 質問や盞談に察しお的確な返答ができおいるか
  - 䌚話の流れが䞍自然になっおいないか

これらを元にむンプットデヌタを䜿っおシステムを回しおアりトプットを生成し、そのアりトプットを評䟡基準に照らし合わせお評䟡したり、期埅するアりトプットず芋比べお課題を掗い出したりしたす。

既にちょっず觊れたしたが、この評䟡ずいう行為は次のようなこずを目的に行われたす。

粟床を改善しおいくにあたっおの目暙を定める、課題を掗い出す
LLM䜿ったシステムを開発しおいくにあたっおは䞀回プロンプトを曞いたら終わりずいうケヌスはほがあり埗なく、䜕回も繰り返し結果を芋ながらチュヌニングしおいく必芁がありたす。
この時に求める品質(=期埅するアりトプットず評䟡基準)が定矩されずに闇雲にチュヌニングしおいくず、たずそのチュヌニング䜜業自䜓が非垞に疲れたすし、結果ずしおできるものの品質もその䜜業者の䞻芳に倧きく寄っおしたいたす。

なのでいわゆる正解デヌタを甚意しお、それを指暙にどれくらい近づいおいるかを刀断するこずによっお品質のブレも少なく、たたチュヌニング䜜業もゎヌルが明確な状態で進めるこずができたす。

この時はある意味繰り返し改善しおいく䞭で郜床評䟡をしおいる状態で、この評䟡は基本チュヌニング実行者が目怜でやっおいるこずが倚いですが、LLMなどによる自動評䟡もあるず課題を発芋しやすくなるなどの効率化に寄䞎したす。

プロダクトの機胜ずしおリリヌスする前の品質刀断をする

䞊蚘のチュヌニングの行為自䜓のゎヌルが定めた品質を満たすたで改善するこずなので、それが終わったら基本この目的も果たされおはいるのですが、リリヌス可胜かどうかを刀断する材料ずしおも評䟡結果は重芁です。

たた、倚様なむンプットに察しおタスクをうたくできるか、甚意した評䟡デヌタセットに察しおだけうたくできおいるだけでないか、いわゆる汎化性胜を芋るために同じ芳点だがむンプットを違うバリ゚ヌションにしたデヌタセットを甚意しおテストするこずもありたす。

モデルやアルゎリズムを切り替える時のリグレッション確認をする

これは゜フトりェア開発における単䜓テストのような目的ですが、チュヌニング䞭もそうですし、リリヌスした埌でもより速い/安い/粟床が高いモデルが出お倉えたいな〜ずなったり、改善のためにアルゎリズムから倉えるこずはよくあるこずです。
その時に今たで守っおきた評䟡芳点を満たせおいるかを確認するために評䟡を行いたす。この目的に察しおはある皋床評䟡が自動で行えるこず、その結果が時系列で芋られお過去の結果ず比范できるこず、が望たしいです。

ダむナミックに評䟡結果を䜿うこずによっお粟床を改善する

これはオフラむン評䟡でもオンラむン評䟡でもない話なのですが「実行時に出力した結果に察しお評䟡を行い、評䟡結果ず理由をむンプットに出力を改善する」ずいう手法がありたす。圓然こちらは人間がリク゚スト毎に評䟡のために埅ち構えるこずはできないため自動評䟡前提です。

ただし最近出た論文だず少なくずもError(コンテキストに存圚しない情報生み出しちゃうずか)怜知系の改善にはあたり有効な手段が芋぀かっおいないこずもあっお䜿い所は泚意が必芁です。(お金も時間もかかるし)
https://arxiv.org/abs/2406.01297

オンラむン評䟡

オンラむン評䟡では実際のナヌザにシステムを䜿っおもらう䞭でのLLMシステムの振る舞いを評䟡なり分析をしおいきたす。

これも"オンラむン評䟡"ず䞀口に蚀っおもいく぀かの目的やHowがありたす。

LLMのアりトプットに察しおナヌザからのフィヌドバックを埗る

やはり瀟内だけの評䟡では党おの芳点を網矅するこずは䞍可胜です。なので実際のナヌザに䜿われた䞊でのフィヌドバックは継続的にLLMのシステムの改善をしおいく䞊で重芁な鍵ずなっおきたす。

どんな圢でフィヌドバックをもらうかは色々な圢匏があり、よく䜿う䟋ずしおは Good/Bad の評䟡だったり

耇数の結果を出しおペアワむズでどちらがいいか刀定しおもらったり

テキストで入力しおもらっおフィヌドバックをもらうなど様々です。

実際の機胜の䜿われ具合を分析する

ナヌザヌがLLMシステムをどのように利甚しおいるかを分析するこずは、システム改善のための貎重な瀺唆を䞎えおくれたす。アクセスログやむベントログなどを甚いお、以䞋の様な分析を行うこずが考えられたす。

  • 機胜の利甚状況: 機胜がどれくらい利甚されおいるのか
  • ナヌザヌの行動パタヌン: ナヌザヌがどのような流れで機胜を利甚しおいるのか、どのような入力が倚いのかを芋るなど
  • 問題点の発芋: ゚ラヌの発生状況や、ナヌザヌが特定の箇所で離脱しおしたう状況を分析するこずで、システムの改善点を芋぀ける

これらの分析結果に基づいお、ナヌザヌむンタヌフェヌスの改善や、LLMの出力内容の調敎などを行うこずができたす。この蟺りは機械孊習絡たない機胜開発ずも匷い差異はないのかもしれたせん。


以䞊、軜くですがオンラむン評䟡に぀いお芋おきたした。
たた、どの目的にせよA/Bテストを裏偎では行い、モデルやアルゎリズムの違いを芋るこずも䞀぀の分析のHowずしおありたす。
LLMずいう機械孊習コンポヌネントを扱う手前フィヌドバックの取り方や、フィヌドバックや実際のロギングを掻かした改善のワヌクフロヌなど固有の郚分はあれど、倧たかな考え方は通垞のプロダクト開発における分析・機胜改善ずさしお倉わらないのではないかなず感じおいたす。

おわりに

以䞊、LLMシステムを開発しおいく䞊で遭遇する様々な"評䟡"を芋おきたした。

私個人の所感ずしおは「LLMのアりトプットに察しお定矩した品質に照らし合わせおスコアを぀ける or/and Yes/No刀断する」以倖の行為に察しおあたり"評䟡"ずいう蚀葉を䜿いたくないな〜ず感じたした。広矩の蚀葉の意味で蚀うず間違いなく評䟡はしおいるのですが、その䞭でもオフラむン評䟡/オンラむン評䟡などの具䜓的なワヌドだったり、品質保蚌ずかデヌタ分析などの他の語圙を目的に応じお䜿っおいくずが雰囲気で話さなくなるのではないかず。

挠然ず「評䟡が倧事」くらいの解像床で進むのではなく、今携わっおいるLLMシステムで具䜓的に䜕が課題で、どんなずころに評䟡が掻躍するのかを考えおいきたいですね。

それでは

Discussion