新智元微软亚研院副院长周明:从语言智能到代码智能( 三 )
之后 , 研究者将预训练模型继续扩展到图像和视频任务中 , 并构建模型 Unicoder-VLfor Images 和 Unicoder-VL for Videos 。
本文插图
图9:Unicoder-VL for Images
本文插图
图10:Unicoder-VL for Videos
4. LayoutLM
LayoutLM 是 Document 的训练模型,该模型考虑了分布信息 。
用 OCR 扫描文档 , 扫描结果加每一个识别对象的位置信息作为输入 , 得到 OCR 的结果 , 每个结果的位置信息和对应文档的预训练模型 , 使用时 , 将预训练模型加图像的部分融入 , 做各项文档识别和信息抽取的任务 。
本文插图
图11:LayoutLM: Text Layout Pre-training
预训练模型的应用包括问答、多语言问答、文本理解和视频章节提取等 。
本文插图
图12:预训练模型的应用
为促进预训练模型发展 , 微软发布数据集 XGLUE , 该数据集覆盖十几种语言 , 包含几十个任务 。
本文插图
图13:数据集XGLUE
如何用预训练模型做代码智能
从Excel的智能化操作 , 到自然语言查询转换为 SQL 的数据库操作 , 再到 GPT-3 自动生成代码 , 代码智能的实际应用在不断革新和扩大 。 那么 , 用预训练模型如何做代码智能?
1. 将代码特点融入预训练模型
通过将代码融入预训练模型 , 用代码训练 BERT , 得到包含代码的预训练模型;通过融入有文本注释的代码进一步训练模型 , 可以得到具有代码和文本的 CodeBERT 。
此外 , 代码具有结构 , 代码之间的变量有顺序关系 , 需要抽取变量之间的依赖关系或相同关系来构建模型 , 对于给定的代码 , 可以用程序包得到代码对应的抽象语法树(AST),将抓取的代码特点融入模型 , 训练建立新的具有代码结构的 CodeBERT 。
CodeBERT是一个可处理双模态数据的新预训练模型 , 使用了 Transformer 作为基本网络结构 , 采用混合目标函数:掩码语言模型和替换 Token 检测 。
本文插图
图14:CodeBERT——Pre-Train with Code
本文插图
图15:CodeBERT:Pre-Train with code + Text
本文插图
图16:CodeBERT——Pre-Train with Code + Text + Structure
同样 , 可以通过已有的GPT模型训练得到 CodeGPT 。
本文插图
图17:CodeGPT
基于以上模型 , 进行代码智能的实验 , 构建Fine-tuning框架 。 该框架中 , CodeBERT主要用于分析 , 而codeGPT用于生成 , Encoder Decoder 用于实现不同语言串之间的转化 , 其中Encoder部分可以利用CodeBERT进行初始化 。
代码智能的下游任务包括代码搜索(Code Search)、代码完成(Code Completion)、代码修复(Code Repair)和代码翻译(Code Translation)等 , 实验发现 , 代码智能在自然语言代码检索、修复 , 文档生成、翻译等任务上均取得了 SOTA 效果 。
- IT之家 将重回 Win7 时代 UI,微软将在顶级窗口中加入圆角,外媒:Win10
- 品 玩微软 Surface Duo 仍准备在美国之外的市场发布
- 玩懂手机苹果将M1 Mac问题扔给微软:需要微软授权ARM的Windows版本
- 玩懂手机微软Xbox Series X/S 控制器将支持iPhone和iPad
- IT之家 Xbox Series X 手柄,苹果设备很快将支持微软
- 新智元在北京,人工智能也能评职称了!来看你够不够申请资格?
- 品玩今晚7:30,微软小冰、蔚来、小鹏顶级高管和你在线聊AI
- 雷科技|又做了一款跳水神机,微软鬼才
- KK朔风如解意OriginOS真的好用吗?苹果+三星+微软的新系统诞生了
- 雷科技微软神机上市两月“跳水”千元,但最好别买!
