Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unit testしてますか?
Search
tsho
July 12, 2023
Programming
690
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unit testしてますか?
2023/7/12 MLOps 勉強会 LT 発表
tsho
July 12, 2023
More Decks by tsho
See All by tsho
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
Google IO 2026で進化をとげた Google AI Studio
tsho
0
25
20260321_エンベディングってなに?RAGってなに?エンベディングの説明とGemini Embedding 2 の紹介
tsho
0
270
AI Agentにおける評価指標とAgent GPA
tsho
1
560
Scale SciPy with jax.shard_map - jax.shard_mapで SciPy をスケール
tsho
0
160
Developer Advocate / Community Managerなるには?
tsho
0
860
25/04/12 - Build with AI Hands-on Appendix
tsho
1
100
Other Decks in Programming
See All in Programming
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
360
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
2
500
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
590
Foundry Localでエージェント開発
seosoft
0
140
typoなんかねぇよ
raspython3
0
670
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
170
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
870
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
170
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
590
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Marketing to machines
jonoalderson
1
5.7k
A designer walks into a library…
pauljervisheath
211
25k
Mobile First: as difficult as doing things right
swwweet
225
10k
Scaling GitHub
holman
464
140k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
Transcript
Unit testしてますか?
自己紹介 名前:tsho (Sho Tanaka) 都内の IT 会社で日本や APAC を中心に ML
のコンサル タントやソリューションを提供。MLOps 勉強会の運営の1 人。 本発表は所属する組織とは関係なく、 個人の見解と調べたことを発表いたします。
話すこと & 対象 初心者 中級者 上級者 データサイエンティスト ◯ ◯ ✕
MLエンジニア/ ソフトウェアエンジニア ◯ △ ✕ エンジニア中級者などは退屈かもしれません。 最近 Python で unittest 書き始めた人の簡単な紹介 (Rspec で test 書い たことあるマン) 最新の話とかではない古くからある話をします。
なんでこの話をするのか? テストの話が本勉強会で少ないな 懇親会とかで話していてテストの話を知らない人が意外といるかな と思ったから
ML Systemsにおけるテスト Figure 1. Elements for ML systems. Adapted from
Hidden Technical Debt in Machine Learning Systems. https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning
テストのおおまかな種類 継続的にモデルを作り、デプロイしてビジネスに使うためにもテストは必要 大まかなテストの種類 - 単体テスト(Unit test) - 結合テスト(統合テスト) - E2Eテスト
*テストの分け方は人や定義によって多少ことなることが多いです。今回は分け方の議論はしないのでここでこれ以上の話はい たしません
単体テスト(Unit Test) クラスや関数などのプログラムの単位ごとにテストのこと ML systemでいうと - 前処理 - モデリング -
予測 など 上記部分で機能テストをすることに該当します。 テストの種類と技法 - Qiita
Python における Unit Test 標準 library に unittest が入っている -
Pytest など 3rd party の library もありますがここでは触れません。 • Test 用の Python ファイルを作る • Test の関数は ‘test_’ で始める 参考 https://docs.python.org/ja/3/library/unittest.html
〜 〜 実際の例(githubのコードより) 参考 https://github.com/google/gps_building_blocks/blob/master/py/gps_building_blocks/ml/preprocessing/vif_test.py
数ヶ月実施してみて 世間で言われているとおり導入コストは高い ただ、コードが増えていくにつれ、Unite testがあるときにありがたみを感じる(ないとつ らい....)。 テストするためにコードをまとめる癖がつくので可読性もあがる(気がしている)。
補足 同じデータでも必ずしもアウトプットが一致する場合でないケースがあります。 例:モデルの byte データが変わる etc. そういった場合は、mock などを使って、該当の関数、method が呼び出されたか確認 することもできます。
もちろんアウトプットの確認よりゆるいテストになるので、アウトプットの確認ができるなら されたほうがよいと思います。
さいごに MLに限らず、大規模なプロダクトや改善が多いプロダクトで品質を保証するためにUnit testは重要です。 しかし、実装コストは高いのですべての人に薦めるやり方ではありません。 もし興味があれば、すでにつかっているライブラリの単体テストに使えるメソッドなどを確 認して使うのをおすすめします(例、pandas や numpy などの assert
など)。
参考 第21回 MLOps 勉強会 普通のプロダクトのテストと機械学習を含んだプロダクトのテス トの違い Python pandas テストの書き方についてメモ -
c-bata web