Snorkel MeTaLを用いた大規模マルチタスク学習(1/4)

  • 2019.06.02
  • AI
Snorkel MeTaLを用いた大規模マルチタスク学習(1/4)

1.Snorkel MeTaLを用いた大規模マルチタスク学習(1/4)まとめ

・教師あり学習問題に取り組む際に必要な要素はモデル、ハードウェアおよび訓練データの3つ
・モデルはオープンソース文化、ハードウェアはクラウドにより最新の物が比較的容易に参照可能
・訓練用教師データは簡単に入手できるものではなくその問題解決のための仕組みがSnorkel MeTaL

2.Snorkel MeTaLとは?

以下、dawn.cs.stanford.eduより「Massive Multi-Task Learning with Snorkel MeTaL: Bringing More Supervision to Bear」の意訳です。元記事は2019年3月22日、Braden Hancockさん, Clara McCreeryさん, Ines Chamiさん, Vincent Chenさん, Sen Wuさん, Jared Dunnmonさん, Paroma Varmaさん, Max Lamさん, そしてChris Réさんによる投稿です。以前、紹介したSnorkelの中で紹介されていたSnorkel MeTaLのお話です。

私たちはSnorkel MeTaLを使って簡単なモデル(事前学習済みのBERT + linear task heads)を構築し、Massive Multi-Task Learningにさまざまな教師信号(従来の教師、転移学習、マルチタスク学習、弱い教師、およびアンサンブル)を組み入れました。GLUEベンチマークと9つのコンポーネントタスクのうち4つ(CoLA, SST-2, MRPC, STS-B)で新しい最先端のスコアを達成しています。MMTLパッケージのコードは2019年4月にSnorkel MeTaL v0.5としてリリースされ、現在も研究は進められています。

柔軟な教師を実現するための設計
教師あり学習問題に取り組む際に必要な要素は3つです。モデル、ハードウェアおよび訓練データ。

活発な研究とオープンソースコミュニティの繁栄のおかげで、最先端のモデルは通常「pip install」とpythonのパッケージインストールコマンドを実行するだけで入手可能です。(あなた達に注目していますよ、Googleさん、Hugging Faceさん、OpenAIさん!)。

クラウドコンピューティングのおかげで、最先端のハードウェアも同様にアクセスしやすくなっています。最新かつ最高のGPUを8基搭載した仮想マシンをわずか数分でオンデマンドでセットアップできます(ありがとう、AWSとGoogle Cloud)。しかしながら、このハードウェア上でこれらのオープンソースモデルを訓練するのに十分なラベル付きデータを集める事はそれほど単純ではありません。

実際、この障害はほとんどの機械学習アプリケーションにとって最大のボトルネックとなっています。このため、機械学習の実務家はモデルに教師役となる信号を注入する、より間接的な方法にますます注目が集まっています。


最先端のモデルアーキテクチャとハードウェアは、誰でも使えるようにコモディティ化され、わずか数行のコマンドで利用可能になっています。 ただし、最先端のトレーニングデータを入手するには、現在もかなりの柔軟性と創造性が必要です。

この傾向を観察しながら、私たちは教師データを第一級オブジェクト(訳注:制限なしに基本的な操作を使用できるような扱いやすい対象)として扱える枠組みの構築に着手しました。

私たちの目標は、伝統的な教師、転移学習、マルチタスク学習、弱い教師など、今日、一般的に使用されている多くの潜在的な教師信号の信号元をできるだけ簡単にサポートできるようにする事でした。

私達はこの仕組みを大規模マルチタスク学習(MMTL:Massive Multi-Task Learning)と呼んでいます。MMLTはさまざまな種類の、粒度も精度も異なる、多数のタスクとラベルを扱います。開発の進捗を確かめるために、私達は性能測定の場に最近発表されたGLUEベンチマークを使用しました。

GLUEベンチマークは、9つの自然言語理解タスク(例えば、自然言語推論、文章類似性推定など)から構成されています。655サンプル(WNLI)から393,000サンプル(MNLI)まで、それぞれ独自のサンプルとラベルのセットが付属しています。

MLの教師役として貢献する事を目指しているため、一般的に使う事が可能なハードウェア(AWS p3.8xlargeインスタンス:訳注、2019年5月現在$12.24USD/hour)と非常に単純なモデルアーキテクチャ(共有BERTモジュールとsingle-layer linear task heads)を使用しました。

つまり、私達が達成したスコアの改善は、ハードウェアやモデルに影響を受けたものではなく、新しい信号源を利用する事、または従来からあった教師信号をより知的に活用することから生じています。

以降のセクションでは、これらのタスクの1つであるRTE(テキストAにテキストBの内容が含まれているか確認する含意の認識問題)のスコアがどのように向上したかを順を追って説明します。

この作業はまだ始まったばかりです。 私たちの望みは、4月にオープンソースフレームワークをリリースするとき、他の人たちが更に多くのシグナルを提供するための新しい独創的な方法を見つけ、最先端技術を更に推進することです!

3.Snorkel MeTaLを用いた大規模マルチタスク学習(1/4)関連リンク

1)dawn.cs.stanford.edu
Massive Multi-Task Learning with Snorkel MeTaL: Bringing More Supervision to Bear

2)github.com
HazyResearch/metal
google-research/bert
huggingface/pytorch-pretrained-BERT
openai/gpt-2