はじめに
株式会社FiNC Technologiesでエンジニアリングマネージャーをしています、鈴木健二と申します。簡単に自己紹介をさせていただきますと、新卒でメガベンチャーに入社しソーシャルゲームのインフラ基盤の運用などを経験したのち、スタートアップの起業を経てFiNC Technologiesに入社しました。現在では、SREチームや、AIの検討・導入を推進するチームに所属しています。
FiNC Technologiesは、予防ヘルスケア×AI(人工知能)に特化したヘルステックベンチャーです。今回は、FiNC Technologiesがヘルスケア領域においてどのようにAI技術を活用しているか、またAWSのサービスによってそれをどのように運用しているかについて説明します。
ヘルスケアサービスの提供にあたり、重要なポイントは2つあります。1つ目は、いかに簡易にライフログ(身長、体重、歩数、食事記録など)を取得するのかという点。2つ目は、取得したログからサービスユーザーが次にどのような行動をとれば最適な健康管理や生活習慣改善につながるのかを提示するレコメンドのシステムです。
ライフログを簡単に入力するためツールとして、AIを活用した食事画像解析と、レコメンドシステムの例としてECサイトやアプリ内コンテンツのレコメンドをどのようにAWSを利用して構築しているのかを解説します。
AIのサポートによる食事画像解析
FiNCアプリの機能の1つに「食事記録」があります。従来の食事記録アプリでは、ユーザーが自分で手入力したり、選択肢から選択したりすることによって記録していました。
しかしながら、それではユーザーの負荷が高く、食事記録が継続しないといった問題点がありました。FiNCアプリではAI技術を活用し、ユーザーが食事画像をアップロードするだけで画像が解析され、メニューとカロリーが自動でアプリに記録される仕組みになっています。
運用方法
この食事解析機能は2019年初頭にリリースしましたが、当時の開発運用体制は以下の通りでした。
- GPUサーバーにて大量の食事画像を学習し推論モデルを構築
- AWSのAmazon EC2上に推論モデルを配置
- APIを活用して、アプリケーションから利用する
ここで問題だったのは、運用面でした。FiNCのサービス基盤はAmazon ECSで構築されていたのですが、このモデルは推論にもGPUが必要だったため、従来のデプロイパイプラインと同じ仕組みではデプロイできず、GPUサーバーをAmazon EC2で専用に立てていたため新しくデプロイフローを構築する必要がありました。また、APIのスケーリングに関しても別の仕組みを整える必要がありました。
注:Amazon ECSは、2019年2月4日時点でGPU対応インスタンスのサポートを強化しています(詳細)。
そこで、運用を簡略化しモデルの開発だけに注力できるようにするためにAmazon SageMakerの利用を開始しました。現在はAmazon SageMakerを利用して以下のように運用しています。
- GPUサーバーにて大量の食事画像を学習し推論モデルを構築
- 構築したモデルをDocker Image化してAmazon ECRにpushする
- Amazon SageMaker側でモデルを選択しendpointを作成する
作成したエンドポイントには簡単にオートスケール設定が書けるので、高負荷時の運用に関しても簡単になっています。また、複数のモデルを重み付けしながらリリースできるので新しいモデルのリリース時に、ユーザーの10%だけに適用することもできます。このようにして運用のコストをかけずに推論APIを活用できるようになりました。