Facebook InCoderとは?Metaの最新生成モデルを解説
AIビジネスの競争は各社で高度になりつつあり、AIを使ってどのようなサービスを開発するかに世間の注目は集まっています。
ChatGPTのような汎用性の高いAIの登場が、こういったAIサービスへの注目を産んでいる一方、依然としてAIそのものを開発する技術の高度化や試行錯誤も盛んに行われていることは見逃せないポイントです。
この記事では、旧Facebook社であるMetaが新たに発表した生成モデルであるInCoderとはどのようなものかについて解説しながら、InCoderがどのような影響を与えると期待されているのか、紹介していきます。
目次:
- 生成モデルについて
- Facebook InCoderとは
- InCoderの強みである「ゼロショット」の概要
- InCoderの活躍で何が変わるのか
- InCoderのデモを確認する方法
生成モデルについて
そもそも生成モデル(generative model)とは、あらかじめ与えられている訓練データからデータの特徴を抽出し、その特徴を踏まえた新しいデータを生成することが可能な学習モデルのことを指します。
ディープラーニングが従来の機械学習とは異なり、業務の自動化のみならず創造的なタスクを担うことができるのは、この生成モデルの性能が向上しているからに他なりません。生成モデルにもさまざまな種類があり、それぞれのモデルの得手不得手に応じて、画像生成や文章の作成など、多様な業務を任せられるようになってきました。
AIの性能は学習内容の量や質によって大きく左右されるのはもちろんですが、生成モデルのパフォーマンスにも左右されるという点は覚えておくべきでしょう。
Facebook InCoderとは
2022年4月に発表されたInCoderは、コーディングの自動化を支援し、プログラムの生成と編集ができる生成モデルです*1。
通常、コーディング作業は左から右、上から下へ順序よく記述していくものですが、一回の記述作業でデプロイすることはできません。無数に発生するエラーへの対処に追われ、幾度となく編集を繰り返すことで、ようやく正しく動作するプログラムに仕上げることができます。
一方でInCoderは、このようなコーディング作業における負担を大幅に軽減可能な生成モデルです。巨大なデータベースであるコーパスからコードファイルを生成するように訓練されており、コード領域は無作為にマスクされ、双方向のコンテキストを含められます。
型推論やコメントの生成、変数名の変更など、従来の生成モデルでは難しかったタスクに対処できるように開発されており、そのクオリティは高水準に達しています。ただ左から右にコードを生成するだけではない、有意義なコーディングが行える生成モデルとして、今後の活躍に期待が集まるモデルと言えるでしょう。
InCoderの強みである「ゼロショット」の概要
InCoderが従来の生成モデルとは異なる強みとして、ゼロショットでの生成(Zero-shot generation)が可能という点をアピールしています*2。
ゼロショットとは、訓練済みのAIに対して補助情報などを与えることで、学習済みのタスクではなく新しいタスクに対しても柔軟に遂行できる対応能力のことを指します。
現在普及している多くのAIは、一つのAIにつき一つのタスクというのが一般的です。人の顔を高い精度で認識できるAIであっても、犬の種類を正確に分類できるとは限りません。というのもそのAIが学習しているのはあくまで人の顔のデータに基づく判断基準であるため、犬の種類の違いについては未学習であるからです。
一方、ゼロショットの能力を持った学習モデルであれば、例え人の顔の分析に特化したAIであっても、その分析能力の高さをそのまま流用し、犬の種類の判断ができるようなAIとして運用することも可能になります。
InCoderはそのような柔軟性の高いAI開発を促進する可能性があることから、大いに注目に値する生成モデルと言えるでしょう。
InCoderの活躍で何が変わるのか
このような能力を備えているInCoderは、AI開発の効率を高める上で欠かせないモデルとなっていくことが考えられます。
上でも紹介したように、AIは基本的に一つのタスクにつき一つのAIという運用方法が一般的で、新しいサービスを開発するためには一からAIを育てる必要がありました。
AI開発の最大の懸念点は、開発にかかる時間や費用の問題です。一つのAIを作り上げるのに膨大な時間や予算をかけていては、開発コストを回収できなくなってしまうこともあるでしょう。
そこでゼロショットでコードを生成できるInCoderの力を借りることで、柔軟性の高い擬似的な汎用AIとして、一つの学習モデルを複数のタスクに運用することができます。
ある程度似通ったタスクが課されたAIであれば、同じモデルを使い回しながら開発ができるため、AI開発にかかるコストパフォーマンスを飛躍的に高められるでしょう。
また、InCoderの学習データは、GitHubやGitLab、StackOverflowなどのオンラインで公開されているオープンソース、そしてApache 2.0やMIT、BSD-2、BSD-3などのライセンスされたコードによって構成されているため、ライセンス上の問題が生じる心配もありません*3。
基本的にはPythonとJavaScriptに焦点を当てているものの、全部で28の言語が含まれていることから、あらゆる開発現場での運用に対応できる生成モデルとなっています。
InCoderのデモを確認する方法
InCoderのデモを確認する上では、公式のGithubをチェックするのが最も手っ取り早いでしょう。各種発表資料や運用例についてのリンクなどが掲載されており、運用条件についての案内もあります*4。
サンプルを触ってみたい場合には、同ページ内の[Usage]にあるリンクからデモスクリプトを閲覧できるため、これを利用してみましょう。現状ではPyTorchとTokenizers、そしてTransformersでの動作が確認されています。
まとめ
この記事では、InCoderの概要やその強みであるゼロショットの仕組みについて解説しました。生成モデルの進化はAIの進化と密接に結びついており、より高度なサービスを開発したり、よりサービス開発のスピードを加速させる上で大きな意味を持ちます。
InCoderは直接消費者や企業がAIとして運用するためのサービスではありませんが、InCoderの普及は間接的にAIの社会活用を促進する役割を担ってくれるはずです。
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!
出典:
*1 Meta「InCoder: A Generative Model for Code Infilling and Synthesis 」
*2 InCoder
https://sites.google.com/view/incoder-code-models/home
*3 上に同じ
*4 Github「InCoder」