2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
中村龍矢氏:では具体的に、精度評価と改善にいければと思います。
まず精度評価というと、パッとイメージしやすいのが、「どういうスコアをやるか」というところで。これは最近はツールもノウハウもいろいろ出ているので、あまり悩むことはないんじゃないかなと思っています。LLMが吐いた答えが正しいかどうかを判定する方法ですね。
一番シンプルなのは、完全一致というかたちです。人間はこれを出してくれる。LLMはこれを出す。それが完全に一致するかどうかというやつですが、これをやるとあまりにも厳しすぎて。
例えば、数字や金額を出力する時に、カンマがあるかないかみたいなフォーマットの違いすらもバツになってしまったりするので、このあたりは少し厳しすぎるかなと思います。
その次に考えられるのが部分一致みたいなもので、これは古典的な機械学習や自然言語処理の領域として、ROUGEとかいろいろな便利な指標があるので、そのあたりが使えるんじゃないかなと思います。ほかにも、もっと理論的な方法としてEmbedding、その出力の意味をベクトルで表して、それが近いかどうかを判定したり。
あとは、採点自体をLLMにやらせる方法もあります。LLMに採点させる方法に関しては一番柔軟なのですが、それ自体に改善が必要になるので、個人的にはこのうちの真ん中2つ(単語の部分一致、Embedding)ぐらいでやっていくのがベーシックかなと思います。
このあたりはいろいろな資料が既存で出てたりするので、今日は割愛できればと思います。
(スライドを示して)ここは簡単なのですが、その次が問題です。採点できました。どれぐらい合っているか、まず分かってきましたというところの次のステップとして、うまくいかないところをどういうふうに改善するのかという時に、その原因を突き止めるのが非常に大事なのかなと思っています。
原因を突き止めるという時に、LLM特有のありがちなところを今日は紹介できればと思います。
いろいろなLLMの使い方があると思いますが、すごく一般的なちょっと抽象的な使い方の流れとして、テキストでもPDFでも「Word」でもなんでもいいのですが、なんらかの食わせたい文章のファイルがあります。
それを検索などで取ってきて、プロンプトにしてLLMに食わせて何かを出力させます。この出力において、先ほど期待したい正解があって、その正誤判定をするケースを考えています。
(スライドを示して)この時に注意がいきがちなのが、④と書いてあるLLMの処理のところで。これが一番花形っぽく見えるので、そこに原因を求めたり、そこばかり改善をやりがちかなと思います。
しかし、我々の観測範囲だと意外と(原因が)そこじゃないこともけっこう多いかなと思っていて、それを①②③として今日紹介できればと思います。特に、プロンプトばっかりやりがちというか、プロンプトばっかりいじりがちだけど、プロンプト以外が問題だったりするかなと思っています。
(スライドを示して)1個目が前処理のところで、基本的に今のLLMはテキストしか食えないので、完全にテキストじゃないものを入れる時は、テキストに変換したりして入れるわけですよね。
「LangChain」とかの既存の便利ツールにも、抜き出すツールがいっぱいあるので、使っている方がけっこう多いんじゃないかなと思いますが、あれをよく分析すると、意図しない抜き出し方をしていることもけっこうあるかなと思います。
すごくシンプルな例だと、文字化けしているとか、英単語が謎に分割されているとか、よく見ると「あれ?」となることがけっこうあったりするかなと思います。
(スライドを示して)ちょっと高度なレベルで例に記載しているものとしては、論文で縦割りの文章になった時に、人間、論文を読める人は「こういう順番で読む」とわかるのですが、人間が読むとおりにテキストが抽出されていないこともけっこうあったりします。
順番が食い違うというところの狭間で意図しない答えが作られている可能性があるので、①番の前処理のところで勝負が決まっている可能性があるので書いています。
2点目が検索での欠損というところで、基本的にコンテキストサイズに限界があるので、なんらかの……。呼び方はなんでもいいですが、チャンクに分割して、そこから検索して取ってくることがけっこう多いんじゃないかなと思います。
この時に、正しい答えを作る上で必要な情報が入っているチャンクと、それ以外に分かれるわけですね。その検索の時に、必要なチャンクが選ばれていない場合は、プロンプトをどうがんばっても答えは出ないので、この検索部分でしっかり答えが入っているものが取られているかをしっかりチェックすることが大事かなと思います。
3番目が、結果をまとめる際の欠損・毀損です。先ほどの話で、文章が大きいのでチャンクに分割した場合、基本的にLangChainなどいろいろな既存のツールでも、その結果をまとめる処理はやってくれる、もしくは作ってくれます。
1個1個のチャンクに対して答えが得られました。ということを全部のチャンクに対してやって、最後どうまとめるかというのがあったりします。
この時のまとめ方の戦略がいっぱいあって、map_reduceとかrefineとか、いろいろなものが作られているわけですが、合体する過程でグチャってなったり消えたりしていることがあります。1個1個のチャンクでしっかり取れているんだったらLLMのプロンプトは悪くなくて、まとめ部分が悪いので、まとめる部分を改善しようとなります。
これを見極めるために、LangChainとかだと、最後のまとめられた結果しか返ってこないこともあるので、その途中の中間結果をしっかり出力して確認することが大事かなと思います。
(スライドを示して)というところで3つ挙げました。この3つがどれも違ったら初めてLLMの本丸のところが怪しいかということを見るのがいいんじゃないかなと思っています。
このあたりのチューニングは、LLMに限らず、アルゴリズム改善など一般的な話がかなりあるのかなと思っています。「いろいろ変えると訳がわからないから1個ずつ変更しよう」とか「問題を分解しましょう」とか。あとは、解きたい問題、業務で本番で使う本丸のやつは難しかったりするので、ちょっと恣意的で簡単な例を作って、それでそれどおり動くかをチェックして、だんだん難しくしていくとか。このあたりの一般的なところに取り組めるといいんじゃないかなと思います。
というところで、精度改善をがんばっていければと思うので、みなさん、よろしくお願いします。以上です。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05