沿って, Uav-jp 13/04/2022

AIフレームワークとは:自社用AI開発の基本、機械学習モデルを効率作成 - Activeまとめ:日経クロステック Active

 AI(人工知能)の活用が企業に広がっている。製品に内蔵されたAIだけでなく、画像処理や自然言語処理などでユーザー企業が独自のAIを活用するケースも増えている。そこで重要となるのが、AI開発の効率化だ。

 本記事ではAIの開発を効率化するAIフレームワークについて、定義、メリットとデメリット、基本的な機能、料金相場、活用のポイントなどを、AI研究家の大西可奈子氏が解説する。併せて、日経クロステックActiveの記事から、事例や関連ソリューションなどをまとめて紹介する。

初回公開:2021/12/6目次1. AIフレームワークとは2. AIフレームワークを導入するメリット/デメリット3. ディープラーニングAIフレームワークの基本的な機能4. 代表的なAIフレームワーク5. AIフレームワークを活用するうえでのポイント6. AIフレームワークの代表的な事例7. AIフレームワークの関連製品・サービス8. AIフレームワークの新着プレスリリース*「1. AIフレームワークとは」「2. AIフレームワークを導入するメリットとデメリット」「3. ディープラーニングAIフレームワークの基本的な機能」「4. 代表的なAIフレームワーク」「5. AIフレームワークを活用するうえでのポイント」は大西可奈子氏が執筆

 現在のAIは機械学習モデルを使ったものが主流だ。そのため「AI(システム)を開発する」とは、機械学習モデルを活用したシステムの開発を指すことが多い。機械学習モデルは「AIモデル」と呼ばれることもあるため、ここではAIモデルの呼称で統一する。

 AIモデルは、入力に対して「アーキテクチャー」に従って「パラメーター」を使って出力を計算する。アーキテクチャーとはAIモデルの構造を決めるもので、例えばTransformer、CNN(畳み込みニューラルネットワーク)、LSTM(Long ShortTerm Memory)などと呼ばれるものがある。パラメーターは、AIモデルの内部に持つ重みづけの係数だ。AIモデルが持つパラメーターはデータに基づいて学習(チューニング)する必要があり、学習が完了した状態のものは「学習済みAIモデル」と呼ばれる。

 AIシステムの開発では「AIモデルを作る」という言い方をよくするが、学習済みAIモデルを作ることを指す場合が多い。AIシステムに組み込まれるのは、この学習済みAIモデルである。

 AIフレームワークとは、AIモデルのアーキテクチャーを実装し、パラメーターの学習を行うソフトウエアである。AIモデルの作成に必要な機能を実装したコード一式を用意している。主にオープンソースソフトウエア(OSS)として提供されている。ディープラーニング(深層学習)を実装するためのソフトウエアもあれば、ディープラーニングではない機械学習モデルの実装に向いているソフトウエアもある。詳しくは後述の「4. 代表的なAIフレームワーク」で説明する。

 AIフレームワークを使うには、プログラミング言語の知識が必要となる。昨今、AI人材というとプログラミング言語「Python」を使っているイメージが強いかもしれない。これはPythonがほとんどのAIフレームワークが対応する言語になっているうえ、機械学習関連の多様なライブラリー(再利用可能なソフトウエア部品群)がそろっており、AIモデルの開発が容易なためである。

目次に戻る

 AIシステムを開発する方法としては、AIフレームワークを活用する方法、ゼロからプログラミングを行う方法、ノーコードでAIモデルを作成できるサービスを用いる方法、公開されている学習済みAIモデルを用いる方法などがある。

 以下では、(1)ゼロからプログラミングを行う方法、(2)ノーコードでAIモデルを作成できるサービスを用いる方法と比較しながら、AIフレームワークを活用するメリット/デメリットを説明する。公開されている学習済みAIモデルを用いる方法はAIフレームワークの導入が必要なことが多いため、ここでの比較対象にはせず、後述の「5. AIフレームワークを活用するうえでのポイント」で特徴を解説する。

 AIフレームワークを使わずにゼロからAIを開発することは可能だが、現在ではAIフレームワークを使わずに実装する人はまずいないと思ってよい。AIフレームワークを使わずにゼロから実装する必要があるとすれば、それはAIフレームワークそのものを作ろうとしている人だろう。

 最新の論文を読み、そこに書かれている新しいアーキテクチャー(AIモデルの構造)を実装する場合でも、AIフレームワークを使えばゼロからプログラミングせずに済むことが多い。

ゼロからプログラミングを行う方法と比較した、AIフレームワークを導入するメリット/デメリット
メリット
デメリット

 ノーコードでAIモデルを作成できるサービスは、GUI(Graphical User Interface)上で誰でも容易にAIモデルを作成できるのが特徴だ。最近、様々な製品やサービスが登場している。

ノーコードでAIモデルを作成できるサービスを用いる方法と比較した、AIフレームワークを導入するメリット/デメリット
メリット
デメリット
目次に戻る

 AIフレームワークにも様々な種類があるが、ここでは画像認識や音声認識、自然言語処理などAIが格段の威力を発揮している分野でよく使われる「ディープラーニングAIフレームワーク」について、基本的な機能を紹介する。

 AIモデルのアーキテクチャーは、MLP(多層パーセプトロン)やCNN(畳み込みニューラルネットワーク)といったコンポーネントの組み合わせで構成されている。AIフレームワークでは、そうしたコンポーネントの多くを実装済みである。

 ユーザーは、AIフレームワークが提供するコンポーネントを組み合わせると、新しいAIモデルのアーキテクチャーを実装できる。最新のアーキテクチャーであっても、これらの組み合わせで実装できることが多い。

 大規模なAIモデルで効率的にデータを学習してパラメーターをチューニングするには、単純な計算を大量のコアで並列処理するGPU(Graphics Processing Unit)の利用が不可欠である。GPUのサポートがないと、全てCPUで計算しなければならなくなり、データの学習が現実的な時間で終わらなくなる。したがって、GPUのサポートはディープラーニングのAIフレームワークに必須の機能である。

目次に戻る

 多くのAIフレームワークはオープンソースで公開されている。ここでは、機械学習で代表的な3つのソフトウエアを紹介する。AIシステムの開発で最も使われているのはプログラミング言語Pythonであり、多くのAIフレームワークはPythonを使ってアーキテクチャーを定義したり、データの学習を実施したりするプログラムを記述できる。

 オープンソースで公開されている機械学習フレームワーク。様々な機械学習アルゴリズムが実装されており、幅広く使われていてドキュメントも充実している。ただし、ニューラルネットワーク(ディープラーニング)のサポートは十分ではないため、ニューラルネットワークを活用したい場合には、以下で紹介する「PyTorch」や「TensorFlow」を使う場合が多い。

 オープンソースで公開されているディープラーニングフレームワーク。GPUを使った大規模な学習に対応している。また開発に必要なツールやライブラリーといったエコシステムも整っている。

 Googleが開発した、オープンソースで公開されているディープラーニングフレームワーク。GPUを使った大規模な学習に対応している。また開発に必要なツールやライブラリーといったエコシステムも整っている。

 ディープラーニングのフレームワークはかつて様々なものが存在していたが、最近はTensorFlowとPyTorchの2つに収束している。

目次に戻る

 AIフレームワークを用いる場合、様々な企業や団体が公開している学習済みAIモデルを活用することもできる。利用規約の範囲内であれば自由に使える。学習済みAIモデルが公開されているサイトとしては、「TensorFlow Hub」や「PyTorch Hub」「Hugging Face Hub」が有名だ。そのまま利用することも、自分用にチューニングして活用することも可能である。

 学習済みAIモデルをそのまま利用する場合は、使いたい学習済みAIモデルを組み込むだけでAIシステムを開発できる。学習データの収集や学習の必要はない。

 ただし、開発したAIシステムの精度(適合率や再現率など)は学習済みAIモデルの精度に依存する。選択した学習済みAIモデルで思うような精度が出ない場合、自分たちでAIモデルをチューニングする必要がある。また、学習済みAIモデルはモデルサイズ(パラメーター数のこと。計算量やメモリー使用量を左右する)を変更できないため、大きすぎる場合には想定以上の性能のマシンを準備する必要が出てくる。

 学習済みAIモデルを自分の目的に合わせてチューニングして使う手法は、現在は広く用いられている。ゼロからAIモデルを作成するよりも少量の学習データで事足り、学習時間もゼロからの学習よりも短く済むからだ。モデルサイズの問題は残るが、公開されている学習済みAIモデルをチューニングして利用するメリットが上回っている状況だ。

 なお、学習済みAIモデルには、インターネット上に公開したWeb APIとして提供されるパターンもある。この場合、AIフレームワークの導入は不要となるが、学習済みAIモデルは自分用にチューニングできない。

 どちらのAIフレームワークも広く使われているものであるため、好みで選んで問題ない。ただし、以下のような状況により、いずれか一方を利用しなければならないことも多い。

 ただし、どちらのAIフレームワークも類似した機能を提供しているため、どちらか一方に慣れておけばもう一方もすぐに使えるようになるだろう。

 AIモデルを作成してシステムに組み込んで使い始めると、最初は当初のテスト通りの精度で動き始める。しかし、使い続けるうちにAIモデルの精度は少しずつ落ちていく場合が多い。

 当初は学習したデータから判断可能なデータが入力されているものの、時間経過とともに学習データからは判断できない想定外のデータが増えてしまうためである。例えば、会話データを学習させた会話AIを開発した場合、当初は人とAIの会話はうまくいくかもしれない。しかし、世の中には新たな話題がどんどん出てくる。これらを学習していない会話AIは、少しずつ人との会話についていけなくなる。

 会話AIに限らず、現実のタスクの解決に活用されているAIモデルは、一度作成して終わりにせず、定期的にアップデートすることで精度を保つことが非常に重要である。

目次に戻る目次に戻る目次に戻る目次に戻る大西 可奈子AI研究家博士(理学)。NTTドコモ、NICTにて対話AIの研究開発に従事。2020年10月より、AIプランナーとして大手IT企業勤務。AIの設計・導入に携わる。副業として、人工知能に関する講演や記事執筆、監修等も多数行う。著書に『いちばんやさしいAI〈人工知能〉超入門』(マイナビ出版)、『超実践!AI人材になる本 プログラミング知識ゼロでもOK』(学研プラス、監修)