BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ゼロショットラーニングの意外な効果 - Roland Meertens氏の講演より

ゼロショットラーニングの意外な効果 - Roland Meertens氏の講演より

原文(投稿日:2021/11/18)へのリンク

先日のQCon PlusオンラインカンファレンスでRoland Meertens氏は、"The Unreasonable Effectiveness of Zero Shot Learning"と題して、AIベースのアプリケーション開発について講演した。その中で氏は、ファンデーションモデル(foundation model)ゼロショットラーニング(zero shot learning)を使ってアプリケーションのプロトタイプを迅速にデプロイし、フィードバックを得ることにより、大規模なデータセットの収集やモデルのトレーニングを不要にした2つの例を紹介した。

AnnotellのプロダクトマネージャであるMeertens氏の講演は、データの収集と注釈付け(アノテーション)、モデルのトレーニングと評価、モデルのデプロイという、AIベースアプリの典型的な開発サイクルの説明から始まった。これらすべてをユーザのフィードバックに先立って実施する必要がある上に、ユーザのフィードバックは要件の変更を伴うことが多いため、その場合には同じプロセスをもう一度繰り返さなくてはならないのだ。Meertens氏は、アプリでAI機能を提供するためのこのサイクルを、いわゆるファンデーションモデル -- 多くのダウンストリームタスクを処理することのできる、パワフルなトレーニング済みモデル -- を使って短縮することを提案した。ファンデーションモデルは数行のコードでアプリから呼び出すことが可能で、迅速なデプロイとイテレーションを行うための能力を提供すると同時に、モデルの持つゼロショットラーニング、すなわち、トレーニングなしでタスクを実行する能力の活用を可能にする。Meertens氏は講演で、GPT-3CLIPという2つのファンデーションモデルを使用して、2つのプロトタイプアプリの作成を実演して見せた。ひとつは歌詞の言語を特定するもので、もうひとつはイメージからフルーツと野菜を識別するものだ。

最初にMeertens氏は、AIベースのアプリケーションの開発中に見られる、一般的なシナリオについて説明した。まず始めに、トレーニング用のデータセットを収集する。例えば、アプリがイメージ内のオブジェクトを識別するためのものであれば、データセットは数百ないし数千のサンプルイメージを集めたものになる。次に、手作業でイメージに注釈あるいはラベルを付けて、その中のオブジェクトが何であるかを示さなくてはならない。この高価で時間を要するプロセスの次には、AIモデルをトレーニングする -- あるいは複数のモデルをトレーニングして、パフォーマンスが最も高いものを選ぶ -- という、さらにコストと時間を要する作業が待ち構えている。また、ソフトウェア開発ライフサイクル中に要件が変更される可能性についても考慮しなくてはならない。これはつまり、トレーニングデータをさらに集めて、新たなモデルをトレーニングしなければならない、ということだ。

このようなアプローチに代わるものとしてMeertens氏が提案するのが、ファンデーションモデル — "広範なデータを使って大規模なトレーニングを行うことで、さまざまなダウンストリームタスクに対応可能な"モデルを使用する方法である。この名称はスタンフォード大学の研究者らが生み出したものだ。同大学は今年初めに、"ファンデーションモデルの研究、開発、提供を基本的に進める"目的で、 Center for Research on Foundation Models(CRFM)を設立している。これらのモデルの中にはダウンロードしてローカル運用の可能なものもあるが、大部分は一般的な開発者用ワークステーションのメモリには大規模過ぎるため、Web APIを使用して起動しなければならない。Meertens氏の講演では、これらの中から、GPT-3とCLIPという2つのモデルに注目した。いずれもOpenAIが開発したものだ。

GPT-3は自然言語処理(NLP)の生成モデルとして有名だが、Meertens氏はこれについて、本質的には自動補完(autocompletion)アルゴリズムである、と説明した。GPT-3は、トークンの列を(一連の単語のように)入力として与えることによって、シーケンスの次のトークンを予測して出力する。テキスト文字列の補完として構成可能なタスクはたくさんある、とMeertens氏は言う。例えば単純な数学的問題は、文字列の補完であると定義できる。"2 + 2 ="という文字列は、文字列"4"で補完される、というようにである。GPT-3はこのようなデータを大量に使ってトレーニングされているので、この種のタスクの多くについて、正しい出力を生み出すことができるのだ。"やる気のない高校生がテストでできる程度のこと"ならば可能だ、とMeertens氏はジョークを言った。

次にMeertens氏は、GPT-3が、"これは曲の歌詞がどの言語で書かれているかを判断するプログラムです"というフレーズを"プロンプト"して、それに歌詞を続けることにより、ゼロショットラーニングで歌詞の言語を識別できる、というデモをしてみせた。GPT-3はその言語を出力した。さらにMeertens氏は、GPT-3を使う上での"プロのヒント"をいくつか公開した。そのひとつは、歌詞の例ならば"フランス語、ドイツ語、英語、..."のように、可能性のあるすべての出力をGPT-3に教えておくことだ。もうひとつは、可能であれば、ひとつ程度の例と求められる出力をGPT-3に与えるという、"少数ショット(few shot)"ラーニングを使用することだ。GPT-3は実際には、ひとつの入力に対して複数の"自動補完"出力を返すことができる。氏はこの点を指摘した上で、ヒューリスティックな手法で最適なものを選択するように推奨した。

次にMeertens氏は、OpenAIのCLIPモデルを使って、イメージ内のフルーツと野菜の認識をデモしてみせた。CLIPは、インターネットで収集したテキストとイメージをペアにしたデータセットを使ってトレーニングされたディープラーニングモデルで、GPTの自然言語機能とコンピュータビジョン(CV)を組み合わせたものだ。CLIPは、イメージとテキストの両方を埋め込み空間(embedding space)にマッピングする。その際に、トレーニングデータでペアになっていたイメージとテキストは、同じ値を使ってマッピングされる。Meertens氏は数行のコードだけで、CLIPがイメージ分類器として使用できることを示してみせた。イメージと、可能性のある説明テキストのリストを与えることで、CLIPは、そのイメージに最もマッチした説明テキストを出力する。例えばリンゴの画像と、"リンゴ"、"人参"、"ブドウ"のような果物と野菜のリストを与えると、CLIPは"リンゴ"を出力する。

最後にMeertens氏は、聴衆からの質問に答えることによって、自身の講演を締め括った。何人かのユーザが、CLIPの認識するオブジェクトの範囲について質問をした。それに対してMeertens氏は、CLIPの使用は出発点であって、開発者はCLIPの誤った、あるいは信頼性の低かったイメージを保存して、よりアプリ固有のモデルのためのトレーニングデータセットを構築する必要がある、と回答した。ファンデーションモデルを使用する場合のコストに関する質問には、GPT-3は有償だが、コストはモデルのサイズによる — 大規模なモデルほどコストは高くなる、と答えた。大規模なモデルは高性能だが、曲の言語を識別するようなアプリケーションであれば、小規模なモデルでも十分に機能する可能性がある。

Meertens氏のデモアプリのコードはGitHubで公開されている。

この記事に星をつける

おすすめ度
スタイル

BT