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

実臨床・Webサービス領域での機械学習研究 開発の標準化

実臨床・Webサービス領域での機械学習研究 開発の標準化

パターン認識・メディア理解研究会(PRMU)2021年10月開催にて発表した資料です。
https://www.ieice.org/ken/program/index.php?tgs_regid=afad0a06f26b0ba058f7a46268673bddbbff4c3927f68a0206a4d5b8805f7ef0&tgid=IEICE-PRMU

Daiki Ikeshima

October 08, 2021
Tweet

More Decks by Daiki Ikeshima

Other Decks in Programming

Transcript

  1. ࣮ྟচɾWebαʔϏεྖҬͰͷػցֶशݚڀ
    ։ൃͷඪ४Խ
    PRMUݚڀձ
    ΤϜεϦʔגࣜձࣾɹුా७ฏɾ஑ౢେथ

    View Slide

  2. ࣮ྟচɾWebαʔϏεྖҬͰͷػցֶशݚڀ։ൃͷඪ४Խ
    2
    1. ΤϜεϦʔʹ͍ͭͯ
    2. ΤϜεϦʔʹ͓͚Δػցֶशͷ঺հ
    3. ༷ʑͳҊ݅ɾϓϩδΣΫτΛߦ͏্Ͱͷ՝୊
    4. ղܾࡦ

    View Slide

  3. 3
    ࣮ྟচɾWebαʔϏεྖҬͰͷػցֶशݚڀ։ൃͷඪ४Խ
    1. ΤϜεϦʔʹ͍ͭͯ
    2. ΤϜεϦʔʹ͓͚Δػցֶशͷ঺հ
    3. ༷ʑͳҊ݅ɾϓϩδΣΫτΛߦ͏্Ͱͷ՝୊
    4. ղܾࡦ

    View Slide

  4. m3.com: ҩྍैࣄऀ޲͚ϙʔλϧαΠτ
    • ೔ຊͷҩࢣͷ໿90%͕ొ࿥
    • ೔ʑͷҩྍχϡʔε΍৽ༀͳͲͷ৘ใΛൃ৴
    ΤϜεϦʔʹ͍ͭͯ
    4
    ΤϯδχΞϦϯάάϧʔϓ / AIɾػցֶशνʔϜɿ
    MLΛ༻͍ͯαʔϏεͷվળ΍৽نࣄۀͷ૑ग़Λ͓͜ͳ͏

    View Slide

  5. ϓϩμΫτͷྫɿWebαʔϏεྖҬ
    5
    ҩྍχϡʔεɾϝϧϚΨ ҩࢣ΁ͷ૬ஊαʔϏε
    ిࢠΧϧς
    ڭҭ
    ւ֎ࣄۀ
    ϚʔέςΟϯάࢧԉ
    ΩϟογϡϨεܾࡁ
    ίϯγϡʔϚ޲͚
    ΫϦχοΫ޲͚
    ೔ຊͷҩࢣͷ໿90%͕ొ࿥
    ҩࢣ޲͚WebαʔϏε

    View Slide

  6. ϓϩμΫτͷྫɿ࣮ྟচྖҬ (৽نࣄۀ)
    6

    View Slide

  7. ࣮ྟচɾWebαʔϏεྖҬͰͷػցֶशݚڀ։ൃͷඪ४Խ
    7
    1. ΤϜεϦʔʹ͍ͭͯ
    2. ΤϜεϦʔʹ͓͚Δػցֶशͷ঺հ
    3. ༷ʑͳҊ݅ɾϓϩδΣΫτΛߦ͏্Ͱͷ՝୊
    4. ղܾࡦ

    View Slide

  8. WebαʔϏεྖҬʹ͓͚Δػցֶश
    8
    هࣄϨίϝϯυ ݕࡧ Ϣʔβʔͷੑ֨ڵຯ༧ଌ
    χϡʔεαΠτͰϢʔβʔ

    1ਓ1ਓͷᅂ޷ʹ߹Θ͓ͤͯ͢
    ͢ΊهࣄΛύʔιφϥΠζ
    m3಺ͷهࣄͱ֎෦αΠτΛ
    ෳ߹ͨ͠ҩࢣ޲͚ʹಛԽ͠
    ͨݕࡧΤϯδϯ
    ॅ୐ߪೖ΍స৬ͳͲʹڵຯ
    ͷ͋ΔϢʔβΛಛఆ͠ɺ
    ϚʔέςΟϯάʹ׆༻͢Δ
    χϡʔεA
    χϡʔεB
    χϡʔεC
    χϡʔεA
    χϡʔεD
    χϡʔεE
    ݕࡧ
    ̋ ॅ୐ߪೖ
    ☓ స৬
    ̋ స৬
    ̋ ॅ୐ߪೖ

    View Slide

  9. ࣮ྟচྖҬʹ͓͚Δػցֶश
    9
    ڳ෦Ϩϯτήϯ͔Β
    ഏͷ࣬ױΛൃݟ
    رগ࣬ױͷൃݟ
    Xઢը૾
    ࣬ױͷ༗ແ

    View Slide

  10. ࣮ྟচྖҬʹ͓͚Δػցֶश
    10
    CTͳͲ͔ΒCOVID-19
    ױऀͷ༧ޙΛ༧ଌ
    ॏ঱ԽϦεΫͷ༧ଌ
    CTը૾
    ྟচ৘ใɾ
    ױऀͷܦա

    View Slide

  11. ࣮ྟচྖҬʹ͓͚Δػցֶश
    11
    ΢ΣΞϥϒϧσόΠε
    ͔Βༀͷ෭࡞༻Λൃݟ
    ࣭ؒੑഏԌͷૣظൃݟ
    ηϯαʔ͔Βͷ
    ࣌ܥྻσʔλ
    ױऀͷܦա

    View Slide

  12. ࣮ྟচɾWebαʔϏεྖҬͰͷػցֶशݚڀ։ൃͷඪ४Խ
    12
    1. ΤϜεϦʔʹ͍ͭͯ
    2. ΤϜεϦʔʹ͓͚Δػցֶशͷ঺հ
    3. ༷ʑͳҊ݅ɾϓϩδΣΫτΛߦ͏্Ͱͷ՝୊
    4. ղܾࡦ

    View Slide

  13. MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ
    XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    MLΤϯδχΞ

    View Slide

  14. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    Ϟσϧ
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  15. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    Ϟσϧ
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  16. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    ͜ͷલͱಉ͡ײ͡Ͱ
    Ϟσϧ
    ଐਓԽ
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  17. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    ͜ͷલͱಉ͡ײ͡Ͱ
    Ϟσϧ
    ଐਓԽ
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  18. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    ୀձͦ͠͏ͳਓʹ

    ࢪࡦΛଧ͍ͪͨ
    ZZʹߠఆҙݟͷਓΛ
    ஌Γ͍ͨ
    ͜ͷલͱಉ͡ײ͡Ͱ
    Ϟσϧ
    ଐਓԽ
    ฒߦͯ͠૸ΔҊ݅
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  19. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    ୀձͦ͠͏ͳਓʹ

    ࢪࡦΛଧ͍ͪͨ
    ZZʹߠఆҙݟͷਓΛ
    ஌Γ͍ͨ
    ͜ͷલͱಉ͡ײ͡Ͱ ͳΔૣͰʂ ࠓिதʹʂ
    Ϟσϧ
    ଐਓԽ
    ฒߦͯ͠૸ΔҊ݅
    λΠτͳక੾
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  20. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    ୀձͦ͠͏ͳਓʹ

    ࢪࡦΛଧ͍ͪͨ
    ZZʹߠఆҙݟͷਓΛ
    ஌Γ͍ͨ
    ͜ͷલͱಉ͡ײ͡Ͱ ͳΔૣͰʂ ࠓिதʹʂ
    Ϟσϧ
    ྲྀ༻ ྲྀ༻
    ଐਓԽ
    ฒߦͯ͠૸ΔҊ݅
    λΠτͳక੾
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  21. XXʹڵຯͷ͋Δਓʹ
    Ξϓϩʔν͍ͨ͠
    YYΛങͬͯ͘Εͦ͏
    ͳਓΛ஌Γ͍ͨ
    ୀձͦ͠͏ͳਓʹ

    ࢪࡦΛଧ͍ͪͨ
    ZZʹߠఆҙݟͷਓΛ
    ஌Γ͍ͨ
    ͜ͷલͱಉ͡ײ͡Ͱ ͳΔૣͰʂ ࠓिதʹʂ
    Ϟσϧ
    ྲྀ༻ ྲྀ༻
    όά
    ʁ ʁ
    ଐਓԽ
    ฒߦͯ͠૸ΔҊ݅
    λΠτͳక੾
    MLΤϯδχΞ
    MLར༻Ҋ݅ͰΑ͋͘Δ̏՝୊ɿWebαʔϏεྖҬͰͷྫ

    View Slide

  22. ࣮ྟচྖҬͰ΋ಉ͡3՝୊͕ൃੜ
    Ϩϯτήϯ͔Β
    XපΛൃݟ͍ͨ͠
    CT͔ΒকདྷͷYපͷ
    ϦεΫΛ༧ଌ͍ͨ͠
    ΢ΣΞϥϒϧσʔλ͔
    ΒZපΛൃݟ͍ͨ͠
    CTͱ݂ӷݕ͔ࠪΒ
    WපΛ༧ଌ͍ͨ͠
    ͳΔૣͰʂ 1ϲ݄Ҏ಺ʹʂ ৭ʑϞσϧΛࢼ͢ඞཁ
    Ϟσϧ
    ྲྀ༻ ྲྀ༻
    όά
    ʁ ʁ
    ଐਓԽ
    λΠτͳక੾
    MLΤϯδχΞ
    ฒߦͯ͠૸ΔҊ݅
    ML model ML model ML model

    View Slide

  23. ࣮ྟচɾWebαʔϏεྖҬͰͷػցֶशݚڀ։ൃͷඪ४Խ
    23
    1. ΤϜεϦʔʹ͍ͭͯ
    2. ΤϜεϦʔʹ͓͚Δػցֶशͷ঺հ
    3. ༷ʑͳҊ݅ɾϓϩδΣΫτΛߦ͏্Ͱͷ՝୊
    4. ղܾࡦ

    View Slide

  24. ߴ଎ԽɾฒྻԽɾඪ४ԽͰ̏ͭͷ՝୊Λࠀ෰
    24
    ਪ࿦
    σʔλऩू
    ಛ௃࡞੒
    Ϟσϧ࡞੒ ֶश࣮ߦ
    ֶश؂ࢹ
    ֶशධՁ
    ଐਓԽ
    λΠτͳక੾ ฒߦͯ͠૸ΔҊ݅
    ඪ४Խ
    ฒྻԽ
    ߴ଎Խ
    վળΠςϨʔγϣϯ

    Λߴ଎ʹճ͢
    ίΞ։ൃऀҎ֎Ͱ΋

    ࣮ߦͰ͖ΔΑ͏ʹ
    ଟ਺ͷҊ݅Λ

    ฒߦͯ͠ରԠͰ͖Δ

    View Slide

  25. 25
    ·ͱΊ: ߴ଎ԽɾฒྻԽɾඪ४ԽͰMLҊ݅3՝୊Λࠀ෰
    ߴ଎Խ ඪ४Խ
    ฒྻԽ
    σʔλ
    Πϯϑϥ
    ख๏
    ᶃKubernetesΛ༻
    ͍ͯλεΫΛ෼ࢄ
    ॲཧ
    ᶆίʔυͰ

    Πϯϑϥͷ࠶ݱ
    ੑΛอͭ
    ᶅઃఆϑΝΠϧ
    Ͱֶशɾਪ࿦ͷ
    ڍಈΛ੍ޚ
    ᶄΑ͘࢖͏ػೳ
    ΛMLγεςϜࣗ
    ਎ʹ࣮૷
    ᶋίʔσΟϯά
    ํ๏Λඪ४Խ
    ᶊ࣮ݧ΍෼ੳͷυ
    ΩϡϝϯτԽͰख
    ໭ΓΛݮΒ͢
    ᶇGCS+WebDataset
    Ͱେن໛σʔλΛ
    औΓѻ͏
    ᶈgokartΛ࢖ͬͯ
    தؒσʔλΛ
    Ωϟογϡ
    ᶉσʔλμ΢ϯϩʔυ
    ΛϥΠϒϥϦԽ

    View Slide

  26. 26
    ·ͱΊ: ߴ଎ԽɾฒྻԽɾඪ४ԽͰMLҊ݅3՝୊Λࠀ෰
    ߴ଎Խ ඪ४Խ
    ฒྻԽ
    σʔλ
    Πϯϑϥ
    ख๏
    ᶃKubernetesΛ༻
    ͍ͯλεΫΛ෼ࢄ
    ॲཧ
    ᶆίʔυͰ

    Πϯϑϥͷ࠶ݱ
    ੑΛอͭ
    ᶅઃఆϑΝΠϧ
    Ͱֶशɾਪ࿦ͷ
    ڍಈΛ੍ޚ
    ᶄΑ͘࢖͏ػೳ
    ΛMLγεςϜࣗ
    ਎ʹ࣮૷
    ᶋίʔσΟϯά
    ํ๏Λඪ४Խ
    ᶊ࣮ݧ΍෼ੳͷυ
    ΩϡϝϯτԽͰख
    ໭ΓΛݮΒ͢
    ᶇGCS+WebDataset
    Ͱେن໛σʔλΛ
    औΓѻ͏
    ᶈgokartΛ࢖ͬͯ
    தؒσʔλΛ
    Ωϟογϡ
    ᶉσʔλμ΢ϯϩʔυ
    ΛϥΠϒϥϦԽ

    View Slide

  27. 27
    ᶃ KubernetesΛ༻͍ͯ෼ࢄॲཧ ฒྻԽ ߴ଎Խ
    • λεΫ͕૿͑ͯ͘Δͱෳ਺ͷֶशɾਪ࿦λεΫΛฒྻʹ࣮ߦ͍ͨ͠
    • λεΫ͝ͱʹཁٻεϖοΫ͕ҟͳΔ
    KubernetesͰλεΫΛฒྻʹ࣮ߦ
    • ίϯςφԽͨ͠ଟ਺ͷΞϓϦέʔγϣϯΛ૊Έ߹Θ࣮ͤͯߦΛࢧԉ
    • AIνʔϜͰ͸GCP্ͷαʔϏεͰ͋ΔGKEΛར༻
    • εέʔϦϯά΍ϊʔυͷछྨมߋ͕༰қ

    View Slide

  28. 28
    ಛ௃࡞੒ʙֶशʙਪ࿦ΛKubernetes্Ͱ࣮ࢪ
    ֶश ਪ࿦
    CVͷFold͝ͱʹϊʔυ෼ࢄ ਪ࿦ର৅ϢʔβΛ෼ׂͯ͠ϊʔυ෼ࢄ
    ᶃ KubernetesΛ༻͍ͯ෼ࢄॲཧ ฒྻԽ ߴ଎Խ

    View Slide

  29. 29
    • ཁ݅ʹ߹ΘͤͯϊʔυϓʔϧΛ࢖͍෼͚Δ
    • GKEͷϓϦΤϯϓςΟϒϧϊʔυʢ೚ҙͷλΠϛϯάͰϊʔυ͕ڧ
    ੍ऴྃ͢ΔՄೳੑ͕͋Δ൓໘େ෯ʹ͍҆ʣΛ࢖ͬͯྉۚΛઅ໿
    • —> ΨϯΨϯ෼ࢄͰ͖Δ
    • ෳ਺ͷֶश΍ਪ࿦Λಉ࣌ฒߦʹճͤΔ
    • ࣮ݧΠςϨʔγϣϯ͕ߴ଎Խ͠ɺੑೳվળʹूதͰ͖Δ
    ֶश ਪ࿦
    CPU༏ઌϊʔυ ϝϞϦ༏ઌϊʔυ
    ฒྻԽ ߴ଎Խ
    ᶃ KubernetesΛ༻͍ͯ෼ࢄॲཧ

    View Slide

  30. 30
    ᶄ ֶशɾ෼ੳ༻ػೳΛMLγεςϜࣗ਎ʹ࣮૷ ඪ४Խ
    1ʣೋॏͷcross validation

    2ʣstratified train test split
    3ʣShapley஋Λग़ྗ
    • ֶशํ๏΍༧ଌ݁Ռͷ෼ੳɾධՁ΍࡞ۀऀ͝ͱʹ΍Γํ͕όϥόϥ
    ʹͳΓ΍͍͢
    • ଐਓԽͤ͞ͳ͍Α͏ʹඪ४Խ͍ͨ͠
    MLγεςϜࣗ਎ʹֶशɾ෼ੳ༻ͷϝιουΛ࣮૷

    View Slide

  31. 31
    ᶄ ֶशɾ෼ੳ༻ػೳΛMLγεςϜࣗ਎ʹ࣮૷ ඪ४Խ
    1) ೋॏͷcross validation
    ී௨ͷCV ೋॏCV
    ֶश
    ςετ
    ධՁ

    ϋΠύʔύϥϝʔλ
    ௐ੔ͳͲʹ࢖༻
    ϋΠύʔύϥϝʔλௐ੔΍early stopping
    ͕ෆ҆ఆʹͳΔ͜ͱ΋
    ֶशσʔλͷதΛ͞ΒʹCV͢Δ͜ͱͰ
    ϋΠύʔύϥϝʔλௐ੔Λ҆ఆͤͨ͞
    ֶश
    ςετ ධՁ
    ࢀߟ: Cawley, G.C.; Talbot, N.L.C. On over-fitting in model selection and subsequent
    selection bias in performance evaluation. J. Mach. Learn. Res 2010,11, 2079-2107.

    View Slide

  32. 32
    ᶄ ֶशɾ෼ੳ༻ػೳΛMLγεςϜࣗ਎ʹ࣮૷ ඪ४Խ
    2) stratified train test split
    split͝ͱʹਖ਼ྫɾෛྫσʔλͷൺ཰͕ಉ͡ʹͳΔΑ͏ʹ෼ׂ
    Ͳͷಛ௃ͷӨڹͰͦͷ݁Ռʹࢸͬͨͷ͔Λઆ໌Մೳʹ͢Δ
    3) Shapley஋Λग़ྗ
    සൟʹ࢖͏ػೳΛMLγεςϜʹ૊ΈࠐΜͰ࣮૷͓ͯ͘͜͠ͱ
    Ͱɺ࣮ߦऀʹґΒͣෳࡶͳֶश΍෼ੳ͕Մೳʹͳͬͨ
    ಛ௃A B C D E
    ༧ଌ݁Ռɿpositive
    ֶश ςετ
    ̋̋̋̋☓☓ ̋̋☓

    View Slide

  33. 33
    ᶅ ઃఆϑΝΠϧͰֶशɾਪ࿦ͷڍಈΛ੍ޚ ඪ४Խ
    • ֶशํ๏ʹෳ਺બ୒ࢶΛ༻ҙͨ݁͠Ռɺઃఆ͕ෳࡶ
    • աڈͷ࣮ݧΛৼΓฦΔࡍʹͲͷόʔδϣϯͷίʔυΛ࢖ͬͨͷ͔
    Θ͔Βͣɺ࠶ݱࠔ೉
    ̍ͭͷઃఆϑΝΠϧͰֶशɾਪ࿦ͷڍಈΛ੍ޚ
    • ڭࢣσʔλͷύε
    • ಛ௃બ୒ํ๏
    • Ϟσϧͷछྨɾύϥϝλ
    • CVํ๏
    • stratify split͢Δ͔
    • ίʔυͷίϛοτϋογϡɹ౳
    ઃఆϑΝΠϧ

    View Slide

  34. 34
    ᶅ ઃఆϑΝΠϧͰֶशɾਪ࿦ͷڍಈΛ੍ޚ
    • ڭࢣσʔλͷύε
    • ಛ௃બ୒ํ๏
    • Ϟσϧͷछྨɾύϥϝλ
    • ίʔυͷίϛοτϋογϡɹ౳
    ઃఆϑΝΠϧ
    MLγεςϜ
    Kubernetes
    GCR BigQuery GCS
    docker

    Πϝʔδ
    ಛ௃

    σʔλ
    ڭࢣ

    σʔλ
    • ࣮ݧઃఆΛઃఆϑΝΠϧʹهड़͢Δ͚ͩͰ
    • ઃఆʹԊͬͯdockerΠϝʔδ/σʔλΛGCR, BigQuery, GCSͳͲ͔Βऔಘ
    • Kubernetesʹ෼ࢄσϓϩΠ
    ίʔυ
    hash: ff34 tag: ff34
    push
    build &
    push
    ඪ४Խ

    View Slide

  35. 35
    • ڭࢣσʔλͷύε
    • ಛ௃બ୒ํ๏
    • Ϟσϧͷछྨɾύϥϝλ
    • ίʔυͷίϛοτϋογϡɹ౳
    ઃఆϑΝΠϧ Kubernetes
    • ઃఆϑΝΠϧΛॻ͚ͩ͘ͰֶशΛ࣮ߦͰ͖ΔΑ͏ʹͳͬͨ
    • ։ൃͱ࣮ߦ͕෼཭͠ίʔυΛҙֶࣝͤͣशΛճͤΔ
    • ➔ίΞ։ൃऀҎ֎Ͱ΋࣮ߦՄೳʹ
    • ࣮ݧઃఆͱίʔυΛඥ෇͚
    • ࠷৽͚ͩͰͳ͘աڈͷίʔυ΋ࢀরͰ͖Δ
    • ➔࠶ݱੑΛ୲อ
    ඪ४Խ
    MLγεςϜ
    ᶅ ઃఆϑΝΠϧͰֶशɾਪ࿦ͷڍಈΛ੍ޚ

    View Slide

  36. 36
    ඪ४Խ
    ᶆ ίʔυͰΠϯϑϥͷ࠶ݱੑΛอͭ
    GKE
    GCR
    docker

    Πϝʔδ
    BigQuery
    ಛ௃

    σʔλ
    GCS
    ڭࢣ

    σʔλ
    GCS΍BigQueryͳͲɺϦιʔεͷ؅ཧ͕ෳࡶ
    TerraformΛ࢖ͬͯɺίʔυͰΠϯϑϥΛ؅ཧͯ͠
    ࠶ݱ΍ϨϏϡʔΛ༰қʹͨ͠

    View Slide

  37. 37
    ·ͱΊ: ߴ଎ԽɾฒྻԽɾඪ४ԽͰMLҊ݅3՝୊Λࠀ෰
    ߴ଎Խ ඪ४Խ
    ฒྻԽ
    σʔλ
    Πϯϑϥ
    ख๏
    ᶃKubernetesΛ༻
    ͍ͯλεΫΛ෼ࢄ
    ॲཧ
    ᶆίʔυͰ

    Πϯϑϥͷ࠶ݱ
    ੑΛอͭ
    ᶅઃఆϑΝΠϧ
    Ͱֶशɾਪ࿦ͷ
    ڍಈΛ੍ޚ
    ᶄΑ͘࢖͏ػೳ
    ΛMLγεςϜࣗ
    ਎ʹ࣮૷
    ᶋίʔσΟϯά
    ํ๏Λඪ४Խ
    ᶊ࣮ݧ΍෼ੳͷυ
    ΩϡϝϯτԽͰख
    ໭ΓΛݮΒ͢
    ᶇGCS+WebDataset
    Ͱେن໛σʔλΛ
    औΓѻ͏
    ᶈgokartΛ࢖ͬͯ
    தؒσʔλΛ
    Ωϟογϡ
    ᶉσʔλμ΢ϯϩʔυ
    ΛϥΠϒϥϦԽ

    View Slide

  38. 38
    ᶇ GCS+WebDatasetͰେن໛σʔλΛऔΓѻ͏
    ߴ଎Խ
    • ྟচྖҬͷֶशσʔλ͸ը૾ͩͬͨΓͱ༰ྔ͕ڊେ
    • ϝϞϦ΍ετϨʔδʹ৐Γ੾Βͳ͍
    Google Cloud Storage (GCS) + WebDatasetΛ׆༻
    • ্ཱ͔ͪ͛Βֶश։࢝·Ͱͷμ΢ϯϩʔυͷΦʔόʔϔου͕ͳ͘ͳΔ
    • ௚઀GCSͷσʔληοτΛಡΈࠐΉͷͰ࠶ݱੑ͕ߴ͍
    • ϝϞϦͱετϨʔδΛઅ໿Ͱ͖Δ
    WebDataset: pytorchʹର͠ɺGCSͳͲ͔ΒετϦʔϛϯάͰσʔλͷऔಘ
    ΛՄೳʹ͢ΔϥΠϒϥϦ
    ฒྻԽ

    View Slide

  39. gokartͱ͸
    • ΤϜεϦʔൃOSSͷpython༻ύΠϓϥΠϯϥΠϒϥϦ
    • ॲཧΛTaskͱݺ͹ΕΔΫϥε୯ҐͰґଘؔ܎ͱͱ΋ʹهड़͢Δ
    • ґଘؔ܎Λղܾ͠ͳ͕ΒॲཧΛ͢͢ΊΔ
    • ్தܦա͸Ωϟογϡ͞Ε͍ͯΔͨΊɺಉ͡ॲཧ͸̎ճ໨͸লུͰ͖Δ
    39
    gokartͱ͍͏ύΠϓϥΠϯπʔϧΛ։ൃ͠

    ڞ௨ͨ͠ಛ௃ྔ͸࢖͍ճ͢
    ॲཧ̍ ॲཧ̎
    ॲཧ̏
    σʔλ̍ σʔλ̎
    Ϟσϧ

    ֶश̍
    ߴ଎Խ
    ᶈ gokartΛ࢖ͬͯதؒσʔλΛΩϟογϡ͢Δ
    ಛ௃ྔΛҊ݅͝ͱʹΠν͔Β࡞Γ௚͢ͷ͸ඇޮ཰

    View Slide

  40. 40
    gokartͱ͍͏ύΠϓϥΠϯπʔϧΛ։ൃ͠

    ڞ௨ͨ͠ಛ௃ྔ͸࢖͍ճ͢
    ߴ଎Խ
    ᶈ gokartΛ࢖ͬͯதؒσʔλΛΩϟογϡ͢Δ
    ॲཧ̍ ॲཧ̎
    ॲཧ̏
    σʔλ̍ σʔλ̎
    Ϟσϧ

    ֶश̍
    Ϟσϧ

    ֶश̎
    ಛ௃ྔΛҊ݅͝ͱʹΠν͔Β࡞Γ௚͢ͷ͸ඇޮ཰
    gokartͱ͸
    • ΤϜεϦʔൃOSSͷpython༻ύΠϓϥΠϯϥΠϒϥϦ
    • ॲཧΛTaskͱݺ͹ΕΔΫϥε୯ҐͰґଘؔ܎ͱͱ΋ʹهड़͢Δ
    • ґଘؔ܎Λղܾ͠ͳ͕ΒॲཧΛ͢͢ΊΔ
    • ్தܦա͸Ωϟογϡ͞Ε͍ͯΔͨΊɺಉ͡ॲཧ͸̎ճ໨͸লུͰ͖Δ

    View Slide

  41. 41
    • ಛ௃ྔͷੜ੒ϓϩηε͕ίʔυԽ͞Ε͍ͯΔ
    • ಛ௃ྔσʔλ͕Ωϟογϡ
    • ➔ Ҋ݅ʹΑΒͣ࢖͍ճͤΔ
    • ➔ ઃఆΛม͑ͨ࠶࣮ݧͰ΋࠶ར༻ʹΑΔ࣌ؒ୹ॖ
    • ϓϩηε్͕தͰམͪͯ΋్தͷΩϟογϡ͔Β࠶։
    • ➔ ҆৺ͯ͠GKEͷϓϦΤϯϓςΟϒϧϊʔυΛ࢖͑Δ
    • Ωϟογϡ࠶ར༻ʹΑ࣮ͬͯߦ࣌ؒΛ୹ॖͰ͖ͨ
    • ϓϦΤϯϓςΟϒϧͷ׆༻ͰGKEͷྉۚͷઅ໿͕Ͱ͖ͨ
    ߴ଎Խ
    ॲཧ̍ ॲཧ̎
    ॲཧ̏
    σʔλ̍ σʔλ̎
    Ϟσϧ

    ֶश̍
    Ϟσϧ

    ֶश̎
    ᶈ gokartΛ࢖ͬͯதؒσʔλΛΩϟογϡ͢Δ

    View Slide

  42. BigQuery
    Ϣʔβ

    σʔλ
    هࣄӾཡ

    σʔλ
    ΫϦοΫ

    σʔλ
    ᶉ νʔϜ಺ڞ௨ͷμ΢ϯϩʔυϥΠϒϥϦͰσʔλಡΈࠐΈ
    42
    • ֤MLϓϩμΫτͰ΋࢖͍ͬͯΔσʔλ͸ࣅ͍ͯΔ
    • BQ͔Βσʔλऔಘ͢ΔͨΊʹͦΕͧΕSQLΛॻ͔ͳ͍ͱ͍͚ͳ͍
    ඪ४Խ
    Ϟσϧ1 Ϟσϧ2 Ϟσϧ3 Ϟσϧ4
    SQL SQL SQL
    SQL SQL
    SQL
    SQL
    SQL
    SQL
    SQL
    SQL
    SQL

    View Slide

  43. BigQuery
    Ϣʔβ

    σʔλ
    هࣄӾཡ

    σʔλ
    ΫϦοΫ

    σʔλ
    ᶉ νʔϜ಺ڞ௨ͷμ΢ϯϩʔυϥΠϒϥϦͰσʔλಡΈࠐΈ
    43
    • μ΢ϯϩʔυ༻ͷڞ௨ϥΠϒϥϦΛ࢖༻
    • طଘͷμ΢ϯϩʔυϝιου͕࢖͍·ΘͤΔ ➔ SQLΛϓϩμΫτ͝ͱʹॻ͔ͳͯ͘ࡁΉ
    • gokartͰඪ४Խ͞Ε͓ͯΓಡΈॻ͖͠΍͍͢
    • ➔ ୭Ͱ΋؆୯ʹ࢖͑Δ
    ඪ४Խ
    Ϟσϧ1
    mushroom
    μ΢ϯϩʔυ༻

    ϥΠϒϥϦ
    SQL ϝιουΛར༻
    Ϟσϧ2 Ϟσϧ3 Ϟσϧ4

    View Slide

  44. 44
    ·ͱΊ: ߴ଎ԽɾฒྻԽɾඪ४ԽͰMLҊ݅3՝୊Λࠀ෰
    ߴ଎Խ ඪ४Խ
    ฒྻԽ
    σʔλ
    Πϯϑϥ
    ख๏
    ᶃKubernetesΛ༻
    ͍ͯλεΫΛ෼ࢄ
    ॲཧ
    ᶆίʔυͰ

    Πϯϑϥͷ࠶ݱ
    ੑΛอͭ
    ᶅઃఆϑΝΠϧ
    Ͱֶशɾਪ࿦ͷ
    ڍಈΛ੍ޚ
    ᶄΑ͘࢖͏ػೳ
    ΛMLγεςϜࣗ
    ਎ʹ࣮૷
    ᶋίʔσΟϯά
    ํ๏Λඪ४Խ
    ᶊ࣮ݧ΍෼ੳͷυ
    ΩϡϝϯτԽͰख
    ໭ΓΛݮΒ͢
    ᶇGCS+WebDataset
    Ͱେن໛σʔλΛ
    औΓѻ͏
    ᶈgokartΛ࢖ͬͯ
    தؒσʔλΛ
    Ωϟογϡ
    ᶉσʔλμ΢ϯϩʔυ
    ΛϥΠϒϥϦԽ

    View Slide

  45. ᶊ ࣮ݧ΍෼ੳͷυΩϡϝϯτԽͰख໭ΓΛͳ͘͢
    45
    ϞσϧͷੑೳվળͰʮ݁Ռͷ෼ੳ -> ࣍ͷΞϓϩʔνΛཱҊʯͷϑΣʔζͰ
    ͸ɺݕ౼ͷൈ͚࿙Ε΍ޡͬͨ෼ੳʹΑΓख໭Γ͕ൃੜ͠΍͍͢
    ෼ੳܭըΛσβΠϯυΩϡϝϯτԽͯ͠slackͰϨϏϡʔΛ΋Β͏
    • લͷ࣮ݧͰͷ՝୊
    • ݪҼͷԾઆ
    • ԾઆΛݕূ͢Δ෼ੳํ๏Ҋ
    • Ծઆ͕ਖ਼͔ͬͨ͠৔߹ͷnext actionҊ
    • ݴޠԽ͢Δ͜ͱͰൈ͚࿙Εʹ΋ؾ͕͚ͭͨ
    • จষԽ͸ख͕͔͔ؒΔ͕ɺख໭Γ͕গͳ͘ɺ݁Ռతʹૣ͍
    ߴ଎Խ

    View Slide

  46. 46
    ඪ४Խ
    • ڞ௨෦෼͸ςϯϓϨʔτΛ࢖͑ΔͷͰ޻਺࡟ݮ
    • ϓϩμΫτ͝ͱͷࠩҟ͕খ͘͞ͳΓɺ୲౰ऀҎ֎Ͱ΋ϨϏϡʔ͠΍͍͢
    ᶋ ίʔσΟϯάํ๏Λඪ४Խͯ͠࠶ݱੑΛอͭ
    ґଘϥΠϒϥϦͷόʔδϣϯ؅ཧ͕೉͍͠ poetryͰ؅ཧ͢Δ͜ͱͰόʔδϣϯΛݻఆͰ͖Δ
    ίʔυͷ඼࣭Λߴ͘ҡ͍࣋ͨ͠
    ίʔυͷσΟϨΫτϦߏ଄Λڞ௨Խ͍ͨ͠
    GitLab CI Λ࢖ͬͨlinterνΣοΫɾϢχοτςετࣗಈԽ
    ΧελϚΠζCookiecutterΛ࢖ͬͨϓϩδΣΫτͷඪ४Խ
    Ϛʔδ࣌ͷίʔυϨϏϡʔΛ௨ͯ͡ίʔυ඼࣭Λอͭ

    View Slide

  47. 47
    ·ͱΊ: ߴ଎ԽɾฒྻԽɾඪ४ԽͰMLҊ݅3՝୊Λࠀ෰
    ߴ଎Խ ඪ४Խ
    ฒྻԽ
    σʔλ
    Πϯϑϥ
    ख๏
    ᶃKubernetesΛ༻
    ͍ͯλεΫΛ෼ࢄ
    ॲཧ
    ᶆίʔυͰ

    Πϯϑϥͷ࠶ݱ
    ੑΛอͭ
    ᶅઃఆϑΝΠϧ
    Ͱֶशɾਪ࿦ͷ
    ڍಈΛ੍ޚ
    ᶄΑ͘࢖͏ػೳ
    ΛMLγεςϜࣗ
    ਎ʹ࣮૷
    ᶋίʔσΟϯά
    ํ๏Λඪ४Խ
    ᶊ࣮ݧ΍෼ੳͷυ
    ΩϡϝϯτԽͰख
    ໭ΓΛݮΒ͢
    ᶇGCS+WebDataset
    Ͱେن໛σʔλΛ
    औΓѻ͏
    ᶈgokartΛ࢖ͬͯ
    தؒσʔλΛ
    Ωϟογϡ
    ᶉσʔλμ΢ϯϩʔυ
    ΛϥΠϒϥϦԽ

    View Slide

  48. 48
    ΤϜεϦʔͰ͸MLγεςϜΛ։ൃɾվળͯ͘͠ΕΔਓΛืूதͰ͢
    https://jobs.m3.com/engineer/
    ̏՝୊Λղܾ͢Δ͜ͱͰεέʔϧ͢ΔγεςϜ͕Ͱ͖ͨ
    • ߴ଎ԽɿվળΠςϨʔγϣϯΛߴ଎ʹճͤͨ
    • ฒྻԽɿଟ਺ͷҊ݅Λಉ࣌ਐߦͰ͜ͳͤͨ
    • ඪ४Խɿ։ൃ/࣮ߦΛ෼཭ͨ͜͠ͱͰɺ৽نϝϯόʔͰ΋͙͢ʹ࣮ߦͰ͖ͨ
    ·ͱΊ: ߴ଎ԽɾฒྻԽɾඪ४ԽͰMLҊ݅3՝୊Λࠀ෰

    View Slide