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
フリーランスだらけの ML基盤開発 / ML Infra Development with F...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kengo Miyakawa
December 12, 2019
Technology
2.9k
3
Share
フリーランスだらけの ML基盤開発 / ML Infra Development with Freelance
Kengo Miyakawa
December 12, 2019
Other Decks in Technology
See All in Technology
RubyでRuby拡張を書いたらRubyより35倍速になったってどういうこと??
kazuho
3
610
ラズパイ & Picoで入門:Zephyr(RTOS)の環境構築からビルドまでの紹介
iotengineer22
0
240
long-running-tasks
cipepser
2
340
管理アカウント単一運用からAWS Organizationsに移行するの大変で滅
hiramax
0
240
データ分析基盤の信頼を支える視点と設計
yuki_saito
1
660
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
47k
layerx-fde-practices
cipepser
6
2.7k
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
0
420
freee-mcpを Local→Remote で出してわかった MCP認可実装のリアル
terara
3
630
Agentic Design Patterns
glaforge
0
200
Anthropic AIネイティブ・スタートアップ構築のプレイブック を理解する
nagatsu
0
180
Amazon CloudFrontにおけるAIボットアクセス制御のポイント
kizawa2020
4
270
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
140
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
120
RailsConf 2023
tenderlove
30
1.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Skip the Path - Find Your Career Trail
mkilby
1
130
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Code Review Best Practice
trishagee
74
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Abbi's Birthday
coloredviolet
2
7.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
ϑϦʔϥϯεͩΒ͚ͷ MLج൫։ൃ ٶ݈ޗ @MLPP#5 2019/12/12 1
ٶ ݈ޗ (@N30nnnn) ࣗݾհ • ܦӦֶ - ౷ܭֶઐ߈ • ݸਓࣄۀओ
• σʔλੳ → ը૾ܥML → EM + MLOps • ݱࡏ2ࣾͰ MLOps 2
৬ྺ • ࠂཧళ (σʔλੳ) • ਓೳडୗ։ൃ1 (ML) • ਓೳडୗ։ൃ2 (ML,
EM) • (ݱ৬) גࣜձࣾΫϥϏε (MLOps, EM) ᵋ ձܭܥը૾ॲཧ • (ݱ৬) גࣜձࣾϨΞδϣϒ (MLOps) ᵋ ΦϯϥΠϯӳձ EM: HowͱWho EM: HowͱWho 3 ※ڐՄΛड͚ͯެ։ ※2019/12 ݱࡏ
MLνʔϜͷϝϯόʔߏ • (ݱ৬) גࣜձࣾΫϥϏε (MLOps, EM) ᵋ ձܭܥը૾ॲཧ • (ݱ৬)
גࣜձࣾϨΞδϣϒ (MLOps) ᵋ ΦϯϥΠϯӳձ ਖ਼ࣾһ: 2ਓ ϑϦʔ: 7ਓ ਖ਼ࣾһ: 2ਓ ϑϦʔ: 5ਓ 4 ※ڐՄΛड͚ͯެ։ ※2019/12 ݱࡏ
Agenda • ࠷ۙ࡞͍ͬͯΔϓϩμΫτͷߏ • Fargateϕʔε • EKSϕʔε • ϑϦʔϥϯε͕ଟ͍ϓϩδΣΫτͷΈ •
ਓࡐαΠΫϧͷ͞ • ઐྖҬͷҧ͍ • ͞ΕͨMLίʔυཧ • ߨͨ͡ղܾࡦ • ΠϯλʔϑΣʔεͷపఈ - ؔ৺ͷ 5
Fargateͷࣄྫ 6
ϓϩμΫτ: Fargate - ਪڥ • 1API - 1ϦϙδτϦ • gitflowͰ
develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυͱ devσϓϩΠCircleCIͰࣗಈԽ • ΠϯϑϥTerraform 7 ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: Fargate - ࠶ֶशػߏ 8 • ֶशσʔλRDSʹ. • ఆظతʹֶशΛτϦΨ. •
Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ ੑೳ্/มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: Fargate - ࠶ֶशػߏ 9 • ֶशσʔλRDSʹ. • ఆظతʹֶशΛτϦΨ. •
Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ ੑೳ্/มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: Fargate - ࠶ֶशػߏ 10 • ֶशσʔλRDSʹ. • ఆظతʹֶशΛτϦΨ. •
Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ ੑೳ্/มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: Fargate - ࠶ֶशػߏ 11 • ֶशσʔλRDSʹ. • ఆظతʹֶशΛτϦΨ. •
Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ ੑೳ্/มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։
EKSͷࣄྫ 12
ϓϩμΫτ: EKS - ਪڥ • ෳͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶशݕ౼த •
develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ CircleCIͰࣗಈԽ • ΠϯϑϥTerraform 13 ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: EKS - ਪڥ • ෳͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶशݕ౼த •
develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ CircleCIͰࣗಈԽ • ΠϯϑϥTerraform 14 ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: EKS - ਪڥ • ෳͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶशݕ౼த •
develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ CircleCIͰࣗಈԽ • ΠϯϑϥTerraform 15 ※ڐՄΛड͚ͯެ։
ϓϩμΫτ: EKS - ਪڥ • ෳͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶशݕ౼த •
develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ CircleCIͰࣗಈԽ • ΠϯϑϥTerraform 16 ※ڐՄΛड͚ͯެ։
• ͳΔ͘γϯϓϧͳ࡞Γ • δϣΠϯίετݮ • ຊ࣭తͳ։ൃʹઐ೦ • ҰํͰͳΔ͘Ϟμϯʹ • ৽͍ؒ͠ʹདྷͯͨ͘Ίͷڥ࡞Γ
17
ϑϦʔϥϯε͕ଟ͍PJͷΈ 18 • ਓࡐαΠΫϧͷ͞ • ઐྖҬͷҧ͍ • ͞ΕͨMLίʔυཧ
ϑϦʔϥϯε͕ଟ͍PJͷΈ1 • ਓࡐαΠΫϧͷ͞ • 3ϲ݄, 6ϲ݄Ͱ͍ͳ͘ͳΔ͜ͱ • ࠾༻ଆ߹ɾΤϯδχΞଆ߹ ΩϟονΞοϓͷ͕࣌ؒπϥ͍ 19
ϑϦʔϥϯε͕ଟ͍PJͷΈ2 • ઐྖҬͷҧ͍ • ඞͣ͠ML / αʔόʔαΠυ྆ํͷ͕ࣝ༗ΔΘ͚Ͱͳ͍ • αʔόʔαΠυͷ͠͞(e.g. APIपΓ,
ฒߦॲཧ) • MLͷ͠͞(e.g. ੑೳࢦඪ, Train,Validation,Test…) • ඇઐྖҬʹੵۃతͱݶΒͳ͍ ίϛϡχέʔγϣϯίετ͕πϥ͍ 20
ϑϦʔϥϯε͕ଟ͍PJͷΈ3 • ͞ΕͨMLίʔυཧ • લఏͱ͞ΕΔσΟϨΫτϦߏ / ਖ਼ղϥϕϧܗࣜ • ୯ҰͷࣈԽͮ͠Β͍ੑೳධՁ MLͷཧ͕πϥ͍
21
ΠϯλʔϑΣʔεͷపఈ 22
ؔ৺ͷ • Pythonʹଘࡏ͠ͳ͍ΠϯλʔϑΣʔε • σʔλͷࡏΓॲμϯϩʔυͳͲʹؔ༩ͨ͘͠ͳ͍ML • Ϟσϧͷൺֱํ๏લॲཧޙॲཧͳͲʹؔ༩ͨ͘͠ͳ͍αʔό • ͞Εͨίʔυͷ࣮ଶѲΛ؆ૉԽ͍ͨ͠ཧऀ ΠϯλʔϑΣʔεΛݻΊͯίϛϡχέʔγϣϯΛݮΒ͢
23
e.g. ਪఆॲཧͷ߹ 24 αʔόʔαΠυ ML
e.g. ਪఆॲཧͷ߹ 25 αʔόʔαΠυ σʔλͷॴࡏ, औಘํ๏ΛML͔Β ฦ٫࣌ͷܗΛ αʔό͔Β ML σʔλͷॴࡏΛML͕
ؾʹ͢Δඞཁ͕ͳ͍
e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ 26 ݺͼग़͠
e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ σʔλͷॴࡏ, औಘํ๏ΛML͔Β σʔλͷॴࡏ, औಘํ๏ΛML͔Β ੑೳൺֱͷ
Ϟσϧબͷ໌ࣔ 27 Ϟσϧաڈใͷॴࡏ, औಘ,هΛ Ϟσϧաڈใͷॴࡏ, औಘ,هΛ
e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ ࠶ֶश༻σʔλϕʔε •ը૾ྨςʔϒϧ •จࣈྻݕςʔϒϧ •OCRςʔϒϧ •……
நԽ 28
• ݸʑਓͷઐྖҬੌ͍ • ϑϦʔϥϯεͷੜ໋ઢ • ؔ৺֎ʹؔ༩ͯ͠ΒΘͳͯ͘ྑ͍ߏ • ҟͳΔઐؒͰͷίϛϡχέʔγϣϯݮ͠ෛ୲ݮ • αʔόʔαΠυͷΈͳΒͣMLϑϦʔϥϯεͰՄೳʹ
29 ·ͱΊ