3.5K Views
August 23, 24
スライド概要
【JDLA後援】 DL/ML CAMP by株式会社松尾研究所にて発表
https://connpass.com/event/327400/
株式会社松尾研究所のスライドを共有します
DL/ML CAMP by 株式会社松尾研究所 LLMはぎなた読みを生成できるのか? - promptfooを用いた生成 AIテストシニアデータサイエンティスト 長谷 航記 ©MATSUO INSTITUTE, INC.
自己紹介 職務経歴 2015~2020:日系メーカーにて機械学習の研究開発 2020~2024:日経メーカーにて機械学習の研究開発 2021~ :ビジネスマン向けDS教育ベンチャー 2024~ :松尾研究所にてAI技術開発 松尾研究所での業務 長谷 航記 松尾研究所 シニアデータサイエンティスト 入社2024年4月1日 生成AIを活用したプロダクト開発、業務変革 趣味 仕事、Kaggle(chome0910🥈x1)、車・バイク ©MATSUO INSTITUTE, INC. 2
みなさん、 ぎなた読みって知っていますか? ©MATSUO INSTITUTE, INC. 3
ぎなた読みとは 精選版 日本国語大辞典より(引用) ぎなた-よみ 【名詞】 ( 「弁慶が、なぎなたを持って」と句切るべきところ を「弁慶がな、ぎなたを持って」と誤って句切りを付けて読 んだという昔話から ) 文の句切りを間違えて読むこと。 → 同じ読み方でも区切り方を変えると 違った意味になる 例) ねえちゃんとふろはいった? 弊社Slackでの一幕 ©MATSUO INSTITUTE, INC. 4
クイズです! 以下のひらがなに対し、2通りの解釈を考えてください。 すずきさんじゅうななさい ©MATSUO INSTITUTE, INC. 5
クイズです! 以下のひらがなに対し、2通りの解釈を考えてください。 すずきさんじゅうななさい ● 鈴木さん17歳 ● 鈴木37歳 ©MATSUO INSTITUTE, INC. 6
クイズです! 以下のひらがなに対し、2通りの解釈を考えてください。 きょうじゅうにみたい ©MATSUO INSTITUTE, INC. 7
クイズです! 以下のひらがなに対し、2通りの解釈を考えてください。 きょうじゅうにみたい ● 今日中に見たい ● 教授ウニみたい ©MATSUO INSTITUTE, INC. 8
ここで疑問が湧き上がります LLMはぎなた読みを生成できるの? ©MATSUO INSTITUTE, INC. 9
LLMの出力メカニズムとぎなた読み生成イメージ 東京 LLMの出力メカニズム 日本 これまでの入出力を加味して次の単語の生起確 率を予測し文章を生成している LLMによるぎなた読みの生成イメージ プロンプトと最初の解釈(尤もらしい変換案)から 別の解釈を文頭から順番に予測し、条件を満た す回答を生成する 結構難しいのでは? ©MATSUO INSTITUTE, INC. 京都 の LLM 首都 は 東京 入力 出力 プロンプト例 「以下のぎなた読みの解釈を 2通り適切に変換して答えよ :すずきさんじゅうななさい」 ぎなた読みが成立する条件 ● 意味が異なること ● 読み方は同じであること 10
ぎなた読みを LLMが生成できるのかの検証 ひらがなの短文が与えられた時に2通りの解釈を生成できるかを検証 入力:プロンプト +ひらがな 出力:2通りの変換結果 すずきさんじゅうななさい ● 鈴木さん17歳 ● 鈴木37歳 ©MATSUO INSTITUTE, INC. 11
LLMの評価ツール promptfoo 複数のプロンプト、LLM、テストケースを組み合わせた自動実験が可能なLLM評 価管理のためのライブラリ プロンプト LLMモデル (RAG) テスト 特徴 ● 多様なLLMで同時検証可能 ○ API, Local LLM ● 多様な評価方法 ○ 一致、含有、LLM as a judge ● GUIによる評価結果の確認 (localhostで安心) https://www.promptfoo.dev/ ©MATSUO INSTITUTE, INC. 12
promptfooによるLLM評価の流れ ● ● ● ● プロンプトの作成 モデルの選定 評価データの作成 promptfooconfig.yamlの作成 ©MATSUO INSTITUTE, INC. 13
promptfooによるLLM評価の流れ:プロンプトの作成 ● prompts.txtに以下の内容を記載 ○ 今回はzero-shotのプロンプトを作成 以下に、ぎなた読みが可能なひらがなの短文が入力されます。この文を2通りに解釈し、そ れぞれ適切な漢字やカタカナに変換して出力してください。出力形式は以下の通りです: * 解釈1: [解釈1の変換後の文章] * 解釈2: [解釈2の変換後の文章] 注意事項: - 余計なスペースや記号を追加せず、簡潔に出力してください。 - 変換後の文章は入力されたひらがなと同じ読み方になるようにしてください。 - 変換は一般的に使われる表現で行ってください。 入力文(ひらがな): {{input}} ©MATSUO INSTITUTE, INC. 14
promptfooによるLLM評価の流れ:モデルの選定 ● promptfooconfig.yamlのprovidersの部分に比較するモデルを記載 ○ 今回はOpenAI, Anthropic, Vertex AIの松竹梅モデルを検証 ■ vertex:gemini-ultraは都合により除外 使えるモデルや環境変数の設定等は以下を参照 https://www.promptfoo.dev/docs/providers/ ©MATSUO INSTITUTE, INC. 15
promptfooによるLLM評価の流れ:評価データの作成 ● promptfooconfig.yamlか別ファイルに切り出してどう評価するかを記載 ○ 用意した2つの変換後の文章が両方含まれている場合を正解と定義 評価データの作成 ● ネットから取得した29件のぎなた読み promptfooでの評価の定義 ● vars:プロンプト内の入力変数のデータ ● assert:評価の定義 ○ type:評価タイプ ○ value:正解の値 いろいろな評価方法や定義の仕方に関しては以下を参照 https://www.promptfoo.dev/docs/configuration/expected-outputs/ ©MATSUO INSTITUTE, INC. 16
promptfooによるLLM評価の流れ: promptfooconfig.yamlの作成 ● promptfooconfig.yamlに実験条件を記載する ©MATSUO INSTITUTE, INC. 17
promptfooによる評価の実行 ● 評価の実行(*):npx promptfoo eval ● GUIによる結果の確認(*):npx promptfoo view (*) project内にpromptfooをインストールした場合 コンソールでも以下の出力を確認可能 ©MATSUO INSTITUTE, INC. 18
GUIイメージ ©MATSUO INSTITUTE, INC. 19
結果 🥇 GPT-4o (11/29) 🥈 Claude 3.5 sonnet (6/29) 🥉 Claude 3 Opus, Gemini 1.5 pro (3/29) 出力結果の印象 ● GPT-4oはかなり正しい結果を出力できており、変換のバリエーションを許す とより点数が上がる ● 元の文章と違う文章を生成する場合も結構ある ○ 鈴木27歳 ● 2つの解釈で全く同じ文章を出力するケースも ©MATSUO INSTITUTE, INC. 20
まとめ ● zero-shotでぎなた読み生成はなかなか難しい ○ few-shotや出力の見直し等を入れるとどうなるか? ● promptfooは複数のLLMの出力テストに最適 ○ promptを変えた場合の比較も可能 ○ キャッシュ機能もあるので余計なコストも削減可能 ありがとうございました! ©MATSUO INSTITUTE, INC. 21
©MATSUO INSTITUTE, INC.