ソフトウェア高速化を対象としたLLMとSLMの言語処理特性

2022年11月にChatGPTが公開されたことをきっかけに、さまざまな企業による高性能なLLMの公開と提供が現在に至るまで盛んに行われている[1]。LLMでは数百億を超えるパラメータを持つことが多いが、最近では、特定ドメインに向けて再学習した比較的パラメータ数の少ないSLM（ドメイン特化SLM、以降単にSLM）を利用することがさまざまな領域で増加している[2][3]。しかしながら、SLMの評価は、LLMの評価手法を適用したときにどれくらいの性能劣化が起こるかという側面で検証されることが多く、SLM独自の特性についてはあまり明らかにはなっていない。例えば、コード補完などの一部のタスクではSLMとLLMで性能差が無いという報告もある[4][5]が、タスク自体が複雑でないことが主な要因で性能差が出なかったと考えられている。また、LLMでは自然言語のみならずプログラミング言語も扱うこともでき、ソースコードを改善する応用研究も盛んである[6]。このようなソースコードの改善のうち、特に高速化（実行時間の短縮）は、同等の資源のまま計算できる量を増大させることができるため、省エネルギー・低コスト化などの面で重要な改善である。実際にLLMを用いると、例えば付録Aのような高速化事例を得ることができる。そこで本研究では、「競技プログラミングコンテストに提出されたコードを高速化するように書き換える」というタスクを与えてSLMとLLMを比較し、特にコードの実行可能性と実行時間の短縮量という2点の特性について、比較と評価を実施した。その結果、SLMは汎用LLMと異なる長所特性を発揮することを発見した。この論文の貢献は次に示すとおりである。•ソースコードの高速化を題材とし、言語モデルの高速化能力を定量的かつ多面的に評価できる手法を提案した•ソースコードの高速化能力において、SLMがLLMに比べ高速化能力は劣るがコードを壊しにくい長所を発揮する事例を発見した•SLMとLLMを組み合わせるとLLMのみと比較して高速化能力を向上できることを発見した