IBM Research
基盤モデルの転移学習を大幅に自動化するCodeFlare
2022年2月15日
カテゴリー AI | IBM Research
記事をシェアする:
Rayは、昨今注目を集めている機械学習アプリケーションのための分散コンピューティングのオープンソース・フレームワークです。Rayを使うことで、データ・サイエンティストは様々な機械学習のアプリケーションを非常に簡単に並列実行できます。また、Kubernetesクラスター上など任意のクラウドでも、あるいは手元のラップトップ・コンピューターでも同じコードを動かせる点も、Rayの特徴です。
IBMは、Rayを拡張したオープンソース・ソフトウェア・ツールであるCodeFlareを、2021年6月に開催されたRay Summit 国際会議で発表しました。CodeFlareは、より複雑な機械学習の作業を自動化できる点が主な特徴で、データの依存関係を持った複数のステップから構成される機械学習のパイプラインを定義して並列実行できます。さらに、Red Hat OpenShiftやIBM Cloud Code Engineとの連携により、サーバーレスな運用をできます。CodeFlareを利用すれば、データ・サイエンティストは、モデルの学習やテストをセットアップし、実行し、スケールさせる作業にかかる手間と時間を大幅に削減できます。そして、データ・サイエンティストは、煩雑な単純作業ではなく、実験の内容をじっくり検討することにもっと時間をかけられるようになります。
2021年6月に公開した時からCodeFlareは、数十万にも及ぶパイプラインの分析・最適化のために利用され、何時間もの学習時間を数分に削減できたケースもいくつもありました。CodeFlareは、さらに改良を重ね、2021年12月には基盤モデルを扱うようにしたコードがオープンソースとして利用可能になりました。
基盤モデル
基盤モデルとはなんでしょうか。基盤モデルとは、そこから様々なAIモデルを派生させて学習する元とすることができる大規模なAIモデルのことを指します。
基盤モデルが利用されるようになる以前は、文書の分類や製品画像からの異常の検出など個別のタスクごとに専用の学習データを用意し、ゼロから学習をするというやり方が一般的に用いられていました。
それに対して近年は、たとえば画像認識や自然言語処理(NLP)の分野では大量のデータからあらかじめ学習された巨大なディープラーニング・モデル(AIモデル)をベースとすることで、特定のタスク向けAIモデルの学習に必要な学習データを少量で済ます、というやり方が広く一般的に使われています。自然言語処理の場合にはBERT、RoBERTa、GPT-3といった大規模言語モデルがそのためのベースのモデルとして頻繁に用いられています。
これらのモデルは、ラベルを用いるのではなく、わざと伏せた学習データの一部を予測するという「自己教師あり学習」と呼ばれる方法で学習されているため、学習データに人手で正解ラベルをつける必要がなく、大量のデータを学習に利用しやすいという利点を持っています。そして、これをベース・モデルとして用いて、文書分類、機械翻訳、感情分析、対話など個別のタスク向けのAIモデルを学習すると、データ収集コストが高いそれら個別タスクのデータが少量であっても精度の良いモデルを学習できる、という大きな利点があります。
このように、既存のモデルを出発点として別のタスク向けのAIモデルを学習することを「転移学習(transfer learning)」、転移学習の目的となる個別のタスクを「下流タスク(downstream task)」、さまざまな下流モデルにベースとして利用可能な大規模モデルを「基盤モデル(Foundation Model)」と呼びます。
現在、基盤モデルは、様々なタスクでビジネスに利用されています。たとえば、金融サービスでは、評判分析をするAIモデルを、基盤モデルからの転移学習で得ることができます。
基盤モデルの学習の自動化
特定の下流タスクだけに興味があるユーザーは、入手可能な基盤モデルを一つ選び、必要な下流タスクだけに向けて転移学習をすれば、必要なAIモデルを入手することができます。一方、基盤モデルに関する研究開発をしている研究者の作業は、比較にならないほど手間がかかり複雑になります。
なぜ、手間がかかる作業になるのでしょうか。
IBM東京基礎研究所の研究員 村岡雅康 は、自然言語の基盤モデルに関する研究開発に取り組んでいます。基盤モデルを構築してその良し悪しを実験的に評価するには、10種類以上になることもある下流タスクのそれぞれについて転移学習を行って下流モデルを学習し、それぞれの精度をそれぞれのテスト・データで評価しなければなりません。さらに、ランダム性を考慮するために、同じプロセスを擬似乱数生成の元となる値、ランダム・シード(乱数種)を変えて何回も繰り返さなければなりません。加えて、基盤モデルのネットワーク構成を決めるハイパーパラメーターは何種類もあり、たとえ、ほとんど同じ構造を持った基盤モデルであったとしても、少しずつパラメーターの値を変えて何通りもの構造を試してみる必要があります。
基盤モデル自体の自己教師あり学習のタスクの設計とそのデータ、基盤モデルのハイパーパラメーター、下流側のそれぞれのタスクの種類とそのデータなど、無数にある変数の様々な組み合わせを設計して、それを網羅するように学習・テストの実験を行うには、数週間に及ぶこともある膨大な時間がかかります。
基盤モデルの開発にかかるこの膨大な手間を1クリックだけで済むくらいに簡素化し効率化することが、村岡が取り組んでいることの一つであり、CodeFlareプログラムの目的でもあります(関連論文 1)。CodeFlareは、基盤モデルの学習・評価に対するPythonベースのインターフェースを使って、データの結合・共有・並列化などの処理を簡単にできるようにし、一連のプロセスをシンプルにします。CodeFlareによって基盤モデルを前処理、検証、転移学習するといった必要な作業がハイブリッド・クラウド・プラットフォーム上で完全に自動化されています。
CodeFlareの用途
基盤モデルの転移学習はCodeFlareができる多数のユースケースの一例にすぎません。他にも、scikit-learnを用いて学習する機械学習モデルのハイパーパラメーターのチューニングや、多数のサンプルデータについて機械学習モデルの推論結果の説明を生成させるといった用途などで力を発揮します。これらの例についてはこちらでサンプル・コードつきで詳しく解説されています。CodeFlareはダウンロードして、あなた自身の用途で今すぐに試せます。ぜひ、CodeFlareを体験してみてください。
脚注
1. Awasthy, P., Bhattacharjee, B., Kender, J., Florian, R. Predictive Model Selection for Transfer Learning in Sequence Labeling Tasks. Association for Computational Linguistics. p. 113-118. (2020).
本記事は「Ray on IBM Cloud Code Engine: Boost Your Serverless Compute」「CodeFlare drastically reduces time to set up, run, and scale machine-learning tests」「IBM’s CodeFlare significantly cuts the time to automate transfer learning tasks for foundation models」に基づいて執筆されたものです。
著者
東京基礎研究所 AI担当シニア・マネージャー。音声合成・音声認識などWatson製品の研究開発や、それらを利用したソリューション構築に携わる。
東京基礎研究所 研究員。自然言語処理のための基盤モデルや構文解析器の研究開発、および、言語と画像のマルチモーダル研究に従事。
気象応用AIアプリケーション開発の勘所——技術者目線のランドスケープ
著者:藤尾 昇平 日本IBM、東京ラボラトリー、ストラテジー&オペレーションズ所属。 入社後、大和研究所に配属、メインフレーム用端末やThinkPadのハードウェア開発に従事。なかでも設計応用・高周波利用のための電磁解析 […]
AIプロセッサーの動向とそのソフトウェアの将来を予測
著者:小原 盛幹 IBM東京基礎研究所、コマーシャル・システムズ担当、IBMアカデミー会員、TEC-J バイスプレジデント 現在「AI Hardware Ecosystem」のIBM Research グローバル・リーダ […]
なぜ第一生命は「AI活用」に踏み込んだのか?コンタクトセンターの“大改革”の舞台裏
このエントリーをはてなブックマークに追加 第一生命は、コールセンターの業務改善に向けてIBM Watsonを採用。AIコンタクトセンター支援システムを導入した事例と将来の展望について語ります。 ※この記事は2019年8月 […]