CodeLLM事前学習時の評価データ混入への対策

大規模言語モデル（LLM）を開発するにあたって、その適切かつ公正な性能評価のために、ベンチマークのテストデータと同じものが学習データに含まれること（混入）を防ぐ必要があり、そのための対策について議論されている[11,25]。一般の言語モデルに加えて、ソースコードの生成・補完・修正・解釈などに特化したモデル（以降ではCodeLLMと呼ぶ）の開発が盛んになっている[21,6]。CodeLLMの評価セットとしてさまざまなものが提案されているが、そのデータ混入についての議論は限定的である[24]。CodeLLMの学習や評価においては、以下のような特徴がある。•コード生成、翻訳、計算問題、コードの説明など、評価データの種類が多岐にわたる。•コードは自然言語よりも構文の厳格さが求められる。自然言語の質問応答のように、評価データと学習データの類似性を意味的な近さで測ることは適切でない。•評価データの正解例の中には、“returnx+y”のように、非常に短く一般的なコードがある。こうした文字列を含むものをすべて混入とみなすと、無害な学習データを失う可能性がある。の例はMBPP[22]より。•一般のLLMの学習データがwebページなど雑多なものであるのに対し、コードの学習データはGitHubのレポジトリのように比較的均質であり、レポジトリ名、プログラミング言語などのメタデータを活用しやすい。本論文では、図1に示すようなCodeLLMにおけるデータ混入の問題に取り組んだ結果として、評価に用いたデータの調査と、学習データとの一致の実態、混入の除去の方法について述べる。