CodeBERT使用12层Transformer总计包含 125M 参数, 在 FP16精度上使用NVIDIA DGX-2 上进行 250 小时的训,结果显示当 CodeBERT 与来自 RoBERTa 模型的预训练表示一起使用时(RoBERTa 模型已使用来自 Code-SearchNet 的代码进行训练)与从头开始训练时的对比。 使用 RoBERTa 初始化 CodeBERT 性能更好。使用 CodeBERT进...
CodeBERT使用12层Transformer总计包含 125M 参数, 在 FP16精度上使用NVIDIA DGX-2 上进行 250 小时的训,结果显示当 CodeBERT 与来自 RoBERTa 模型的预训练表示一起使用时(RoBERTa 模型已使用来自 Code-SearchNet 的代码进行训练)与从头开始训练时的对比。使用 RoBERTa 初始化 CodeBERT 性能更好。
自然语言代码搜索 给定自然语言作为输入,代码搜索的目标是从一堆代码中找出语义最相关的代码。研究者在 CodeSearchNet 语料库上进行实验。表 3:CodeSearchNet 语料库的数据统计信息。下表 2 展示了不同方法在 CodeSearchNet 语料库上的性能结果。表 2:不同方法在自然语言代码检索任务中的结果。基线包括四种 NL ...
CodeBERT使用12层Transformer总计包含 125M 参数, 在 FP16精度上使用NVIDIA DGX-2 上进行 250 小时的训,结果显示当 CodeBERT 与来自 RoBERTa 模型的预训练表示一起使用时(RoBERTa 模型已使用来自 Code-SearchNet 的代码进行训练)与从头开始训练时的对比。使用 RoBERTa 初始化 CodeBERT 性能更好。 使用CodeBERT进行微调...
CodeBERT使用12层Transformer总计包含 125M 参数, 在 FP16精度上使用NVIDIA DGX-2 上进行 250 小时的训,结果显示当 CodeBERT 与来自 RoBERTa 模型的预训练表示一起使用时(RoBERTa 模型已使用来自 Code-SearchNet 的代码进行训练)与从头开始训练时的对比。使用 RoBERTa 初始化 CodeBERT 性能更好。
下表2 展示了不同方法在 CodeSearchNet语料库上的性能结果。 表2:不同方法在自然语言代码检索任务中的结果。基线包括四种 NL 和 PL 联合嵌入(第一组),RoBERTa 使用遮蔽语言建模在代码上执行训练(第二组),PT 表示预训练。研究者使用不同设置训练 CodeBERT(第三组),包括不同的初始化和不同的学习目标。
除了预训练阶段的任务有变化外,CodeBERT 的其他方面与自然语言中的 BERT 模型训练基本无异(其本质上的一个 RoBERTa),CodeBERT 使用了 bimodal data(即 PL-NL Pairs)进行了预训练,预训练数据的来源为 CodeSearchNet 数据集[2],其中有 Python, Java, Java, PHP, Ruby 和 Go 这六种编程语言的 2.1M bimodal da...
CodeBERT使用12层Transformer总计包含 125M 参数, 在 FP16精度上使用NVIDIA DGX-2 上进行 250 小时的训,结果显示当 CodeBERT 与来自 RoBERTa 模型的预训练表示一起使用时(RoBERTa 模型已使用来自 Code-SearchNet 的代码进行训练)与从头开始训练时的对比。 使用 RoBERTa 初始化 CodeBERT 性能更好。
下表2 展示了不同方法在 CodeSearchNet 语料库上的性能结果。 表2:不同方法在自然语言代码检索任务中的结果。基线包括四种 NL 和 PL 联合嵌入(第一组),RoBERTa 使用遮蔽语言建模在代码上执行训练(第二组),PT 表示预训练。研究者使用不同设置训练 CodeBERT(第三组),包括不同的初始化和不同的学习目标。
针对自然语言代码搜索,在这篇论文里,作者在 CodeSearchNet语料库上对CodeBERT进行了预训练并做微调,这是一个包含了 6 种较为普遍的代码语言(分别为Ruby、JavaScript、Go、Python、Java、PHP)的语料库。如下图所示,他们在自然语言代码搜索任务中取得了SOTA的结果:而另一方面,代码文档生成任务,是未来能够极大...