Slide 1

Slide 1 text

ϑϦʔϥϯεͩΒ͚ͷ MLج൫։ൃ ٶ઒݈ޗ @MLPP#5 2019/12/12 1

Slide 2

Slide 2 text

ٶ઒ ݈ޗ (@N30nnnn) ࣗݾ঺հ • ܦӦ޻ֶ - ౷ܭֶઐ߈ • ݸਓࣄۀओ • σʔλ෼ੳ → ը૾ܥML → EM + MLOps • ݱࡏ͸2ࣾͰ MLOps 2

Slide 3

Slide 3 text

৬ྺ • ޿ࠂ୅ཧళ (σʔλ෼ੳ) • ਓ޻஌ೳडୗ։ൃ1 (ML) • ਓ޻஌ೳडୗ։ൃ2 (ML, EM) • (ݱ৬) גࣜձࣾΫϥϏε (MLOps, EM) ᵋ ձܭܥը૾ॲཧ • (ݱ৬) גࣜձࣾϨΞδϣϒ (MLOps) ᵋ ΦϯϥΠϯӳձ࿩ EM: HowͱWho EM: HowͱWho 3 ※ڐՄΛड͚ͯެ։ ※2019/12 ݱࡏ

Slide 4

Slide 4 text

MLνʔϜͷϝϯόʔߏ੒ • (ݱ৬) גࣜձࣾΫϥϏε (MLOps, EM) ᵋ ձܭܥը૾ॲཧ • (ݱ৬) גࣜձࣾϨΞδϣϒ (MLOps) ᵋ ΦϯϥΠϯӳձ࿩ ਖ਼ࣾһ: 2ਓ ϑϦʔ: 7ਓ ਖ਼ࣾһ: 2ਓ ϑϦʔ: 5ਓ 4 ※ڐՄΛड͚ͯެ։ ※2019/12 ݱࡏ

Slide 5

Slide 5 text

Agenda • ࠷ۙ࡞͍ͬͯΔϓϩμΫτͷߏ੒ • Fargateϕʔε • EKSϕʔε • ϑϦʔϥϯε͕ଟ͍ϓϩδΣΫτͷ೰Έ • ਓࡐαΠΫϧͷ଎͞ • ઐ໳ྖҬͷҧ͍ • ࢒͞ΕͨMLίʔυ؅ཧ • ߨͨ͡ղܾࡦ • ΠϯλʔϑΣʔεͷపఈ - ؔ৺ͷ෼཭ 5

Slide 6

Slide 6 text

Fargateͷࣄྫ 6

Slide 7

Slide 7 text

ϓϩμΫτ: Fargate - ਪ࿦؀ڥ • 1API - 1ϦϙδτϦ • gitflowͰ
 develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυͱ
 devσϓϩΠ͸CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 7 ※ڐՄΛड͚ͯެ։

Slide 8

Slide 8 text

ϓϩμΫτ: Fargate - ࠶ֶशػߏ 8 • ֶशσʔλ͸RDSʹ. • ఆظతʹֶशΛτϦΨ. • Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ
 ੑೳ޲্/෼෍มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։

Slide 9

Slide 9 text

ϓϩμΫτ: Fargate - ࠶ֶशػߏ 9 • ֶशσʔλ͸RDSʹ. • ఆظతʹֶशΛτϦΨ. • Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ
 ੑೳ޲্/෼෍มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։

Slide 10

Slide 10 text

ϓϩμΫτ: Fargate - ࠶ֶशػߏ 10 • ֶशσʔλ͸RDSʹ. • ఆظతʹֶशΛτϦΨ. • Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ
 ੑೳ޲্/෼෍มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։

Slide 11

Slide 11 text

ϓϩμΫτ: Fargate - ࠶ֶशػߏ 11 • ֶशσʔλ͸RDSʹ. • ఆظతʹֶशΛτϦΨ. • Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ
 ੑೳ޲্/෼෍มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։

Slide 12

Slide 12 text

EKSͷࣄྫ 12

Slide 13

Slide 13 text

ϓϩμΫτ: EKS - ਪ࿦؀ڥ • ෳ਺ͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶश͸ݕ౼த • develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ͸
 CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 13 ※ڐՄΛड͚ͯެ։

Slide 14

Slide 14 text

ϓϩμΫτ: EKS - ਪ࿦؀ڥ • ෳ਺ͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶश͸ݕ౼த • develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ͸
 CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 14 ※ڐՄΛड͚ͯެ։

Slide 15

Slide 15 text

ϓϩμΫτ: EKS - ਪ࿦؀ڥ • ෳ਺ͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶश͸ݕ౼த • develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ͸
 CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 15 ※ڐՄΛड͚ͯެ։

Slide 16

Slide 16 text

ϓϩμΫτ: EKS - ਪ࿦؀ڥ • ෳ਺ͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶश͸ݕ౼த • develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ͸
 CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 16 ※ڐՄΛड͚ͯެ։

Slide 17

Slide 17 text

• ͳΔ΂͘γϯϓϧͳ࡞Γ • δϣΠϯίετ௿ݮ • ຊ࣭తͳ։ൃʹઐ೦ • ҰํͰͳΔ΂͘Ϟμϯʹ • ৽͍͠஥ؒʹདྷͯ௖ͨ͘Ίͷ؀ڥ࡞Γ 17

Slide 18

Slide 18 text

ϑϦʔϥϯε͕ଟ͍PJͷ೰Έ 18 • ਓࡐαΠΫϧͷ଎͞ • ઐ໳ྖҬͷҧ͍ • ࢒͞ΕͨMLίʔυ؅ཧ

Slide 19

Slide 19 text

ϑϦʔϥϯε͕ଟ͍PJͷ೰Έ1 • ਓࡐαΠΫϧͷ଎͞ • 3ϲ݄, 6ϲ݄Ͱ͍ͳ͘ͳΔ͜ͱ΋ • ࠾༻ଆ౎߹ɾΤϯδχΞଆ౎߹ ΩϟονΞοϓͷ͕࣌ؒπϥ͍ 19

Slide 20

Slide 20 text

ϑϦʔϥϯε͕ଟ͍PJͷ೰Έ2 • ઐ໳ྖҬͷҧ͍ • ඞͣ͠΋ML / αʔόʔαΠυ྆ํͷ஌͕ࣝ༗ΔΘ͚Ͱ͸ͳ͍ • αʔόʔαΠυͷ೉͠͞(e.g. APIपΓ, ฒߦॲཧ) • MLͷ೉͠͞(e.g. ੑೳࢦඪ, Train,Validation,Test…) • ඇઐ໳ྖҬʹੵۃతͱ͸ݶΒͳ͍ ίϛϡχέʔγϣϯίετ͕πϥ͍ 20

Slide 21

Slide 21 text

ϑϦʔϥϯε͕ଟ͍PJͷ೰Έ3 • ࢒͞ΕͨMLίʔυ؅ཧ • લఏͱ͞ΕΔσΟϨΫτϦߏ଄ / ਖ਼ղϥϕϧܗࣜ • ୯Ұͷ਺ࣈԽͮ͠Β͍ੑೳධՁ MLͷ؅ཧ͕πϥ͍ 21

Slide 22

Slide 22 text

ΠϯλʔϑΣʔεͷపఈ 22

Slide 23

Slide 23 text

ؔ৺ͷ෼཭ • Pythonʹ͸ଘࡏ͠ͳ͍ΠϯλʔϑΣʔε • σʔλͷࡏΓॲ΍μ΢ϯϩʔυͳͲʹؔ༩ͨ͘͠ͳ͍ML • Ϟσϧͷൺֱํ๏΍લॲཧޙॲཧͳͲʹؔ༩ͨ͘͠ͳ͍αʔό • ࢒͞Εͨίʔυͷ࣮ଶ೺ѲΛ؆ૉԽ͍ͨ͠؅ཧऀ ΠϯλʔϑΣʔεΛݻΊͯίϛϡχέʔγϣϯΛݮΒ͢ 23

Slide 24

Slide 24 text

e.g. ਪఆॲཧͷ৔߹ 24 αʔόʔαΠυ ML

Slide 25

Slide 25 text

e.g. ਪఆॲཧͷ৔߹ 25 αʔόʔαΠυ σʔλͷॴࡏ, औಘํ๏ΛML͔Β෼཭ ฦ٫࣌ͷ੔ܗΛ αʔό͔Β෼཭ ML σʔλͷॴࡏΛML͕ ؾʹ͢Δඞཁ͕ͳ͍

Slide 26

Slide 26 text

e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ 26 ݺͼग़͠

Slide 27

Slide 27 text

e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ σʔλͷॴࡏ, औಘํ๏ΛML͔Β෼཭ σʔλͷॴࡏ, औಘํ๏ΛML͔Β෼཭ ੑೳ஋ൺֱͷ෼཭ Ϟσϧબ୒ͷ໌ࣔ 27 Ϟσϧ΍աڈ৘ใͷॴࡏ, औಘ,ه࿥Λ෼཭ Ϟσϧ΍աڈ৘ใͷॴࡏ, औಘ,ه࿥Λ෼཭

Slide 28

Slide 28 text

e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ ࠶ֶश༻σʔλϕʔε •ը૾෼ྨςʔϒϧ •จࣈྻݕ஌ςʔϒϧ •OCRςʔϒϧ •…… ந৅Խ 28

Slide 29

Slide 29 text

• ݸʑਓͷઐ໳ྖҬ͸ੌ͍ • ϑϦʔϥϯεͷੜ໋ઢ • ؔ৺֎ʹؔ༩ͯ͠΋ΒΘͳͯ͘΋ྑ͍ߏ଄ • ҟͳΔઐ໳ؒͰͷίϛϡχέʔγϣϯ࡟ݮ͠ෛ୲ݮ • αʔόʔαΠυͷΈͳΒͣML΋ϑϦʔϥϯεͰՄೳʹ 29 ·ͱΊ