Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フリーランスだらけの ML基盤開発 / ML Infra Development with Freelance

D0bcffd65f4894ea4d96beb927a429dc?s=47 Kengo Miyakawa
December 12, 2019

フリーランスだらけの ML基盤開発 / ML Infra Development with Freelance

D0bcffd65f4894ea4d96beb927a429dc?s=128

Kengo Miyakawa

December 12, 2019
Tweet

Transcript

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

  2. ٶ઒ ݈ޗ (@N30nnnn) ࣗݾ঺հ • ܦӦ޻ֶ - ౷ܭֶઐ߈ • ݸਓࣄۀओ

    • σʔλ෼ੳ → ը૾ܥML → EM + MLOps • ݱࡏ͸2ࣾͰ MLOps 2
  3. ৬ྺ • ޿ࠂ୅ཧళ (σʔλ෼ੳ) • ਓ޻஌ೳडୗ։ൃ1 (ML) • ਓ޻஌ೳडୗ։ൃ2 (ML,

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

    גࣜձࣾϨΞδϣϒ (MLOps) ᵋ ΦϯϥΠϯӳձ࿩ ਖ਼ࣾһ: 2ਓ ϑϦʔ: 7ਓ ਖ਼ࣾһ: 2ਓ ϑϦʔ: 5ਓ 4 ※ڐՄΛड͚ͯެ։ ※2019/12 ݱࡏ
  5. Agenda • ࠷ۙ࡞͍ͬͯΔϓϩμΫτͷߏ੒ • Fargateϕʔε • EKSϕʔε • ϑϦʔϥϯε͕ଟ͍ϓϩδΣΫτͷ೰Έ •

    ਓࡐαΠΫϧͷ଎͞ • ઐ໳ྖҬͷҧ͍ • ࢒͞ΕͨMLίʔυ؅ཧ • ߨͨ͡ղܾࡦ • ΠϯλʔϑΣʔεͷపఈ - ؔ৺ͷ෼཭ 5
  6. Fargateͷࣄྫ 6

  7. ϓϩμΫτ: Fargate - ਪ࿦؀ڥ • 1API - 1ϦϙδτϦ • gitflowͰ


    develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυͱ
 devσϓϩΠ͸CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 7 ※ڐՄΛड͚ͯެ։
  8. ϓϩμΫτ: Fargate - ࠶ֶशػߏ 8 • ֶशσʔλ͸RDSʹ. • ఆظతʹֶशΛτϦΨ. •

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

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

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

    Dynamoʹֶश݁Ռอଘ • Dynamoࢀর͠࠷ྑͷϞσ ϧΛऔಘ • RDSʹཷΊΔͷΈͰɺ
 ੑೳ޲্/෼෍มԽΛଊ͑ ͍ͨ ※ڐՄΛड͚ͯެ։
  12. EKSͷࣄྫ 12

  13. ϓϩμΫτ: EKS - ਪ࿦؀ڥ • ෳ਺ͷೖྗΛ·ͱΊͯਪఆ ΩϡʔܗࣜͷAPI • ࠶ֶश͸ݕ౼த •

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

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

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

    develop/master → ։ൃ/ຊ൪ • ΠϝʔδϏϧυ͸
 CircleCIͰࣗಈԽ • Πϯϑϥ͸Terraform 16 ※ڐՄΛड͚ͯެ։
  17. • ͳΔ΂͘γϯϓϧͳ࡞Γ • δϣΠϯίετ௿ݮ • ຊ࣭తͳ։ൃʹઐ೦ • ҰํͰͳΔ΂͘Ϟμϯʹ • ৽͍͠஥ؒʹདྷͯ௖ͨ͘Ίͷ؀ڥ࡞Γ

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

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

  20. ϑϦʔϥϯε͕ଟ͍PJͷ೰Έ2 • ઐ໳ྖҬͷҧ͍ • ඞͣ͠΋ML / αʔόʔαΠυ྆ํͷ஌͕ࣝ༗ΔΘ͚Ͱ͸ͳ͍ • αʔόʔαΠυͷ೉͠͞(e.g. APIपΓ,

    ฒߦॲཧ) • MLͷ೉͠͞(e.g. ੑೳࢦඪ, Train,Validation,Test…) • ඇઐ໳ྖҬʹੵۃతͱ͸ݶΒͳ͍ ίϛϡχέʔγϣϯίετ͕πϥ͍ 20
  21. ϑϦʔϥϯε͕ଟ͍PJͷ೰Έ3 • ࢒͞ΕͨMLίʔυ؅ཧ • લఏͱ͞ΕΔσΟϨΫτϦߏ଄ / ਖ਼ղϥϕϧܗࣜ • ୯Ұͷ਺ࣈԽͮ͠Β͍ੑೳධՁ MLͷ؅ཧ͕πϥ͍

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

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

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

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

    ؾʹ͢Δඞཁ͕ͳ͍
  26. e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ 26 ݺͼग़͠

  27. e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ σʔλͷॴࡏ, औಘํ๏ΛML͔Β෼཭ σʔλͷॴࡏ, औಘํ๏ΛML͔Β෼཭ ੑೳ஋ൺֱͷ෼཭

    Ϟσϧબ୒ͷ໌ࣔ 27 Ϟσϧ΍աڈ৘ใͷॴࡏ, औಘ,ه࿥Λ෼཭ Ϟσϧ΍աڈ৘ใͷॴࡏ, औಘ,ه࿥Λ෼཭
  28. e.g. ࠶ֶशػߏ αʔόʔαΠυ ML αʔόʔαΠυ ࠶ֶश༻σʔλϕʔε •ը૾෼ྨςʔϒϧ •จࣈྻݕ஌ςʔϒϧ •OCRςʔϒϧ •……

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

    29 ·ͱΊ