0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Facebook AI发布了一个包含编码问题和代码片段答案的数据集

倩倩 来源:新经网 2020-03-22 16:53 次阅读

Facebook AI发布了一个包含编码问题和代码片段答案的数据集,旨在评估基于AI的自然语言代码搜索系统。该版本还包括Facebook自己的几种代码搜索模型的基准测试结果,以及来自24,000个GitHub存储库的超过400万种Java方法的训练语料库。

在arXiv上发表的一篇论文中,研究人员描述了他们收集数据的技术。训练数据语料库是从最受欢迎的GitHub Android代码存储库中收集的,按星数排序。解析存储库中的每个Java文件,以标识各个方法。Facebook在培训代码搜索系统的研究中使用了所得的语料库。为了创建评估数据集,他们从Stack Overflow 的问答数据转储开始,仅选择同时具有“ Java”和“ Android”的问题研究人员说:“其中,他们只保留答案被投票的问题,这些问题也与训练数据语料库中确定的一种方法相匹配。结果将518个问题手动过滤为最终的287个问题。研究人员表示:

我们的数据集不仅是当前可用于Java的最大数据集,而且还是唯一以自动化(一致)方式针对Stack Overflow的真实答案进行验证的数据集。

Facebook最近发表了几篇关于神经代码搜索的论文,这是一种用于训练神经网络回答“如何”编码问题的机器学习技术。软件开发人员通常会使用Stack Overflow来学习如何解决特定的编码问题,例如,如何解决 Android应用程序中的错误。但是,在处理使用专有API或较不常见的编程语言的代码时,这不是一个选择。在这种情况下,程序员自己的组织之外的专家很少(或没有)。相反,Facebook和其他公司探索了使用源代码本身作为培训数据来产生可以回答编码问题的自然语言处理(NLP)系统的想法。

去年,Facebook发表了一篇关于无监督学习方法的论文,称为神经代码搜索(NCS),该方法接受了从GitHub收集的数据的培训。该技术从源代码中提取单词,并学习将每个单词映射到高维空间中的向量的嵌入。嵌入通常具有向量的性质,向量在向量空间中彼此“接近”,表示具有相似含义的词,并且词之间的关系可用向量算术表示。一个例子是在Wikipedia上训练的word2vec模型,当给定向量表达式“ Paris-France + Spain”时,该模型将返回“ Madrid”。

学习了嵌入之后,使用“ 词袋 ”模型将语料库中的每个Java方法转换为嵌入空间中的向量;通过嵌入将代码中的每个单词转换为向量,并将向量的加权总和分配给该方法作为其索引。这会将每个Java方法映射到嵌入空间中的一个点。为了回答编码问题,通过将查询中的每个单词都通过嵌入转换并产生加权和,可以将该问题类似地映射到嵌入空间中的某个点。问题的“答案”是Java方法,其索引最接近该点。关键思想是查询和代码都使用相同的嵌入,并且训练不需要在输入数据中出现任何问题;它仅从源代码中学习。

这种技术的一个缺点是它不会学习源代码中没有的单词的嵌入。Facebook研究人员发现,在Stack Overflow上,有问题的单词中也只有不到一半的单词包含在源代码中。这促使研究人员通过监督学习扩展了NCS,“以弥合自然语言单词和源代码单词之间的鸿沟”。产生的系统称为嵌入统一(UNIF),学习查询词的单独嵌入。在此培训过程中,团队使用类似于收集基准数据集的过程从Stack Overflow中提取了一组问题标题和代码段。该训练数据集包含451k个问题-答案对,但都不在基准测试中。在基准上进行评估时,对这一数据进行培训的联合国系统的性能略优于NCS。两种系统都以大约三分之一的时间作为最高结果返回“正确”答案,并以一半的时间以“前五项”结果返回“正确”答案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Facebook
    +关注

    关注

    3

    文章

    1428

    浏览量

    54056
  • 代码
    +关注

    关注

    30

    文章

    4558

    浏览量

    66908
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24389
收藏 人收藏

    评论

    相关推荐

    利用神经网络对脑电图(EEG)降噪

    )信号中的眼电图(EOG)噪声。EEGdenoiseNet数据包含4514干净的EEG片段和3400
    发表于 04-30 20:40

    RAG系统中答案无关片段对LLMs生成结果的影响分析

    与常见语义无关的答案无关片段相比,LLMs更容易受到高度语义相关的答案无关片段的影响;
    发表于 04-15 09:49 105次阅读
    RAG系统中<b class='flag-5'>答案</b>无关<b class='flag-5'>片段</b>对LLMs生成结果的影响分析

    【国产FPGA+OMAPL138开发板体验】(原创)5.FPGA的AI加速源代码

    复杂的数据依赖关系等问题。编写FPGA用于AI加速的程序可不是件简单的事,它涉及到硬件描述语言和并行计算的知识。下面我的目标是加速简单
    发表于 02-12 16:18

    30秒就能学会的代码片段

    今天给大家带来一些30秒就能学会的代码片段,这些代码潜力无限,蕴含了丰富的python编程思维,应用领域非常广泛,而且学起来非常简单。 1."二维列表" **解读:**根据给定的长和宽,以及初始值
    的头像 发表于 10-31 15:22 212次阅读
    30秒就能学会的<b class='flag-5'>代码</b><b class='flag-5'>片段</b>

    30秒就能学会的代码片段

    今天给大家带来一些30秒就能学会的代码片段,这些代码潜力无限,蕴含了丰富的python编程思维,应用领域非常广泛,而且学起来非常简单。 1."二维列表" **解读:**根据给定的长和宽,以及初始值
    的头像 发表于 10-30 09:32 178次阅读
    30秒就能学会的<b class='flag-5'>代码</b><b class='flag-5'>片段</b>

    SRRC证书样式和代码编码规则即将施行

    为优化无线电发射设备型号核准证书样式和代码编码规则,根据《无线电发射设备管理规定》,近日,工业和信息化部修订发布了《无线电发射设备型号核准证书样式》和《无线电发射设备型号核准代码
    的头像 发表于 10-14 16:50 392次阅读
    SRRC证书样式和<b class='flag-5'>代码</b><b class='flag-5'>编码</b>规则即将施行

    【KV260视觉入门套件试用体验】七、VITis AI字符和文本检测(OCR&amp;Textmountain)

    某些字符的图像。输出为包含所识别的字词及其位置的结构。下 图显示 OCR 的结果。 换一个带中文的图片试下,结果只能识别英文,准确率很高。 4.2、文本检测 Textm
    发表于 09-26 16:31

    OpenHarmony AI框架开发指导

    被正常加载使用。 规则:plugin需要使用AI引擎提供的统一数据通道 AI引擎在server与插件之间,提供
    发表于 09-19 18:54

    阿里平头哥发布首个 RISC-V AI 软硬全栈平台

    HHB 实现在典型网络性能比第三方工具平均提升 88%,并增加支持运行 Transformer、TensorFlow、PyTorch 等 170 余主流框架 AI 模型。 基于此,平头哥
    发表于 08-26 14:14

    SVE编码和霓虹灯编码之间的区别

    Neon技术是Armv8-A架构配置文件的高级单指令多数据(SIMD)功能。Neon是指令架构(ISA)的功能,提供可以对多个数据
    发表于 08-02 18:35

    为ESP8266编写TCP服务器程序,无法找到要在我的程序中声明的正确包含文件是怎么回事?

    我正在尝试为 ESP8266 编写 TCP 服务器程序,并且我正在按照 ESP8266 RTOS SDK 1.4.0 编程指南进行操作。该指南提供几个代码
    发表于 06-12 07:13

    GCC 12.3 发布,修复 127+ 错误

    ,这是自去年 8 月发布 GCC 12.2 以来的第一个维护更新。在 GCC 12.3 更新中改正超过 127 已知的错误。 除了许多
    发表于 05-25 08:22

    ChatGPT系统开发AI人功智能方案

    解决的问题和应用场景,例如智能客服、智能助手等。数据准备:准备与应用场景相关的数据,并将其清理、标注、整合等处理,以便为模型提供有效的训练数据
    发表于 05-18 10:16

    如何使用MSP430的UART通信?

    直使用msp430模块连接esp8266模块。代码的设备驱动程序片段附在下面。我已在主控制器 (MSP430) 中成功设置波特率和其他 UART 设置。结果,设备使用AT+CWJAP成功连接
    发表于 05-15 07:48

    ChatGPT 可替代?以下7 种 AI 工具更专注于编码

    7 款工具也能帮助开发者大大的提升编码效率。 ChatGPT 是一款出色的 AI 工具,可根据人类语言提示自动生成代码。但是,它并不是专门针对代码而生的产品,并且可能无法无缝集成到开
    的头像 发表于 05-11 20:16 581次阅读
    ChatGPT 可替代?以下7 种 <b class='flag-5'>AI</b> 工具更专注于<b class='flag-5'>编码</b>