Skip to main content
QUICK REVIEW

[論文レビュー] CoTran: An LLM-based Code Translator using Reinforcement Learning with Feedback from Compiler and Symbolic Execution

Prithwish Jana, Piyush Jha|arXiv (Cornell University)|Jun 11, 2023
Software Engineering Research被引用数 4
ひとこと要約

CoTran は、コンパイラと記号実行からのフィードバックを用いた強化学習を用いる、新しい LLM ベースのコード翻訳ツールである。コンパイラのフィードバック(コンパイルの正確性)と記号実行のフィードバック(関数的同等性)を統合することにより、CoTran は Python から Java への翻訳において、48.68% の関数的同等性正確度と 76.98% のコンパイル正確度を達成し、PLBART-base や CodeT5 ベースのモデルを含む先行手法を上回った。

ABSTRACT

In this paper, we present an LLM-based code translation method and an associated tool called CoTran, that translates whole-programs from one high-level programming language to another. Existing LLM-based code translation methods lack training to ensure that the translated code reliably compiles or bears substantial functional equivalence to the input code. In our work, we fine-tune an LLM using reinforcement learning, incorporating compiler feedback, and symbolic execution (symexec)-based testing feedback to assess functional equivalence between the input and output programs. The idea is to guide an LLM during fine-tuning, via compiler and symexec-based testing feedback, by letting it know how far it is from producing perfect translations. We conduct extensive experiments comparing CoTran with 14 other code translation tools, including human-written transpilers, LLM-based translation tools, and ChatGPT. Using a benchmark of over um{57000} code pairs in Java and Python, we demonstrate that CoTran outperforms the other tools on relevant metrics such as compilation accuracy (CompAcc) and functional equivalence accuracy (FEqAcc). For example, in Python-to-Java translation, CoTran achieves 48.68% FEqAcc and 76.98% CompAcc, whereas the nearest competing tool (PLBART-base) gets 38.26% and 75.77% respectively. Additionally, CoTran, built on top of CodeT5, improves FEqAcc by +14.89% and CompAcc by +8.14% for Python-to-Java (resp., +12.94% and +4.30% for Java-to-Python).

研究の動機と目的

  • 既存の LLM ベースのコード翻訳ツールにおける信頼性の低いコンパイルおよび関数的同等性の問題に対処すること。
  • LLM のファインチューニング中に是正フィードバックを統合することにより、全体的なプログラム翻訳を改善すること。
  • コンパイラと記号実行のフィードバックを用いた強化学習により、翻訳の正確性を向上させること。
  • 双方向翻訳に訓練された LLM を用いたバック・トゥ・バックのアーキテクチャにより、自動的な関数的同等性チェックを可能にすること。
  • LoRA を用いたパラメータ効率的でリソースに配慮した訓練フレームワークを開発し、前向きおよび後向きモデルの共同ファインチューニングを実現すること。

提案手法

  • CoTran は、教師ありファインチューニング(SFT)と強化学習(RL)を組み合わせた二段階のトレーニングパイプラインを採用し、Proximal Policy Optimization(PPO)を用いる。
  • 本手法は、コンパイルの成功を評価するためのコンパイラフィードバック(CF)と、Symflower が生成したユニットテストを用いて関数的同等性を検証する記号実行フィードバック(SF)を採用する。
  • バック・トゥ・バック(b2b)アーキテクチャは、Java から Python への(J2P)および Python から Java への(P2J)LLM ペアを用い、関数的同等性のエンド・ツー・エンド検証を可能にする。
  • フィードバック報酬は、SF(関数的同等性)と CF(コンパイル成功)の重み付き和として計算され、分布のずれを防ぐために KL 散逸正則化が適用される。
  • パラメータ効率的ファインチューニングは、低ランク適応(LoRA)を用いて実現され、大部分のモデルパラメータを固定し、低ランク射影行列のみをトレーニングする。
  • SFT と RL の最適化を交互に実行するインタラーブルトレーニングループを採用し、検証正確度に基づいて最良のパフォーマンスを示すモデルを選択する。
(a) The baseline CoTran (using Supervised Fine-Tuning i.e. SFT)
(a) The baseline CoTran (using Supervised Fine-Tuning i.e. SFT)

実験結果

リサーチクエスチョン

  • RQ1コンパイラと記号実行のフィードバックを用いた強化学習は、LLM ベースのコード翻訳におけるコンパイルおよび関数的正しさを顕著に向上させることができるか?
  • RQ2コンパイラと記号実行の両方からの双方向フィードバックの統合は、教師ありファインチューニングのみに比べて翻訳品質にどのように影響を与えるか?
  • RQ3バック・トゥ・バック LLM の使用は、全体プログラムのコード翻訳における関数的同等性チェックをどの程度向上させるか?
  • RQ4LoRA を用いたパラメータ効率的ファインチューニングは、共同翻訳モデルのトレーニングにおいて計算コストを削減しつつ高いパフォーマンスを維持できるか?
  • RQ5CoTran は、PLBART や CodeT5 といった最先端のツールと比較して、コンパイル正確度および関数的同等性正確度の両面で優れているか?

主な発見

  • CoTran は、Python から Java への翻訳において、48.68% の関数的同等性正確度(FEqAcc)と 76.98% のコンパイル正確度(CompAcc)を達成し、最も近い競合製品である PLBART-base(38.26% FEqAcc、75.77% CompAcc)を顕著に上回った。
  • CodeT5 を基盤に構築した場合、Java から Python への翻訳では FEqAcc が 11.23%、CompAcc が 4.07% 向上し、Python から Java への翻訳ではそれぞれ 14.89% および 8.14% 向上した。
  • コンパイラフィードバックと記号実行フィードバックの両方を用いることで、教師ありファインチューニングのみに比べて翻訳の正確性が顕著に向上した。
  • 検証パフォーマンスに基づくモデル選択を伴うインタラーブル SFT-RL トレーニングループは、トレーニングの安定化と最終モデル品質の向上に寄与した。
  • パラメータ効率的な LoRA ベースのファインチューニングアプローチにより、メモリおよび計算リソースの要件を低減しながら、前向きおよび後向きモデルの共同トレーニングが可能になった。
  • バック・トゥ・バック LLM の構成により、言語間を往復して翻訳することで、自動的かつエンド・ツー・エンドの関数的同等性チェックが実現された。
(b) CoTran + CF (using RL-based fine-tuning by PPO Algorithm)
(b) CoTran + CF (using RL-based fine-tuning by PPO Algorithm)

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。