乱流:コード向けに指示調整された大規模言語モデルの体系的かつ自動的なテスト

我々は、コード生成向けに指令チューニングされた大規模言語モデル(LLM)の正しさおよびロバスト性を体系的に評価するための手法を提示する。そのために、新しいベンチマーク「Turbulence」を導入する。Turbulenceは、多数の自然言語による「質問テンプレート」から構成されており、それぞれがパラメータ化されたプログラミング問題として定義されている。これにより、同一の問題構造をもとに、多様な形で質問を生成することが可能となる。各質問テンプレートには、LLMが返したコードの解答が正しいかどうかを判定する「テストオラクル」が対応付けられている。この仕組みにより、一つのテンプレートから、非常に類似したプログラミング問題の「近傍(neighbourhood)」を生成し、それぞれに対してLLMが返す結果の正しさを評価できる。これにより、LLMのコード生成能力におけるギャップ、特に「異常(anomalies)」と呼ばれる現象——すなわち、近傍内のほぼすべての問題に対して正しく解答できるが、特定のパラメータ設定では失敗する——を特定することが可能となる。本研究では、OpenAI、Cohere、Metaの5種類のLLMを対象とし、それぞれ2つの温度設定(temperature configuration)で実験を実施した。その結果、Turbulenceは、LLMの推論能力における多岐にわたる欠陥を明らかにすることができた。これは単に「LLMが時折誤ったコードを生成する」という事実を指摘するにとどまらず(これは既に知られている事実)、むしろ、ある近傍内の一部の問題には正しく対応できるが、全体としての一般化能力に欠けるケースを体系的に特定するという点で、ロバスト性の問題を効果的に浮き彫りにする。さらに、誤ったコードを返す際のLLMの典型的な誤りパターンについて、実データと具体例を提示することで、その原因や特徴に関する洞察を提供する。