Slide 1

Slide 1 text

機械学習OSSの変遷と未来 まつもとゆきひろ氏と考える つよいエンジニアになるためのオープンソースの使い方 2021/4/13 CADDi AI Lab Tech Lead Shunsuke Kawai

Slide 2

Slide 2 text

I AM • CADDi, inc. AI Lab Tech Lead M3, inc. Engineering Fellow Developers Guild Bolder’s Owner • OSS • XGBoost、LightGBM、Rust wrapper • gokart • xonsh Shunsuke Kawai (@vaaaaanquish)

Slide 3

Slide 3 text

OBJECTIVE • 専門的な知識を活かしたOSS貢献について知る • OSS貢献がエンジニアとしての価値に繋がる事を知る • 自身が使っているOSSに興味を持ち 「コードを読んでみようかな」という気持ちになる

Slide 4

Slide 4 text

AGENDA 1. 機械学習OSSの分類 - 3分 2. 専門性を活かした貢献とポイント - 5分 3. エンジニアのキャリアとの接続 - 5分

Slide 5

Slide 5 text

”NOT” SPEAK TODAY • OSSとは • 古典的、メジャーでない機械学習OSSの話 • 機械学習の理論の話

Slide 6

Slide 6 text

機械学習OSSの分類

Slide 7

Slide 7 text

MACHINE LEARNING OSS LAYER conda, poetry, pipenv, … Jupyter, Streamlit, FastAPI, … dbt, Dagster, DVC, feast, hadoop, … k8s, TF Serving, OpenMPI, faiss, … MLflow, Airflow, gokart, … NumPy, Pandas, NetworkX, … xfeat, spaCy, torchvision, Albumentation, … sklean, LightGBM, PyTorch, TensorFlow, Optuna… Matplotlib, Seaborn, Plotly, Bokeh… SHAP, AIF360, … Package Management Application Data Management Machine Learning Pipeline Data Representation Analysis & Modeling Visualization Verification Infrastructure & Deployment Data Preprocessing

Slide 8

Slide 8 text

MACHINE LEARNING OSS LAYER conda, poetry, pipenv, … Jupyter, Streamlit, FastAPI, … dbt, Dagster, DVC, feast, hadoop, … k8s, TF Serving, OpenMPI, faiss, … MLflow, Airflow, gokart, … NumPy, Pandas, NetworkX, … xfeat, spaCy, torchvision, Albumentation, … sklean, LightGBM, PyTorch, TensorFlow, Optuna… Matplotlib, Seaborn, Plotly, Bokeh… SHAP, AIF360, … Package Management Application Data Management Machine Learning Pipeline Data Representation Analysis & Modeling Visualization Verification Infrastructure & Deployment Data Preprocessing Today

Slide 9

Slide 9 text

HISTORY OF MACHINE LEARNING OSS 1991 2000 2010 2020 Python 0.9 Python 3.0 NumPy (1995~) PIL (1995~) Pandas (2008~) SciPy (2001~) sklean (2007~) LightGBM (2016~) XGBoost (2014~) PyTorch (2016~) TensorFlow (2015~) Optuna (2018~) spaCy (2015~) MeCab (2006~) NetworkX (2005~) xfeat (2020~) torchvision (2017~) PyTorch Lightning (2019~) Albumentation (2018~) PyCaret (2020~) autogluon (2020~) CatBoost (2017~) transformers (2018~) JAX (2020~) cudf (2020~)

Slide 10

Slide 10 text

POPULAR MODELING TOOLS State of ML & Data Science 2021 - Kaggle https://www.kaggle.com/kaggle-survey-2021

Slide 11

Slide 11 text

POINT • 機械学習OSSを大まかに分類 • 栄枯盛衰、個々のモデル実装などは多々あれど 主要なフレームワークは大きく動いていない • Machine Learning、Data Science全体に貢献できる

Slide 12

Slide 12 text

専門性を活かした 貢献とポイント

Slide 13

Slide 13 text

CASE 1 https://github.com/microsoft/LightGBM/pull/2620 • XE NDCG MARTの実装 • ランキングに微分可能な損失関数 • 高速かつ精度が高い • arXiv公開から短い期間で著者が実装 • 数式をコードに落とし込む力 • 論文をサーベイする力 https://arxiv.org/abs/1911.09798

Slide 14

Slide 14 text

CASE 2 https://github.com/vaaaaanquish/lightgbm-rs/pull/24 • Feature Importance抽出機能追加 • モデルの解釈基準を数値化する • 実際にモデリングする過程で 求められる事が多い • コンペティションに向けた機能追加 • ユースケースに対する理解 • wrap元のロジックの理解

Slide 15

Slide 15 text

CASE 3 https://github.com/scikit-learn/scikit-learn/pull/16625 • Top k Accuracyの実装 • 上位N個を見て正解が何個あるか • Accuracy Scoreは既存実装あり • 最初のissueは2017年 • 長らく実装されていなかっただけ • 大きなOSSでもissueは山ほどある • 自身が日々使う中でのissueでも◎

Slide 16

Slide 16 text

POINT • ResearchやCompetition、日々の業務の中で得た ML/DSの専門知識が活きる貢献が多くあり求められている • 機械学習に限らず、物理や数学、医学…などでも言える • 小さな改善も多く残っている

Slide 17

Slide 17 text

エンジニアの キャリアとの接続

Slide 18

Slide 18 text

MLE/DS CAREER • バックグラウンドが広く個人に対する評価が難しい • 営利企業においてOSS活動は評価しやすい軸の1つ • 知識を活かしプロダクト開発に向き合えるか • チームで開発ができるか . . ., etc MLE/DS Physics Math Medicine CS ML Statistics Economy Engineering

Slide 19

Slide 19 text

KAWAI’s CAREER with OSS • LightGBMコミュニティから スカウトメール • CADDi転職においても Rustと機械学習のOSSを 作っていた文脈でDMを頂いた https://type.jp/et/feature/19084/

Slide 20

Slide 20 text

POINT • 機械学習の知識、実装力が見え 実際にキャリアに繋がることがある • 特に専門性を磨いてきた方でMLE・DSを 目指す場合は非常に有効 • CADDi AI Lab採用でもGitHubアカウント見ています (※Nice to haveです)

Slide 21

Slide 21 text

~ 未来を作ろう ~ Twitterを今すぐフォロー!