日本語によるコード生成能力の正確な評価に向けて

近年，大規模言語モデル(LargeLanguageModels,LLM)の飛躍的な発展により，プログラミング関連タスクにもLLMを活用する動きが活発化している[1,2,3]．コードを入力としたコメント生成，あるプログラミング言語から他のプログラミング言語へのコード翻訳など，様々なタスクが存在する[4]が，中でも自然言語の説明文，あるいはコードの一部を入力として続くコードを生成するタスクにおいては，数多くのベンチマークが提案されている[5,6,7]．しかしながら，これらのベンチマークでは，コード生成を指示するタスク指示文が英語で記述されていることが多く，特に日本語によるコード生成能力はPython以外のプログラミング言語では十分に検証されていない．本研究では，日本語によるコード生成能力を様々なプログラミング言語で評価するために，新たなデータセットJMultiPL-Eを構築した．具体的には，複数のプログラミング言語に対応したコード生成ベンチマークであるMultiPL-Eを日本語化することにより，JavaおよびC++の評価データセットを作成した(図1)．さらに作成したデータセットを用いて，タスク指⽰⽂//引数で与えられた文字列の長さを返す//>>>strlen((“abc”))//(3)longstrlen(std::stringstring){出⼒例関数シグネチャassert(strlen("x")==1);テストケースassert(strlen("apple")==5);日本語の継続事前学習が日本語でのコード生成能力にどのような影響を及ぼすのかを調査した．調査の結果，どのプログラミング言語やモデルにおいても英語で指示した際にスコアが高くなった一方で，日本語で継続事前学習をしたモデルでは，日本語と英語の指示文の違いによるスコアの差が縮小し，一部のプログラミング言語では継続事前学習をしていないモデルを上回る日本語でのコード生成能力を示すことが明らかになった．なお，本研究で構築したJMultiPL-Eは今後のコード生成モデルの発展のため，HuggingFaceHub上に公開する1）．