AIのデプロイに必要なウェブ技術
投稿日: 2021/09/27 22:57:40
著者: 代表取締役CEO 木村 優志
ウェブ技術とAI
Convergence Lab.は、基本的にはAI技術の会社です。しかし、AIやデータ技術を届けるためには、ウェブ開発の記述が必要なことがあります。今回は、AIをデプロイするためのウェブ技術について書きたいと思います。
フロントエンド
フロントエンド開発が必要になったとき、Convergence Lab.では主に、Nuxt.js/Vue.jsを用います。コーポレートサイト更新の記事でも触れたとおりです。
Vue.jsを採用する理由としては、テンプレートをベースとした書き方がとっつきやすく、導入が簡単なことです。Vue.jsで基本的なUIを作成することはできますし、Vuetifyを利用すればマテリアルデザインのサイトを簡単に作れます。
我々にとってフロントエンドの役割はバックエンドのAPIをコールして結果を表示することです。後述しますが、バックエンドには、node.jsを用いないため、SSGして静的サイトとしてフロントエンドを作ります。
バックエンド
AI技術はPythonとの相性が良いため、私達はバックエンドをPythonで書くとが多いです。バックエンドは、REST APIで作ります。ステートレスにすることで、負荷分散が容易になるためです。RESTフレームワークには、FastAPIを用います。APIを書くだけならシンプルですし、コミュニティも活発なため大抵の用途には利用できます。
バックエンドは GCP (Google Clound Platform)上に構築することが多いです。これは、BigQWueryが速くて便利だからというのが主な理由です。
ミドルウェア
データ分析の段階で、大きく関わってくるのはデータウェアハウス (DWH) です。場合によっては、データレイクからデータウェアハウスの構築そのものおを行います。データウェアハウスはBigQueryに置くことが多いです。自前で分散データベースを用意するのは、相当曽根の折れる作業です。費用対効果でもマネージドサービスに軍配が上がります。
BigQueryは検索は高速ですが、小さなデータを何度も取りに行くことは得意ではありません。そういう場合は、キーバリューストア (KVS) を用いることになります。これも、マネージドサービスを用いるの便利です。GCPなら、Cloud Firestoreが該当します。
他に必要になる可能性があるものとしては、全文検索エンジンなどのでしょう。これは、Elasticsearchなどですね。
まとめ
今回は、AIのデプロイに必要なウェブ技術について話しました。フロントエンドやバックエンドの開発。マネージドサービスを利用したミドルウェアの選択が重要です。