学習済みモデルの活用 -転移学習/ファインチューニングで課題特化型AIを低コストで開発-

 学習済みモデルとは、大規模なデータセットを事前に学習した、汎用的なタスク(機械学習モデルで解決したい課題)に対応できる機械学習モデルです。学習済みモデルを活用することで、特定のタスクに特化したモデルを比較的低コストで生成することができます。
 本記事では、学習済みモデルを別の課題に転用する手法として「転移学習」と「ファインチューニング」を紹介します。また、これらの手法を扱う手順について、効率的に開発するためのポイントや留意点などを含めて解説します。

学習済みモデルとは

定義と登場の背景

 学習済みモデルとは、大規模なデータセットを用いて事前にトレーニングされた機械学習モデルのことであり、狭義には汎用的なタスクの解決能力を獲得した深層学習モデルを指します。
 深層学習は画像認識や自然言語処理、音声処理などの幅広い分野で著しい成果を上げています。表現力の高い深層学習モデルは、大規模かつ多様な学習データセットで学習することにより、未知のデータに対して正確に予測できる能力(以下、汎化性能とします)を獲得できます。しかし、高性能な深層学習モデルの開発には大規模で多様なデータセットを用意できることと、大量のデータで学習できるだけの計算リソースを確保できることが前提にあり、高い技術力と多額のコストを要するため、資金が潤沢で研究開発に注力できる企業以外にはハードルが高いという課題があります。そこで、この課題意識から、高い汎化性能を持つ深層学習モデルを開発しやすくするための手段の1つとして、学習済みモデルを活用する考え方が登場しました。

学習済みモデルを活用する手法

 学習済みモデルを活用することで、深層学習モデルを比較的低コストで、新しいタスクの解決に転用できます。
 前述の通り、高い汎化性能を持つ深層学習モデルの生成には専門的な技術や多額のコストがかかります。そこで、あらかじめ高い汎化性能を獲得した学習済みモデルを生成し、これを類似した別タスクの解決に転用する技術が登場しました。学習済みモデルを生成する概念図を以下に示します。

図1. 学習済みモデルの事前学習

(出所 大和総研作成)

 たとえば、事前学習済み言語モデルの1つであるGoogleのBERT-baseモデルは、およそ33億語のデータで深層学習モデルを学習することで、文書分類や重要情報の抽出などのタスクの解決に転用できる汎用的な言語表現を獲得しました。この事前学習には機械学習ワークロードに特化したハードウェアを4日間稼働させ、$6,912もの計算リソースコストが費やされたと推定されています。このBERT-baseモデルをうまく再利用すると、別の自然言語タスクに対して数百から数千程度の少ないデータ量で良好なモデルが得られることが知られています。
 BERT-baseモデルのような学習済みモデルは画像処理分野や音声認識分野でも開発されており、多くは利用可能な形で公開されています。このような利用可能なモデルが世の中に増えたことで、高い汎化性能を持つ深層学習モデル開発のハードルが下がり、AIサービスが広くビジネスや社会に利用されるようになりました。

 学習済みモデルを活用する手法はいくつかありますが、本稿ではビジネス課題解決においてもよく使われる転移学習およびファインチューニングを行う手順を紹介します。

 注目のウェビナー:大和証券グループで"ChatGPT"を使ってみた

転移学習とは

 転移学習とは、学習済みモデルのネットワークパラメータを固定し、出力層の次元数をタスク設定に合わせて置き換え、出力層へのネットワークパラメータのみ新しいタスクのために最適化させる手法です。たとえば、1,000クラスの分類タスクを事前学習した学習済みモデルを2クラスの分類タスクに転移学習したい場合は、次元数が2の出力層に置き換えます。
 転移学習は中間層でデータの特徴抽出を行う学習済みモデルで有効な場合が多く、画像認識ドメインでの利用が活発です。学習済みモデルに対して転移学習させる概念図を以下に示します。

図2. 転移学習の概念図

(出所 大和総研作成)

ファインチューニングとは

 ファインチューニングとは、学習済みモデルの一部あるいはすべてのネットワークパラメータを、新しいタスクのために微調整する手法です。転移学習と比較して、新しいタスクの解決に対してよりよく適合できることが期待できますが、学習コストはより高くつきます。学習済みモデルに対してファインチューニングさせる概念図を以下に示します。

図3. ファインチューニングの概念図

(出所 大和総研作成)

 図に示す通り、転移学習とファインチューニングはよく似た概念のため、本記事ではまとめて「再適合」と定義し、説明していきます。

学習済みモデルの再適合手順

 学習済みモデルの再適合は下記の手順で行います。

  1. タスクの設定
  2. 適切な学習済みモデルの選択
  3. 開発環境の準備
  4. 再適合用データの準備と前処理
  5. 新しいタスクへの再適合
  6. 再適合済みモデルの評価

 それぞれについて次節から解説していきます。

1. タスクの設定

 大前提として、学習済みモデルの再適合は機械学習プロセスの一形態であるため、一般的な機械学習プロセスのベストプラクティスを踏襲できます。したがって、まず解決したいタスクが機械学習モデルを用いるべきか否かを明確化します。
 機械学習モデルは、人手で処理するには難しい大量のデータに対して、短時間での予測・判断が必要なタスクの解決に有効です。一方で、100%に近い精度が要求されるタスクでの活用には向いていません。また、機械学習モデルよりもルールベースAIの方が適しているタスクや、人手で解決した方がコストパフォーマンスのよいタスクも存在します。
 上記以外にもより詳細に留意すべき点はありますが、ビジネス価値の最大化を念頭に置きつつ、機械学習モデルで解決すべきタスクなのかを慎重に検討することが重要です。

 次に、機械学習モデルで解決したい課題に対して、学習済みモデルが獲得した「一般的な知識」を特定ドメイン(領域)に適応させた「専門知識」に再適合できるタスクであるかを検討します。下記に再適合による解決が適しているタスクへの活用例を示します。

表1. 各ドメインにおける再適合による解決が適しているタスクの例

活用領域
活用例
学習データ
自然言語処理 自社業務の質問に専門知識を回答するチャットボット 業務マニュアル・問合せ履歴
画像識別 工場の生産ラインにて自社製品の不良品を検出 不良品の画像データ
音声処理 会議の文字起こし 会議室やWeb会議、コールセンターなどの録音環境が異なる会議の録音データ

(出所 大和総研作成)

2. 適切な学習済みモデルの選択

 学習済みモデルは設定したタスクの性質に応じてドメインやモデルサイズの観点から選択します。
 設定したタスクと学習済みモデルが解いたタスクの性質ができるだけ似ていると、再適合が成功しやすくなります。たとえば、猫を識別するためのモデルを作成したい場合、特徴が似た動物である犬を識別する学習済みモデルを再適合することで、一から猫の特徴を学習するよりも少ないデータ量で高精度なモデルを生成できます。同様に、信号機を認識したい場合は人工物のデータの事前学習モデルを再適合する、という具合です。

 また、学習済みモデルは利用できる計算リソースの制約も踏まえてモデルサイズを選ぶことも大切です。たとえば、会議の議事録を自動生成する簡易的なアプリケーションを検証したい場合を考えます。この場合、モデルの稼働環境は業務用PC端末など限られたかつ持ち運びしやすいものが望ましいでしょう。
 多くの学習済みモデルには複数のモデルサイズが用意されています。一般的に、モデルサイズが大きいほど再適合後の汎化性能も高くなることが期待できますが、計算量が大きくなるためモデルの予測結果を得るまでのレスポンスが遅くなったり、再適合に大きな計算リソースが必要になることがあります。

3. 開発環境の準備

 一般的な機械学習モデルの開発と同様に、学習済みモデルを用いた開発においても、下記の観点においてはオンプレミスよりもパブリッククラウドの方が向いており、よく利用されます。

スケーラビリティと柔軟性

 機械学習モデルの開発で大きな計算リソースが必要になった場合にはパブリッククラウドを利用すると迅速に対応可能です。パブリッククラウドはGPUだけでなく、Cloud TPUやAWS Trainiumといった機械学習ワークロードに特化したハードウェアを必要に応じてすぐに利用できることも利点です。

Cloud TPU とは、Tensor Processing Unitの略称で、Googleが機械学習ワークロードを高速化するために独自開発した集積回路であり、Google Cloud上で使用できます。
AWS Trainium とは、Amazon Web Servicesが深層学習トレーニング専用に構築された機械学習チップであり、Amazon Web Services上で使用できます。

従量課金制

 一般的に学習済みモデルは膨大なネットワークパラメータを持つため、再適合時に大きな計算リソースやGPUなどのハードウェアを必要とします。その一方で、再適合完了後は計算リソースが不要となるため、計算リソースを解放することで、従量課金の課金体系であるパブリッククラウドにおいてコストを節約できます。

開発・デプロイを支援するサービス

 クラウドベンダ各社は、機械学習モデルの開発を効率化する機械学習プラットフォームサービスを提供しています。開発環境の構築にかかる時間の短縮やトレーニングが完了したモデルの迅速なデプロイをサポートする機能が充実しているため、機械学習アプリケーションとしてリリースするまでのリードタイム短縮が期待できます。

深層学習フレームワークが安定稼働する仮想環境

 機械学習プラットフォームサービスは深層学習フレームワーク(例:PyTorch、TensorFlow)が安定稼働する仮想環境を提供しており、過去バージョンの深層学習フレームワークにも対応しています。したがって、深層学習フレームワークの特定バージョンでしか利用できない学習済みモデルの検証が必要となった場合にも、スムーズに着手できる利点があります。

4. 再適合用データの準備と前処理

 一般的な機械学習モデルの学習時と同様に、学習済みモデルの再適合においてもデータ品質の高い学習データセットを用意する必要があります。そして、選択した学習済みモデルで学習可能な形式に前処理を行います。
 学習データセットの品質は、機械学習モデルの性能に大きな影響を与えます。したがって、主に以下の点に留意する必要があります。

  • データの正解ラベルは誤りなく付与されているか
  • データにノイズや重複、外れ値が含まれていないか
  • データは多様な性質を網羅できているか

 たとえば画像データの場合、同一人物を表す画像であっても角度や照明のあたり具合が異なるものを用意して多様性を確保するほか、明瞭な解像度であることが望ましいです。音声データの場合、異なる話者や異なるアクセントの音声で多様性を確保しつつ、十分に識別可能な音量・明瞭度であることが求められます。
 また、学習済みモデルの再適合に使うデータセットは、選択した学習済みモデルが学習できる形式に前処理する必要があります。たとえば画像認識モデルを扱う場合は画像のリサイズや特定領域の切り取りが必要であり、自然言語処理モデルを扱う場合は文章を語彙に分割するトークナイズ処理が必要です。

5. 新しいタスクへの再適合

 学習済みモデルの新しいタスクへの再適合は、深層学習フレームワークを使用することで容易に実装できます。PyTorchやTensorFlowは再適合の詳細な実装手順を公開しています。(リンクをクリックすると詳細な実装手順のページが開きます。)

表2. 代表的な深層学習フレームワークの再適合実装手順へのリンク

深層学習フレームワーク名 リンク
PyTorch https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html
TensorFlow https://www.tensorflow.org/tutorials/images/transfer_learning?hl=ja

(出所 大和総研作成)

6. 再適合済みモデルの評価

 再適合済みモデルの評価は検証データに対する予測精度だけでなく、開発者が用意したもの以外の学習用データセットの影響も、時間をかけて評価する必要があります。以下に評価対象と懸念されるリスクの例を示します。

表3. 再適合後モデルの評価対象と懸念されるリスクの例

評価対象 リスクの例
事前学習に使用されたテキストデータの影響 特定言語が大半を占めるデータセットで学習された学習済み言語モデルを他の言語用に再適合させた場合に、特定言語の文法に従った不自然な出力をしてしまう
事前学習に使用されたデータの取得時期の影響 事前学習済み言語モデルで特定キーワードの類似語を出力したいとき「コロナウイルス」で検索しても、モデルの語彙が古いためにヒットしない
リリース後の機械学習アプリケーションの出力の表現 ユーザからの入力データに応じて表現を追加学習するチャットボットサービスが悪意のあるユーザによって差別的表現を学習させられ、当初とはまったく異なる出力を行ってしまう

(出所 大和総研作成)

 以上の通り、学習済みモデルを選択する際はどのような性質のデータで学習されているのかまで目を向け、新しいタスクに再適合した後のモデル評価においても意図しない表現が出力されていないかを事前に確認する必要があります。また、一般の機械学習アプリケーションと同様、リリース後もモデルの出力を継続的にモニタリングすべきです。

おわりに

 学習済みモデルを使用することで、高性能なモデルの学習に必要なデータの量を減らすことができ、設定したタスクに特化したモデルを比較的低コストで生成できます。また、パブリッククラウド上で開発することで、一般の機械学習モデル開発と同様に学習やデプロイを簡単に実行でき、深層学習フレームワークのために整備された仮想環境を簡単に利用できます。ただし、学習済みモデルを使用する場合は、意図しない出力をしていないか注意を払う必要があります。
 これまで困難だった「自社特有のデータを用いた機械学習モデル開発」を、学習済みモデルによって加速させていきましょう。

参考 深層学習フレームワークの紹介

 学習済みモデルを利用する際は、PyTorchやTensorFlowといった深層学習フレームワークの利用をおすすめします。これらは自然言語処理、画像認識、音声処理分野の無償利用可能な多数の学習済みモデルを迅速に使えるよう整備されています。また、再適合手順の公式ドキュメントが公開されているため、まず試してみたいという方は最初に参照するとよいでしょう。

PyTorch

 PyTorchはドメインごとにライブラリを提供しており、各ドメインデータの前処理に便利な関数群を利用できます。学習済みモデルも各ライブラリに内包されており、容易に利用可能です。(リンクをクリックすると自然言語処理、画像識別、音声処理ドメインのライブラリの公式ドキュメントページが開きます。)

TensorFlow

 TensorFlow Hubは、すぐに微調整してどこにでもデプロイ可能なトレーニング済み機械学習モデルのリポジトリです。BERTやFaster R-CNNなどのトレーニング済みモデルを、わずか数行のコードで再利用できます。(リンクをクリックするとTensorFlowのページが開きます。)

関連するウェビナー

ウェビナー|大和証券グループで"ChatGPT"を使ってみた

関連するITソリューション

データ利活用・データ分析基盤 | 大和総研


※Google Cloud、TensorFlowおよびCloud TPUはGoogle LLCの商標です。
※Amazon Web ServicesおよびAWS Trainiumは、米国および/またはその他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。