[AI/ML] PythonとSageMakerで始める MLチームのみで完結するAPIの構築事例

Bトラック #jd2019_b 10:10〜10:30

講演者所属の会社・事業紹介

弊社GVA TECH株式会社は,2017年に誕生した法律(Legal) x 技術(Technology) = LegalTechに挑戦するスタートアップ企業です.『AI契約サービスAI-CON(アイコン)』という,AI・MLによる契約書のリスク判定サービスを提供しており,専門知識不要でスピーディかつコストを抑えながら契約書を作成できるようお手伝いしております.

講演者は,GVA TECHにて契約書リスク判定アルゴリズムの研究開発とAPI化業務に従事しております.

講演の要旨

データサイエンティスト・MLエンジニアがMLアルゴリズムをAPI化したとき,そのAPIのインフラ管理にリソースが割かれると,主業務である分析・MLアルゴリズムの開発に集中できなくなる恐れがあります.弊社では,フルマネージドなAPIホスティングサービス『SageMaker』をうまく利用することで,この問題を解決できるようになりました.同時に,SageMaker特有の文法を使わずに,MLエンジニアが今まで開発したコードをそのまま流用できるようにし,”MLチーム内だけ”でモデル作成〜APIの管理が完結できるようになりました.本講演では,弊社のML API化事例をもとに,どのようにしてこれらを達成したか紹介いたします.

講演の具体的内容

弊社はWebサーバにEC2を採用しておりますが,APIサーバについても同様にEC2を採用してしまうと,

  • EC2の初期環境設定周りに手間がかかる & 作業する人によって設定の差分が発生しやすい
  • EC2の運用管理(Kernel更新,脆弱性対応)に手間がかかる
  • デプロイ基盤を作るのがつらい
  • 負荷分散の対応が必要

といった課題に直面します.

弊社では,MLエンジニアがこれらの課題への対応をできるだけ回避するために,SageMakerを利用してフルマネージドなML APIをホスティングできるようにしました.

SageMakerは,インフラ管理に工数を割かなくても良い反面,そのフレームワーク特有の文法に悩まされる印象があるかもしれません.しかし,

  • 『Flask等のWebアプリケーションフレームワークを利用したMLアルゴリズム』が格納されたコンテナイメージをECRに配置
  • 学習済みモデルをS3に上げて,APIのデプロイ時にダウンロード

といった工夫を行うことで,scikit-learnをはじめとする一般的な機械学習ライブラリを”そのまま”利用したMLアルゴリズムをAPI化できるようになりました.結果的に,MLのモデル作成〜API管理までの過程を,Webエンジニアやインフラエンジニアの力を借りることなく,MLエンジニアだけで済ますことができました.

つまり,MLモデルのAPI化にSageMakerを採用することで

  • MLエンジニアがデータ分析・MLアルゴリズム開発業務に注力できる
  • API構築時に既知のMLプログラミングに関する知見がそのまま活かせる
  • PoCフェーズで作成した成果物を流用しやすい
  • MLモデルの作成〜インフラ運用を”MLエンジニアチームだけ”で完結できる

といった複数の恩恵を私たちにもたらしてくれました.

本講演では,上記の内容を中心にSageMakerによるAPI化の知見を皆さまに共有いたします.

登壇者

武田 研恒さん

所属:GVA TECH株式会社

ML/NLP engineer 見習い.趣味はプログラミング,Kaggle (Competitions Expert)

主な聴講者

[こんなことに興味がある方にオススメ]
– 普段はデータ分析や機械学習コードの開発業務に従事していて,これからAWSを利用してAPIを構築してみたい
– また,同業務に携わっているが,インフラ周りにできるだけリソースを割かずに手元のMLモデルをAPI化したい
– SageMaker特有の文法を(ほぼ)用いず,scikit-learnや各種DeepLearningフレームワークをそのまま利用してAPI化する方法を知りたい
– MLモデルの作成〜APIの管理をMLエンジニアだけで完結させる方法を知りたい

[想定する受講者のレベル]
以下の項目をベースに初心者〜中級者を想定
– 機械学習の基本的事項は何となく理解している
– Pythonやscikit-learnをはじめとする機械学習ライブラリに触れたことがある
– Dockerを使ったことがある
– AWS上で仮想インスタンス立ち上げやS3,ECR,CloudWatchを利用した経験がある.また,VPCやSecurityGroup周りの設定を行ったことがある