Synthetic Semantic Supervision for Contrastive Code Representation Learning in Small Transformers: An Empirical Study
作者: Kenneth Paulsen, Florian Tambon, Mike Papadakis, Shin Yoo
分类: cs.AI
发布日期: 2026-09-03
备注: Accepted in Findings EMNLP 2026
💡 一句话要点
提出合成语义监督以提升小型变换器的代码表示学习
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture)
关键词: 代码表示学习 合成语义监督 小型变换器 对比预训练 自然语言处理 自动代码生成 智能代码分类
📋 核心要点
- 现有的小型变换器编码器依赖人工文档字符串或结构信号,存在劳动密集和不一致性的问题。
- 本文提出通过合成生成的自然语言描述对小型编码器进行对比预训练,强调代码功能与意图。
- 实验结果显示,合成语义监督在多个任务上显著提升性能,且在微调后与大型模型相当。
📝 摘要(中文)
通用代码嵌入为代码搜索、分类和检索工具提供支持。现有的小型变换器编码器通常依赖人工编写的文档字符串或挖掘的结构信号,这些方法存在劳动密集和不一致性的问题。本文提出了一种替代方案,通过合成生成的自然语言描述对小型编码器进行对比预训练,强调代码的功能和意图,并在训练中与代码配对,在推理时丢弃。我们在C、C++和Java的八个检索、分类和生成任务上对该方法进行了基准测试,结果显示合成语义监督在五个任务上显著优于同等推理时间的预训练基线,并在两个任务上持平;经过微调后,其分类性能与零-shot模型相当,且在匹配的预训练数据下与执行感知监督相当,表明该方法是现有代码表示范式的可扩展有效替代方案。
🔬 方法详解
问题定义:本文旨在解决现有小型变换器编码器在代码表示学习中对人工文档字符串和结构信号的依赖,这些方法存在劳动密集、成本高和不一致性等问题。
核心思路:论文提出了一种新的对比预训练方法,利用合成生成的自然语言描述来强调代码的功能和意图,采用双编码器框架进行训练,推理时丢弃描述,从而减少对人工标注的依赖。
技术框架:整体架构包括合成描述生成模块和双编码器训练模块。合成描述生成模块负责生成与代码功能相关的自然语言描述,双编码器模块则将代码与描述进行配对训练。
关键创新:最重要的技术创新在于使用合成语义监督进行对比预训练,这一方法与传统依赖人工标注的方式有本质区别,能够降低成本并提高一致性。
关键设计:在模型设计中,采用了特定的损失函数以优化对比学习效果,并在网络结构上进行了调整,以适应小型变换器的特性,确保在推理时的高效性。
🖼️ 关键图片
📊 实验亮点
实验结果表明,合成语义监督在五个任务上显著优于同等推理时间的预训练基线,并在两个任务上持平。经过微调后,该方法的分类性能与零-shot模型相当,且在匹配的预训练数据下与执行感知监督相当,显示出其强大的实用性。
🎯 应用场景
该研究的潜在应用领域包括代码搜索引擎、自动代码分类工具和智能代码生成系统。通过提供更高效的代码表示学习方法,能够显著提升开发者的工作效率,降低人工标注的需求,推动代码智能化工具的发展。
📄 摘要(原文)
General-purpose code embeddings power tools for code search, classification, and retrieval. Compact transformer encoders for code typically rely on either human-written docstrings (labor-intensive and inconsistent) or mined structural signals such as execution traces (setting-specific and costly to collect). We empirically study an alternative: contrastive pretraining of small encoders with synthetically generated natural-language descriptions emphasizing code functionality and intent, paired with code in a dual-encoder framework at training and discarded at inference. We benchmark this approach against pretraining-based baselines, generalist LLMs, and embedding-specific models on eight retrieval, classification, and generation tasks across C, C++, and Java. Synthetic semantic supervision yields statistically significant gains over pretraining baselines of the same inference-time size on five of eight tasks, with parity on two more; once fine-tuned, it matches or exceeds zero-shot models two orders of magnitude larger on classification, and it stays on par with execution-aware supervision at matched pretraining data, suggesting a scalable, effective alternative to existing code-representation paradigms.