めいふの備忘ログ

やったことを忘れないように書きこのしておくのです。

続々(おかわり)・ChatGPTで行う述語項構造解析(gpt-4oを試してみた編)

枕詞/前回からの引き


www.youtube.com

(イメージ動画: 餓狼伝説3 ~遙かなる戦い~ SNK 1995)

ワタクシは再びこの街(プロンプトエンジニアリング界隈)に…(ChatGPT)伝説は終わらない…

202405にgpt-4oがリリースされて、生成AI界隈で(ちょい)話題になっています(202405~202406現在)。ワタクシはこれまで主にgpt-3.5-turboでChatGPTさんの述語項構造解析の性能をテストしていたのですが、gpt-4でもSotaに迫るような劇的な性能向上はしなさそうなので、5記事のみをGPT4-turboで実験して512記事での実験は行っていないんですよね(参照:「続・ChatGPTで行う日本語述語項構造解析:遥かなるプロンプトエンジニアリング編 - めいふの備忘ログ」)。

でも、タイミングよくgpt-4oがリリースされたわけですし、せっかくなので「京都大学ウェブ文書リードコーパス(KWDLC)」のdevの5記事で実験してみたのです。結果は以下のようになりました。右端の列が今回新たに行った gpt-4oでの実験結果です(その他の列は前回までの実験結果です)。

番号 プロンプト名 GPT3.5-turbo(512記事) GPT3.5-turbo(5記事) GPT-4-turb(5記事) GPT-4o(5記事)
1 zero-shot-simple 0.183 0.122 0.148 0.203
2 zero-shot-with-system-message 0.18 0.134 0.214 0.187
3 zero-shot-standard 0.211 0.208 0.275 0.285
4 zero-shot-ss 0.177 0.135 0.172 0.22
5 zero-shot-with-knp 0.262 0.137 0.229 0.307
6 zero-shot-modify-knp 0.406 0.264 0.333 0.408
7 order-sequence 0.216 fail fail 0.457
8 few-shot-simple 0.272 0.1875 0.274 0.348
9 few-shot-with-cheering 0.274 0.247 0.214 0.34
10 few-shot-semantic-search 0.343 0.178 0.36 0.314
11 chain-of-thought 0.228 0.108 0.184 0.25
12 chain-of-thought-mod-knp 0.242 0.295 0.34 0.26
13 paraphrase 0.179 fail fail 0.23
14 reading 0.191 fail fail 0.22
15 summary 実験なし 0.212 実験なし 0.33
16 translation 0.170 fail fail 0.183
17 compare_translation 0.122 fail fail 0.176
- KNP 0.411 0.411 0.411 N/A

え?流れ変わってきてない?

全体的に精度が上がってますね。特にorder-sequenceが伸びています。なんで今まで本気出してくれなかったの? それともこのgpt-4oでの精度は偶然なのかな? 他、few-shot-simpleがfew-shot-semantic-searchを凌いでいます。前回の備忘ログ(リンク)で類似文検索するとfew-shot prompt の精度が上がるかも、みたいなことを書きましたが、それは偶然だったのかもしれません。readingなどの読解系は相変わらずダメっぽいですが。 gpt-4oは(傾向として)gpt-4-turboよりいいように感じられます。

本備忘ログの目的

では、さらに再実験して前回の結論が本当に正しいのか、それともgpt-4oによりChatGPTの新しい可能性が切り開かれているか確かめたいと思います。というわけで、前回の備忘ログで一区切りつけたChatGPTとプロンプトエンジニアリングのお話ですが、少しだけ追加で実験してみることにしました。gpt-4oを用いて「京都大学ウェブ文書リードコーパス(KWDLC)」のdev 512記事で日本語述語項構造解析の実験を行います!

MMR(Meihuno Memorandum Reportage)、緊急出動だッ!

元ネタ情報:
kc.kodansha.co.jp

gpt–4oのコストの話(お金の話)

でも、ちょっと待ってください。gpt-4ってgpt-3-turboに比べてお金がかかるイメージです。全ての17種類のプロンプトの実験を回してン万円とかになったら、それは厳しいのです。ワタクシは貧乏なんです。ワタクシは貧乏なのですよ(2回目)。この世は銭ズラ(銭ゲバ)。LLMを動かすにもゼニがかかるズラ! そこで、gpt-4oで実験を行った場合のコストを見積もってみます。お金かかりすぎそうなら実験は中止にして寝ます。寝てしまいます。

まず、OpenAIのサイトを確認してみましょう。テキスト処理に関しては、以下のお値段です。


https://openai.com/api/pricing/

(テキストのお値段のみを抜粋)>

gpt-4oのお値段表

昔のgpt-4に比べればずいぶん安くなりましたね。gpt-4-turboのお値段の半分です。では、次に17種類のプロンプトのgpt-3.5-turbo時の消費トークン数から512記事を実施した場合のコスト(ドル)を見積もってみました。summaryは512記事での実験をしていないのでわかりません。

プロンプト番号 プロンプト名 inputコスト(トークン数) outputコスト(トークン数) トータルコスト(米ドル)
1 zero-shot-simple 1.167(233337 tokens) 1.158(77219 tokens) 2.325
2 zero-shot-with-system-message 1.383(276617 tokens) 1.211(80738 tokens) 2.594
3 zero-shot-standard 2.211(442163 tokens) 1.42(94682 tokens) 3.631
4 zero-shot-ss 1.309(261824 tokens) 1.152(76799 tokens) 2.461
5 zero-shot-with-knp 1.542(308423 tokens) 1.231(82067 tokens) 2.773
6 zero-shot-modify-knp 1.602(320438 tokens) 1.134(75629 tokens) 2.736
7 order-sequence 13.024(2604834 tokens) 11.564(770946 tokens) 24.588
8 few-shot-simple 2.585(516921 tokens) 1.19(79366 tokens) 3.775
9 few-shot-with-cheering 2.766(553108 tokens) 1.123(74867 tokens) 3.889
10 few-shot-semantic-search 2.551(510171 tokens) 1.215(80995 tokens) 3.766
11 chain-of-thought 6.139(1227709 tokens) 1.131(75398 tokens) 7.27
12 chain-of-thought-mod-knp 9.355(1871007 tokens) 1.177(78476 tokens) 10.532
13 paraphrase 0.818(163620 tokens) 0.878(58550 tokens) 1.696
14 reading 1.558(311642 tokens) 1.895(126308 tokens) 3.453
15 summary unknown unknown unknown
16 translation 1.489(297831 tokens) 2.401(160071 tokens) 3.89
17 compare_translation 2.681(536273 tokens) 3.589(239253 tokens) 6.27


512記事を実験するのに(summaryを4~5ドルとしてどんぶり勘定で)合計で85.649ドルぐらいです。1ドル156円だとすると13362円なりなのです。まあ、こんなもんか。払えないことないですね。ちょっとお高いと思いますが。1万3千円払って全部実験してやっぱり精度はいまいちでしたってなったら泣いちゃいそうです。あと上記の見積もりはgpt-3.5-turbo時のトークン数に基づきます。gpt-4oが「饒舌なLLM」だとすると見積もりコストを上振れすると予想されます。なので、gpt-4oの実験は以下の精鋭7プロンプトに厳選して行うことにします。

プロンプト名 コスト見積もり 実験の意図
zero-shot-simple 2.325 ベースラインとして
zero-shot-starndard 3.631 ベースラインとして
zero-shot-modify-knp 2.736 予備実験で精度が高いので確認
order-sequence 24.58 予備実験の精度高いので確認(本命)
few-shot-simple 3.775 few-shotのベースライン
few-shot-simple-semantic-search 3.766 類似文few-shotの可能性を確かめる
summary 5? summaryの本当の実力が見たい

合計46ドルぐらい。1ドル156円として日本円で7176円か。まあ、このくらいなら、許容範囲です。30ドルだけ追加して実験を回してみましょう。

OpenAIの自分のアカウントに30ドルをプラスして残高50ドルにしました。この戦力で再実験を戦っていきます。



では、京都大学ウェブ文書リードコーパス(KWDLC)」のdev 512記事で実験を回してみましょう! 実験設定や評価方法については前回(続・ChatGPTで行う日本語述語項構造解析:遥かなるプロンプトエンジニアリング編 - めいふの備忘ログ
前々回(ChatGPTさんと行う述語項構造解析:「ChatGPTさんにはゼロ代名詞が見えているのか?」(GPT-3.5-turbo編) - めいふの備忘ログ)の備忘ログをご参照ください。

途中経過(お金の話)

ガーン。50ドルで実験を回したら予算をショートしました。gpt-4oは出力トークンがgpt-3.5に比べて多くなっているようです。

OpenAIのpaymentバランスがマイナスになるの図


ぐぬぬ。もう35ドル追加です。結局、1万円近く使ってしまいました…。LLMの開発はギャンブルかな…?

日本語述語項構造解析の実験結果(gpt-4o)

実験結果をまとめると以下のようになりました。数字は述語項構造解析精度(F値)です。

プロンプト名 GPT3.5-turbo(512記事) GPT-4o(512記事) 所感
zero-shot-simple 0.183 0.249 gpt-4oはgpt-3.5に比べて精度向上
zero-shot-starndard 0.211 0.349 gpt-4oはgpt-3.5に比べて精度向上
zero-shot-modify-knp 0.406 0.437 KNPを超えた
order-sequence 0.216 0.416 gpt-4oはgpt-3.5に比べて大幅精度向上
few-shot-simple 0.272 0.369 gpt-4oはgpt-3.5に比べて精度向上
few-shot-simple-semantic-search 0.343 0.430 やはりsimpleよりsemantic searchの方が精度高い
summary 実験なし 0.289 zero-shot-simpleよりはよいぐらい

観察/まとめ

gpt-3.5よりgpt-4oの方が精度いいですね(小並感)。でも、結局、gpt-4oでもSOTA(F値70とか)には至りませんね。order-sequenceでプロンプトを細かくChatGPTさんとやりとりをした方が、一括でやりとりするより(zero-shot-stardard)よりも精度がよくなりました。なぜなのか? 謎です(要調査)。そして、few-shot promptでは、ランダムに例を選ぶよりsemantic search(類似文検索)した方が精度いいです。few-shot promptには、いやさ、プロンプトエンジニアリングには、まだ述語項構造解析というタスクに対して希望が残っているということです(パンドラの箱かもですが)。

結びの詞

    ∧  ∧
  (  ・ω・)
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
                            
  <⌒/ヽ-、___
/<_/____/

まあでもgpt-4oでもこの程度です。gpt-5が出たら起こしてください。おやすみなさい。