今話題のAIをweb上で誰でも気軽に作れる「AIメーカー」を開発しました!
— 2z@AIメーカー (@2zn01) 2018年7月19日
①AIに覚えさせたいタグを入力
②タグから自動で画像データを収集
③AIがデータから学習
の3ステップで誰でも簡単にAIを作れます!
動画では手相占いのAIに挑戦!
みんなもAIを作って遊んでみてね!https://t.co/66DFU7GRZ2 pic.twitter.com/ie1LmioyA1
こんにちは、2z(Twitter: @2zn01 )です。
はじめてのQiita記事です。
今話題のAIをweb上で誰でも気軽に作れる「AIメーカー」を開発しました!
■AIメーカー
https://aimaker.io/
作ったもの
以下の3ステップで誰でも簡単にAIを作れます!
- AIに覚えさせたいタグを入力
- タグから自動で画像データを収集
- AIがデータから学習
今話題のAIをweb上で誰でも気軽に作れる「AIメーカー」を開発しました!
— 2z@AIメーカー (@2zn01) 2018年7月19日
①AIに覚えさせたいタグを入力
②タグから自動で画像データを収集
③AIがデータから学習
の3ステップで誰でも簡単にAIを作れます!
動画では手相占いのAIに挑戦!
みんなもAIを作って遊んでみてね!https://t.co/66DFU7GRZ2 pic.twitter.com/ie1LmioyA1
画面イメージ
学習データの登録画面
学習データを各ラベル名から自動で収集する機能を実装!
— 2z@AIメーカー (@2zn01) 2018年7月8日
これはなんとAidemyの石川さん(@ai_aidemy)よりアドバイス頂いたアイディアです!大感謝!!
僕も最近始めたところですが、Aidemyは機械学習、ブロックチェーンなど最新の技術も勉強できておすすめです!https://t.co/gORhd5P7Ls#AIメーカー pic.twitter.com/2cNpjzjPAl
モデルの学習画面
複数AIのモデル学習を並列で走らせる対応も無事完了!
— 2z@AIメーカー (@2zn01) 2018年7月7日
(処理の裏側では複数のGPUサーバが走っている)
学習には時間がかかってしまうため、エポック数(訓練データを何回繰り返して学習させるか)は500に調整し、10分以内には終わるように。
精度よく学習させたい人は応相談にしておこう#AIメーカー pic.twitter.com/ukM3sg9rNG
モデルの学習履歴
学習履歴を一覧表示して、グラフを切り替えれるようにしてみた。#AIメーカー pic.twitter.com/wxcxZ3HXLE
— 2z@AIメーカー (@2zn01) 2018年7月8日
モデルの推論結果画面
AIメーカーの診断結果へ無駄にグラフを追加してみた!#AIメーカー pic.twitter.com/YCTaBDawhh
— 2z@AIメーカー (@2zn01) 2018年7月14日
なぜ開発したか?
・ディープラーニングに可能性を感じた
世の中ではAIが何でもできるというイメージが広まってしまい、ちやほやされすぎてる印象ですが、ディープラーニングは言語化できない=プログラム化できないものを機械が取り扱えるという点でこれまでのものと比べても画期的な技術だと思っています。
普段、会社でwebシステムの開発、また趣味でもwebサービスの開発をしていることもあり、特にディープラーニングをwebと組み合わせることで色んな可能性があるなぁとすごく感じてます!
・環境構築・GPUサーバ費用にハードルがある
ディープラーニングのライブラリは色んなものが出揃って手を出しやすくなってはいますが、処理時間がすごくかかってしまうために高価なGPUサーバを用意する必要がある点、専用の環境を構築しないといけない、などなど、まだまだハードルがあると思っています。
そんな中なので、AIメーカーでディープラーニングを誰でも手軽に気軽に取り扱うことができれば、webの世界に面白い波がくるんじゃないかなと考えてます。
そこで、まずはなるべく手軽に始められるように、学習データを準備するだけでサーバも面倒な環境構築も必要なく利用できるサービスとして構想し始めました。
・AIでできることが漠然としている
僕自身、AIでできることが漠然としてしまっているので、こんなことができそうというのが考えることができて、実践できる場所にしたいと考えました。
僕もまだまだ勉強中ですが、こんなの出来たらいいのに、といった漠然としたアイディアをカタチにできるようなプラットフォームを目指したいです。
・オープンなAIを目指したい
百科事典ならwikipedia、地図ならOpen Street Mapのように、みんなが作ったAIをオープンに公開し、みんなでAIを便利に活用できる、そんな場所があったら面白いし、便利じゃないかと考えました!
オープンデータならぬ、オープンAIです!
・みんなのAIプラットフォームへ
AIをクローズドなものとして囲い込むのではなく、もっとオープンにみんなで共有すればもっと便利さを享受できると考えました。
そして、こんなAIが欲しいというのがあったら、みんなで協力してアイディアを出して、みんなで学習データを集め、AIを作ってみるのも良さそうです。
学習が完了したAIはみんなで活用します!みんなハッピー!
また、ディープラーニングの可能性を機械学習を扱う一部のエンジニアだけでなく、もっとみんなで考えてみましょう!
実際のところ、実際の問題や課題へのAI活用という意味では、エンジニアよりも本当に問題や課題に直面している当事者こそ、解決までの道を見誤らずにアイディアを生み出し、AIを活用していけるのではないかと思っています。
そのツールとして、まずは「AIメーカー」をとにかく使ってみる、遊んでみるところからはじめてみてほしいです。
あなたのちょっとしたアイディアが世界を変える可能性だってあります!
そのための「みんなのAIプラットフォーム」へ!
開発経緯や構想は以下のnote記事にも書いてますので、ぜひご覧ください!
システム構成図
AIメーカーのシステム構成図は以下の通りです。
Amazon Web Services(以下、AWS)を使ってサービスを構築しました。
大きな構成としては、主にユーザからのリクエストを受け付けるフロントサーバと機械学習の処理を取り扱うバックエンドサーバの2つです。
それぞれ取り扱っている言語、フレームワークは以下の通りです。
- フロントサーバ:PHP(Zend Framework)
- バックエンドサーバ:Python(Flask)、Caffe(Deep Learning Framework)
ディープラーニングのフレームワークは Caffe を使っています。
あとはデータベースはAWSのRDS(MySQL)を使い、全インスタンスで学習データや学習済みモデルを共有するためにAWSのEFS(ネットワークファイルシステム)を使っています。
なお、GPUインスタンスはかなりコストが高いため、モデル推論のための1台を除き、学習が必要なときのみにインスタンスを起動して学習が完了するまでインスタンスを管理する仕組みとして構築しました。
実装で特に気をつけた箇所
1.タスク管理
サーバに負荷がかかる処理が多いため、うまくタスク管理を行い、処理を非同期で実行する必要がありました。
具体的には、以下の2つです。
- 学習データ(画像)の収集
- モデルの学習
これらの処理はデータ数にもよりますが、数分~数十分かかることがあるため、ユーザからリクエストがあった際にはタスク管理用テーブルへタスクとして登録しておき、バックグラウンドでデーモンが先入れ先出しで順番に処理を行うようにしました。
これらは同時に多数のプロセスを走ると負荷的に厳しいため、同時並列で走るプロセス数は設定ファイルで制御するようにしています。
2.インスタンス管理
上記の「1.タスク管理」のモデルの学習と絡んでくるのですが、モデルの学習にはGPUインスタンスを使わないと、学習完了まですごく時間がかかってしまうため、インスタンスも同時に管理する必要がありました。
先述したようにGPUインスタンスは高いので、クラウド破産してしまわないようにモデルの学習開始と完了のタイミングにあわせて、AWSのGPUインスタンスの起動・停止を行っています。
3.学習データ(画像)の収集
画像の収集はサーバ側でMicrosoft AzureのBing Image Search APIを使って、収集しています。
こちらのBing Image Search APIの使い方は以下の記事がすごく参考になります。
なお、画像の収集においては、何度も同じ検索クエリが走ってしまわないように一定期間データをキャッシュするようにしています。
4.ファインチューニングによる精度向上
AIメーカーでは、モデルの学習時にファインチューニングという既存の学習済みモデルを再利用して、新しいモデルを構築する手法を用いています。
既に実績のある優秀な汎用モデルをベースに新たなモデルを構築するため、比較的少ないデータでもある程度精度の良いモデルが構築することが可能です!
今後の課題
AIメーカーでは誰もが手軽にシンプルに使えること、そして学習が早く終わるようにするため、現時点ではモデルの精度を犠牲にしています。
そのため、今後は精度向上のために学習の際のハイパーパラメータのチューニングをしたいとか、学習の回数をもっと増やしたいとかなどの要望に応えられるようにする必要があると感じています。
学習自体はサーバ側でGPUを使ってやってます。
— 2z@AIメーカー (@2zn01) 2018年7月21日
ただ、まずは手軽に利用できるように学習時間を大幅に削減するべく、本来もっと学習すべきエポック数を少なくしてるので、精度はそんなに出ないのが現状です。
こちら、精度を上げたい方はオプションでパラメータ調整を可能にしたり等、今後の課題です! https://t.co/ZNfOUGxtS9
ただ、GPUインスタンスのコストもあるので、どう対応するか検討中です。
もし、学習の際のハイパーパラメータのチューニングをしたいとか、学習の回数をもっと増やしたいとかなど、実用性重視のためにモデルの精度向上を行いたいというニーズがありましたら、 Twitterの@2zn01 宛に一度ご連絡ください。
今後やりたいこと
まだ画像認識の中でも画像分類のみしか対応していないので、今後以下の機能も追加していきたいと思っています!
- 画像生成
- 音楽生成
- 自然言語処理
- 文字起こし
今開発中の「AIメーカー」の構想をnoteの記事にまとめました。
— 2z@AIメーカー (@2zn01) 2018年7月16日
ぜひ読んでAIメーカーで遊んでみてください!
僕がAIメーカーを開発して目指したい場所|2z @2zn01https://t.co/cWWHeyQIh5
AIメーカーでは今後、画像生成、音楽生成、自然言語処理、文字起こしなど様々な分野への対応を検討中です!
「AIメーカー」が目指すポジション
「みんなのAI」プラットフォームを目指します!
特にAIの分野は企業がそれぞれで独自に進めてたりしてるのをみてて、もったいないなぁと感じてます。データ集めもみんなで協力して、作ったモデルももっとオープンにしたら、みんなで便利さを享受できるのではと考えています。
使いやすさはkintoneのように! GitHubのようにオープンに! を目指します!!
目指すは「みんなのAI」プラットフォーム!!#AIメーカー https://t.co/7a0eFSxC8T
— 2z@AIメーカー (@2zn01) 2018年7月21日
特にAIの分野は企業がそれぞれで独自に進めてたりしてるのをみてて、もったいないなぁと感じてました
— 2z@AIメーカー (@2zn01) 2018年7月21日
データ集めも、作ったモデルももっとオープンにしたら、みんなで便利さを享受できるのではと考えています。
使いやすさはkintoneのように!GitHubのようにオープンに!を目指します!!
今、AIは話題にはなってますが、各企業はクローズドに進めていて一部の人しか触れていない状況です。そこを手軽なプラットフォームとしてオープンに色んな人が利用できるようにすることで、新しい何かが生まれる可能性が高くなります。
また、AIを一人だけで作るという形ではなく、こんなAIが欲しいという人たちが協力して便利なAIを生み出すことで、それがさらに加速しそうです!
特にディープラーニングはwebサービスと同様にちょっとした発想の転換、アイディア次第で革命を起こせるぐらいの力を持っている可能性があると個人的に思っています。
その可能性に惹かれて、今僕はワクワクしながらAIメーカーの開発に取り組んでいます!
ただ、現状ではモデルの学習に使っているGPUインスタンスの費用が高いため、マネタイズの問題がまだまだ残っています。
しかし、これも今後ちゃんとAIのプラットフォームの役割を担えるほどの機能が用意できれば、自分で作ったモデルを販売できるマーケットプレイス機能なんかを用意したり、理想のAIを作るためのクラウドファンディングのような機能も設けて、大きく出すぎかもしれませんが、そこでAIのマーケット経済圏を作りたいです!
形式は何にせよ、「 AIを使う人、AIを作る人、そしてそれを繋ぐAIメーカーと三方良しのプラットフォーム 」を目指します!
最後に
まずはぜひAIメーカーを使って、AIで遊び倒してみてください!
■AIメーカー
https://aimaker.io/
AIの可能性を機械学習に携わっている一部のエンジニアの人だけでなく、みんなでAIをさわってみることからはじめましょう!
そのためのツールとして、とりあえず「AIメーカー」を使って遊んでみてほしいです。
もっとみんながAIを気軽にさわれるようにすることで、こんなことに使えるんじゃないかと新たなアイディアが生まれることを期待しています。
あなたのちょっとしたアイディアが世界を変えるかもしれません!
ただ、「AIメーカー」はまだまだ構想の一部しかできていないので、僕も頑張ってこれからもっと機能を追加していきたいと思っています。
「みんなのAIプラットフォーム」となれることを目指して...
AIメーカーに少しでも興味をもって頂けましたら、ぜひフォローやいいね、リツイートで応援お願いします!
今話題のAIをweb上で誰でも気軽に作れる「AIメーカー」を開発しました!
— 2z@AIメーカー (@2zn01) 2018年7月19日
①AIに覚えさせたいタグを入力
②タグから自動で画像データを収集
③AIがデータから学習
の3ステップで誰でも簡単にAIを作れます!
動画では手相占いのAIに挑戦!
みんなもAIを作って遊んでみてね!https://t.co/66DFU7GRZ2 pic.twitter.com/ie1LmioyA1
【お知らせ】
— 2z@AIメーカー (@2zn01) 2018年7月16日
AIメーカーの第一弾「画像認識」をリリースしました!
AIをもっと手軽にオープンに作成・活用できる場を目指し、開発してます!
実用的なAI、面白いAI、スケベなAI、色んなAIがあっていいと思うんですよ!AIも多様性の時代だぜ☆
ぜひぜひ遊んでみてください!https://t.co/Vnf0QITH1v