Core Concepts
長いコードを分割し、エンコーディングし、集約することで、長いコードの包括的な表現を得る。
Abstract
本論文は、長いコードに対する効率的な処理方法を提案している。
まず、長いコードを分割する方法として、空白文字、トークン、行、抽象構文木(AST)に基づく分割手法を検討している。次に、分割されたコードブロックをエンコーディングし、注意機構を用いた集約手法により、長いコードの包括的な表現を得る。
提案手法SEAは、以下の特徴を持つ:
既存のTransformer系エンコーダを変更せずに長いコードを処理できる。
分割とエンコーディングの組み合わせにより、長いコードの重要な情報を効果的に捉えられる。
並列処理を可能にするための「結合-分割」モジュールを導入している。
実験の結果、SEAは既存の長文処理手法と比べて優れた性能を示し、特に長いコードに対する検索精度が大幅に向上することが確認された。
Stats
長さが256トークン未満のコードは全体の14%しかない
長さが512トークン以上のコードは全体の53.5%を占める
Quotes
"長いコードの問題は自然言語処理における長文問題と類似しているが、コードは高度に構造化された言語であり、異なる関数が分散して配置されているため、直接適用することは難しい。"
"SEAは既存のTransformer系エンコーダを変更せずに長いコードを処理でき、分割とエンコーディングの組み合わせにより長いコードの重要な情報を効果的に捉えられる。"