论文
UNICS:通过统一伪代码和对比迁移学习进行多语言代码搜索
UNICS: Multilingual Code Search via Unified Pseudocode and Contrastive Transfer Learning
摘要
虽然预训练模型在代码搜索方面取得了显着的成功,但其多语言能力仍然是一个主要障碍,受到数据不平衡、跨语言语义干扰以及抽象语法树(AST)或中间表示(IR)等现有统一表示中关键信息丢失的困扰。此外,传统的对比学习策略通常依赖于简单化的硬负采样,而忽视了挖掘硬正例来学习代码内在语义不变性的潜力。为了应对这些挑战,我们引入了 UNICS,这是一个基于两阶段训练策略的多语言代码搜索框架。在第一阶段,UNICS 在我们构建的新数据集上进行预训练,该数据集使用伪代码作为统一表示来学习跨语言的算法级逻辑,从而保留完整的语义保真度。第二阶段采用多任务迁移学习策略,通过将代码分解为语义切片(例如 API 调用、函数体)并合并用于硬正挖掘和跨语言动态硬负采样的任务,使这种常识适应特定语言。实验结果表明,UNICS 在多个多语言和跨语言基准测试中实现了最先进的性能,展示了卓越的泛化性和性能平衡,特别是在向低资源语言的零样本迁移任务中。