こんにちは! ML/NLPエンジニア見習いの武田です.
先日(2/23)「JAWS DAYS 2019」にて,「PythonとSageMakerで始めるMLチームのみで完結するAPIの構築事例」というテーマで発表してきました.
朝一のセッションであったため,正直なところ会場はスカスカになると思いきや...おかげさまで殆どの席が埋まり大好評でした!ご来場いただいた皆様,本当にありがとうございました!
JAWS DAYSとは
主催JAWS-US,後援アマゾン ウェブサービス ジャパン株式会社で,毎年1回開催される大型のカンファレンスです.エンジニア・非技術者,学生・社会人を問わず,AWSのビギナーからエキスパートまで様々なユーザが集まります.今年は1950名近く来場されたそうで,本イベントの盛況ぶりには驚かされました.
また,会場にはスポンサーによるブースもあり,様々な技術話や意見交換などが交わされて,とてもアツい雰囲気に包まれておりました.
写真に残すことはできませんでしたが,会場には色々な種類のお弁当が配布されたりキッチンカーが出店していたりと,行くだけで楽しいイベントになっている印象でした.
講演のトピック「機械学習の最新成果をいち早くAPIに反映させるには?」
さて,ここからは発表内容について簡単にお話しいたします.
弊社は現在,「AI契約書レビューサービス AI-CON」というWebサービスを提供しております.本サービスは,従来では弁護士によって数日かけて行われていた契約書の判定[1]を,素早く行えるようになっております.
この特色を支える技術の中に,自然言語処理(Natural Language Processing, NLP)や機械学習(Machine Learning, ML)があります.お客様によってUploadしていただいた契約書に対して,個人情報保護や前処理など然るべき処理を行ったあと,その加工されたデータから判定結果を返します.この部分をプログラム化してインターフェースとして利用できるようにしたものがAPI(Application Programming Interface)です.
AI-CONでは,
- Web側がAPIにデータを入力(リクエスト)
- API内部の自然言語処理アルゴリズム・学習済みMLモデルによって判定
- 判定した結果をAPIからWebへ出力(レスポンス)
という処理フローで,サービスが提供されます.
本発表は,このような機械学習を利用したAPIに関して,いち早くこれをリリースして,より高品質なWebサービスを体験していただくために必要なノウハウを共有させていただきました!
以下が資料となります.
具体的には,MLチーム内で検証成果を高速にAPI化するとき,次のような課題に直面します.
- APIの設計・デプロイ・運用はMLエンジニアのスキルセットではカバーできない場合が多い
- e.g. EC2でAPIを構築使用する際の初期設定,脆弱性対応,AWSやCI/CDの基盤設計等の対応が必要である
- Web,インフラエンジニアに入ってもらってもメリット感は薄い
- 上記エンジニアは機械学習に関する最低限の知識が必要である
- MLエンジニアのやんちゃなコードを解読する工数がかかる
- Web,インフラエンジニアの人員コストや作業リソースが犠牲になる
弊社GVA TECHのMLチームでは,Amazon SageMakerを利用してこれらの課題を乗り越えました.
SageMakerはフルマネージド型のサービスのため,APIをホスティングしたあとはAWS側でうまい具合に運用されるので,インフラに関するスキルセットが不足していても手軽に利用できます.また,SageMakerは検証・学習コードをAPIに用いるコンテナ内に入れる工夫をすれば,素早く検証成果をAPIにUpdateできるスグレモノでもあります!
この記事で,ご興味を持たれた方は是非是非SageMakerに触れてみてください.そして,皆様と知見の共有や意見交換をしてみたいです!(弊社もまだまだ導入段階であり,どんどんノウハウを蓄積していくフェーズでございます.)
登壇して得られた学び「アウトプットすげー大事」
大学院修了後,大人数の聴衆に対して発表する機会はあまり有りませんでした.特に,技術系イベントの登壇は初めてであり,自分のような新米エンジニアが出てもいいものかとずっと迷っておりました.
しかし,弊社CTOから「間違ってもだれも気にしない 」「MLエンジニア単体でAPIリリースまで完結するとか,今かなり熱いトピックだと思うぞ!」という強い言葉をかけられると,自分でもイケそうな感じがして,気づいたらホイホイとエントリーしておりました.
結果的には,登壇して大正解だったかと思います.その理由としては,
- 単純に会社の技術アピールやサービスの宣伝になる
- Twitterに投稿した資料が,思いの外リツイートされた(カンファレンスに参加できなかった人で興味を持たれた方がとても多かった)
- 聴衆の方々の反応から,業界として同じような問題意識を持っていることがわかり,技術の相場観がつかめた
- SageMakerを使うにあたり,今後どういうことに取り組むべきか明確化された
- 弊社の取り組みが正しい方向に向いているかを判断する材料になった
- 同じ課題感を持っているエンジニアと議論が深まり,時には技術共有できる接点が広がることがわかった
等が挙げられます.会社としてもいち個人としても様々なメリットがあり,たった数十分の講演でかなりのリターンが得られたと思います.
これからも,「ある特定の課題に対する技術導入→達成→成果を対外的に共有」という黄金サイクルを上手く回していけるように,攻めの姿勢でやっていければ!と考えております.
積極的にアウトプットしていきたいエンジニア募集中
弊社では,エンジニアが希望すれば対外的に成果を発表できる機会が用意されています!実際に,今まで多くのエンジニアがJAWS DAYS,PyCon,PHPCon等様々なイベントに登壇しております.
ガンガンアウトプットしていきたいエンジニアの方々は,是非一度弊社の募集要項をご覧いただき,気軽にお声がけいただければと存じます.
[1]: 「判定」…条項別のリスク判定/修正案の提案/修正意図の提案など