論文の概要: LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators
- arxiv url: http://arxiv.org/abs/2503.23791v1
- Date: Mon, 31 Mar 2025 07:09:07 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-04-01 14:37:02.980658
- Title: LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators
- Title(参考訳): LLMigrate: 大規模言語モデルを効率的なソースコードミグレータに変換する
- Authors: Yuchen Liu, Junhao Hu, Yingdi Shan, Ge Li, Yanzhen Zou, Yihong Dong, Tao Xie,
- Abstract要約: RustでCコードを書き直すことでメモリの安全性が向上するが、32万行のLinuxカーネルのような大規模なマイグレーションは依然として困難である。
最近のLarge Language Model (LLM)アプローチは、より慣用的で安全なRustプログラムを生成するが、しばしば"遅延"を示す。
LLMベースのC-to-Rust翻訳ツールはモジュールを個別の関数に分割し、個別に翻訳し、再統合する。
- 参考スコア(独自算出の注目度): 21.114491141763647
- License:
- Abstract: Rewriting C code in Rust provides stronger memory safety, yet migrating large codebases such as the 32-million-line Linux kernel remains challenging. While rule-based translators (e.g., C2Rust) provide accurate yet largely unsafe Rust programs, recent Large Language Model (LLM) approaches produce more idiomatic, safe Rust programs but frequently exhibit "laziness", omitting significant portions of the target code. To address the issue, in this paper, we present LLMigrate, an LLM-based C-to-Rust translation tool that splits modules into discrete functions, translating them individually, and then reintegrating them. LLMigrate uses static analysis to retain necessary context, pairs GPT-4o (a state-of-the-art LLM) with compiler-driven translation and program-repair techniques for complex core functions, and leverages call-graph-guided translation to ensure consistent interfaces. Evaluations on three representative Linux kernel modules (math, sort, and ramfs) show that LLMigrate requires modifying less than 15\% of the target code, significantly outperforming a pure GPT-4o-based migration.
- Abstract(参考訳): RustでCコードを書き直すことで、メモリの安全性が向上するが、32万行のLinuxカーネルのような大規模なコードベースのマイグレーションは依然として困難である。
ルールベースのトランスレータ(例:C2Rust)は正確だがほとんど安全ではないRustプログラムを提供するが、最近のLarge Language Model (LLM)アプローチはより慣用的で安全なRustプログラムを生成するが、しばしば"遅延"を示し、ターゲットコードの大部分を省略する。
本稿では,モジュールを個別の関数に分割し,個別に翻訳し,再統合するLLMigrateについて述べる。
LLMigrateは静的解析を用いて必要なコンテキストを維持し、GPT-4o(最先端のLLM)とコンパイラ駆動の変換と複雑なコア関数のためのプログラム修復技術を組み合わせて、コールグラフ誘導変換を利用して一貫したインターフェースを保証する。
3つのLinuxカーネルモジュール (math, sort, ramfs) の評価によると、LLMigrate はターゲットコードの 15 % 未満の修正が必要であり、純粋な GPT-4o ベースのマイグレーションよりも大幅に優れていた。
関連論文リスト
- Syzygy: Dual Code-Test C to (safe) Rust Translation using LLMs and Dynamic Analysis [8.361424157571468]
Syzygyは、C言語を安全なRustに変換する自動化アプローチである。
これは、Rustのコード翻訳を安全にする上で、これまでで最大の自動化およびテスト検証済みのCである。
論文 参考訳(メタデータ) (2024-12-18T18:55:46Z) - Scalable, Validated Code Translation of Entire Projects using Large Language Models [13.059046327936393]
大規模言語モデル(LLM)は、慣用的なコードを生成する能力のため、コード翻訳において有望であることを示す。
既存の作品では、100行以上のコードに対する翻訳の成功率が低下している。
私たちは、コードを独立した翻訳が可能な小さなコードフラグメントに分割する、トランスフォーメーションのためのモジュラーアプローチを開発しています。
我々は,最大6,600行のコードと369の関数に対して,信頼性の高いRustを一貫して生成できることを示し,平均73%の関数をI/O同値で検証した。
論文 参考訳(メタデータ) (2024-12-11T02:31:46Z) - Repository-level Code Translation Benchmark Targeting Rust [28.25765853736366]
RustRepoTransは、最初のリポジトリレベルのコード変換ベンチマークである。
RustをC++、Java、Pythonから375のタスクに翻訳する。
複雑な翻訳シナリオの制約を評価するために,4つの最先端LCMを評価し,その誤りを分析した。
論文 参考訳(メタデータ) (2024-11-21T10:00:52Z) - Context-aware Code Segmentation for C-to-Rust Translation using Large Language Models [1.8416014644193066]
大きな言語モデル(LLM)は、ルールベースのメソッドよりも自然で安全なコードを生成することで、この翻訳を自動化することを約束している。
大規模Cコードをコンパイル可能なRustコードに変換する際の成功率を改善するLLMベースの翻訳方式を提案する。
4キロのコードを含む20のベンチマークCプログラムの実験では、すべてのプログラムをコンパイル可能なRustコードに変換することに成功した。
論文 参考訳(メタデータ) (2024-09-16T17:52:36Z) - Towards Translating Real-World Code with LLMs: A Study of Translating to Rust [13.743967357458287]
大規模言語モデル(LLM)は、ほとんどのプログラミング言語でコードを記述する能力のため、コード翻訳において有望であることを示す。
実世界のオープンソースプロジェクトから抽出したコードについて検討する。
FLOURINEは、差分ファジィを使用して、Rust翻訳が元のソースプログラムと同等のI/Oかどうかをチェックする、エンドツーエンドのコード変換ツールである。
論文 参考訳(メタデータ) (2024-05-19T10:54:03Z) - TransMI: A Framework to Create Strong Baselines from Multilingual Pretrained Language Models for Transliterated Data [50.40191599304911]
本稿では,トランスリテライト・マージ文字化 (Transliterate-Merge-literation, TransMI) という,シンプルだが効果的な枠組みを提案する。
TransMIは、既存のmPLMとそのトークン化ツールをトレーニングなしで利用することにより、共通のスクリプトに書き起こされるデータの強力なベースラインを作成することができる。
実験の結果,TransMIはmPLMの非翻訳データ処理能力を保ちつつ,翻訳データを効果的に処理し,スクリプト間のクロスリンガル転送を容易にすることを実証した。
論文 参考訳(メタデータ) (2024-05-16T09:08:09Z) - IRCoder: Intermediate Representations Make Language Models Robust Multilingual Code Generators [49.903001442804594]
本研究では、コンパイラ中間表現(IR)を活用して、Code-LMの多言語機能を改善する可能性について検討する。
まず,約400万のソースコードファイルからなる並列データセットであるSLTransをコンパイルする。
次に、SLTransにおける因果言語モデリングトレーニングを継続して実施し、Code-LMはIR言語を学習せざるを得なかった。
IRCoderと呼ばれる結果のモデルは、さまざまなコード生成タスクやメトリクスに対して、サイズと一貫性のあるゲインを表示します。
論文 参考訳(メタデータ) (2024-03-06T17:52:08Z) - ML-Bench: Evaluating Large Language Models and Agents for Machine Learning Tasks on Repository-Level Code [76.84199699772903]
ML-Benchは、既存のコードリポジトリを利用してタスクを実行する現実世界のプログラミングアプリケーションに根ざしたベンチマークである。
LLM(Large Language Model)とAIエージェントの両方を評価するために、事前に定義されたデプロイメント環境でLLMのテキスト-コード変換を評価するML-LLM-Benchと、Linuxサンドボックス環境でエンドツーエンドのタスク実行で自律エージェントをテストするML-Agent-Benchの2つの設定が採用されている。
論文 参考訳(メタデータ) (2023-11-16T12:03:21Z) - The Ups and Downs of Large Language Model Inference with Vocabulary Trimming by Language Heuristics [74.99898531299148]
本研究は,興味のある言語への埋め込みエントリを制限し,時間と記憶効率を高めることによる語彙トリミング(VT)について検討する。
Unicodeベースのスクリプトフィルタリングとコーパスベースの選択という2つの言語を異なる言語ファミリやサイズに適用する。
その結果、VTは小型モデルのメモリ使用量を50%近く削減し、生成速度が25%向上した。
論文 参考訳(メタデータ) (2023-11-16T09:35:50Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - Massively Multilingual Shallow Fusion with Large Language Models [62.76735265311028]
複数の言語で浅い融合のための単一多言語言語モデル(LM)を訓練する。
GLaMは、推論中に同様の計算を行う密度の高いLMと比較して、イングランドのロングテールテストのWERを4.4%削減する。
多言語浅層融合タスクでは、GLaMは50言語中41言語を改善し、平均相対的なWERの3.85%、最大10%の削減を実現している。
論文 参考訳(メタデータ) (2023-02-17T14:46:38Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。