笔记 | Windy

整理 | NewBeeNLP公众号

微软亚洲研究院副院长周明老师报告:From Language Intelligence to Code Intelligence Based on Pre-trained Models

感谢周明老师的分享以及Windy同学的笔记,完整报告内容文末阅读原文一键直达。

TL;DR

代码智能(Code Intelligence)旨在使计算机具备理解和生成代码的能力,并利用编程语言知识和上下文进行推理,支持代码检索、补全、翻译、纠错、问答等场景。

以深度学习为代表的人工智能算法,近年来在视觉、语音和自然语言理解任务上取得了飞跃式的突破。最近基于Transformer的预训练模型大大推动了自然语言处理和多模态的技术进步。而基于最新的自然语言技术与编程语言知识相融合的代码智能的研究也受到越来越多的关注。

本报告将介绍微软亚洲研究院自然语言计算组在该研究领域的一系列最新进展,包括针对代码智能的预训练模型(CodeBERT/CodeGPT)、基准数据集(CodeXGLUE)和融合了编程语言句法和语义信息的新的评价指标(CodeBLEU)。最后,本报告研讨该领域目前存在的主要问题并探索未来的发展方向。

报告笔记如下。

一、语言智能和预训练

这几年NLP领域里程碑式的工作

  • word embedding (2013)

  • sentence embedding

  • encoder-decoder with attention (2014)

  • Transformer(2016)考虑到RNN并行能力弱(self-attention),只有一个特征抽取 (multi-head)

  • Pre-trained Model (self-supervised地把大规模语料中上下文相关的语义表示学出来,再fine-tuning)

为什么要做预训练模型?

  1. 显式表征了句法和语义知识

  2. 体现了迁移学习的特点,帮助低资源情况

  3. 几乎支持所有NLP任务,而且都取得了不错的效果

  4. 可扩展性比较好,降低了NLP门槛

Self-supervised Learning方法

利用数据自然特点,不需要人工标注

  1. autoregressive(AR) LM

  2. auto-encoding (AE)

总结预训练模型的相关工作(见下图)

预训练模型的发展趋势

  • 模型越来越大(消耗资源,且不利于非企业研究)

  • 预训练方法和模型不断创新

  • 从单语到多语,到多模态,到程序语言

  • 模型压缩,知识蒸馏

微软工作总览

微软预训练模型介绍

  1. 「UniLM」(Dong et al.,2019)

  • GPT是单向,适合做生成;

  • Bert是双向,适合做理解。

  • 能否合成?用了一个统一架构三个部分做多任务学习。

  • 「Unicoder for Understanding」 (Huang et al.,2019)

    • 多语言;

    • 增加contrastive learning任务判断是否构成互译。

  • 「Unicoder for Generation」 (Liang et al.,2020)

    • 由于2不能做生成而提出;

    • 对输入加噪,试图在解码时去噪。

  • 「Unicoder一VL for Images」 (Li et al, 2020)

    • 到图像上的预训练,考虑图片+注释。

  • 「Unicoder一VL for Videos」 (Luo et al., 2020)

    • 同理,做视频的预训练,多任务训练得到,融入了文本信息。

  • 「LayoutLM: Text+Layout Pre 一training」

    • 文档的预训练(考虑了排版的信息,OCR结果的位置信息)

    应用

    • QA

    • Question Generation

    • Multilingual QA

    • Multilingual News Headline Generation

    • Image Search

    • Document Understanding

    • Video Chaptering

    XCLUE基准

    二、代码智能 (基于预训练模型)

    能不能把自然语言的方法应用到代码领域,提高效率?

    已有工作

    • excel检测已经完成的部分

    • 从自然语言的query通过parsing到SQL

    • GPT-3代码生成(从自然语言描述到代码块)

    现成资源

    模型

    1. 「CodeBERT」 (Model-1)

    • baseline,在数据基础上直接训练一个Bert。

  • 「CodeBERT (Model-2): Pre-Train with Code + Text」

    • 考虑到代码有自己的特点(注释)。

  • 「CodeBERT (Model-3): Pre-Train with Code + Text + Structure」

    • 除了注释还考虑到代码有结构(AST),变量有依赖或顺序关系。

  • 「CodeGPT」

  • 下游任务

    1. 找到和输入自然语言串符合的code

    2. 写了一段代码,补足下一个词

    3. 找到bug并且修改

    4. 不同语言的代码之间的翻译(低资源问题,如何应用单语数据)

    CodeXGLUE数据集和任务汇总

    成本估算

    评测

    基于3点:不同词的权重不同,AST的匹配,语义一致(看变量是否一致)

    评测本身是否好?(看哪种评价和人工评价最吻合)

    总结

    未来的工作方向

    提问

    问:从高校的角度如何在预训练方面工作?

    答:

    1. 不要军备竞赛或者拼蛮力,应该做方法论,例如如何融入知识;

    2. 小模型能否做很好的工作;模型压缩,知识萃取;

    3. fine-tune也有很多工作,什么样的方法微调会比较好;

    4. 扩展应用领域;

    5. 跨学科工作。

    问:代码自动生成的规则是硬约束还是自动学习,如何保证正确性?

    答:NLP工作者只知道串对串,对几个词的不同比较宽容,但编程只要错一点就没法运行。如何评测是需要考虑的,目前没有很好的办法数字化衡量,例如可执行性,但逻辑性效率等都可以做一些模拟工作,希望大家未来想办法自动评价

    问:想关注跨模态工作前景?

    答:以前从其他领域借鉴了很多方法,挪到了NLP;后来NLP的transformer等等,有更好的预训练模型,可以反攻其他领域了。这件事是NLP工作者应该好好考虑的,一切序列化的任务都可以看作自然语言任务,提高相关领域的技术发展,反哺其他领域。

    说个正事哈

    由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

    (1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

    (2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

    感谢支持,比心

    投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

    方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

    记得备注呦

    推荐两个专辑给大家:

    专辑 | 李宏毅人类语言处理2020笔记

    专辑 | NLP论文解读

    专辑 | 情感分析

    
    整理不易,还望给个在看!
    

微软亚洲研究院周明 | 从语言智能到代码智能相关推荐

  1. 微软亚洲研究院周明:从语言智能到代码智能

    来源:NewBeeNLP本文约1600字,建议阅读5分钟本文介绍了微软亚洲研究院自然语言计算组在该研究领域的一系列最新进展. 微软亚洲研究院副院长周明老师报告:From Language Intell ...

  2. 北大AI公开课第十一课--语言智能的进展by微软亚洲研究院周明

    想做的事情很多,但是时间却很有限.所以我们更应当在开始任何事情之前,做好足够的计划和准备,这样才能在有限的时间里做出最恰当的选择,为自己真正值得做的事争取出更多时间.之所以有这个感悟是因为最近太多事情 ...

  3. 北大AI公开课2019 | 微软亚洲研究院周明:NLP的进步将如何改变搜索体验?

    本文由InfoQ家整理首发,未经授权请勿转载 4月3日,北大AI公开课第七讲如期开讲,微软亚洲研究院副院长周明与大家分享了近期自然语言技术取得的进展和创新成果,并探讨了自然语言技术和搜索引擎如何进一步 ...

  4. 北京大学微软亚洲研究院人工智能与信息社会大纲(MOOC)-北大陈斌.md

    授课目标 本课程的目标,是为大学生和社会公众提供一个深入理解人工智能的入门基础,使学生初步了解人工智能技术的基本概念.发展历史.经典算法.应用领域和对人类社会的深远影响,从而打开学习人工智能的大门,为 ...

  5. 微软亚洲研究院(MSRA)副院长周明:未来5-10年,NLP将走向成熟

    近日,微软亚洲研究院(MSRA)副院长周明在「自然语言处理前沿技术分享会」上,与大家讲解了自然语言处理(NLP)的最新进展,以及未来的研究方向,以下内容由CSDN记者根据周明博士的演讲内容编写,略有删 ...

  6. 微软亚洲研究院院友会,AI大牛新动向|AI科技评论周刊

    本周微软亚洲研究院院友会召开"让世界充满 AI-人工智能研讨会",曾在微软亚洲研究院学习.工作过的 200 余位来自海内外学.业界人士出席了本次会议,分享他们在人工智能领域的最新研 ...

  7. 微软亚研院副院长周明:从语言智能到代码智能

    11月6日上午,在中国中文信息学会和中国计算机学会联合创办的"语言与智能高峰论坛"上,微软亚洲研究院副院长周明,以<从语言智能到代码智能>为题,介绍了智能代码理解和生成 ...

  8. 微软亚洲研究院副院长周明离职,将加入创新工场

    据悉,微软亚洲研究院副院长周明于近日宣布从微软离职,并将加入李开复创办的创新工场. 在朋友圈里,周明发表了以下感言: 周明是微软亚洲研究院副院长.国际计算语言学协会(ACL)主席.中国计算机学会理事. ...

  9. 突发!微软亚洲研究院副院长周明离职,将加入创新工场

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:AI科技评论   作者 | 青暮.陈大鑫 AI科技评论获悉,微软亚洲研究院副院长周 ...

  10. 今晚直播 | 微软亚洲研究院徐毅恒:预训练时代下的文档智能

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

最新文章

  1. Deactivate .NET refector
  2. [转载] 七龙珠第一部——第094话 太阳拳
  3. 定时器初值的计算方法
  4. bash: vim: command not found
  5. if(!!boolean)两次取反
  6. 音频格式G711转PCM的代码
  7. 40岁才博士毕业,新任安徽省长的他写了篇句句戳心的博士论文后记
  8. 【游戏策划】学习笔记(一)----手游海岛奇兵拆解
  9. 项目管理前话001——商业模式画布
  10. 微信计步器怎么不计步_微信运动不显示步数解决方法
  11. 如果明天要上线,还有很多Bug没有修改,项目经理又没有时间管,你该怎么办?
  12. dell服务器新bois系统设置u盘启动,跟大家讲讲dell新版biosU盘启动顺序
  13. 详解:化工厂人员定位方案与双重预防机制建设
  14. 百度女程序员半夜打车被司机嘲讽:加班到一点,收入不如我,图啥
  15. 自动识别并汇总发票信息的智能机器人来啦!
  16. sd卡数据丢失怎么恢复?
  17. win10分屏快捷键无法使用_Win10分屏操作,再也不用来回切换视图了!
  18. springBoot发送邮件附件名称乱码的解决
  19. Qt实现的一些小软件
  20. vue打包时候报错(压缩css错误) building for production...Error processing file: static/css/app.e8b75d3d19abc5bbb

热门文章

  1. jquery快速入门(二)
  2. UI 假死的可能性和处理方法总结
  3. Theano学习笔记:Theano的艰辛安装体验
  4. 移植u-boot.2012.04.01
  5. VB中Excel 2010的导入导出操作
  6. 转载:VS2005 工具方便实用的快捷键。
  7. VSTO 3.0 for Office 2007 Programming
  8. Ocelot中文文档-Raft(实验功能不能用于生产环境)
  9. 29 上传下载 socketserve
  10. js进阶 14-9 ajax事件有哪些