首页 > 其他分享 >CodeBERT: A Pre-Trained Model for Programming and Natural Languages

CodeBERT: A Pre-Trained Model for Programming and Natural Languages

时间:2024-12-07 09:29:04浏览次数:7  
标签:Pre 代码 NL 训练 CodeBERT Natural 模型 PL

本次介绍的论文是《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》

原文链接:http://www.semanticscholar.org/paper/0fe2636446cd686830da3d971b31a004d6094b3c

源代码和数据集:GitHub - microsoft/CodeBERT: CodeBERT

本篇论文主要是介绍了CodeBERT这个新的关于编程和自然语言的预训练模型,主要是人工智能方向的一篇论文,所以我看得不是很仔细,最开始阅读这篇论文也主要是因为可以结合Codebert在漏洞挖掘方面。

我们提出了 CodeBERT,一种用于编程语言 (PL) 和 自 然 语 言 (NL) 的 双 峰 预 训 练 模 型。CodeBERT 学习支持下游 NL-PL 应用的 通用表示,例如自然语言代码搜索、代码 文档生成等。我们使用基于变压器的神经 架构开发 Code- BERT,并使用混合目标函 数对其进行训练,该混合目标函数包含替 换令牌检测的预训练任务,即检测从生成 器采样的似是而非的替代项。这使我们能 够利用 NL-PL 对的“双峰”数据和“单 峰”数据,其中前者为模型训练提供输入 令牌,而后者有助于学习更好的生成器。 我们通过微调模型参数在两个 NL-PL 应用 程 序 上 评 估 CodeBERT 。 结 果 表 明,CodeBERT 在自然语言代码搜索和代码 文档生成两方面都达到了最先进的性能。 此外,为了调查在 CodeBERT 中学到了什么 类型的知识,我们为 NL-PL 探测构建了一 个数据集,并在预训练模型的参数固定的 零 触 发 设 置 中 进 行 评 估 。 结 果 表 明,CodeBERT 在 NL- PL 探测上比以前的预 训练模型表现得更好。

本文的主要贡献是:

• CodeBERT 是第一个用于多种编程语言的 大型 NL-PL 预训练模型。

• 实验结果表明,CodeBERT 在代码搜索和 代码到文本的生成任务中都是有效的。

• 我们进一步创建了一个数据集,这是第 一个研究基于代码的预训练模型的探测 能力的数据集。

替换令牌检测目标的图示。NL 和代码生成器都是语言模型,它们基于周围的上下文为屏蔽位置生成 可信的标记。NL 码鉴别器是目标预训练模型,其通过检测从 NL 和 PL 生成器采样的似是而非的替代令牌 来训练。NL 代码鉴别器用于在微调步骤中产生通用表示。在微调步骤中,NL 和代码生成器都被丢弃。

在本文中,我们提出了 CodeBERT,据我们 所知,它是第一个用于自然语言和程序语 言的大型双峰预训练模型。我们在双峰和 单峰数据上训练 CodeBERT,并表明微调 CodeBERT 在下游任务上实现了最先进的性 能,包括自然语言代码搜索和代码到文档 的生成。为了进一步研究预训练模型中包 含的知识,我们制定了 NL-PL 探测任务, 并创建了用于探测的数据集。我们将探测 任务视为一个完形填空式的答案选择问 题,并为 NL 和 PL 部分设计干扰项。结果表 明,在模型参数固定的情况下,CodeBERT 比 RoBERTa 和仅使用代码的连续训练模型 表现得更好。 这一领域有许多潜在的研究方向。首 先,人们可以学习具有双模态证据或更复 杂的神经架构的更好的生成器,以改进被 替 换 的 to- ken 检 测 目 标 。 第 二,CodeBERT 损失函数主要针对 NL-PL 理 解任务。虽然 CodeBERT 在代码到文档生成 上取得了很高的分数,但是 CodeBERT 本身 可以通过与生成相关的学习目标得到进一 步的提高。

标签:Pre,代码,NL,训练,CodeBERT,Natural,模型,PL
From: https://blog.csdn.net/XLYcmy/article/details/144165966

相关文章

  • 怎样在`<pre>`标签内不转义<和>符号(原样输出html标签)?
    在<pre>标签内原样输出<和>符号,你需要使用HTML实体:<代表<>代表>例如,要显示<div>标签,你需要在<pre>标签内写成<div>。<pre><div>Thisissomecontentinsideadiv.</div></pre>这将在浏览器中呈现为:<div>T......
  • pre与xmp标签有什么区别?
    pre和xmp标签都是用于在HTML中显示预格式化文本,保留空格、换行符和制表符。但是它们之间存在关键区别,xmp已被弃用,不应该在新代码中使用。pre(PreformattedText)作用:保留文本中的空格、换行和制表符,通常用于显示代码、诗歌或其他需要保留格式的文本。HTML实体:会......
  • WordPress 独立站是否需要 CDN:深度解析及必要性分析
    WordPress是目前全球最流行的开源内容管理系统(CMS),其易用性和丰富的插件生态使得它成为搭建独立站的首选。然而,随着流量的增加以及用户体验的需求,网站的速度和可靠性变得至关重要。在这种情况下,CDN(内容分发网络)是提升WordPress独立站性能的重要工具。本文将探讨使用CDN......
  • Large language models as surrogate models in evolutionary algorithms: A prelimin
    用大语言模型作为代理模型进行昂贵计算一、作者本文贡献•提出了一种基于LLM的创新代理模型,用于预测SAEA中新解决方案的质量,利用LLM的推理功能执行回归和分类任务,而无需训练。•引入了LLM辅助SAEA(LAEA)算法,将基于LLM的代理模型集成到SAEA中,以方便选择新的解决......
  • 为WordPress网站优化性能的最佳CDN集成服务
    在数字化竞争激烈的今天,WordPress网站作为全球最受欢迎的内容管理系统之一,深受企业和个人的青睐。然而,随着网站流量和内容复杂性的增加,性能优化成为每一个站长的必修课。CDN(内容分发网络)集成服务无疑是提升WordPress网站加载速度和安全性的最佳工具之一。接下来一起看看WordP......
  • DevExpress WPF v24.2新功能预览 - 键盘导航和屏幕阅读器功能增强
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • fetch和axios请求的原理都是基于XMLHttpRerequst吗?
    不完全是。虽然XMLHttpRequest是Ajax的基础,也是早期库(例如jQuery的$.ajax)的核心,但FetchAPI和Axios的工作原理略有不同:XMLHttpRequest:这是一个老牌的浏览器API,用于在浏览器和服务器之间进行HTTP通信。它提供了一种通过JavaScript发送HTTP请求和接收响应......
  • 数据执行保护(DEP,Data Execution Prevention) 是一种安全机制,旨在防止恶意代码在计算机
    数据执行保护(DEP,DataExecutionPrevention)是一种安全机制,旨在防止恶意代码在计算机的特定内存区域执行。它通过标记某些内存区域为“不可执行”,从而阻止攻击者在这些区域注入并执行恶意代码。DEP的工作原理DEP的基本思想是,操作系统通过对内存区域的权限控制,防止程序在某些特......
  • PDO 中的ATTR_EMULATE_PREPARES属性详解
    PDO中的ATTR_EMULATE_PREPARES属性详解概念解释ATTR_EMULATE_PREPARES是PDO(PHPDataObjects)中的一个连接属性。PDO是PHP访问数据库的一个统一接口,它支持多种数据库系统。当使用PDO进行数据库操作时,ATTR_EMULATE_PREPARES这个属性用于控制PDO是否模拟预处理语句。预处理语......
  • 界面控件DevExpress WinForms中文教程:Data Grid - Best Fit选项
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!本文主要介绍如何使用DevExpressWinFormsDataGr......