Slide 1

Slide 1 text

Copyright (C) 2019 BizReach, Inc. ALICE: AI Lab Interfaced with Configurable Environment 株式会社ビズリーチ AI室 廣田佳祐

Slide 2

Slide 2 text

Copyright (C) 2019 BizReach, Inc. 自己紹介 ■ 名前: 廣田 佳祐(ヒロタ ケイスケ) ■ 履歴 • 2015/04-2018/10: 某大手SIerでソフト開発 – サーバーサイド – フロントエンド – NLPの研究開発 – などなど • 2018/11: ビズリーチ 入社 – AI室の機械学習エンジニアとして、 現在は機械学習基盤の開発を担当 ■ 趣味 • ボードゲーム – 直近では、Dice Forgeをプレーしました 1

Slide 3

Slide 3 text

Copyright (C) 2019 BizReach, Inc. 目次 - ビズリーチでの機械学習活用 - 機械学習基盤 ALICEの紹介 - 開発経緯 - 概要 - AWS向けのHelm Chartを作った話 - さいごに 2

Slide 4

Slide 4 text

Copyright (C) 2019 BizReach, Inc. ビズリーチでの機械学習活用 ■ 企業と求職者のマッチング、求人の職種・業種・年収推定など 様々な箇所で機械学習を活用 ■ 例: 求人検索エンジン スタンバイでの「職種・業種推定」 3 課題 ●様々な求⼈サイトから収集しているため、 横断的な職種・業種がない 内容 ●求⼈情報から⾃然⾔語処理で求⼈の特徴 を抽出 ●その特徴を学習して職種業種を推定 ●検索条件やデータ分析などで利⽤ 求⼈内容から職種・業種を推定 参考: BizReach Tech Blog https://tech.bizreach.co.jp/posts/276/gtc2018-japan-report/

Slide 5

Slide 5 text

Copyright (C) 2019 BizReach, Inc. ALICE開発に至る経緯 ■ 何故私たちは機械学習基盤を必要としたのか? 4 その①:データサイエンティスト・機械学習エンジニアの作業負荷低減 前に作ったバッチ処理と同じ形で作っておいてね deployの手順書はこれを参照してね 既存の動作についてちょっとだけ説明するね。 バッチ処理の動作はDockerのImageとしてBuildされてます。 処理を動かす時は、AWSのLambdaをKickしてね。処理が始 まると、AutoScalingGroupの設定を変更してスポットイン スタンスを払い出して、そのインスタンス上で処理が実施さ れるよ。実施中のログはCloudWatchに吐かれていて、もし Errorが発生したら、Slackに通知が飛ぶようになってる。こ こまでの設定は、CloudFormationを使うことで適宜定義し ているよ。 あ、そうそう、データについては事業部側のS3から取ってく るので専用のRoleを用意して事業部側に権限を付与してもら う必要もあるね。 まあ、これ読めばわかるから、 あとよろしく! 例: 新たなレコメンドエンジンを実装する時 インフラ専門じゃない エンジニアに 全部投げるの無理だから

Slide 6

Slide 6 text

Copyright (C) 2019 BizReach, Inc. ALICE開発に至る経緯 ■ 何故私たちは機械学習基盤を必要としたのか? 5 その②:インフラ側の特殊な条件 ●様々な環境に対して基盤を展開する必要アリ ○事業部側がサービスを管理しているため、 事業部の採⽤インフラに合わせて適宜展開できるようにする 現状: サービス x (本番|開発)環境ごとにAWSアカウントを発行

Slide 7

Slide 7 text

Copyright (C) 2019 BizReach, Inc. ALICE開発に至る経緯 ■ 何故私たちは機械学習基盤を必要としたのか? 6 まとめ 複数の環境にお⼿軽に展開できて、 インフラをあまり意識しないで使える基盤が欲しい から作りました

Slide 8

Slide 8 text

Copyright (C) 2019 BizReach, Inc. ALICEの概要 7

Slide 9

Slide 9 text

Copyright (C) 2019 BizReach, Inc. AWS向けのHelm Chartを作った話 ■ argo-events で定義したEventに基づいて、 AWSの 特定のスポットインスタンス 上で、 argoのWorkflow を実行する、 HelmのChart を作成して、 CodeBuild経由でDeployできるようにしました ■ 登場人物おさらい 8 Helm Kubernetesの設定ファイルを管理するパッケージマネージャ Chart Helmのパッケージ argo Kubernetes上で動作するワークフローエンジン argo-events Kubernetes上で動作するEventによる依存関係マネージャ

Slide 10

Slide 10 text

Copyright (C) 2019 BizReach, Inc. AWS向けのHelm Chartを作った話 ■ 何故作ったか? • WorkflowをDeployするためには、Kubernetes, argo, AWSの知識が必須 – Kubernetes(含argo)のyamlファイルは複雑怪奇なので、 未修者に全て編集させるのは厳しい・・・ – AWSに囚われる必要はないのに、AWS上でDeployするための学習コスト高い… – CloudFormation, EC2, CodeBuild, … ▶ 基盤側で吸収しよう 9

Slide 11

Slide 11 text

Copyright (C) 2019 BizReach, Inc. Chart概要 10

Slide 12

Slide 12 text

Copyright (C) 2019 BizReach, Inc. values.yaml 概要 11 インフラに依らないデプロイ仕様の設定 (アプリをどのように動かしたいか) - 動作モード: calendar/webhook - モード固有設定 アプリケーション動作設定 - Workflow実行順 - 起動コンテナ定義 - ボリューム - サービス など

Slide 13

Slide 13 text

Copyright (C) 2019 BizReach, Inc. Chart作成の効果 ■ 最低限のAWS, Kubernetes, argoの知識があればDeploy可能になった ■ AWS • Deploy時に、以下の内容を設定 – スポットインスタンスのタイプ – スポットインスタンスの入札価格 – ボリュームサイズ ■ Kubernetes & argo • values.yamlに設定し、Gitに格納 12

Slide 14

Slide 14 text

Copyright (C) 2019 BizReach, Inc. Workflowの見え方 13

Slide 15

Slide 15 text

Copyright (C) 2019 BizReach, Inc. さいごに ■ まだまだ足りてないところが多いので順次実装して行く予定です! • 機能面 – EDA/Modeling環境のJupyter – パラメータチューニング • 環境面 – 脱AWS依存 – CodeBuild -> argo-cd/ci – fluentd + CloudWatch Logs -> Prometheus? ■ スライドに書いてないことは懇親会で! • argo-eventsのlatestイメージが更新されて動かなくなった話など 14

Slide 16

Slide 16 text

No content