Turbulence: Systematically and Automatically Testing Instruction-Tuned Large Language Models for Code

要約

新しいベンチマークである Turbulence を介して、コード生成のための命令調整された大規模言語モデル (LLM) の正確性と堅牢性を体系的に評価する方法を紹介します。
Turbulence は、大規模な自然言語 $\textit{質問テンプレート}$ のセットで構成されており、それぞれがプログラミングの問題であり、さまざまな形式で質問できるようにパラメータ化されています。
各質問テンプレートには、LLM によって返されたコードの解決策が正しいかどうかを判断する $\textit{test oracle}$ が関連付けられています。
したがって、単一の質問テンプレートから、LLM に非常によく似たプログラミングの質問を $\textit{neighbourhood}$ 尋ね、各質問に対して返された結果の正確さを評価することができます。
これにより、LLM が近傍内の $\textit{ほぼすべて}$ の質問を正しく解決するが、特定のパラメータのインスタンス化に失敗する $\textit{異常}$ など、LLM のコード生成能力のギャップを特定できます。
OpenAI、Cohere、Meta の 5 つの LLM に対する、それぞれ 2 つの温度構成での実験を紹介します。
私たちの調査結果は、全体的に、Turbulence が LLM 推論能力のギャップを明らかにできることを示しています。
これは、LLM が時々間違ったコードを生成することを単に強調するだけではありません (これは驚くべきことではありません)。LLM が近傍の一部の問題を解決できるが、近傍全体を解決するために一般化することができないケースを体系的に特定することによって、私たちの方法は次のような場合に効果的です。
$\textit{堅牢性}$ の問題を強調します。
ここでは、LLM が間違ったコード結果を返すときに犯す間違いの種類を明らかにするデータと例を紹介します。

要約(オリジナル)

We present a method for systematically evaluating the correctness and robustness of instruction-tuned large language models (LLMs) for code generation via a new benchmark, Turbulence. Turbulence consists of a large set of natural language $\textit{question templates}$, each of which is a programming problem, parameterised so that it can be asked in many different forms. Each question template has an associated $\textit{test oracle}$ that judges whether a code solution returned by an LLM is correct. Thus, from a single question template, it is possible to ask an LLM a $\textit{neighbourhood}$ of very similar programming questions, and assess the correctness of the result returned for each question. This allows gaps in an LLM’s code generation abilities to be identified, including $\textit{anomalies}$ where the LLM correctly solves $\textit{almost all}$ questions in a neighbourhood but fails for particular parameter instantiations. We present experiments against five LLMs from OpenAI, Cohere and Meta, each at two temperature configurations. Our findings show that, across the board, Turbulence is able to reveal gaps in LLM reasoning ability. This goes beyond merely highlighting that LLMs sometimes produce wrong code (which is no surprise): by systematically identifying cases where LLMs are able to solve some problems in a neighbourhood but do not manage to generalise to solve the whole neighbourhood, our method is effective at highlighting $\textit{robustness}$ issues. We present data and examples that shed light on the kinds of mistakes that LLMs make when they return incorrect code results.

arxiv情報

著者 Shahin Honarvar,Mark van der Wilk,Alastair Donaldson
発行日 2023-12-22 17:29:08+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.SE パーマリンク