論文の概要: Evaluation of Contrastive Learning with Various Code Representations for
Code Clone Detection
- arxiv url: http://arxiv.org/abs/2206.08726v1
- Date: Fri, 17 Jun 2022 12:25:44 GMT
- ステータス: 処理完了
- システム内更新日: 2022-06-20 15:09:17.323592
- Title: Evaluation of Contrastive Learning with Various Code Representations for
Code Clone Detection
- Title(参考訳): コードクローン検出のためのコード表現を用いたコントラスト学習の評価
- Authors: Maksim Zubkov, Egor Spirin, Egor Bogomolov, Timofey Bryksin
- Abstract要約: コードスニペットの意味的クローンを検出するためのコントラスト学習の評価を行った。
CodeTransformatorを使って、競争力のあるプログラミングソリューションに基づいて、プラジャライズされたコードを模倣するデータセットを作成します。
評価の結果,提案手法は各タスクにおいて多種多様な性能を示すが,グラフベースモデルの性能は概して他のモデルよりも優れていることがわかった。
- 参考スコア(独自算出の注目度): 3.699097874146491
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Code clones are pairs of code snippets that implement similar functionality.
Clone detection is a fundamental branch of automatic source code comprehension,
having many applications in refactoring recommendation, plagiarism detection,
and code summarization. A particularly interesting case of clone detection is
the detection of semantic clones, i.e., code snippets that have the same
functionality but significantly differ in implementation. A promising approach
to detecting semantic clones is contrastive learning (CL), a machine learning
paradigm popular in computer vision but not yet commonly adopted for code
processing.
Our work aims to evaluate the most popular CL algorithms combined with three
source code representations on two tasks. The first task is code clone
detection, which we evaluate on the POJ-104 dataset containing implementations
of 104 algorithms. The second task is plagiarism detection. To evaluate the
models on this task, we introduce CodeTransformator, a tool for transforming
source code. We use it to create a dataset that mimics plagiarised code based
on competitive programming solutions. We trained nine models for both tasks and
compared them with six existing approaches, including traditional tools and
modern pre-trained neural models. The results of our evaluation show that
proposed models perform diversely in each task, however the performance of the
graph-based models is generally above the others. Among CL algorithms, SimCLR
and SwAV lead to better results, while Moco is the most robust approach. Our
code and trained models are available at
https://doi.org/10.5281/zenodo.6360627, https://doi.org/10.5281/zenodo.5596345.
- Abstract(参考訳): コードクローンは、同様の機能を実装するコードスニペットのペアです。
クローン検出は自動ソースコード理解の基本的な分岐であり、リファクタリングレコメンデーション、盗作検出、コード要約に多くの応用がある。
クローン検出の特に興味深い例は、セマンティッククローン(つまり、同じ機能を持つが実装で大きく異なるコードスニペット)の検出である。
セマンティッククローンを検出するための有望なアプローチは、コンピュータビジョンで人気のある機械学習パラダイムであるコントラッシブラーニング(CL)である。
本研究の目的は、最も人気のあるCLアルゴリズムと2つのタスクにおける3つのソースコード表現の組み合わせを評価することである。
最初のタスクはコードクローン検出であり、104アルゴリズムの実装を含むPOJ-104データセットで評価する。
第二の課題は盗作検知である。
このタスクのモデルを評価するために,ソースコードを変換するツールであるCodeTransformatorを紹介した。
私たちは、競争力のあるプログラミングソリューションに基づいて、盗用されたコードを模倣するデータセットを作成するためにそれを使用します。
両方のタスクで9つのモデルをトレーニングし、従来のツールや現代的なトレーニング済みニューラルモデルを含む、既存の6つのアプローチと比較しました。
評価の結果,提案手法は各タスクにおいて多種多様な性能を示すが,グラフベースモデルの性能は他のモデルよりも高い。
CLアルゴリズムのうち、SimCLRとSwAVはより良い結果をもたらすが、Mocoは最も堅牢なアプローチである。
私たちのコードとトレーニングモデルは、https://doi.org/10.5281/zenodo.6360627, https://doi.org/10.5281/zenodo.5596345で利用可能です。
関連論文リスト
- CC2Vec: Combining Typed Tokens with Contrastive Learning for Effective Code Clone Detection [20.729032739935132]
CC2Vecは、単純なコードクローンを素早く識別するために設計された新しいコード符号化手法である。
広く使われている2つのデータセット(BigCloneBenchとGoogle Code Jam)上でCC2Vecを評価する。
論文 参考訳(メタデータ) (2024-05-01T10:18:31Z) - Does Your Neural Code Completion Model Use My Code? A Membership Inference Approach [66.51005288743153]
本稿では,現在のニューラルコード補完モデルの法的および倫理的問題について考察する。
私たちは、もともと分類タスクのために作られたメンバシップ推論アプローチ(CodeMIと呼ばれる)を調整します。
我々は,この適応型アプローチの有効性を,多種多様なニューラルコード補完モデルで評価した。
論文 参考訳(メタデータ) (2024-04-22T15:54:53Z) - Source Code is a Graph, Not a Sequence: A Cross-Lingual Perspective on
Code Clone Detection [3.3298891718069648]
グラフベースの手法は,シーケンスベースの手法よりもコードクローン検出に適していることを示す。
CodeGraphは、両方のデータセット、特に言語間コードクローンにおいて、CodeBERTよりも優れています。
論文 参考訳(メタデータ) (2023-12-27T09:30:31Z) - Zero-Shot Detection of Machine-Generated Codes [83.0342513054389]
本研究は,LLMの生成したコードを検出するためのトレーニング不要な手法を提案する。
既存のトレーニングベースまたはゼロショットテキスト検出装置は、コード検出に効果がないことがわかった。
本手法は,リビジョン攻撃に対する堅牢性を示し,Javaコードによく適応する。
論文 参考訳(メタデータ) (2023-10-08T10:08:21Z) - Towards Understanding the Capability of Large Language Models on Code
Clone Detection: A Survey [40.99060616674878]
大規模言語モデル(LLM)は、様々なコード関連の知識を持ち、様々なソフトウェア工学の課題に対して汎用的である。
本稿では,クローン検出のためのLLMを包括的に評価し,異なるクローンタイプ,言語,プロンプトを網羅する。
従来の手法を超越した複雑な意味的クローンの検出において,高度なLCMが優れていることがわかった。
論文 参考訳(メタデータ) (2023-08-02T14:56:01Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - Enhancing Semantic Code Search with Multimodal Contrastive Learning and
Soft Data Augmentation [50.14232079160476]
コード検索のためのマルチモーダルコントラスト学習とソフトデータ拡張を用いた新しい手法を提案する。
我々は,6つのプログラミング言語を用いた大規模データセットにおけるアプローチの有効性を評価するために,広範囲な実験を行った。
論文 参考訳(メタデータ) (2022-04-07T08:49:27Z) - CodeRetriever: Unimodal and Bimodal Contrastive Learning [128.06072658302165]
関数レベルのコードセマンティック表現を訓練するために,一様および二様のコントラスト学習を組み合わせたCodeRetrieverモデルを提案する。
ノンモーダルなコントラスト学習のために、文書と関数名に基づいてポジティブなコードペアを構築するためのセマンティックガイド付き手法を設計する。
バイモーダルなコントラスト学習では、コードのドキュメンテーションとインラインコメントを活用して、テキストコードペアを構築します。
論文 参考訳(メタデータ) (2022-01-26T10:54:30Z) - Semantic Clone Detection via Probabilistic Software Modeling [69.43451204725324]
本稿では,0%の構文的類似性を有するクローンを検出する意味的クローン検出手法を提案する。
我々は,SCD-PSMをセマンティッククローン検出のための安定かつ高精度なソリューションとして提示する。
論文 参考訳(メタデータ) (2020-08-11T17:54:20Z) - Detecting Code Clones with Graph Neural Networkand Flow-Augmented
Abstract Syntax Tree [30.484662671342935]
フロー拡張抽象構文木(FA-AST)と呼ばれるプログラムのグラフ表現を構築する。
FA-ASTに2種類のグラフニューラルネットワークを適用し、コードペアの類似性を計測する。
当社のアプローチは,Google Code JamとBigCloneBenchタスクの両面で,最先端のアプローチよりも優れています。
論文 参考訳(メタデータ) (2020-02-20T10:18:37Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。