Slide 1

Slide 1 text

gokartを作った話
 エムスリー/エンジニアリンググループ リーダー/ AI・機械学習チーム リーダー 
 西場 正浩
 2020年02月05日更新
 
 


Slide 2

Slide 2 text

この登壇について
 2

Slide 3

Slide 3 text

エムスリー株式会社
 発表中のお願い
 3 写真・SNSへ投稿OK
 
 感想、コメント、ツッコミを
 SNSに投稿してほしい!
 
 ※ 発表後でエゴサする!


Slide 4

Slide 4 text

エムスリー株式会社
 自己紹介
 4 西場 正浩 @m_nishiba 
 
 
 
 機械学習の勉強を始めて約3年 
 プロダクトマネージャー(PdM)の勉強とチャレンジ 
 38歳くらいで起業したい(あと4年) 
 趣味は「ビジネスで新しい挑戦をすること」負荷かけたい 
 本・論文(ビジネスやML)はたくさん読む。巨人の肩にのりたい。 
 毎月続けるか辞めるかを考えている。 


Slide 5

Slide 5 text

エムスリー株式会社
 5

Slide 6

Slide 6 text

エムスリー株式会社
 医療に関わる体験を良くしたい!!
 〜〜〜〜仲間募集中〜〜〜〜
 
 エムスリーにおける
 AI・機械学習チームの立ち上げと
 機械学習プロダクト開発
 gokartを作り始めた会社


Slide 7

Slide 7 text

エムスリー株式会社
 7 日本における65歳以上の人口比率
 3人に1人


Slide 8

Slide 8 text

エムスリー株式会社
 8 増え続ける日本の医療費
 40兆円超


Slide 9

Slide 9 text

エムスリー株式会社
 エムスリーのミッション
 インターネットを活用し、
 健康で楽しく長生きする人を一人でも増やし、
 不必要な医療コストを一円でも減らすこと
 9

Slide 10

Slide 10 text

エムスリー株式会社
 m3.com 医療従事者向けポータルサイトを運営
 10 日本の医師の約90%(28万人以上)が登録 
 20以上の医療系のサービスを展開 
 日経225に採用された大企業 
 (AI関連のスタートアップではないです) 
 ❌ 医療業界の人がITにチャレンジ 
 ⭕ IT業界の人が医療にチャレンジ 
 グローバル展開。エンジニアも数ヶ月NY出張。 
 2018年、営業利益が300億円を突破 


Slide 11

Slide 11 text

エムスリー株式会社
 医療界の変革をテーマに事業創造
 11

Slide 12

Slide 12 text

エムスリー株式会社
 エムスリーは非常にフラットな組織
 12 経営会議メンバー
 エンジニアリングG
 
 グループ
 A
 グループ
 B
 AI・機械学習チーム
 チーム A
 チーム B
 階層を最小化
 意思決定のスピードも超高速
 経営メンバー
 リーダー
 メンバー


Slide 13

Slide 13 text

gokartを作った話
 なぜ必要だったのか?
 13

Slide 14

Slide 14 text

エムスリー株式会社
 前処理の変更や追加など、データパイプライン上の一部の処理だけを簡単に変更し たい。
 
 途中の計算結果など保存し、パラメータや入力が変わったら再計算をしたい。これら を意識することなく実行したい。
 アルゴリズム開発でPDCAを高速にまわしたい!
 
 Plan(計画)→ Do(実行)→ 
 Check(評価)→ Act(改善)


Slide 15

Slide 15 text

エムスリー株式会社
 コードレビューの負荷を減らす方法
 ● コード量を減らす。フレームワークがよしなに色々してくれる。
 ● 管理コストが低い再利用できるコードを増やす。クラス設計を強制的に統一す る。
 ● 単一責任の原則を強制しやすくする。
 エンジニアリング力がジュニアなメンバーの
 コードレビューの負荷を減らしたい。


Slide 16

Slide 16 text

エムスリー株式会社
 コードや中間データ、モデルを共通化したい。
 都度、pageview関連データなどの大きいデータを落とすのはしんどい。
 複数のプロジェクトを同時に開発したい。


Slide 17

Slide 17 text

エムスリー株式会社
 本番で落ちたときに対応を簡単にしたい。S3等から中間生成物をダウンロードして、 restore(task_id)で全く同じものを再現できる。
 
 すべてのプロジェクトで構成が統一できるので動かすのが誰でも比較的簡単。
 管理コストやキャッチアップのコストを下げたい。


Slide 18

Slide 18 text

エムスリー株式会社
 PandasのDataFrameがemptyのときのテストやcolumnの型が意図せず変わってしま う問題への対処。
 
 gokartを使ってデータパイプライン上のpandas関連をテストする。
 開発の知見を共有し、共通化したい。


Slide 19

Slide 19 text

エムスリー株式会社
 gokart.TaskOnKartを組み合わせて、さくっとモデル開発ができるようにしたい。
 チームメンバーが作ったモデルや処理、過去に自分が追試したアルゴリズムなどを 低コストで使いまわしたい。
 もっと開発を楽したい。


Slide 20

Slide 20 text

エムスリー株式会社
 Qiita: PythonのPipelineパッケージ比較:Airflow, Luigi, Gokart, Metaflow, Kedro, PipelineX
 のコメント参照。
 前処理を追加したり、モデルを変更するなど、ワークフローの一部を変更することが コード上容易。また中間生成物なども”いい感じに”管理してくれる。
 
 gokart.TaskInstanceParameter
 requiresの中で自由に組み合わせることができる。


Slide 21

Slide 21 text

gokartを作った話
 今後どうしたいか?
 21

Slide 22

Slide 22 text

エムスリー株式会社
 一部テストの自動化(pandasの型チェックなどはすでにある)
 
 テストのコード量を減らしたい。
 
 単体テストを楽したい


Slide 23

Slide 23 text

エムスリー株式会社
 ごめん。。。
 Write high-quality friendly documentation!!


Slide 24

Slide 24 text

エムスリー株式会社
 78。。。
 star数を増えないかな〜


Slide 25

Slide 25 text

エムスリー株式会社
 実務上、困っていることを改善するのが大切
 issue driven!!