【研究日誌】しばらくぶりの研究日誌更新…そしてGPT-4.5での痛い出費(2025/3/2)

研究日誌

お久しぶりです。仕事が多忙を極め、研究日誌の更新が2週間も滞っておりました。申し訳ありません。

さて、先日GPT-4.5のプレビュー版が発表され、APIも公開されたとのことで、早速触ってみたのですが…嬉しい誤算ならぬ、悲しい誤算がありました。

OpenAIから何通かメールが届いていることに気づき、不審に思い開いてみると、APIの課金通知…。慌ててBilling historyを確認したところ、なんと約50ドルも消費していました!

どうやらGPT-4.5は、4oの15〜30倍のコストがかかるようです。マイナーバージョンアップだからと油断していました。

ChatGPT 4.5(GPT-4.5)とは?使い方や料金、提供開始した機能を解説!! | AI総合研究所
ChatGPT 4.5(GPT-4.5)とは何か、基本性能や使い方、価格体系を解説。GPT-4oを凌駕する性能を持つ最新モデルで、教師なし学習、高いEQ、事実性向上が特徴。

たまたま連続で何百回と処理を実行していたのですが、トークン数だけでなく、1回あたりのアクセス単価もかなり高い印象です。高度な推論が必要な場合以外は、むやみに使わない方が良さそうですね…。

想定外の出費にもめげず…AIニュースまとめ機能を大幅改善!
主な変更点は以下の通りです。

1.ニュース記事ピックアップ処理の粒度を調整

以前は、信頼性の高いGPT-4oを使って、5件の記事をまとめてピックアップしていました。しかし、トークン数の問題で精度が担保できないことがありました。

そこで、1回の処理粒度を5件から1件に変更し、ピックアップに値するなら「True」、しないなら「False」を回答させる方式に修正。これにより、ほぼ完璧な精度を実現できました。ただ、厳密になりすぎてTrue判定が少なくなるという新たな課題も…。

② ニュース記事要約処理をループ処理に変更

ピックアップした記事の要約は、以前は全件一括処理していました。しかし、件数が多いと品質が低下する問題がありました。

そこで、こちらも1件ずつループ処理するよう修正しました。

③ 使用するモデルをGPT-4o-miniに変更

上記①②の修正で精度は向上したものの、処理時間が長くなってしまいました。そこで、モデルをGPT-4o-miniに変更したところ、処理速度が大幅に改善されました。1件ずつしか処理をしなくなったことで、処理内容も単純になり、軽量モデルでも精度が担保できるようになったことが、大きな要因となりました。

④ まとめ記事のデザインを改善

今までは、引用元のURLをリンクとして貼るだけでしたが、埋め込みURLに変更しました。これにより、引用元の画像も自動表示され、視覚的にも分かりやすくなったと思います。

また、ブログ形式の文章生成には、以前から文章表現が得意なGeminiを使用していましたが、出力結果が安定しないという問題がありました。今回は、Few-Shot(出力例を提示する)ことで、この問題を改善しました。

コーディング例)
  "【ブログの記事の出力見本】\n"
"<h1>2025年3月1日公開のAI関連ニュースまとめ</h1>\n"
"<h2>最新ニュース</h2>\n"
"<h3>タイトル</h3>\n"
"<p>本文。</p>\n"
"<p>引用元:xxxxx.com</p>\n"
"<p><a href=\"https://xxxxx.com/archives/xxxxx\" target=\"_blank\" rel=\"noopener\">\"https://xxxxx.com/archives/xxxxx</a></p>"

⑤ニュース記事のピックアップと要約のモデルをGeminiに変更

GPT-4.5の課金トラブルがトラウマになったので、さらに安いモデルでも対応できないか挑戦してみました。本当は「2.0 Flash-Lite」まで持って行きたかったのですが、Geminiのアウトプットの不安定さに翻弄され、今日のところは「2.0 Flash」止まりでした。。。
 
具体的に苦労したチューニングは以下の2点です。

 1.記事の一覧ページをピックアップ対象に含めない

Google Custom Search APIが記事の一覧ページが検索結果として含まれることが多いのですが、今まではそれをピックアップ対象からはずすことが、非常に困難でした。これはGeminiだけの問題ではないのですが、どんなに事細かく一覧ページの説明をしても、どのモデルも正しく理解することはできませんでした。悪戦苦闘の末、以下のプロンプトで解決しました。

"行ごとに異なるニュースが記載されている記事を「記事一覧」と判断して、ピックアップ対象から外す。\n"
"トップページ・階層ページ・カテゴリページなど、urlが記事の詳細ページと思われない場合はピックアップ対象から外す。\n"
"URLに「keywords」が含まれているなど、検索結果や類似ページを一覧表示していると思われるページはピックアップ対象から外す。\n"

一覧記事とはどういうものなのか概念を伝えるのではなく、よりデータの構成に着目して指示することが重要でした。AIもしょせんプログラムだということを実感した出来事でした。

 2.記事の本文以外は要約しない。

Geminiは記事の本文を補足する情報として、タイトル・スニペット・URLなどを一緒に渡すと、プロンプトの指示を無視して、渡された情報をすべて含んだ形で要約するので、本文だけをプロンプトに渡すよう修正しました。

 3.初心者狙いの怪しげな有償セミナーや教育プログラムを除外する。

これも微妙な調整が難しく、フィルタが厳しすぎると有用な記事をピックアップしなくなってしまうので、いったん以下のような形で落ち着きました。これはまだ改善の余地ありだと思っています。

 初心者や中小企業向けの有償のイベント・講習・サービスの記事はピックアップしない。

まとめ

今回は、GPT-4.5の思わぬ高額請求に驚きつつも、AIニュースまとめ機能の改善に取り組みました。特に、モデルの選定やプロンプトエンジニアリングの重要性を改めて実感した1日でした。

コメント

タイトルとURLをコピーしました