AiBAの仕組み 第3回 AiBAの構成

前回の投稿から大分時間が空いてしまいましたが…
第2回では、機械学習について大まかな説明を行いました。
今回は、AiBAの構成について解説していきます

第2回執筆時点では、今回は機械学習のプログラムの書き方について書く予定でいました。しかし、先にある程度AiBAの構成について説明しておかないと、どれが何を指しているか分かりにくくなってしまいそうなため、機械学習プログラムの書き方は次回に回そうと思います

第3回 AiBAの構成

全体構成

現在AiBAは、AI実行用PCWebサーバ二つの組み合わせで動作しています。
一見Web上で全て完結しているようにも見えるAiBAですが、実際皆さんが見ているこのWebサービスは、あくまでWebサーバ側に投稿された内容を表示しているだけに過ぎません

全てではないですが、一部簡略化して図に起こすとこのような感じになります。
AI実行用PCは、皆さんが普段使っているPCと同じような普通のWindows PCです。

サーバではないため、外部からの接続を受け入れたりはしていません

AI実行用PCでは、Python 3というプログラミング言語で学習や予測実行を行い、予測内容を元にWebサーバやSNSへ投稿する文章を生成します。
そして、その生成された文章を、APIを使用してWebサーバやSNSへ届けることで予測を公開しているのです

自宅にマシンを置かずにクラウドサービス上で完結させる方法もあるのですが、実行時間やデータの保存容量、転送量などで料金が青天井になってしまうためAiBAでは採用していません

俗に言うクラウド破産というものですね…
開発時のバグによる挙動や想定以上のアクセスなどで、個人開発者が100万円以上の請求を受けてしまった例もニュースメディアやSNSなどでしばしば耳にします

クラウドサービスが必ずしも悪いというわけではないのですが、AiBAの用途規模感的にクライアントとサーバの組み合わせで動作させるのが最適と判断してこのような構成になっています

AI実行用PC

AiBAでは、AI実行用PC使い古したノートPCを使用しています

OSWindows 10 64bit
CPUIntel Core i7 5500U
メモリ8GB
SSD256GB
AI実行用PCのスペック

こちらが現在使用しているAI実行用PCのスペックです。
開発は別の高スペックなPCで行っていますが、予測自体はこれくらいの性能でも十分実用可能な速度が出ます。
また、ノートPCはバッテリーがついているため急な電源の切断にも強く、UPS(無停電電源装置)を使用しなくても、安定して稼働できるメリットがあります

学習の際、分類器の生成はスペックに応じて実行時間が大きく変わってくるのですが、生成済みの分類器を用いて予測を実行するだけであれば、極論Raspberry Piなどのシングルボードコンピュータでも十分動作します

しかし、Raspberry Pi安く調達できる一方で、microSDの寿命や電源管理などを気にする必要があるため、長期で安定稼働させるには一工夫必要かもしれません

Webサーバ

Webサーバは、PHPとMySQLが使用できるレンタルサーバWordPressをインストールして使用しています

WordPressはブログソフトウェアなのですが、CMS(コンテンツ管理システム)としても広く使用されています。
カスタマイズ性も高く様々なプラグインが存在するため、用途に合わせて柔軟に運用出来るメリットがあります

Webページ開発をイチからやるとかなり時間も手間もかかるため、AI開発に時間を割けるように、なるべく既存の仕組みを採用して運用コストを減らすようにしているのです

また、PC・スマホ・タブレットに合わせたレスポンシブデザインへの対応も、WordPressのテーマ側で自動でやってくれるのも嬉しいところです

加えて、AiBAではPWA(Progressive Web Apps)という仕組みを採用してアプリ版を提供しています。
これは、Google社が提唱したWebコンテンツをアプリのように振舞わせるための技術で、ブラウザよりもページの読み込み速度が高速化したりなど、ユーザーさん側にも様々なメリットがあります

PWAは、App StoreやGoogle Playなどのプラットフォーマーに縛られずに更新や提供が出来るという点で、運営者にとっても非常にありがたい仕組みです

一方で、AppleはしばしばiOSにPWAの規格を逸脱した仕様を実装してくるため、現状ではまだPWAで出来ることに制限があることは否めません…

とは言え、AiBAではそれらの制約に触れるような機能は使用していないので、今のところ特に不便は感じていません

次回予告

今回はAiBAの構成について解説しました。
前回に引き続き少し専門的な内容が続いていますが、開発手法をなるべくオープンにすることが、競馬AIの怪しさを払拭する方法だと信じていますので、これからもAiBAの仕組みについて解説を続けていきます!

一人で運用開発を行っているのでコラムの更新まで手が回らず、更新に時間がかかることもあるかと思いますが、地に足をつけて一歩一歩進めていきますので、引き続き応援していただけると幸いです…!

次回は今度こそ、機械学習プログラムの書き方について解説していきます!

それでは次回もお楽しみに…!

コメント

タイトルとURLをコピーしました