$30 off During Our Annual Pro Sale. View Details »

gokartを作った話

nishiba
February 05, 2020

 gokartを作った話

nishiba

February 05, 2020
Tweet

More Decks by nishiba

Other Decks in Programming

Transcript

  1. gokartを作った話

    エムスリー/エンジニアリンググループ リーダー/ AI・機械学習チーム リーダー 

    西場 正浩

    2020年02月05日更新



    View Slide

  2. この登壇について

    2

    View Slide

  3. エムスリー株式会社

    発表中のお願い

    3
    写真・SNSへ投稿OK


    感想、コメント、ツッコミを

    SNSに投稿してほしい!


    ※ 発表後でエゴサする!


    View Slide

  4. エムスリー株式会社

    自己紹介

    4
    西場 正浩 @m_nishiba 




    機械学習の勉強を始めて約3年

    プロダクトマネージャー(PdM)の勉強とチャレンジ

    38歳くらいで起業したい(あと4年)

    趣味は「ビジネスで新しい挑戦をすること」負荷かけたい

    本・論文(ビジネスやML)はたくさん読む。巨人の肩にのりたい。

    毎月続けるか辞めるかを考えている。

    View Slide

  5. エムスリー株式会社

    5

    View Slide

  6. エムスリー株式会社

    医療に関わる体験を良くしたい!!

    〜〜〜〜仲間募集中〜〜〜〜


    エムスリーにおける

    AI・機械学習チームの立ち上げと

    機械学習プロダクト開発

    gokartを作り始めた会社


    View Slide

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

    3人に1人


    View Slide

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

    40兆円超


    View Slide

  9. エムスリー株式会社

    エムスリーのミッション

    インターネットを活用し、

    健康で楽しく長生きする人を一人でも増やし、

    不必要な医療コストを一円でも減らすこと

    9

    View Slide

  10. エムスリー株式会社

    m3.com 医療従事者向けポータルサイトを運営

    10
    日本の医師の約90%(28万人以上)が登録 

    20以上の医療系のサービスを展開 

    日経225に採用された大企業 

    (AI関連のスタートアップではないです) 

    ❌ 医療業界の人がITにチャレンジ 

    ⭕ IT業界の人が医療にチャレンジ 

    グローバル展開。エンジニアも数ヶ月NY出張。 

    2018年、営業利益が300億円を突破 


    View Slide

  11. エムスリー株式会社

    医療界の変革をテーマに事業創造

    11

    View Slide

  12. エムスリー株式会社

    エムスリーは非常にフラットな組織

    12
    経営会議メンバー

    エンジニアリングG


    グループ

    A

    グループ

    B

    AI・機械学習チーム

    チーム A

    チーム B

    階層を最小化

    意思決定のスピードも超高速

    経営メンバー

    リーダー

    メンバー


    View Slide

  13. gokartを作った話

    なぜ必要だったのか?

    13

    View Slide

  14. エムスリー株式会社

    前処理の変更や追加など、データパイプライン上の一部の処理だけを簡単に変更し
    たい。


    途中の計算結果など保存し、パラメータや入力が変わったら再計算をしたい。これら
    を意識することなく実行したい。

    アルゴリズム開発でPDCAを高速にまわしたい!


    Plan(計画)→ Do(実行)→ 

    Check(評価)→ Act(改善)


    View Slide

  15. エムスリー株式会社

    コードレビューの負荷を減らす方法

    ● コード量を減らす。フレームワークがよしなに色々してくれる。

    ● 管理コストが低い再利用できるコードを増やす。クラス設計を強制的に統一す
    る。

    ● 単一責任の原則を強制しやすくする。

    エンジニアリング力がジュニアなメンバーの

    コードレビューの負荷を減らしたい。


    View Slide

  16. エムスリー株式会社

    コードや中間データ、モデルを共通化したい。

    都度、pageview関連データなどの大きいデータを落とすのはしんどい。

    複数のプロジェクトを同時に開発したい。


    View Slide

  17. エムスリー株式会社

    本番で落ちたときに対応を簡単にしたい。S3等から中間生成物をダウンロードして、
    restore(task_id)で全く同じものを再現できる。


    すべてのプロジェクトで構成が統一できるので動かすのが誰でも比較的簡単。

    管理コストやキャッチアップのコストを下げたい。


    View Slide

  18. エムスリー株式会社

    PandasのDataFrameがemptyのときのテストやcolumnの型が意図せず変わってしま
    う問題への対処。


    gokartを使ってデータパイプライン上のpandas関連をテストする。

    開発の知見を共有し、共通化したい。


    View Slide

  19. エムスリー株式会社

    gokart.TaskOnKartを組み合わせて、さくっとモデル開発ができるようにしたい。

    チームメンバーが作ったモデルや処理、過去に自分が追試したアルゴリズムなどを
    低コストで使いまわしたい。

    もっと開発を楽したい。


    View Slide

  20. エムスリー株式会社

    Qiita: PythonのPipelineパッケージ比較:Airflow, Luigi, Gokart, Metaflow, Kedro,
    PipelineX

    のコメント参照。

    前処理を追加したり、モデルを変更するなど、ワークフローの一部を変更することが
    コード上容易。また中間生成物なども”いい感じに”管理してくれる。


    gokart.TaskInstanceParameter

    requiresの中で自由に組み合わせることができる。


    View Slide

  21. gokartを作った話

    今後どうしたいか?

    21

    View Slide

  22. エムスリー株式会社

    一部テストの自動化(pandasの型チェックなどはすでにある)


    テストのコード量を減らしたい。


    単体テストを楽したい


    View Slide

  23. エムスリー株式会社

    ごめん。。。

    Write high-quality friendly documentation!!


    View Slide

  24. エムスリー株式会社

    78。。。

    star数を増えないかな〜


    View Slide

  25. エムスリー株式会社

    実務上、困っていることを改善するのが大切

    issue driven!!


    View Slide