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
Kengo Miyakawa
December 12, 2019
Technology
3
2.8k
フリーランスだらけの ML基盤開発 / ML Infra Development with Freelance
Kengo Miyakawa
December 12, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
AI時代、1年目エンジニアの悩み
jin4
1
140
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
1
410
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
400
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
0
570
【NGK2026S】日本株のシステムトレードに入門してみた
kazuhitotakahashi
0
280
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
410
Introduction to Bill One Development Engineer
sansan33
PRO
0
350
分析画面のクリック操作をそのままコード化 ! エンジニアとビジネスユーザーが共存するAI-ReadyなBI基盤
ikumi
0
120
セキュリティ はじめの一歩
nikinusu
0
1.4k
DatabricksホストモデルでAIコーディング環境を構築する
databricksjapan
0
220
EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント
har1101
7
290
Azure SQL Databaseでベクター検索を活用しよう
nakasho
0
140
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Practical Orchestrator
shlominoach
191
11k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
91
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
87
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
370
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Facilitating Awesome Meetings
lara
57
6.7k
Producing Creativity
orderedlist
PRO
348
40k
Testing 201, or: Great Expectations
jmmastey
46
8k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
67
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
93
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 ·ͱΊ