CodeT5

预备知识

核心思想

20260225185306

任务模型描述
Span DenoisingCodeT5/CodeT5+预测 15% 被 mask 的 tokens
Identifier TaggingCodeT5预测 token 是否为有具体含义 (如变量名, 函数名)
Masked Identifier PredictionCodeT5自回归地预测专门被 mask 的 identifier
Causal Language ModelingCodeT5+“将 [CLM]XXX” 输入 Encoder 并利用 Decoder 预测 XXX, 通常采样 10%~90% 的序列片段作为 Encoder 的输入, 或者最极端情况, Encoder 输入仅 “[CLM]” 相当于单纯的生成任务
Bimodal Dual GenerationCodeT5/CodeT5+Text -> Code 和 Code -> Text 的生成
Text-Code Contrastive LearningCodeT5+仅通过 Encoder 提取 Text 和 Code 的向量表示, 利用对比学习监督
Text-Code MatchingCodeT5+将 “[Mask] (T, C) [EOS]” 输入到 Decoder 中然后对 [EOS] 的输出通过线性层做二分类预测: Match/NOT Match

参考文献

  1. Wang Y., Wang W., Joty S. and Hoi S. C. CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generation. ACL, 2021. [PDF] [Code]
  2. Wang Y., Le H., Gotmare A. D., Bui N. D., Li J. and Hoi S. C. CodeT5+: Open Code Large Language Models for Code Understanding and Generation. ACL, 2023. [PDF] [Code]