(出所:123RF)
(出所:123RF)

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

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

初回公開:2021/12/6
最終更新:2022/5/13
*「1. AIフレームワークとは」「2. AIフレームワークを導入するメリットとデメリット」「3. ディープラーニングAIフレームワークの基本的な機能」「4. 代表的なAIフレームワーク」「5. AIフレームワークを活用するうえでのポイント」は大西可奈子氏が執筆

1. AIフレームワークとは

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

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

(出所:123RF)
(出所:123RF)

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

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

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

2. AIフレームワークを導入するメリット/デメリット

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

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

(出所:123RF)
(出所:123RF)

(1)ゼロからプログラミングを行う方法との比較

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

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

ゼロからプログラミングを行う方法と比較した、AIフレームワークを導入するメリット/デメリット
メリット
  • AIフレームワークに実装済みの機能を組み合わせることで様々なアーキテクチャーを容易に実装できる
  • ゼロからプログラミングする場合と比べてバグが混入しにくい
デメリット
  • 特になし

(2)ノーコードでAIモデルを作成できるサービスを用いる方法との比較

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

ノーコードでAIモデルを作成できるサービスを用いる方法と比較した、AIフレームワークを導入するメリット/デメリット
メリット
  • AIモデル学習時のパラメーターの設定など、きめ細やかな調整が可能
  • より多くの種類のアーキテクチャーを実装して試せる
  • 精度が出ない時には、アーキテクチャーを変えたりパラメーターを調整したりと、様々な対策を取れる
デメリット
  • AIモデルの作成にはプログラミングの知識が必要
  • ノーコードと比較してAIモデルの作成に時間がかかることが多い
  • プログラミングの誤りによるバグが混入する可能性がある

3. ディープラーニングAIフレームワークの基本的な機能

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

主要なコンポーネントを実装済み

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

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

(出所:123RF)
(出所:123RF)

GPUのサポート

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

4. 代表的なAIフレームワーク

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

(出所:123RF)
(出所:123RF)

scikit-learn

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

PyTorch

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

TensorFlow

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

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

5. AIフレームワークを活用するうえでのポイント

(1)公開されている学習済みAIモデルの活用

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

(出所:123RF)
(出所:123RF)

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

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

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

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

(2)TensorFlowとPyTorchのどちらを使うべきか

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

  • 利用したいAIモデルのアーキテクチャーがいずれかのAIフレームワークでのみ実装されている
  • 利用したい学習済みAIモデルがいずれかのAIフレームワークでのみ提供されている
  • 企業のポリシーなどで利用できるAIフレームワークがいずれか一方である

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

(3)AIモデルを作成した後に気を付けるべきこと

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

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

(出所:123RF)
(出所:123RF)

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

6. AIフレームワークの代表的な事例

神奈川県

 「感染予測のデータに基づき、施策を打てるようになる」――。2021年9月10日、神奈川県の黒岩祐治知事は、神奈川県立保健福祉大学と共同で開発した新型コロナウイルス感染症の感染予測モデルを発表し、こう強調した。予測モデルは、人流データやワクチン接種率などの入力値を基に、将来の感染状況を県内の地域ごとに示す。

(中略)

 Google Cloudが2020年11月から提供している感染者予測の人工知能(AI)サービス「Google AI・COVID-19 感染予測(日本版)」と、独自の予測モデルを組み合わせる。1週間先までの予測は独自モデルを使う。市町村別の人流やワクチン接種率などの入力値を用いて、重回帰分析と呼ぶ統計処理によって予測する。8日後以降の予測は、COVID-19 感染予測(日本語版)が提示する変化率を用いて算出する。

神奈川県がコロナ対策の予測モデル開発、散在データをパランティアで集約し分析」から引用

NTT西日本

 「西日本では最大の規模であり、初の本格的な拠点だと自負している。関西はいま活気にあふれている。顧客企業がその波に乗れるよう寄与したい」。NTT西日本の小林充佳社長は2019年8月26日に設立したDX(デジタルトランスフォーメーション)拠点「LINKSPARK(リンクスパーク)」に関して、こう意欲を見せる。

(中略)

 プロトタイプは「若手が中心となり、デザイン思考を活用して開発した」(上山室長)。脳波センサーでボールを動かす様子を体験できるプロトタイプや、複数人で導線分析を体験できるプロトタイプなども用意している。AI関連の「corevo」やデータ分析の「RakuDa」といったNTTグループの技術のほか、機械学習のオープンソースソフト「TensorFlow」など他社の技術やサービスを活用しているという。

ナニワのDXは一味違う?NTT西日本が描く「ごっつい」野望とは」から引用

サンスターグループ

 サンスターグループ(以下サンスター)は2019年10月17日、AIを利用して消費者1人ひとりに適した歯ブラシや歯間清掃具などを提案するWebサービスを11月に開始すると発表した。消費者は歯医者などに出向かずに最適な歯ブラシを選択できる。自信を持って歯ブラシを選ぶ消費者が2割以下とされるなか、自分に合った1本を選びやすくして拡販につなげる。

(中略)

 同サービスの開発期間は約1年間。米グーグル(Google)が提供しているAI技術を利用した。顔写真から口内領域を切り出すのに、画像認識の機械学習モデルを自動生成できる「Cloud AutoML Vision」、機械学習モデルを利用して画像を分析・抽出できる「Cloud Vision API」を適用。切り出された画像から口内状態を解析するのに、機械学習用基盤ソフトウエア「TensorFlow」を利用した。

AIがお薦めの「歯ブラシ」を提示、サンスターが開発した新サービスの実力は」から引用

7. AIフレームワークの関連製品・サービス

日本ヒューレット・パッカード

日本IBM

デル・テクノロジーズ

キヤノンITソリューションズ

グーグル・クラウド・ジャパン

8. AIフレームワークの新着プレスリリース

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