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

    文章

    1432

    浏览量

    59468
  • 代码
    +关注

    关注

    30

    文章

    4985

    浏览量

    74565
  • 数据集
    +关注

    关注

    4

    文章

    1242

    浏览量

    26306
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    换个芯片就要重写半套代码?PPEC Workbench嵌入式跨架构开发的标准答案

    解决方案。PPEC Workbench以全架构兼容、0幻觉AI编程、图形化引导及AI辅助导入为核心,打破架构壁垒,给出嵌入式跨架构开发的“标准答案”,重新定义跨架构开发范式,助力企业降本增效、实现高质量发展。
    发表于 05-26 13:40

    【诚邀体验】 安利AI使用工具!

    已经可以帮忙编写代码、解释函数、分析错误甚至独立完成项目,但是在实际开发中,常见的问题仍然存在:通用AI虽然能力强大,但在更专业更细分的嵌入式领域仍然需要足够
    的头像 发表于 04-10 18:25 214次阅读
    【诚邀体验】 安利<b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>AI</b>使用工具!

    AI辅助编程设计之道:从Spec到Code工程实践

    设计、模块接口定义、数据结构设计等。这些文档的价值,在于将模糊的想法逐步细化,最终形成可供编码实现的蓝图。 AI编程的误区在于,很多人试图用句话替代整个设计过程,直接跳到
    发表于 03-16 13:33

    还在手动拼接 AI 代码?你的 IDE 早就该升级

    : 拼接过程中,很容易出现代码片段与硬件平台、现有项目架构不兼容的问题,进而引发系统报错,影响设备正常运行。 ▌ 维护性风险: 不同来源的 AI 代码
    发表于 03-11 10:25

    AI代码之争忽略什么

    人工智能的兴起让 COBOL 重新成为话题焦点,市场上也涌现出不少号称能转换遗留代码、破解现代化难题的工具。但关键在于厘清这究竟意味着什么,以及它不包含什么。代码转换是回事,平台现代
    的头像 发表于 03-02 15:20 832次阅读

    Transformer 入门:从零理解 AI 大模型的核心原理

    : 身高:175cm 体重:70kg 年龄:25岁 我们可以把这些数字排成排:[175, 70, 25],这就是向量! arduino 体验AI
    发表于 02-10 16:33

    瑞芯微SOC智能视觉AI处理器

    能力。核心升级: 增加了高规格的视频编码能力,支持H.264/H.265格式的4K@60fps编码。目标: 解决RK1126只能“分析”不能“录制”的短板,成为
    发表于 12-19 13:44

    NVIDIA推出多语种语音AI开放数据与模型

    发布的 Granary 数据包含约 100 万小时音频,可用于训练高精度、高吞吐量的 AI 音频转录与翻译模型。
    的头像 发表于 09-23 15:34 1278次阅读

    HarmonyOSAI编程智能代码解读

    CodeGenie提供智能AI能力对框选的代码片段进行逐条解释,总结代码段含义,帮助开发者提升阅读代码的速度和效率。 选中.ets文件或者.
    发表于 09-02 16:29

    HarmonyOSAI编程编辑区代码续写

    利用AI大模型分析并理解开发者在代码编辑区的上下文信息或自然语言描述信息,智能生成符合上下文的ArkTS或C++代码片段。 使用约束 建议在编辑区内已有较丰富上下文,能够使模型对编程场
    发表于 08-21 15:43

    【Sipeed MaixCAM Pro开发板试用体验】基于MaixCAM-Pro的AI生成图像鉴别系统

    图像的快速鉴别,满足实时或准实时的应用需求。 3. 数据采集 AI图片数据,本项目使用gemini生成图片,使用的是gem来实现的。 提示词如下 你是
    发表于 08-21 13:59

    AI Cube如何导入数据

    我从在线平台标注完并且下载数据,也按照ai cube的要求修改了文件夹名称,但是导入提示 不知道是什么原因,我该怎么办? 以下是我修改后的文件夹目录
    发表于 08-11 08:12

    HarmonyOS AI辅助编程工具(CodeGenie)代码智能解读

    本功能从DevEco CodeGenie 5.1.0 Beta版本开始支持。 CodeGenie提供智能AI能力对框选的代码片段进行逐条解释,总结代码段含义,帮助开发者提升阅读
    发表于 07-17 17:02

    HarmonyOS AI辅助编程工具(CodeGenie)代码续写

    利用AI大模型分析并理解开发者在代码编辑区的上下文信息或自然语言描述信息,智能生成符合上下文的ArkTS或C++代码片段、使用约束 建
    发表于 07-15 16:15

    【HarmonyOS 5】鸿蒙CodeGenie AI辅助编程工具详解

    菜单View布局。主界面主要由编码助手的介绍和知识问答与生成代码入门组成。 当我们点击两入门其中
    发表于 06-11 16:34