核心概念
大規模言語モデル(LLM)を用いたコード翻訳において、ソース言語からターゲット言語への変換途中に、他のプログラミング言語を中間言語として挟む「逐次中間言語翻訳」を用いることで、翻訳精度が大幅に向上することを示した。
要約
InterTrans: 中間言語翻訳を活用したLLMベースのコード翻訳
本稿は、ソースコードを異なるプログラミング言語間で自動的に変換する技術であるコード翻訳に関する研究論文を要約したものです。
コード翻訳は、レガシーシステムの近代化、クロスプラットフォーム互換性の確保、パフォーマンス向上などに不可欠な技術である。
近年、大規模言語モデル(LLM)がソフトウェアエンジニアリングの様々なタスクで有望な成果を示している。
しかし、LLMベースのコード翻訳、特にオープンソースLLMを用いた場合、その精度は実用レベルには達していない。
多くのエラーは、ソース言語とターゲット言語間の構文や意味の違いをLLMが十分に理解していないことに起因する。
本稿では、ソース言語からターゲット言語への変換途中に、他のプログラミング言語を中間言語として挟む「逐次中間言語翻訳」を用いることで、LLMベースのコード翻訳の精度を向上させる手法を提案している。
例えば、PythonからJavaへの変換の場合、Python→C++→Javaというように、一度C++に変換してからJavaに変換する。
この手法は、多言語で学習されたLLMが持つ、複数のプログラミング言語に対する理解能力を活用するものである。