gpt-3.5-turbo-0125の脆弱性?をついたかもしれない話
日本語の短文から情報を抽出するクエリをChatGPT APIで走らせていました。プロンプトの詳細は記載しませんが、何か日本語の短文(10万件くらいある)に対して分析しやすいようにまとめる指示を詳細に書いたもので、json形式で出力するように指示したものとイメージしてもらえれば大丈夫です。
GUIでは正常に動き、試しに100件ほど投げてみた所、正常に動きました。それではと10万件分の回答結果を得ようとした所、1-2万件を返したあたりで次のようなエラーが返ってきました。
500 {‘error’: {‘message’: ‘Failed to create completion as the model generated invalid Unicode output. Unfortunately, this can happen in rare situations. Consider reviewing your prompt or reducing the temperature of your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. …(略)… , ‘type’: ‘server_error’, ‘param’: None, ‘code’: ‘invalid_model_output’}} …(略)… |
とりあえず温度を下げるようにとあるので、温度を0やら0.1変えてみてもこのエラーは起きました。何が起きているのかともう少しエラーを真面目に読んでみると「不正なユニコード文字列を吐き出したのでエラーになりました」とあります。確かにjsonの文字コードをUnicodeで出力することは普通ですが、それでサーバーサイドでgenerated invalid Unicodeとなるのは不思議です。
一番不可解なのはgpt-3.5-turbo-1106(一つ前のバージョンのモデル)やgpt-4-turbo-2024-04-09ではほぼ問題なくできたことです。OpenAIにも質問を投げたので、もし何か詳細がわかったら追記します。