ChatGPT(GPT-3.5とGPT-4)の性能が変化している?スタンフォード大学とカリフォルニア大学バークレー校の研究チームが調査
3つの要点
✔️ 大規模言語モデル(GPT-3.5とGPT-4)の性能が短期間で大きく変わる可能性を示唆。
✔️ 大規模言語モデルの性能の中長期的な変化を理解するため、継続的な調査が必要。
✔️ 大規模言語モデルの性能変化に関する研究促進のため、本実験の評価データとChatGPTのレスポンスを公開。
How is ChatGPT's behavior changing over time?
written by Lingjiao Chen, Matei Zaharia, James Zou
(Submitted on 18 Jul 2023)
Comments: Published on arxiv.
Subjects: Computation and Language (cs.CL); Artificial Intelligence (cs.AI); Machine Learning (cs.LG)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
概要
2022年にChatGPTがリリースされて以降、GPT-3.5とGPT-4は、最も広く使用されている大規模言語モデルです。AI-SCHOLARの読者の皆さんも、すでに様々な場面で利用されているかもしれません。しかし、これらのモデルがいつどのように更新されるかはOpenAIから発表されていません。そのため、大規模言語モデルを大規模なワークフローやサービスに組み込むことにリスクを感じている人たちが多くいます。中には、性能が落ちていると明確に感じている人たちもいるようです。
そこで、今回紹介する論文では、2023年3月と2023年6月のバージョンのGPT-3.5とGPT-4を4つのタスク(a.数学の問題解決、b.センシティブな/危険な質問への回答、c.コードの生成、d.視覚的推論)で評価し、GPT-3.5とGPT-4の性能がどのように変化しているのかを検証しています。下図は各タスクとその検証結果の概要です。
検証の結果、全体として、大規模言語モデルの性能が比較的短い期間で大幅に変わる可能性があることを示しており、大規模言語モデルの品質を継続的に監視する必要性を強調しています。
タスク1:数学の問題解決
この論文では、与えられた整数が素数であるかどうかを判断するタスクで数学の問題解決能力の変化を検証しています。人間が素数であるかどうかを判断することは比較的容易であり、その結果が明確であるため、人間が理解しやすく、性能を評価するのに適しています。また、このタスクが推論を必要とします。素数かどうかを判断するためには、その数を他のすべての数で割ってみて、割り切れないかどうかを確認するなど、複数のステップを論理的に考える必要があります。さらに、このような推論能力は、数学問題を解決するためだけでなく、一般的な問題解決能力を評価するのにも適しており、大規模言語モデルの包括的な性能を評価することにも適しています。
結果は下図のようになっています。下図(a)に示されているように、GPT-4のAccuracyは97.6%(3月)から2.4%(6月)へと大幅に低下し、GPT-3.5は7.4%(3月)から86.8%(6月)へと大きく改善しています。また、下図(b)に示されているように、GPT-4の回答は非常に簡潔になっています。生成される平均的な文字数は821.2文字(3月)から3.8文字(6月)へと大幅に減少しています。一方で、GPT-3.5の回答の文字数は約40%増加しています。驚くことに、このようなシンプルなタスクにおいても大規模言語モデルの性能が大幅に変動していることがわかります。
このような大きな違いが生じている可能性の一つとして、この論文では「Chain-of-Thought」(思考の連鎖)を挙げています。上図(b)のサンプルを見てみると、GPT-4(3月ver.)は、思考の連鎖の影響を大きく受けていることがわかります。整数17,077が素数かどうかを判断するために、まず、タスクを4つのステップに分解し、17,077が偶数かどうか、17,077の平方根を見つける、それより小さいすべての素数を取得する、17,077がこれらの数のいずれかで割り切れるかどうかをチェックする、といった手順を踏んでいることがわかります。これらのステップを実行し、最終的に17,077が素数であるという正しい答えを導いています。しかし、GPT-4(6月ver.)では思考の連鎖が機能していないように見えます。
一方で、GPT-3.5では真逆の変化が見られています。GPT-3.5(3月ver.)では、まず「No」という答えを生成し、その後で推論ステップを実行する傾向にあります。一方、GPT-3.5(6月ver.)では、この問題が解決し、まず推論ステップを書き出し、最終的に「Yes」という正しい答えを生成しているようです。
タスク2:センシティブな/危険な質問への回答
大規模言語モデルに対してセンシティブな質問をすると、社会的なバイアス、個人情報、有害なテキストなどの生成し、利用者に悪影響を及ぼすことが知られています。したがって、この論文では、大規模言語モデルがセンシティブな質問に対してそのように反応するのか性能は変化しているのかを検証しています。
検証結果は下図のようになっています。GPT-4では、センシティブな回答をする割合であるAnswer Rateが21.0%(3月)から5.0%(6月)へと減少していますが、一方でGPT-3.5は、2.0%(3月)から58.0%(6月)へと増加しています。
また、GPT-4の生成するテキストの文字数は、600以上から140程度に減少しているという結果もあります。GPT-4では、回答を拒否する際に、説明することをやめ、簡潔に回答するようになっています。上図(b)のように、3月では、拒否の理由を説明していますが、6月では「Sorry, but I can't assist with that」のみを回答しています。これは、GPT-3.5でも同様の傾向が見られています。これらの大規模言語モデルがより安全になった一方で、特定の質問に対する回答を拒否する理由については説明がされなくなっています。
タスク3:コードの生成
コードの生成も大規模言語モデルの代表的な用途の一つです。コードの生成に関しては、多くのデータセットが存在していますが、それらを使って大規模言語モデルのコードの生成能力を評価すると、データ汚染の問題に直面する可能性があるため、この論文では新しいデータセットを作成しています。LeetCodeというオンラインプラットフォームから「簡単」というカテゴリーの最新の問題50問をデータセットとして選んでいます。これらは、解答と解説が2022年12月に初めて公開されたものであり、大規模言語モデルの未知の問題に対応する能力を評価するのに適しています。大規模言語モデルが生成したコード(つまり、問題の解答)はLeetCodeのオンラインジャッジシステムに送信され、自動的に評価されています。そして、オンラインジャッジがLLMが生成したコードを受け入れた場合、つまりコードがエラーなく実行でき、期待される結果を得られた場合、そのコードを「Directly Executable」としています。結果は下図のようになっています。
Directly Executableの数は、3月から6月にかけて減少しています。上図(a)に示されているように、3月にはGPT-4の生成したコードのうと50%以上が実行可能でしたが、6月には10%にまで減少しています。GPT-3.5も同様の傾向があります。また、両モデルともに冗長性がわずかに増加しています。
考えられる主な原因として、この論文では、6月のバージョンが生成したコードに「余分なコードではないテキスト」が追加されたことが挙げています。大規模言語モデルが生成したコードの前後に「'python」と「'」が追加され、コメントも増えています。この余分なテキストやコメントがコードを実行不能にしている可能性があります。特に「'''python」と「'''」がコードの前後に追加されたことで、トリプルクォート(""")となり、それがPythonのコードとしては実行不能となってしまいます。トリプルクォートはPythonでは文字列を定義するために使われる記号で、コードとして実行される部分ではないため、この記号が追加された場合、その部分のコードは実行され無くなっていると考えられます。また、このように「余分な」テキストやコメントがコードの一部として含まれていることは、特に大規模なソフトウェアパイプラインの中でそのコードが使用されている場合、問題の特定が難しくなることも指摘しています。
タスク4:視覚的推論
これまでのタスクと異なり、より抽象的な推論を必要とする、視覚的推論(視覚的な情報から論理的な結論を導き出す能力)に関する検証しています。ここでは、ARCデータセットを用いて検証しています。ARC(Abstraction and Reasoning Corpus)データセットは、人間の抽象的思考や推論能力を機械学習モデルで試すためのデータセットです。このデータセットによるタスクでは、入力のパターン(これを「入力グリッド」と言います)を見て、それに対応する出力パターン(これを「出力グリッド」と言います)を生成することが求められます。
下図(b)はサンプルです。ある色や形などの視覚的な情報を大規模言語モデルに入力すると、そこからパターンを見つけ出し、3x3の色の配列が出力されます。このタスクでは、ARCデータセットの467のサンプルを使って、正解率を評価しています。
下図(a)に示されているように、GPT-4とGPT-3.5の両方でわずかな性能の向上が見られています。しかし、全体的な性能が向上しているにもかかわらず、下図(b)のようにGPT-4(3月ver)で正解していたものが、GPT-4(6月ver)では不正解になっているものもあります。つまり、全体的な性能に大きな変化はなくても、細かな変化が隠れており、特に重要なアプリケーションに対しては、注意深くモニタリングする必要がありそうです。
まとめ
この論文では、GPT-3.5とGPT-4の性能が短期間で大幅に変わっている可能性を示しています。このように大規模言語モデルの性能は安定的ではないため、サービスなどに組み込む場合は、継続的なモニタリングをした上で性能の変動を考慮した設計が求められるでしょう。この研究チームでは、今後もGPT-3.5、GPT-4などの大規模言語モデルを定期的に評価するとしています。なお、今回の研究による評価データとChatGPTの回答は、Githubで公開されています。
この記事に関するカテゴリー