論文の概要: Automating Zero-Shot Patch Porting for Hard Forks
- arxiv url: http://arxiv.org/abs/2404.17964v1
- Date: Sat, 27 Apr 2024 17:40:39 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-30 18:22:24.309510
- Title: Automating Zero-Shot Patch Porting for Hard Forks
- Title(参考訳): ハードフォーク用ゼロショットパッチポーティングの自動化
- Authors: Shengyi Pan, You Wang, Zhongxin Liu, Xing Hu, Xin Xia, Shanping Li,
- Abstract要約: 本稿では,機能的にハードフォーク用のパッチを自動的に移植する大規模言語モデル (LLM) を提案する。
PPatHFは131 (42.3%)のパッチを正しく移植し、開発者がパッチを移植するのに必要な手作業の57%を自動化する。
- 参考スコア(独自算出の注目度): 12.622409703778604
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Forking is a typical way of code reuse, which provides a simple way for developers to create a variant software (denoted as hard fork) by copying and modifying an existing codebase. Despite of the benefits, forking also leads to duplicate efforts in software maintenance. Developers need to port patches across the hard forks to address similar bugs or implement similar features. Due to the divergence between the source project and the hard fork, patch porting is complicated, which requires an adaption regarding different implementations of the same functionality. In this work, we take the first step to automate patch porting for hard forks under a zero-shot setting. We first conduct an empirical study of the patches ported from Vim to Neovim over the last ten years to investigate the necessities of patch porting and the potential flaws in the current practice. We then propose a large language model (LLM) based approach (namely PPatHF) to automatically port patches for hard forks on a function-wise basis. Specifically, PPatHF is composed of a reduction module and a porting module. Given the pre- and post-patch versions of a function from the reference project and the corresponding function from the target project, the reduction module first slims the input functions by removing code snippets less relevant to the patch. Then, the porting module leverages a LLM to apply the patch to the function from the target project. We evaluate PPatHF on 310 Neovim patches ported from Vim. The experimental results show that PPatHF outperforms the baselines significantly. Specifically, PPatHF can correctly port 131 (42.3%) patches and automate 57% of the manual edits required for the developer to port the patch.
- Abstract(参考訳): フォークはコード再利用の典型的な方法であり、既存のコードベースをコピーして修正することで、開発者が(ハードフォークとして記述された)変種ソフトウェアを作成できる簡単な方法を提供する。
利点はあるものの、フォークはソフトウェアのメンテナンスにおける重複の努力にもつながります。
開発者は、同様のバグに対処したり、同様の機能を実装するために、ハードフォークにパッチを移植する必要がある。
ソースコードとハードフォークの相違により、パッチポーティングは複雑であり、同じ機能の異なる実装に適応する必要がある。
この作業では、ゼロショット設定でハードフォークのパッチポーティングを自動化する第一歩を踏み出します。
VimからNeovimに移植されたパッチについて,この10年間で実証的研究を行い,パッチ移植の必要性と現状の潜在的な欠陥について検討した。
そこで我々は,大規模言語モデル (LLM) に基づくアプローチ (PPatHF) を提案し,機能的にハードフォーク用のパッチを自動的に移植する。
具体的には、PPatHFは還元モジュールと移植モジュールからなる。
参照プロジェクトからの関数の前および後のバージョンと対象プロジェクトからの対応する関数とが与えられた場合、リダクションモジュールは、パッチにあまり関係のないコードスニペットを除去することにより、まず入力関数をスリム化する。
次に、移植モジュールはLLMを利用して、対象プロジェクトからの関数にパッチを適用する。
Vimから移植した310のNeovimパッチ上でPPatHFを評価した。
実験の結果,PPatHFはベースラインよりも有意に優れていた。
具体的には、PPatHFは131 (42.3%)のパッチを正しく移植し、開発者がパッチを移植するのに必要な手動編集の57%を自動化することができる。
関連論文リスト
- AutoPatch: Automated Generation of Hotpatches for Real-Time Embedded Devices [8.026313049094147]
医療用や工業用デバイスのようなリアルタイムの組み込みデバイスは、サイバー攻撃がますますターゲットになっている。
ホットパッチングは、再起動せずにミッションクリティカルな組み込みデバイスにパッチを適用するアプローチである。
本稿では,オフィシャルパッチの静的解析により等価なホットパッチを自動的に生成する,新しいホットパッチ技術であるAutoPatchを提案する。
論文 参考訳(メタデータ) (2024-08-27T19:11:39Z) - PatUntrack: Automated Generating Patch Examples for Issue Reports without Tracked Insecure Code [6.6821370571514525]
脆弱性のあるイシューレポート(IR)からパッチ例を自動的に生成するPatUntrackを提案する。
脆弱性のあるIRからVTP(Vulnerability-Triggering Path)の完全な記述を生成する。
その後、VTP記述の幻覚を外部の黄金の知識で修正する。
最後に、修正されたVTP記述に基づいて、セキュリティコードとパッチサンプルのTop-Kペアを生成する。
論文 参考訳(メタデータ) (2024-08-16T09:19:27Z) - PatchFinder: A Two-Phase Approach to Security Patch Tracing for Disclosed Vulnerabilities in Open-Source Software [15.867607171943698]
本稿では,エンドツーエンドの相関学習を併用した2段階のフレームワークを提案する。
PatchFinderは80.63%のRecall@10、平均相反ランク(MRR)は0.7951である。
PatchFinderを実際に適用する場合、最初は533件のパッチコミットを特定し、公式に送ったのですが、そのうち482件はCVE Numbering Authoritiesによって確認されました。
論文 参考訳(メタデータ) (2024-07-24T07:46:24Z) - Rethinking Patch Dependence for Masked Autoencoders [92.37365660775171]
マスク付きオートエンコーダ(MAE)の復号機構におけるパッチ間依存関係の再検討
我々は,クロスアテンション・マスケッド・オートエンコーダ(CrossMAE)という新しい事前学習フレームワークを提案する。
論文 参考訳(メタデータ) (2024-01-25T18:49:57Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - Attention Map Guided Transformer Pruning for Edge Device [98.42178656762114]
視覚トランスフォーマー (ViT) は, 全体的かつ隠蔽された人物再識別 (Re-ID) タスクにおいて, 有望な成功を収めた。
本稿では、冗長なトークンとヘッドの両方を除去する新しいアテンションマップガイド(AMG)トランスフォーマープルーニング法を提案する。
Occluded DukeMTMC と Market-1501 に関する総合的な実験により,提案手法の有効性が示された。
論文 参考訳(メタデータ) (2023-04-04T01:51:53Z) - Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each
using ChatGPT [10.071615423169902]
自動プログラム修復(APR)は、バグギープログラムのパッチを自動的に生成することを目的としている。
最近のAPRの研究は、最新のLarge Language Models(LLM)を活用して、APRのパッチを直接生成することに重点を置いている。
最初に完全に自動化された会話駆動型APRアプローチであるChatRepairを提案する。
論文 参考訳(メタデータ) (2023-04-01T20:57:33Z) - FlexiViT: One Model for All Patch Sizes [100.52574011880571]
ビジョントランスフォーマーは、それらをパッチにスライスすることで、画像をシーケンスに変換する。
これらのパッチのサイズは速度/精度のトレードオフを制御し、より小さなパッチはより高い計算コストで高い精度に繋がる。
トレーニング時にパッチサイズをランダムにすると、一組の重み付けが発生し、広範囲のパッチサイズでうまく機能することを示す。
論文 参考訳(メタデータ) (2022-12-15T18:18:38Z) - Patch-level Representation Learning for Self-supervised Vision
Transformers [68.8862419248863]
視覚変換器(ViT)は近年、より優れたアーキテクチャ選択として多くの注目を集めており、様々な視覚タスクにおいて畳み込みネットワークよりも優れています。
これに触発された私たちは、パッチレベルの表現をより良く学習するための、SelfPatchという、シンプルで効果的なビジュアルプリテキストタスクを設計しました。
我々は、既存のSSLメソッドの様々な視覚的タスクに対する性能を大幅に改善できることを実証した。
論文 参考訳(メタデータ) (2022-06-16T08:01:19Z) - DPT: Deformable Patch-based Transformer for Visual Recognition [57.548916081146814]
本稿では,デフォルマブルパッチ (Deformable Patch) モジュールを提案する。デフォルマブルパッチ(Deformable Patch, DePatch)モジュールは,画像を異なる位置とスケールのパッチに適応的に分割し,データ駆動方式でスケールする。
DePatchモジュールはプラグイン・アンド・プレイモジュールとして動作し、異なるトランスフォーマーに簡単に組み込んでエンドツーエンドのトレーニングを実現することができる。
論文 参考訳(メタデータ) (2021-07-30T07:33:17Z) - Exploring Plausible Patches Using Source Code Embeddings in JavaScript [1.3327130030147563]
オープンソースJavaScriptプロジェクトでDoc2Vecモデルをトレーニングし、10のバグに対して465のパッチを生成しました。
これらの正当なパッチと開発者修正は、元のプログラムとの類似性に基づいてランク付けされる。
これらの類似性リストを分析し、プレーンな文書埋め込みが誤分類につながる可能性があることを発見した。
論文 参考訳(メタデータ) (2021-03-31T06:57:10Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。