論文の概要: SLaDe: A Portable Small Language Model Decompiler for Optimized Assembly
- arxiv url: http://arxiv.org/abs/2305.12520v2
- Date: Wed, 10 Jan 2024 17:12:19 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-11 17:40:55.292747
- Title: SLaDe: A Portable Small Language Model Decompiler for Optimized Assembly
- Title(参考訳): SLaDe: 最適化アセンブリのためのポータブルな小型言語モデルデコンパイラ
- Authors: Jordi Armengol-Estap\'e, Jackson Woodruff, Chris Cummins, Michael F.P.
O'Boyle
- Abstract要約: 本稿では,実世界のコード上で訓練されたシーケンス・ツー・シーケンス・トランスフォーマをベースとした小型言語モデルデコンパイラであるSLaDeを提案する。
我々は,新しいトークンライザを開発し,高品質なコードを生成するために非ドロップアウトトレーニングを活用する。
2つのISAと2つの最適化レベルにおいて、AnghaBenchの4000以上の関数上でSLaDeを評価する。
- 参考スコア(独自算出の注目度): 6.080751346188323
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Decompilation is a well-studied area with numerous high-quality tools
available. These are frequently used for security tasks and to port legacy
code. However, they regularly generate difficult-to-read programs and require a
large amount of engineering effort to support new programming languages and
ISAs. Recent interest in neural approaches has produced portable tools that
generate readable code. However, to-date such techniques are usually restricted
to synthetic programs without optimization, and no models have evaluated their
portability. Furthermore, while the code generated may be more readable, it is
usually incorrect. This paper presents SLaDe, a Small Language model Decompiler
based on a sequence-to-sequence transformer trained over real-world code. We
develop a novel tokenizer and exploit no-dropout training to produce
high-quality code. We utilize type-inference to generate programs that are more
readable and accurate than standard analytic and recent neural approaches.
Unlike standard approaches, SLaDe can infer out-of-context types and unlike
neural approaches, it generates correct code. We evaluate SLaDe on over 4,000
functions from AnghaBench on two ISAs and at two optimizations levels. SLaDe is
up to 6 times more accurate than Ghidra, a state-of-the-art,
industrial-strength decompiler and up to 4 times more accurate than the large
language model ChatGPT and generates significantly more readable code than
both.
- Abstract(参考訳): 脱コンパイルは、多くの高品質のツールが利用できる、よく研究されている分野である。
これらはセキュリティタスクやレガシーコードの移植に頻繁に使用される。
しかし、彼らは定期的に読みにくいプログラムを生成し、新しいプログラミング言語やISAをサポートするために大量のエンジニアリング作業を必要とする。
ニューラルアプローチに対する最近の関心は、可読性のあるコードを生成するポータブルツールを生み出している。
しかし、この手法は通常最適化なしで合成プログラムに制限されており、移植性を評価するモデルは存在しない。
さらに、生成されたコードはより読みやすいかもしれないが、通常は正しくない。
本稿では,実世界コード上でトレーニングされたシーケンス列変換器に基づく,小型言語モデル逆コンパイラであるsladeを提案する。
我々は,新しいトークンライザを開発し,非ドロップアウトトレーニングを活用して高品質なコードを生成する。
型推論を利用して、標準的な分析や最近のニューラルアプローチよりも読みやすく正確なプログラムを生成する。
標準的なアプローチとは異なり、SLaDeはコンテキスト外の型を推論することができ、ニューラルネットワークとは異なり、正しいコードを生成する。
2つのISAと2つの最適化レベルで、AnghaBenchの4000以上の関数上でSLaDeを評価する。
sladeは、最先端の産業強化逆コンパイラであるghidraよりも最大6倍正確であり、大きな言語モデルであるchatgptよりも最大4倍正確であり、どちらよりも読みやすいコードを生成する。
関連論文リスト
- Decoding at the Speed of Thought: Harnessing Parallel Decoding of Lexical Units for LLMs [57.27982780697922]
大規模言語モデルは、自然言語の理解と生成において例外的な能力を示した。
しかし、それらの生成速度は、その復号過程の本質的にシーケンシャルな性質によって制限される。
本稿では,データ駆動方式で実装された新しいデコーディング手法であるLexical Unit Decodingを紹介する。
論文 参考訳(メタデータ) (2024-05-24T04:35:13Z) - CodeGRAG: Bridging the Gap between Natural Language and Programming Language via Graphical Retrieval Augmented Generation [58.84212778960507]
我々は,LLMの性能を高めるため,グラフィカル検索拡張コード生成フレームワークであるCodeGRAGを提案する。
CodeGRAGは、制御フローとデータフローに基づいて、コードブロックのグラフィカルなビューを構築し、プログラミング言語と自然言語のギャップを埋める。
ハードメタグラフプロンプト、ソフトプロンプト技術、事前訓練されたGNN専門家の目的の有効性を検証するために、C++言語とピソン言語の両方を含む4つのデータセットで様々な実験と改善が行われた。
論文 参考訳(メタデータ) (2024-05-03T02:48:55Z) - Can Large Language Models Write Parallel Code? [0.5317767988097261]
大規模言語モデルは、ソフトウェア開発の一般的なツールになりつつある。
本稿では,最先端言語モデルによる並列コード生成能力について検討する。
論文 参考訳(メタデータ) (2024-01-23T08:25:12Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - COMEX: A Tool for Generating Customized Source Code Representations [7.151800146054561]
COMEXは、研究者と開発者が複数のコードビューを作成し、組み合わせることを可能にするフレームワークである。
プロシージャ内スニペットとプロシージャ間スニペットの両方を使用して、メソッドレベルのスニペットとプログラムレベルのスニペットの両方を分析することができる。
これは40以上の言語をサポートする、広く使われているインクリメンタル分析ツールであるtree-sitter上に構築されている。
論文 参考訳(メタデータ) (2023-07-10T16:46:34Z) - Planning with Large Language Models for Code Generation [100.07232672883897]
Planning-Guided Transformer Decoding (PG-TD) は、計画アルゴリズムを用いてルックアヘッド検索を行い、トランスフォーマーを誘導してより良いプログラムを生成する。
我々は、公開コーディングチャレンジベンチマークのバックボーンとして、いくつかの大きな言語モデルを用いて、我々のフレームワークを実証的に評価する。
論文 参考訳(メタデータ) (2023-03-09T18:59:47Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Measuring Coding Challenge Competence With APPS [54.22600767666257]
コード生成のベンチマークであるAPPSを紹介する。
私たちのベンチマークには1万の問題が含まれています。
GPT-Neoのような最近のモデルでは、導入問題のテストケースの約15%をパスできる。
論文 参考訳(メタデータ) (2021-05-20T17:58:42Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。