Submit Search
Upload
Reviewing_machine_learning_program.pdf
•
0 likes
•
27 views
Y
yusuke shibui
Follow
How to review machine learning program.
Read less
Read more
Software
Report
Share
Report
Share
1 of 22
Download now
Download to read offline
Recommended
機械学習システム構築実践ガイド
機械学習システム構築実践ガイド
yusuke shibui
https://infra-eng-books.connpass.com/event/265139/#_=_
機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf
yusuke shibui
https://machine-learning15minutes.connpass.com/event/259847/
machine_learning_failure_apocalypse.pdf
machine_learning_failure_apocalypse.pdf
yusuke shibui
My experience of failing machine learning project
MLOps failure(1_108)
MLOps failure(1_108)
yusuke shibui
MLOps
Rosbag search system
Rosbag search system
yusuke shibui
making of data search platform for rosbag
Creative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LT
yusuke shibui
https://mlops.connpass.com/event/305093/
Testing machine learning development
Testing machine learning development
yusuke shibui
code testing for machine learning development
Traffic light detection for self driving car
Traffic light detection for self driving car
yusuke shibui
machine learning system for traffic light detection
Recommended
機械学習システム構築実践ガイド
機械学習システム構築実践ガイド
yusuke shibui
https://infra-eng-books.connpass.com/event/265139/#_=_
機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf
yusuke shibui
https://machine-learning15minutes.connpass.com/event/259847/
machine_learning_failure_apocalypse.pdf
machine_learning_failure_apocalypse.pdf
yusuke shibui
My experience of failing machine learning project
MLOps failure(1_108)
MLOps failure(1_108)
yusuke shibui
MLOps
Rosbag search system
Rosbag search system
yusuke shibui
making of data search platform for rosbag
Creative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LT
yusuke shibui
https://mlops.connpass.com/event/305093/
Testing machine learning development
Testing machine learning development
yusuke shibui
code testing for machine learning development
Traffic light detection for self driving car
Traffic light detection for self driving car
yusuke shibui
machine learning system for traffic light detection
Launchable and efficient test execution
Launchable and efficient test execution
yusuke shibui
test execution efficiency with predictive test selection by machine learning and Launchable
Devsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving car
yusuke shibui
Devsumi 2021 自動運転を支えるMLOps
Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索
yusuke shibui
https://mlops.connpass.com/event/265378/
Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421
kazu_1803
2022年4月21日みえ社会的処方研究所でのGlide活用イメージ紹介スライドです。
Google Gadgetsを看取る
Google Gadgetsを看取る
Takashi SASAKI
むかしむかしあるところにiGoogleっていうのがあって、そこではGoogle Gadgetsというものが使われていて、その周辺の技術っていまどうなってんのかねぇ、という話。文字化けしたのでアップロードしなおしてみた。
CoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組み
Masao Niizuma
LLイベント2018内 子供向けプログラミング教室・最新事情 〜今、どんな取り組みが行われているのか〜にてお話しさせて頂きました資料です
How to start MLOps
How to start MLOps
yusuke shibui
How to start MLOps for DevOpsDays Tokyo 2021. https://www.devopsdaystokyo.org/
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
今後採用されそうなAndroidの新ビルドシステム、katiとsoongについて
Twillio deadshot made me happy
Twillio deadshot made me happy
yusuke shibui
Twillio Deadshot made me happy!
Ml system in_python
Ml system in_python
yusuke shibui
https://www.youtube.com/watch?v=krnaOxKRhoQ&feature=youtu.be Machine learning system in Python. https://github.com/mercari/ml-system-design-pattern
Quality of ml_system
Quality of ml_system
yusuke shibui
Quality consideration of machine learning system in production
プログルを支える技術 みんなのコードmeetup for エンジニア 2018/07/24
プログルを支える技術 みんなのコードmeetup for エンジニア 2018/07/24
Tanaka Takaaki
みんなのコードmeetup for エンジニア 2018/07/24の登壇資料です。学校向けプログラミング教材「プログル」の開発裏話を紹介しました。
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
Haruo Sato
2017年7月28日のDevelopers Summit 2017 Summer のセッション「コミュニティを長く続ける秘訣」の発表資料です。
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
VOYAGE GROUP
@第60回全国商業教育研究大会
CoderDojo福井の取り組み
CoderDojo福井の取り組み
tecking
2013年11月24日開催『北陸三県教育工学研究会福井大会』分科会にて用いたスライドです。 [2013.11.24 23:42更新] 初出のスライドに誤りがありました。6ページ目「2010年 アイルランド発」は、正しくは「2011年 アイルランド発」でした。失礼いたしました。 (スライドは更新済みです)
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Hiroyuki Ishikawa
【クリエイティブハント2018】のLT大会の資料です(2018/10/27、集会所)
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
Developers Summit
Developers Summit 2017 Summer【A-L】鴨志田様の資料です。
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
Toshiyuki Ando
Agile Japan 2017 愛媛サテライトで行うモブプログラミング体験会で使った資料です。
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングする
Yuta Ohashi
Go(Un)Conference(Goあんこ)LT大会 2kg
presentation.pdf
presentation.pdf
ssuserf052c3
24卒の山津翔大のやってきたこと、将来の展望についてまとめた資料になります。
DevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdf
yusuke shibui
Developers Summit 2022 Summer(デブサミ2022夏)の登壇資料です。
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
yusuke shibui
https://event.cloudnativedays.jp/cicd2021/talks/1154
More Related Content
Similar to Reviewing_machine_learning_program.pdf
Launchable and efficient test execution
Launchable and efficient test execution
yusuke shibui
test execution efficiency with predictive test selection by machine learning and Launchable
Devsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving car
yusuke shibui
Devsumi 2021 自動運転を支えるMLOps
Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索
yusuke shibui
https://mlops.connpass.com/event/265378/
Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421
kazu_1803
2022年4月21日みえ社会的処方研究所でのGlide活用イメージ紹介スライドです。
Google Gadgetsを看取る
Google Gadgetsを看取る
Takashi SASAKI
むかしむかしあるところにiGoogleっていうのがあって、そこではGoogle Gadgetsというものが使われていて、その周辺の技術っていまどうなってんのかねぇ、という話。文字化けしたのでアップロードしなおしてみた。
CoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組み
Masao Niizuma
LLイベント2018内 子供向けプログラミング教室・最新事情 〜今、どんな取り組みが行われているのか〜にてお話しさせて頂きました資料です
How to start MLOps
How to start MLOps
yusuke shibui
How to start MLOps for DevOpsDays Tokyo 2021. https://www.devopsdaystokyo.org/
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
今後採用されそうなAndroidの新ビルドシステム、katiとsoongについて
Twillio deadshot made me happy
Twillio deadshot made me happy
yusuke shibui
Twillio Deadshot made me happy!
Ml system in_python
Ml system in_python
yusuke shibui
https://www.youtube.com/watch?v=krnaOxKRhoQ&feature=youtu.be Machine learning system in Python. https://github.com/mercari/ml-system-design-pattern
Quality of ml_system
Quality of ml_system
yusuke shibui
Quality consideration of machine learning system in production
プログルを支える技術 みんなのコードmeetup for エンジニア 2018/07/24
プログルを支える技術 みんなのコードmeetup for エンジニア 2018/07/24
Tanaka Takaaki
みんなのコードmeetup for エンジニア 2018/07/24の登壇資料です。学校向けプログラミング教材「プログル」の開発裏話を紹介しました。
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
Haruo Sato
2017年7月28日のDevelopers Summit 2017 Summer のセッション「コミュニティを長く続ける秘訣」の発表資料です。
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
VOYAGE GROUP
@第60回全国商業教育研究大会
CoderDojo福井の取り組み
CoderDojo福井の取り組み
tecking
2013年11月24日開催『北陸三県教育工学研究会福井大会』分科会にて用いたスライドです。 [2013.11.24 23:42更新] 初出のスライドに誤りがありました。6ページ目「2010年 アイルランド発」は、正しくは「2011年 アイルランド発」でした。失礼いたしました。 (スライドは更新済みです)
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Hiroyuki Ishikawa
【クリエイティブハント2018】のLT大会の資料です(2018/10/27、集会所)
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
Developers Summit
Developers Summit 2017 Summer【A-L】鴨志田様の資料です。
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
Toshiyuki Ando
Agile Japan 2017 愛媛サテライトで行うモブプログラミング体験会で使った資料です。
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングする
Yuta Ohashi
Go(Un)Conference(Goあんこ)LT大会 2kg
presentation.pdf
presentation.pdf
ssuserf052c3
24卒の山津翔大のやってきたこと、将来の展望についてまとめた資料になります。
Similar to Reviewing_machine_learning_program.pdf
(20)
Launchable and efficient test execution
Launchable and efficient test execution
Devsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving car
Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索
Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421
Google Gadgetsを看取る
Google Gadgetsを看取る
CoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組み
How to start MLOps
How to start MLOps
Androidの新ビルドシステム
Androidの新ビルドシステム
Twillio deadshot made me happy
Twillio deadshot made me happy
Ml system in_python
Ml system in_python
Quality of ml_system
Quality of ml_system
プログルを支える技術 みんなのコードmeetup for エンジニア 2018/07/24
プログルを支える技術 みんなのコードmeetup for エンジニア 2018/07/24
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
CoderDojo福井の取り組み
CoderDojo福井の取り組み
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
モブプログラミングを体験しよう at Agile Japan 2017 愛媛サテライト
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングする
presentation.pdf
presentation.pdf
More from yusuke shibui
DevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdf
yusuke shibui
Developers Summit 2022 Summer(デブサミ2022夏)の登壇資料です。
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
yusuke shibui
https://event.cloudnativedays.jp/cicd2021/talks/1154
Lets start mlops
Lets start mlops
yusuke shibui
https://tier4.connpass.com/event/217726/
ML system design_pattern
ML system design_pattern
yusuke shibui
Machine learning system design pattern
Getting started with MLOps
Getting started with MLOps
yusuke shibui
Getting started with MLOps
Machine learning quality for production
Machine learning quality for production
yusuke shibui
machine learning system testing and quality assurance practice for production service.
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
yusuke shibui
Running TFLite and PyTorch Mobile
Mercari Image search 1st Anniversary
Mercari Image search 1st Anniversary
yusuke shibui
Improvement and enhancement of Mercari's image search, using Tensorflow Serving, Faiss, and Kubernetes clusters to manage the service.
Machine learning and_system_design
Machine learning and_system_design
yusuke shibui
about machine learning system design for web EC marketplace. https://techplay.jp/event/768641
Machine learning microservice_management
Machine learning microservice_management
yusuke shibui
Machine learning system in production, deployed as microservice architecture and managed with DevOps method.
Mercari ML Meetup
Mercari ML Meetup
yusuke shibui
How Mercari achieves machine learning engineering and operation.
More from yusuke shibui
(11)
DevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdf
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
Lets start mlops
Lets start mlops
ML system design_pattern
ML system design_pattern
Getting started with MLOps
Getting started with MLOps
Machine learning quality for production
Machine learning quality for production
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
Mercari Image search 1st Anniversary
Mercari Image search 1st Anniversary
Machine learning and_system_design
Machine learning and_system_design
Machine learning microservice_management
Machine learning microservice_management
Mercari ML Meetup
Mercari ML Meetup
Reviewing_machine_learning_program.pdf
1.
機械学習のプログラムを レビューする 2022/10/12 しぶい
2.
自己紹介 shibui yusuke ● いろいろ
→ Launchable(いまここ) ● MLOpsとかいろいろエンジニア ● たまにセールスとかEMとか ● もともとクラウド基盤の開発、運用 ● ここ6年くらいMLOpsとバックエンドとインフラとたまに データ分析とAndroidで仕事 ● Github: @shibuiwilliam ● Meety: https://meety.net/matches/OPJgijxiEMHE ● 最近の趣味:猫と副業と自宅勤務改善 cat : 0.55 dog: 0.45 human : 0.70 gorilla : 0.30 物体検知 2
3.
● 2022年11月14日発売予定! ● https://www.amazon.co.jp/dp/4798173401/ ●
発売中! ● https://www.amazon.co.jp/dp/4798169447/
4.
今日話すこと ● 機械学習開発におけるコードレビュー ○ Jupyter
Notebookとの闘い ○ 確率的な機械学習のプログラムをレビューする ○ まとめ
5.
方針を合意する ● Jupyter Notebookの位置付け ●
データサイエンティスト、機械学習エンジニアに求めるアウトプット ● 本番システムに導入するコード品質 いきなり出 てきたコー ド いきなり依頼された コードレビュー コード 合意した方針 方針に沿った開発
6.
Jupyter Notebookとの闘い
7.
Jupyter Notebook WebブラウザでPythonを 書いて実行、可視化できる 開発環境。
8.
Jupyter Notebook ● 利点 ○
書いてすぐ実行できる。 ○ 部分実行や途中実行もできる。 ○ テーブルやグラフを可視化できる。 ○ データサイエンスや機械学習開発のデファクトスタンダードになってる。 ● 難点 ○ リントもフォーマットもできない。 ○ レビューコメントを書けない。 ○ 部分実行や途中実行されていると、プログラムの実行順序がわからない。 ○ 適当に作って適当に放置される(レポジトリで管理されない)。 ○ ファイルサイズが大きい。
9.
DSやMLエンジニアに求めるアウトプット ● 学習が正しく動き、学習の評価と推論の評価で矛盾が生じないこと。 取得したデータが正しい→ ←この処理が正しい 動くモデルができてる→ ←要件を満たす 評価と推論が乖離しない→ データ分析 前処理 学習 評価 推論 ←損失関数が下がる ←動く 安定して動かせる 第3者に理解できる ←説明・納得できる
10.
● 目的が大事 ○ 多くの場合、Jupyter
Notebookは中間成果物。 ○ 分析や機械学習の正しさを証明、検証するためのツール。 Jupyter Notebookが本番システムに組み込まれることはない。 ○ プログラムと考えるよりもレポートやドキュメントとして扱うと精神衛生上健全。 ● レビュー対象 ○ データ!!! ○ 分析や機械学習の正しさ ○ 前処理、後処理、評価の正しさ ○ 可視化 ○ 説明 ● 非レビュー対象 ○ コード品質 Jupyter Notebookをレビューする
11.
● レビュー会 ○ Jupyter
Notebookを通して実行した状態でレビューする。 ■ レビュー会(30〜60分)でJupyter Notebookに書いた分析や機械学習をレビューする。 ■ レビュー対象のJupyter NotebookはColabやクラウド(Vertex AIやSagemaker等)の 共通開発環境にデータとともに保存する。ローカル環境禁止。 ■ レビュー会ではJupyter Notebookを上から下まで順番に実行した結果を報告する (部分実行や途中実行は禁止)。 ■ 分析・テスト結果は必ず全て可視化する。 ○ コード品質は諦める。 ○ ただし、最低限読めるプログラムを書く。 Jupyter Notebookをレビューする
12.
このツールを使えばもっと便利になるかも ● https://github.com/marketplace/actions/diff-notebooks ● GitHub
ActionsでJupyter Notebookの変更を可視化してレビューするツール。
13.
確率的な機械学習の プログラムをレビューする
14.
.ipynb -> .py
へ書き直す データ分析 前処理 学習 評価 推論 ここは書き直す 必要がある。 ここは書き直さない 場合もある
15.
前処理と推論だけ書き直す場合 ● レビュー対象 ○ コードの可読性とメンテナンス性 ○
データ検証で不明点を減らす ■ コードだけだと想定しているデータがわからないことが多い ■ データ検証やコメントで扱っているデータの例や構造を定義することを推奨 ■ テーブルデータであればpanderaやTensorFlow data validationが有効 ○ テスト ■ ユニットテストと結合テスト ■ 推論結果もテストする
16.
データ検証例 import pandas as
pd import pandera as pa schema = pa.DataFrameSchema({ "gender": pa.Column(str, checks=pa.Check(lambda x: x in _genders , element_wise=True, error=f"gender must be {_genders}"), ), "height_cm": pa.Column(float, checks=[ pa.Check(lambda x: 130 <= x <= 210 , element_wise=True, error=f"height must be between [130, 210]", ), pa.Hypothesis.two_sample_test( sample1="male", sample2="female", groupby="gender", relationship="greater_than", alpha=0.01, equal_var=True, ), ], ), }) df = pd.DataFrame(data = {"gender": genders, "height_cm": heights}) df = schema(df) ● Pythonのpandasとpanderaによるデータ検証 ● カラムごとにdata schemaを定義し、 チェックを挟むことで取得したデータの 正しさを検証する ● Hypothesis testingを活用することで 複数カラム間の妥当性をテストすることが 可能
17.
学習や評価も書き直す場合 ● レビュー対象 ○ コードの可読性とメンテナンス性 ○
責任分界を明確にし、可能な限りSOLID原則を守る ■ 少なくとも単一責任の原則は守る ■ 他は努力目標 ○ 学習と評価の結果を記録するコードを追加する ■ 各種機械学習サービスやライブラリ(Vertex AI、Sagemaker、MLflow等)で 提供されているものを使う ○ データ検証 ○ テスト
18.
機械学習のフローと単一責任の原則 データ取得 前処理 学習 評価 推論 モデル定義 評価指標 データ元 class CoolML(): def __init__(self) def
load_data(self) def __load_user_data(self) def __load_item_data(self) def preprocess_and_train(self) def evaluate(self) def predict(self) def run_all(self) ● 機械学習のコードをまとめたクラス ● 一箇所の変更で他も変更する必要が あり、メンテナンスが難しい ● 可読性も低くなりがち
19.
機械学習のフローと単一責任の原則 データ取得 前処理 学習 評価 推論 モデル定義 評価指標 データ元 class CoolML(): def __init__(self) def
load_data(self) def __load_user_data(self) def __load_item_data(self) def preprocess_and_train(self) def evaluate(self) def predict(self) def run_all(self) class DataWarehouseAccessor() class UserDataLoader() class ItemDataLoader() class Normalize() class CoolModel() def define_model(self) class EvaluationMetrics() class ModelTrainer() def train(self) def evaluate(self) -> EvaluationMetrics class Predictor() class Pipeline() def __init__(self, data_loader:DataLoader, preprocess:Preprocess, model:CoolModel, predictor:Predictor) データアクセスと データロートを 分ける 前処理と学習を分ける 定義と実行を分ける 推論を処理含めて クラスにまとめる パイプラインにする
20.
まとめ
21.
まとめ ● 異なるスキルセット、異なるチームで開発することが多い機械学習プロジェクト ● 互いに開発とレビューの方針を合意し、その合意に沿って開発しレビューする ●
Jupyter Notebookはレポートやドキュメントのつもりで作り、レビューする ● 本番コードは不明点の削減と可読性の向上を目指す
22.
● 機械学習を実用化する方法論や事例を学ぶ勉強会 ● 次回は10/25(火)18:00開催。ぜひご参加ください! ○
株式会社プレイド ML Tech Lead 春日 瑛 様 KARTEにおけるMLOpsの変遷 ○ 株式会社DeNA データ本部副本部長 加茂 雄亮 様 DeNAにおける AI Project Management Flow and Build Trap Review ● https://mlops.connpass.com/event/261097/ MLOps勉強会 第24回は10/25 (火) 18:00-!!
Download now