2022/04/24 (日) Python機械学習勉強会 in 新潟で発表した資料です。
Vertex AI ࢼͯ͠ΈͨPython ػցֶशษڧձ in ৽ׁ2022-04-24 @kasacchiful
View Slide
Classmethod, Inc.Solutions Architect / Software DevelperFavorite:Community:• JAWS-UG Niigata• Python ML in Niigata• JaSST Niigata• ASTER• SWANII• etc.Hiroshi Kasahara@kasacchiful@kasacchiful2
MLOpsͱԿ͔ʁ
MLOps• ػցֶशϓϩδΣΫτΛԁʹਐΊΔͨΊͷऔΓΈɾମ੍ɾࢥ• ػցֶशνʔϜ / ։ൃνʔϜ / ӡ༻νʔϜ ͕͓ޓ͍ʹڠௐ͠߹͏͜ͱͰɺػցֶशϞσϧͷ࣮͔Βӡ༻·ͰͷϥΠϑαΠΫϧΛԁʹਐΊɺܧଓతʹՁΛఏڙ͢Δ͜ͱΛతʹͯ͠Δ• DevOpsͷػցֶशϓϩδΣΫτ൛• ʮ։ൃαΠΫϧͷॖʯʮ։ൃࣗମͷਝԽʯʮ৴པੑߴ͍ϦϦʔεʯΛMLϓϩδΣΫτʹ
MLγεςϜͷཁૉIUUQTDMPVEHPPHMFDPNBSDIJUFDUVSFNMPQTDPOUJOVPVTEFMJWFSZBOEBVUPNBUJPOQJQFMJOFTJONBDIJOFMFBSOJOH
MLOps Life CycleIUUQTOFBMBOBMZUJDTDPNFYQFSUJTFNMPQT
Continuous Delivery for Machine Learning end-to-end ProcessIUUQTNBSUJOGPXMFSDPNBSUJDMFTDENMIUNM
MLOpsΠϯϑϥج൫ʹඞཁͳ͜ͱ• σʔλιʔεͱɺ͔ͦ͜Βੜ͞ΕΔσʔληοτͷཧ• ֶशࡁϞσϧͷཧ• CI / CDؚΜͩMLσϦόϦύΠϓϥΠϯ• Ұ࿈ͷδϣϒΛ؆୯ʹճͨ͢Ίͷίϯςφ
Ұ͔Βߏங͢ΔͷେมͳͷͰΫϥυαʔϏε͍͍ͨ
MLOpsؔ࿈αʔϏε• AWS• Amazon SageMaker• Google Cloud• Vertex AI• Azure• Azure Machine Learning
IUUQTQBHFTBXTDMPVEDPNST5;[email protected]"84Ͱߏங͢Δ.-0QTج൫@൛@@"*.-5PLZPQEG
IUUQTDMPVEHPPHMFDPNCMPHKBUPQJDTEFWFMPQFSTQSBDUJUJPOFSTOFXNMMFBSOJOHQBUIWFSUFYBJ
ࠓճVertex AIΛࢼͯ͠Έͨ
Vertex AIࢼͯ͠Έͨ• ϞσϧͷτϨʔχϯάɺσϓϩΠɺςετΛҰ௨Γࢼ͢• AutoMLͷΫΠοΫελʔτΛϕʔεʹ࣮ࢪ• https://cloud.google.com/automl-tables/docs/quickstart?hl=ja• දܗࣜσʔλͷྨ
σʔληοτ
τϨʔχϯά
σϓϩΠ
ςετ
curlͰࢼ͢curl -X POST\-H "Authorization: Bearer $(gcloud auth print-access-token)"\-H "Content-Type: application/json"\https://asia-northeast1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/asia-northeast1/endpoints/${ENDPOINT_ID}:predict\-d “@${INPUT_DATA_FILE}"{"predictions":[{"classes":["1","2"],"scores":[0.98835468292236328,0.01164530497044325]}],"deployedModelId": "8383556259466444800","model": "projects/1066851579090/locations/asia-northeast1/models/6083061274810253312","modelDisplayName": "sample_tabular_dataset_model"}
ύΠϓϥΠϯ• kubeflow pipelines ͘͠Tensorflow Extended ͰύΠϓϥΠϯΛهࡌͯ͠ɺVertex AIʹొIUUQTDMPVEHPPHMFDPNCMPHKBQSPEVDUTBJNBDIJOFMFBSOJOHTFSWFSMFTTNBDIJOFMFBSOJOHQJQFMJOFTPOHPPHMFDMPVE
MLOpsΠϯϑϥج൫ʹඞཁͳ͜ͱ• σʔλιʔεͱɺ͔ͦ͜Βੜ͞ΕΔσʔληοτͷཧ• Vertex AIͰ֤छσʔληοτΛཧͰ͖Δ• ֶशࡁϞσϧͷཧ• Ϟσϧͷόʔδϣϯͷཧ͕Մೳ• CI / CDؚΜͩMLσϦόϦύΠϓϥΠϯ• kebeflow pipelines͘͠Tensorflow ExtendedͰߏஙՄೳ• Ұ࿈ͷδϣϒΛ؆୯ʹճͨ͢Ίͷίϯςφ• طଘͷίϯςφར༻ͷ΄͔ɺΧελϜίϯςφ༻Մೳ
SageMaker / Vertex AI ͷػೳσʔληοτͷ࡞ਓྗʹΑΔΞϊςʔγϣϯࢧԉಛྔϦϙδτϦύΠϓϥΠϯ ϞσϧͷධՁ σϓϩΠ ϞχλϦϯά4BHF.BLFS4BHF.BLFS%BUB8SBOHMFS4BHF.BLFS(SPVOE5SVUI4BHF.BLFS'FBUVSF4UPSF4BHF.BLFS1JQFMJOF4BHF.BLFS%FCVHHFS4BHF.BLFS$MBSJGZόονਪ˓ϦΞϧλΠϜਪ˓4BHF.BLFS.PEFM.POJUFS7FSUFY"* σʔληοτϥϕϧλεΫ7FSUFY"*'FBUVSF4UPSF7FSUFY"*1JQFMJOFϞσϧͷධՁόονਪ˓ϦΞϧλΠϜਪ˓7FSUFY"*.POJUPSJOH
ॴײ• ݁ߏGUI্Ͱૢ࡞Ͱ͖Δ͠ɺΘ͔Γ͍͢• ಛʹAutoML• Vertex AIͷPython SDK͕༻ҙ͞ΕͯΔͷͰɺίʔυͰཧͰ͖Δ• SageMakerPython SDK͕͋Δ• ଞͷGoogle CloudαʔϏεͱͷ࿈ܞํ๏͕Α͘Θ͔Βͳ͍ (ଟͰ͖ΔΜͩΖ͏͚Ͳ)
·ͱΊ• MLγεςϜߏஙͷࡍɺMLίʔυҎ֎ͷཁૉଟ͘ɺ࣌ؒख͔͔ؒΔɻ• ΫϥυαʔϏεͷMLOpsؔ࿈ͷαʔϏεΛ͏·͘͏͜ͱͰɺ࿑ྗΛগͳͯ͘͠MLγεςϜΛߏஙɾӡ༻͢Δ͜ͱ͕Մೳ
͓͠·͍