「CodeBERT」自然言語とプログラミング言語を扱うマルチモーダル事前学習モデル登場!

「CodeBERT」自然言語とプログラミング言語を扱うマルチモーダル事前学習モデル登場!

3つの要点

✔️ 自然言語(NL)-プログラミング言語(PL)のマルチモーダル事前学習モデルの提案
✔️ NL-PLのバイモーダル学習(MLM)・ユニモーダル学習(RTD)両方を用いたハイブリッド学習

✔️ 自然言語でのコード検索・コードドキュメント生成などで高い性能を発揮

CodeBERT: A Pre-Trained Model for Programming and Natural Languages
written by Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, Ming Zhou
(Submitted on 19 Feb 2020)
Comments: accepted by arXiv
Subjects: Computation and Language (cs.CL); Programming Languages (cs.PL)

はじめに

自然言語処理(NLP)における事前学習モデルは、BERTXLNetRoBERTaALBERTELECTRAなどなど、多数の手法が提案され非常に大きい成功を収めています。

このような事前学習モデルは、言語―画像モデルのVilBERT、言語―動画モデルのVideoBERTのように、異なる種類のデータを用いて学習を行うマルチモーダルモデルに対しても応用することが可能です。

今回紹介するCodeBERTは、自然言語(NL)と、Python、Javaなどのプログラミング言語(PL)の二種類のデータを用いたバイモーダルモデルです。

マルチモーダル学習とは

マルチモーダル学習については、本サイトのこの記事で詳細に説明されています。

通常のマルチモーダル学習では、例えば画像とその説明文、画像と音声など、異なる種類のデータが1セットにまとめられたデータを学習に用いています。しかし現実には、このように結び付けられたデータを用意することには非常に大きな労力がかかってしまいます。

そのためCodeBERTでは、自然言語・プログラミングコードがセットになったバイモーダルデータに加え、自然言語のみ、プログラミングコードのみのユニモーダルデータを事前学習に用いることで、効率的に学習を行うことに成功しています。

この記事をシェアする