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

VertexAIで構築したMLOps基盤の取り組み

 VertexAIで構築したMLOps基盤の取り組み

株式会社CAMではエンタメ領域をはじめとした様々のサービスを運用しており,それらに対して機械学習によるレコメンドロジックが提供されています。

本セッションでは,機械学習によるレコメンドを提供するために構築したMLOps基盤について,加えて基盤構築に使用したGoogle CloudのサービスであるVertex AIについてお話しします。
Vertex AIはリリースされたばかりのサービスであるため,活用事例が少なく構築に困難が伴いました。そのため,成功事例と今後の課題を交えて紹介したいと思います。

CyberAgent

July 08, 2022
Tweet

More Decks by CyberAgent

Other Decks in Technology

Transcript

  1. ݪ ࿨ر
    2021೥౓ ৽ଔೖࣾ
    גࣜձࣾCAM
    ػցֶशΤϯδχΞ
    @harappa80
    @harappa80

    View full-size slide

  2. ݪ ࿨ر
    2021೥౓ ৽ଔೖࣾ
    גࣜձࣾCAM
    ػցֶशΤϯδχΞ
    @harappa80
    @harappa80

    View full-size slide

  3. 1. ࠓ೔࿩͢͜ͱ
    2. CAMʹ͍ͭͯ
    3. MLOpsͱ͸ʁͳͥඞཁʁ
    4. CAMͰͷٕज़બఆ
    5. VertexAIͷ֓ཁ
    6. MLOpsج൫ͷߏ੒
    7. ӡ༻ͯ͠Έͯͷར఺
    8. ։ൃ/ӡ༻Ͱࠔ೉ͳ఺
    9. ج൫ͷվળ఺
    10. ·ͱΊ
    ໨࣍

    View full-size slide

  4. 1. ࠓ೔࿩͢͜ͱ
    ● MLOpsͱ͸ͳʹ͔
    ● ͲͷΑ͏ͳߟ͑ͰMLOpsج൫Λߏங͔ͨ͠
    ● VertexAIΛ׆༻ͯ͠ߴ଎Ͱج൫Λߏஙͨ͠ࣄྫ
    ● ૝ఆ͢Δࢹௌऀ
    • ͜Ε͔ΒMLOpsΛಋೖ͠Α͏ͱ͍ͯ͠Δํ
    • VertexAI΁ͱҠ؅Λݕ౼͍ͯ͠Δํ

    View full-size slide

  5. 2. CAMʹ͍ͭͯ
    ● αΠόʔΤʔδΣϯτάϧʔϓ࠷ݹࢀͷࢠձࣾ
    ● ΤϯλϝɺϥΠϑελΠϧɺϏδωεόϥΤςΟϝσΟΞΛओ࣠
    ͱͨ͠ଟ਺ͷWebαʔϏεΛల։
    ●ձࣾ঺հ

    View full-size slide

  6. 2. CAMʹ͍ͭͯ
    ● Fensi Platformͱ͍͏ࣾ಺ͷαʔϏε։ൃج൫Λ׆༻
    ●αʔϏε։ൃʹඞཁͳڞ௨ػೳΛఏڙ 

    → αʔϏε։ൃΛߴ଎Խ
    ●౷Ұͨ͠ϩάϑΥʔϚοτͰσʔλΛऩू 

    → ϨϙʔςΟϯά΍ϨίϝϯυΛڞ௨ͷ࢓૊ΈͰಋೖ
    ●σʔλपΓͷಛ௃

    View full-size slide

  7. 3. MLOpsͱ͸ʁͳͥඞཁʁ

    View full-size slide

  8. MLOpsͱ͸
    ●MLOpsͱ͸DevOpsͱMachine Learningͷ଄ޠ
    ●ػցֶशγεςϜͷϓϩμΫτ΁ͷಋೖͱ

    ͦͷ؅ཧΛԁ׈/ਝ଎Խ͢ΔͨΊͷٕज़ͱΞϓϩʔν

    View full-size slide

  9. ͳͥMLOps͕ඞཁʁ

    View full-size slide

  10. ػցֶशγεςϜΛܧଓతʹӡ༻͠
    ϢʔβʔʹՁ஋Λಧ͚ΔͨΊ

    View full-size slide

  11. ϩʔΧϧ։ൃ/ Notebook
    MLOpsج൫͕ͳ͍৔߹
    • ൃੜ͠͏Δোน
    • ͲͷΑ͏ʹͯ͠ϓϩμΫτ΁ͱಋೖ͢Δʁ
    • ϓϩμΫτಋೖ·Ͱʹ͕͔͔࣌ؒΔ
    • ϩʔΧϧݕূ࣌ͱಉ౳ͷਫ਼౓Λຊ൪Ͱอূग़དྷͳ͍
    • ೔ʑͷϢʔβʔΠϯλϥΫγϣϯΛܧଓతʹ࠶ֶशग़དྷͳ͍
    • Ϟσϧͷਫ਼౓ྼԽʹؾ͕෇͔ͳ͍
    DS MLϞσϧ

    View full-size slide

  12. ػցֶशϞσϧΛ։ൃ͢Δ໨త
    ˚ ߴਫ਼౓ͳϞσϧΛ࡞ΔͨΊ
    ˕ αʔϏεʹಋೖ͠ɼϢʔβʔʹՁ஋Λܧଓతʹಧ͚ΔͨΊ
    →͜ΕΛαϙʔτ͢Δͷ͕MLOpsج൫ͷ໾ׂ

    View full-size slide

  13. Ϗδωε্Ͱ͸ϓϩμΫτ΁ͷಋೖΛҙࣝͨ͠
    ػցֶशϞσϧͷ։ൃ͕ॏཁ

    View full-size slide

  14. ● ػցֶशϞσϧΛֶश͢Δίʔυ͸ɼػցֶशγεςϜΛߏ੒͢Δཁૉͷ͏ͪͷҰ෦෼
    ● ֶशҎ֎ʹ΋ଟ͘ͷॲཧ͕ඞཁͰ͋ΓɼෳࡶʹೖΓ૊ΜͰ͍Δ
    ●MLOpsج൫ͷ੹຿͸͜ΕΒΛ౷߹తʹ؅ཧ/ӡ༻Մೳͳ؀ڥΛఏڙ͢Δ͜ͱ
    ࢀরݩɿHidden Technical Debt in Machine Learning Systems
    MLOpsج൫ͷ੹຿

    View full-size slide

  15. ● ԼهͷΑ͏ͳίϯϙʔωϯτΛਖ਼͔֬ͭਖ਼͍͠ॱংͰ೔ʑܧଓతʹ࣮ߦ͢Δඞཁ͕͋Δ
    ● Ϟσϧͷਫ਼౓؂ࢹ΍ɼޙʹੜ੒෺Λ௥੻ग़དྷΔ࢓૊Έ΋ඞཁ

    ࢀরݩɿTFX: A TensorFlow-Based Production-Scale Machine Learning Platform
    MLOpsج൫ͷ੹຿

    View full-size slide

  16. MLOpsج൫͕͋Δ৔߹
    • ࣮ݱग़དྷΔ͜ͱ
    • DS͕։ൃͨ͠ϞσϧΛਝ଎ʹαʔϏεͱ΁ಋೖɾվળ
    • ܧଓతʹ࠷৽ͷσʔλͰϞσϧΛ࠶ֶश
    • ϞσϧؒͷA/Bςετ
    • Ϟσϧͷਫ਼౓ྼԽ΍ಛ௃ྔͷҟৗΛݕग़
    DS
    MLϞσϧ
    MLOpsج൫
    • ࠶ֶश
    • A/B Test

    View full-size slide

  17. MLOps͸҆ఆͯ͠ػցֶशϞσϧΛӡ༻͢Δ্Ͱͷඞਢٕज़

    View full-size slide

  18. 4.CAMͰͷٕज़બఆ

    View full-size slide

  19. CAMͰͷٕज़બఆ
    ●MLOpsΛ࣮ݱ͢ΔͨΊͷٕज़ɾϑϨʔϜϫʔΫ
    • OSSɿ
    • MLFlowɿ༰қʹ࣮ݧ؅ཧՄೳ
    • AirflowɿػցֶशʹಛԽͨ͠΋ͷͰ͸ͳ͍
    • KubeflowɿεέʔϦϯά͢ΔɻKubernetesͷ؀ڥ͕ඞཁ
    • Ϋϥ΢υɿ
    • VertexAI(Google Cloud)
    • Sagemaker(AWS)

    → ݁࿦ͱͯ͠ɼCAMͰ͸VertexAIΛ࠾༻/ ӡ༻

    View full-size slide

  20. CAMͰͷٕज़બఆ
    ●VertexAIΛ࠾༻ͨ͠ཧ༝
    1. ૉૣ͘ج൫Λ࡞੒ग़དྷΔ͜ͱ

    →ϑϧϚωʔδυͳαʔϏε
    2. ࿈ܞ͕༰қͳ͜ͱ

    →σʔλج൫͕GCPʹ͋ΔͨΊಉ؀ڥ͕ཧ૝
    3. Pipeline͕OSSͷKubeFlow Pipelinesͱޓ׵

    →ެ։͞ΕͨίϯϙʔωϯτΛ࠶ར༻Մೳ
    4. ֤ίϯϙʔωϯτͷϚγϯεϖοΫΛॊೈʹࢦఆՄೳ

    →ֶश΍લॲཧʹ͸ϋΠεϖοΫͳϚγϯ͕ඞཁ

    View full-size slide

  21. 5.VertexAIͷ֓ཁ

    View full-size slide

  22. 5. VertexAIͷ֓ཁ
    ࢀরݩ: https://cloud.google.com/blog/ja/topics/developers-practitioners/new-ml-learning-path-vertex-ai
    • 2021೥5݄ʹGCP্ͰϦϦʔε
    • CAMͰ͸൒೥ޙʹຊ൪Քಇ։࢝
    • AI Platform, AutoML, MLܥͷAPIαʔϏεʢVisionAPI,
    Natural Language APIͳͲʣ͕౷߹͞ΕͨϓϥοτϑΥʔϜ

    View full-size slide

  23. ● ʮֶश༻σʔλͷੜ੒ʙਪ࿦݁Ռͷग़ྗʯ·ͰΛΧόʔ͢Δඞཁੑ͕͋Δ
    ●ɹ֤छλεΫΛΧόʔ͢ΔαʔϏε͕໢ཏతʹଘࡏ
    5. VertexAIͷ֓ཁ
    ●VertexAIͱMLϫʔΫϑϩʔͷରԠ

    View full-size slide

  24. 6.MLOpsج൫ͷߏ੒

    View full-size slide

  25. 6.MLOpsج൫ͷߏ੒
    ●ج൫ͷશମਤ

    View full-size slide

  26. 6.MLOpsج൫ͷߏ੒
    ᶃύΠϓϥΠϯίϯϙʔωϯτͷ࡞੒
    • ػցֶशʹඞཁͳλεΫ͝ͱʹίϯςφΛ࡞੒ɼGCR΁Push
    • CloudBuildͰCI/CD؀ڥΛ੔උˠ։ൃ/ຊ൪؀ڥͰಉ༷ͷॲཧ
    • ෳ਺ͷϞσϧؒͰڞ௨Խɾ࠶ར༻͢Δ͜ͱΛҙࣝͯ͠։ൃ
    • ެ։͞ΕͨίϯϙʔωϯτΛ࠶ར༻΋Մೳ

    View full-size slide

  27. 6.MLOpsج൫ͷߏ੒
    ᶄύΠϓϥΠϯఆٛͷ࡞੒
    • ࡞੒͞Εͨίϯϙʔωϯτͷ࣮ߦॱংͱύϥϝʔλΛఆٛ
    • CloudBuildͰίϯύΠϧͯ͠ɼPipeline࣮ߦ༻ͷjsonΛGCS΁֨ೲ͓ͯ͘͠

    View full-size slide

  28. 6.MLOpsج൫ͷߏ੒
    ᶅֶश༻σʔληοτͷ࡞੒
    • BigQueryʹ஝ੵ͞ΕͨϩάΛݩʹಛ௃ྔΛ೔ʑੜ੒
    • ੜ੒͞Εͨಛ௃ྔ͸VertexAI Feature Storeʹ֨ೲ
    • BigQuery + Feature StoreΛࢀরֶͯ͠श༻σʔληοτΛ

    ఆظతʹ࡞੒͢Δ
    • CloudComposerͰఆظ࣮ߦ

    View full-size slide

  29. 6.MLOpsج൫ͷߏ੒
    ᶆύΠϓϥΠϯͷఆظ࣮ߦ
    • CloudComposerͰVertexAI PipelineΛεέδϡʔϧ࣮ߦ
    • GCS΁֨ೲࡁͷPipeline࣮ߦ༻ͷjsonΛݩʹ࣮ߦ
    • GCR΁PushࡁͷίϯςφΛॱ࣮࣍ߦ
    • ੜ੒෺ʢֶशσʔλ/ධՁࢦඪ/ϞσϧͳͲʣ͸Metadataʹ֨ೲ
    • ϞσϧσϓϩΠͷͨΊʹModel RegistryʹPush

    View full-size slide

  30. 6.MLOpsج൫ͷߏ੒
    ᶇBatch/Online༧ଌͷ࣮ߦ
    • VertexAI PredictionͰ༧ଌΛ࣮ߦ
    • ϞσϧʹରԠͨ͠༧ଌ༻ίϯςφΛ༻ҙ͢Δඞཁ͕͋Δ
    • Batch༧ଌɿ
    • ೖྗɿGCSʹ֨ೲࡁͷJson
    • ग़ྗɿBigQuery·ͨ͸GCSʹग़ྗ
    • ෳ਺ϚγϯͰͷฒྻॲཧ΋Մೳ
    • Online༧ଌɿ
    • ༧ଌΛฦ͢ΤϯυϙΠϯτ͕࡞੒͞ΕΔ
    • ϚγϯεϖοΫΛॊೈʹࢦఆՄೳ

    View full-size slide

  31. 6.MLOpsج൫ͷߏ੒
    ●ج൫ͷશମਤ

    View full-size slide

  32. 7. ӡ༻ͯ͠ͷར఺
    • ֤ίϯϙʔωϯτͷ࣮ߦதͷΈΠϯελϯε্ཱ͕ͪ͛Δ
    • ίετΛ཈͑Δ͜ͱ͕Մೳ
    • ੜ੒෺ͷ؅ཧ͕༰қ
    • ίϯϙʔωϯτͷInput/Output͑͞ఆٛ͢Ε͹ɼ

    ҙࣝ͢Δ͜ͱͳ͘GCS&VertexAI Metadataʹอଘ͞ΕΔ
    • ϚγϯεϖοΫΛॊೈʹઃఆग़དྷΔ

    View full-size slide

  33. 8. ։ൃ/ӡ༻Ͱࠔ೉ͳ఺
    • ίϯϙʔωϯτͷ࡞੒ํ๏
    • Container Base: 

    Model΍MetricsͷܕʹະରԠͰ͋Γɼ࣮ߦ࣌ϝλσʔλ
    ʢexecutor_inputʣΛࢀরͨ͠ϋοΫతͳ࣮૷͕ඞཁ
    • Python-Function Base:

    શͯͷܕʹରԠͯ͠Δ͕ɼPipelineఆٛͷίʔυʹ

    ίϯϙʔωϯτ಺ͷॲཧΛશͯهड़͢Δඞཁ͕͋Δ
    →ίʔυྔ͕গͳ͍؆қతͳPipelineͰ͋Ε͹͓͢͢Ί
    ●ίϯϙʔωϯτͷίϯςφԽ࣌ʹະରԠͷੜ੒෺ͷܕ͕͋Δ

    View full-size slide

  34. 9. ج൫ͷվળ఺
    • ֤ίϯϙʔωϯτʹର͢Δςετͷಋೖ
    • Skew/Driftͷݕग़ػೳͷ௥Ճ
    • VertexAI Model MonitoringΛݕ౼த

    View full-size slide

  35. 10. ·ͱΊ
    • MLOps͸҆ఆͯ͠ػցֶशϞσϧΛӡ༻͢Δ্Ͱͷඞਢٕज़
    • VertexAIΛ׆༻͢Δ͜ͱͰߴ଎ʹج൫ΛߏஙՄೳ
    • ೖࣾ1೥໨ͷࣗ෼Ͱ͑͞΋൒೥Ͱߏங/ຊ൪ಋೖग़དྷͨ
    ΑΓৄࡉͳ಺༰ɿ
    • Vertex AIΛ׆༻ͨ͠MLOpsͷ࣮ݱʲલฤʳ
    • Vertex AIΛ׆༻ͨ͠MLOpsͷ࣮ݱʲޙฤʳ

    View full-size slide