Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MOVの機械学習システムを支えるMLOps実践
Search
Takashi Suzuki
March 04, 2020
Technology
0
25
MOVの機械学習システムを支えるMLOps実践
2020/03に行われたDeNA TechConの登壇資料
Takashi Suzuki
March 04, 2020
Tweet
Share
More Decks by Takashi Suzuki
See All by Takashi Suzuki
到着予想時間サービスの特徴量のニアリアルタイム化
t24kc
0
160
Kubernetes超入門
t24kc
0
150
AI予約サービスのMLOps事例紹介
t24kc
0
26
MLプロジェクトのリリースフローを考える
t24kc
0
16
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
130
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
39
GOの実験環境について
t24kc
0
22
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
t24kc
0
42
MOV お客さま探索ナビの GCP ML開発フローについて
t24kc
0
18
Other Decks in Technology
See All in Technology
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.1k
インフラ室事例集
mixi_engineers
PRO
2
140
ローカルVLM OCRモデル + Gemini 3.0 Proで日本語性能を試す
gotalab555
1
240
AI開発の定着を推進するために揃えるべき前提
suguruooki
1
450
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
180
MySQL AIとMySQL Studioを使ってみよう
ikomachi226
0
120
ページの可視領域を算出する方法について整理する
yamatai1212
0
140
Docker, Infraestructuras seguras y Hardening
josejuansanchez
0
120
確実に伝えるHealth通知 〜半自動システムでほどよく漏れなく / JAWS-UG 神戸 #9 神戸へようこそ!LT会
genda
0
170
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
21k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
13
8.6k
進化の早すぎる生成 AI と向き合う
satohjohn
0
430
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
68k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
A better future with KSS
kneath
239
18k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
KATA
mclloyd
PRO
32
15k
What's in a price? How to price your products and services
michaelherold
246
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
A Modern Web Designer's Workflow
chriscoyier
697
190k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Transcript
.07ͷػցֶशγεςϜΛࢧ͑Δ .-0QT࣮ફ ློ࢙ ஙࢁকԝ !1
DeNA TechCon 2020 #denatechcon
!3
!4
DeNA TechCon 2020 #denatechcon ✔ ✔ ✔ 5
6
7
8
͜ͷं྆ʹͱͬͯ ࠷దͳߦܦ࿏Կ͔ʁ 9 • • • •
10 々
11
12
• • !13 • •
ຊ൪ڥ • ਪύΠϓϥΠϯ • Ϟσϧਫ਼ࢹ !14 ࣮ݧڥ • ੳ/Ϟσϧ։ൃ •
࣮ݧཧ CI/CD • • • • 々
DeNA TechCon 2020 #denatechcon
!16 BigQuery 々
࣮ݧڥ σʔλαΠΤϯςΟετ !17 BigQuery ୳ࡧతσʔλղੳ લॲཧ ֶश ਪ ධՁ
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon ※
DeNA TechCon 2020 #denatechcon ※
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon ※ ?
DeNA TechCon 2020 #denatechcon ?
DeNA TechCon 2020 #denatechcon 々 々 → 々
DeNA TechCon 2020 #denatechcon ※ #JH2VFSZ
!26 ※
!27 - ⇒ - - -
DeNA TechCon 2020 #denatechcon
!29 CI/CD 々
!30 CI/CD 々 々
DeNA TechCon 2020 #denatechcon 々
DeNA TechCon 2020 #denatechcon 々 ※ "*1MBUGPSN
!33
々 - - - !34
DeNA TechCon 2020 #denatechcon
• ※ ⇒ ※ • → ※ !36
DeNA TechCon 2020 #denatechcon ͔͜͜Βޙ
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon 々※
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon M ! ®lROgňǐkYi々 @ ûÂIJ_jmąƀŰ¯=z?`ÍÌŰ¯^]=é©é\ęÐaŰ¯Qm
@ ƈœĪ`ēÑøħůÄ_jmŐƉ`ąƀÛ ġŁǐƢǜ ƔŁǐƢǜ ijŨƿç Map data ©2019 Google
DeNA TechCon 2020 #denatechcon 々
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon 々 AI Platform Training BigQuery
DeNA TechCon 2020 #denatechcon ($3 ,VCFGMPX1JQFMJOF 々 4JNVMBUJPO
3VOOFS *NBHF 1SFEJDUPS *NBHF $PNQPTFS 1SPGJMF 4JNVMBUPS%BUB 5SBJO #BUDI 1SFEJDUJPO 1SFQSPDFTT #VJME #JH2VFSZ ($4
DeNA TechCon 2020 #denatechcon ($3 1SPEVDUJPO"1* 3PVUF"1* 1SFEJDUPS
*NBHF $PNQPTFS 1SFEJDUJPO 1SFQSPDFTT #JH2VFSZ ($4
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon 々 々 々 々 々 々
DeNA TechCon 2020 #denatechcon 々 々 々 々 々 々
?
DeNA TechCon 2020 #denatechcon 々 々 々 々 々 々
DeNA TechCon 2020 #denatechcon ※ 々 々
DeNA TechCon 2020 #denatechcon ※ 々
DeNA TechCon 2020 #denatechcon def task_fail_slack_alert(context): slack_msg = “Task Failed.”
failed_alert = SlackWebhookOperator( task_id="xxx", http_conn_id="slack", webhook_token=Variable.get("webhook.token"), message=slack_msg, username="airflow", ) return failed_alert.execute(context=context)
DeNA TechCon 2020 #denatechcon <!subteam^ABCDEF123|@user_group>
DeNA TechCon 2020 #denatechcon 々 々 々 々 々 々
DeNA TechCon 2020 #denatechcon 々
DeNA TechCon 2020 #denatechcon ※
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon 々 々
DeNA TechCon 2020 #denatechcon 々
DeNA TechCon 2020 #denatechcon
DeNA TechCon 2020 #denatechcon 々
DeNA TechCon 2020 #denatechcon ※
DeNA TechCon 2020 #denatechcon → 々
DeNA TechCon 2020 #denatechcon 々
DeNA TechCon 2020 #denatechcon ※ @pytest.fixture(scope="session", autouse=True) def setup_teardown(request, test_config):
# setup # ͜͜ʹࡉʑͱͨ͠ॲཧ suffix = uuid.uuid4() create_dataset(suffix) yield # teardown # ͜͜ʹࡉʑͱͨ͠ॲཧ delete_blobs(suffix) delete_dataset(suffix)
DeNA TechCon 2020 #denatechcon @pytest.mark.dependency(depends=[“test_preprocess_a”, “test_preprocess_b”]) def test_trainer(test_config): trainer =
Trainer( test_config[“xxx”].format(test_config[“hash"]), test_config[“yyy”].format(test_config[“hash"]), ) trainer.train() trainer.upload_model()
DeNA TechCon 2020 #denatechcon →
DeNA TechCon 2020 #denatechcon 々 →
• = • = • !73
DeNA TechCon 2020