Share
Embed
Transcript
25 slides
-
͘͞ΒΠϯλʔωοτגࣜձࣾ (C) Copyright 1996-2019 SAKURA Internet Inc ͘͞ΒΠϯλʔωοτݚڀॴ ػցֶशϞσϧͷہॴతͳղऍʹணͨ͠
γεςϜʹ͓͚ΔҟৗͷݪҼஅख๏ͷߏ 2019/12/06 ୈ8ճWebSystemArchitectureݚڀձ ɹా തจɼ௶ ༎थ ͘͞ΒΠϯλʔωοτגࣜձࣾ ͘͞ΒΠϯλʔωοτݚڀॴ -
5 ઌߦख๏ɿਂֶशͳͲͷػցֶशϕʔε ਂֶशͳͲͷػցֶशϞσϧΛ༻͍ͯγεςϜͷҟৗͷݪҼΛஅ͢Δख๏͕ఏҊ͞Ε͍ͯΔ※1ɽ ͜ΕΒɼγεςϜཧऀ͕ҟৗͷࠜຊݪҼΛߜΓࠐΉͨΊʹ׆༻͢Δ͜ͱ͕ظͰ͖Δɽ • ࣄલʹػցֶशϞσϧͷֶशߋ৽͕ඞཁͰ͋Δ͜ͱʹ͏՝͕ଘࡏ͢Δɽ • Ϟσϧͷֶशͱߋ৽ʹ͏ܭࢉίετ͕͔͔Δɽ • ϞσϧͷೖྗͱͳΔੳରͷϝτϦοΫΛࣄલʹࢦఆ͢Δඞཁ͕͋Δɽ
※1 C. Zhang et al, A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Series Data, Proceedings of the AAAI Conference on Arti fi cial Intelligence, 2019. -
6 ઌߦख๏ɿ౷ܭతҼՌ୳ࡧϕʔε ࣄલʹϞσϧͷֶश͕ෆཁͰ͋ΓɼҟৗൃੜΛىʹݪҼΛஅͰ͖Δख๏ͱͯ͠ɼ౷ܭతҼՌ୳ࡧ Λ༻͍ͨख๏͕ఏҊ͞Ε͍ͯΔ※2,3ɽ͜ΕΒɼҼՌάϥϑʹΑΓҟৗͷൖܦ࿏ΛಛఆͰ͖Δɽ • طଘख๏Ͱ͋ΔMicroscope※2AutoMAP※3ɼੳରͷϝτϦοΫΛࣄલʹࢦఆ͓ͯ͘͠ ඞཁ͕͋Δ͜ͱ͕՝Ͱ͋Δɽ • γεςϜཧऀ͕બఆͨ͠ϝτϦΫεͷதʹҟৗͷࠜຊݪҼͱͳΔϝτϦοΫؚ͕·Εͣɼ அ݁Ռ͔ΒݪҼϝτϦοΫ͕আ֎͞ΕΔՄೳੑ͕͋Δɽ
※2 J. Lin et al, Microscope: Pinpoint Performance Issues with Causal Graphs in Micro-service Environments, International Conference on Service-Oriented Computing, 2018. ※3 M. Ma et al, AutoMAP: Diagnose Your Microservice-based Web Applications Automatically, Proceedings of The Web Conference 2020 (WWW '20), 2020. -
7 ݚڀͷత • ຊൃදͰɼࣄલʹϞσϧͷֶशରϝτϦοΫͷࢦఆΛඞཁͱͤͣɼػց ֶशϞσϧͷہॴతͳղऍख๏Ͱ͋ΔSHAP(SHapley Additive exPlanation)Λ ༻͍ͯγεςϜͷҟৗͷݪҼΛஅ͢Δख๏ͷݕ౼Λߦ͏ɽ • ہॴతͳղऍख๏Ͱ͋ΔSHAP͕γεςϜͷҟৗͷݪҼஅʹ׆༻Ͱ͖Δ͔
ݕূ͢Δɽ • ଈ࣌ੑ͕ٻΊΒΕΔڥʹ͓͍ͯɼہॴతͳղऍख๏͕࣮༻తͳ࣌ؒͰ ܭࢉՄೳ͔ݕূ͢Δɽ -
9 ػցֶशͷղऍੑ • ਂֶशΛ͡Ίͱ͢ΔػցֶशϞσϧɼ༷ʑͳԠ༻͕ਐΜͰ͍Δɽ • ҰํɼػցֶशϞσϧͦͷܭࢉաఔ͕ෳࡶͰ͋ΔͨΊɼਓ͕ؒಈ࡞Λཧղ͢Δ͜ͱ͕Ͱ͖ ͳ͍ϒϥοΫϘοΫεͱͳΔ͜ͱ͕ࢹ͞Ε͓ͯΓɼػցֶशϞσϧͷղऍੑʹ͍ͭͯͷ ݚڀ͕͞Ε͍ͯΔ※4ɽ • AIར׆༻ݪଇҊ
(૯লɼ2018) • ಁ໌ੑͷݪଇɼΞΧϯλϏϦςΟ(આ໌) ͷݪଇ • DARPA (ถࠃߴݚڀܭըہ) • Explainable Arti fi cial Intelligence (XAI) ϓϩδΣΫτ ※4 A. Adadi and M. Berrada, Peeking Inside the Black-Box: A Survey on Explainable Arti fi cial Intelligence (XAI), IEEE Access, 2018. ػցֶशͷղऍੑɾઆ໌ੑʹؔ͢ΔจͷਪҠ※4 -
10 ہॴతͳղऍ • ہॴతͳղऍͱɼಛఆͷೖྗʹର͢ΔϞσϧͷ༧ଌஅͷࠜڌΛղऍ͢Δ͜ͱͰ͋Δɽ • දతͳख๏ͱͯ͠LIME※5SHAP※6͕ڍ͛ΒΕΔɽ • ͜ΕΒͷख๏ɼ༧ଌஅͷࠜڌͱͳͬͨಛྔΛఏࣔ͢Δख๏Ͱ͋Δɽ • ྫ͑ɼը૾ྨͷػցֶशϞσϧʹରͯ͋͠Δը૾Λ
༩͑Δͱɼͦͷը૾Λʮmeerkatʯͱஅͨ͠ͱ͢Δɽ LIMESHAPͰͦͷࠜڌͱͳΔಛྔʢը૾ͷ߹ ϐΫηϧʹ૬ʣΛஅͷد༩ͷ߹͍ͱͱʹఏࣔ ͢Δɽ ※5 M. T. Ribeiro et al., "Why Should I Trust You?": Explaining the Predictions of Any Classi fi er, Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining(KDD’16), 2016. ※6 S. Lundberg and S. I. Lee, A Uni fi ed Approach to Interpreting Model Predictions, Advances in Neural Information Processing Systems 30(NIPS 2017), 2017. https://github.com/slundberg/shap -
11 ہॴతͳղऍͱҟৗͷݪҼஅ • ہॴతͳղऍख๏ɼಛʹը૾ೝࣝͷͰଟ͘ͷݚڀ͕ใࠂ͞Ε͍ͯΔ͕ɼҟৗͷݪҼ அʹ͓͍ͯͦͷ༗༻ੑ͕ࣔ͞Ε͍ͯΔ※7-9ɽ • ྫ͑ɼSHAPͳͲΛ༻͍ͯPCA※7ΦʔτΤϯίʔμ※8ɼࠞ߹ΨεϞσϧ※9ɼมΦʔτ Τϯίʔμ※9ͳͲʹΑΔҟৗݕͷ݁Ռͷղऍ͕ɼଞͷख๏ͱൺֱͯ͠ɼݪҼͷಛఆਫ਼͕ ߴ͍ɼ͘͠ਓؒͷײʹ͍ۙղऍΛ༩͑ΔͳͲͷݚڀ͕ใࠂ͕͞Ε͍ͯΔɽ ※7
N. Takeishi, Shapley Values of Reconstruction Errors of PCA for Explaining Anomaly Detection, IEEE International Conference on Data Mining Workshops (ICDM Workshops), 2019. ※8 L. Antwarg et al., Explaining Anomalies Detected by Autoencoders Using SHAP, arXiv:1903.02407, 2019. ※9 N. Takeishi and Y. Kawahara, On Anomaly Interpretation via Shapley Values, arXiv:2004.04464, 2020. -
13 ΞʔΩςΫνϟ֓ཁ ࣄલʹϞσϧͷֶशରϝτϦοΫͷࢦఆΛඞཁͱ͠ͳ͍ݪҼஅख๏ͷ֓ཁਤ • ఏҊख๏ɼҟৗൃੜޙʹͦͷݪҼΛஅ͢ΔͨΊͷख๏Ͱ͋ΓɼҟৗݕʹɼService Level Objective (SLO)ϝτϦοΫ͝ͱʹઃఆͨ͠ᮢͳͲΛ༻͍Δ͜ͱΛఆ͍ͯ͠Δɽ • ఏҊख๏ɼҟৗൃੜ࣌ʹγεςϜཧऀʹݪҼஅ݁ՌΛఏࣔ͠ɼγεςϜཧऀ͕γεςϜ
Λҟৗঢ়ଶ͔Β෮چ͢ΔͨΊͷ࡞ۀΛࢧԉ͢Δ͜ͱΛࢦ͍ͯ͠Δɽ • ཁ݅ɿஅ݁ՌΛఏࣔ͢Δ·Ͱͷ͕͍࣌ؒ͜ͱ͕·ΕΔ -
14 Step 1ɿϝτϦοΫͷϑΟϧλϦϯά • ఏҊख๏ɼࣄલʹੳରͱͳΔϝτϦοΫΛࢦఆ͢Δඞཁ͕ͳ͍ͨΊɼҟৗൃੜޙʹରϝτ ϦοΫΛબఆͰ͖Δɽ • ҟৗൃੜ࣌ʹ΄ͱΜͲมಈ͕ͳ͍ϝτϦοΫͳͲɼͦͷҟৗͷؔ࿈ͷՄೳੑ͕͍ͷΛϑΟϧ λϦϯά͢Δ͜ͱɼݪҼஅͷਫ਼ͷ্ͱޙଓεςοϓͷ࣮ߦ࣌ؒͷॖʹ༗ޮͰ͋Δɽ •
ҟৗͷؔ࿈ੑ͕͍ϝτϦοΫΛϑΟϧλϦϯά͢Δख๏ͷҰͭͱͯ͠ɼҎલͷզʑͷݚڀՌ Ͱ͋ΔTSifter※10ͷ׆༻Λݕ౼͢Δɽ ※10 ௶ ༎थ, ా തจ, ݹ խେ, TSifter: ϚΠΫϩαʔϏεʹ͓͚Δੑೳҟৗͷ ਝͳஅʹ͍ͨ࣌ܥྻσʔλͷ࣍ݩݮख๏, ୈ13ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδϜ(IOTS 2020). TSifterͷ֓ཁਤ※4 ఆৗੑͷݕఆ ֊తΫϥελϦϯά -
15 Step 2ɿϞσϧͷֶश • ఏҊख๏Ͱɼҟৗൃੜޙʹ؍ଌσʔλ͔ΒϞσϧΛֶश͢ΔͨΊɼߴʹֶशՄೳͳϞσϧ Λ༻͍Δඞཁ͕͋Δɽ • ҟৗݕͷϞσϧͱͯ͠ɼओੳ (PCA)ͷར༻Λݕ౼͢Δ
(ࠓޙɼඇઢܗͷϞσϧʹ֦ு ༧ఆ)ɽ • PCAΛ༻͍ͨҟৗݕͰɼ؍ଌσʔλʹର͢Δ࣍ݩݮʹΑΓਖ਼ৗ෦ۭؒΛٻΊɼςετ σʔλͱਖ਼ৗ෦ۭؒͱͷڑΛҟৗείΞͱ͢Δɽ • ఏҊख๏ͰɼPCAͰࢉग़͞ΕΔҟৗείΞΛҟৗݕͰͳ͘ɼݕޙͷݪҼஅʹ༻͍Δɽ ਖ਼ৗ෦ۭؒ ςετσʔλ (ϕΫτϧ) ಛۭؒ -
16 Step 3ɿҟৗͷߩݙͷܭࢉ • ఏҊख๏ͰɼҟৗͷݪҼஅΛߦ͏ͨΊʹɼ֤ϝτϦοΫͷҟৗͷߩݙΛܭࢉ͢Δɽ • ߩݙͷܭࢉʹɼڠྗήʔϜཧͷShapley Valueʹجͮ͘SHAPͷར༻Λݕ౼͢Δɽ • SHAPͷΞϧΰϦζϜͷதͰɼKernel
SHAPΛ࠾༻͢Δɽ • Model-agnostic (Ϟσϧඇґଘ) ͳղऍख๏ • Linear LIMEͱShapley ValueΛΈ߹ΘͤͨΞϓϩʔν Kernel SHAP ɿղऍ͍ͨ͠ෳࡶͳϞσϧ ɿઆ໌༻ͷ୯७ͳϞσϧ ɿ༧ଌʹର͢Δ֤ಛྔͷߩݙ Additive feature attribution methods※6 ※6 S. Lundberg and S. I. Lee, A Uni fi ed Approach to Interpreting Model Predictions, Advances in Neural Information Processing Systems 30(NIPS 2017), 2017. f g ϕ -
࣮ݧڥ • Google Kubernetes Engine (GKE)্ʹϚΠΫϩαʔ ビ εͷ ベ ϯνϚʔΫΞ
プ Ϧέʔγϣϯ で ͋ΔSock Shop※Λߏஙͨ͠ɽ • Sock ShopΛߏ͢Δ11ίϯςφ͔ΒcAdvisorΛ༻͍ͯCPU༻ͳͲͷϝτϦοΫΛ5ඵ͓ ͖ʹऩूͨ͠ɽ • Sock ShopΞϓϦέʔγϣϯʹରͯ͠ɼٖࣅతͳෛՙΛੜ͢ΔͨΊʹɼLocustΛར༻ͨ͠ɽ • γεςϜͷҟৗΛ฿͢ΔͨΊʹɼuser-dbίϯςφʹCPUෛՙΛೖͨ͠ɽ 18 ※ https://microservices-demo.github.io/ Fron-end Catalogue Orders Carts User Payment Shipping Sock Shop Locust Prometheus ϚΠΫϩαʔϏεΫϥελ ੍ޚαʔό ֎෦ෛՙͷੜ CPUෛՙೖ ϝτϦοΫͷ ऩूɾอଘ stress-ng ղੳαʔό ϝτϦοΫ औಘϞδϡʔϧ ղੳϞδϡʔϧ 8core, 32GB -
1. ҟৗͷݪҼஅɿҟৗͷߩݙ 21 1λΠϜεςοϓʹ͓͚Δҟৗͷߩݙ (SHAPͷforce plot) ςετσʔλશମ(120λΠϜεςοϓ)ʹ͓͚Δ ҟৗͷߩݙ (SHAPͷsummary plot)
※ c-(ίϯςφ໊)_(ϝτϦοΫ໊) • ࠨਤͷ݁Ռɼࢉग़ͨ͠SHAPͷઈର ͷฏۉ͕େ͖͍ͷ͔Βॱʹ্͔Βฒͯ ͓ΓɼݪҼϝτϦοΫͷީิΛ্͔Βฒ ͍ͯΔ͜ͱʹ૬͢Δɽ • ຊ࣮ݧ݅ʹ͓͍ͯɼSHAPʹΑΔղऍɼ ࣮ࡍͷҟৗͷࠜຊݪҼͱҰகͨ݁͠ՌΛ༩ ͍͑ͯΔɽ -
1. ҟৗͷݪҼஅɿϕʔεϥΠϯͱͷൺֱ 22 • ݪҼஅͷϕʔεϥΠϯख๏ͱͯ͠ɼGaussian Based ThresholdingʢGBTʣΛ༻͍ͨɽ • GBTΛ༻͍ͨݪҼஅɼֶशσʔλͷฏۉͱςετσʔλͷฏۉͷ͕ࠩେ͖͍ॱ൪ʹ ҟৗͷߩݙ͕ߴ͍ͱ͢Δɽ
GBTʹΑΔҟৗͷߩݙ • ຊ࣮ݧʹ͓͚ΔࠜຊݪҼͰ͋Δuser-dbͷCPU ͷϝτϦοΫҟৗͷߩݙ͕7൪ͱͳͬ ͍ͯͨɽ • ͜ͷ݁Ռɼਖ਼ৗ࣌Ͱࢄ͕େ͖͍ϝτ ϦοΫ͕ɼۮൃతʹֶशσʔλͱςετσʔλ ͷฏۉͷ͕ࠩେ͖͘ͳͬͨ߹ɼͦΕΛ ҟৗʹΑΔมಈͱݟ͚Δ͜ͱ͕Ͱ͖ͳ͍͜ͱ ʹىҼ͢Δͱߟ͍͑ͯΔɽ -
23 2. ࣮ߦ࣌ؒ • ఏҊख๏ͷ࣮ߦ࣌ؒ64ඵͰ͋ΓɼSHAPͷܭࢉ͕ࢧతͰ͋Δ͜ͱ͕Θ͔ͬͨɽ SHAPͷܭࢉ ʹSHAPͷఏҊऀΒ͕։ൃ͍ͯ͠ΔPythonͷϥΠϒϥϦ※Λ༻͍ͨɽ • ఏҊख๏ͷ࣮ߦ࣌ؒɼରͱͳΔϝτϦοΫͷ૿େͱͱʹ͘ͳΔͨΊɼຊ࣮ݧ݅ΑΓ େنͳγεςϜରԠ͢ΔͨΊʹɼSHAPͷܭࢉͷߴԽ͕՝ͱͳΔɽ
※ https://github.com/slundberg/shap ࣮ߦεςοϓ͝ͱͷఏҊख๏ͷ࣮ߦ࣌ؒʢsummary plotͷܭࢉʣ 8ίΞͷαʔόͰλΠϜεςοϓ ͝ͱͷSHAPͷܭࢉΛฒྻԽͨ͠ -
25 ·ͱΊͱࠓޙͷల • ຊൃදͰɼࣄલʹϞσϧͷֶशରϝτϦοΫͷࢦఆΛඞཁͱͤͣɼػցֶशϞσϧͷہॴత ͳղऍख๏Ͱ͋ΔSHAPΛ༻͍ͯγεςϜͷҟৗͷݪҼΛஅ͢Δख๏ͷݕ౼ͨ͠ɽ • ࠓճͷ࣮ݧʹ͓͚Δҟৗύλʔϯʹ͓͍ͯɼఏҊख๏Ͱ࠾༻͍ͯ͠ΔSHAPͷํ͕ϕʔεϥΠϯ ख๏ΑΓྑ͍ݪҼஅͷ݁ՌΛ༩͑Δ͜ͱ͕Θ͔ͬͨɽ • ࠓճͷ࣮ݧ݅ʹ͓͍ͯɼఏҊख๏ͷ࣮ߦ࣌ؒ64ඵͰ͋ΓɼSHAPͷܭࢉ͕ࢧతͰ͋Δ͜ͱ͕
Θ͔ͬͨɽ • ఏҊख๏ͷ༗༻ੑΛࣔͨ͢Ίʹൣͳҟৗύλʔϯʹରͯ͠ݪҼஅͷਫ਼ΛఆྔతʹධՁ͢Δ༧ ఆͰ͋Δɽ • ରͱ͢ΔγεςϜ͕େنԽͨ͠ࡍʹɼఏҊख๏͕࣮༻ʹ͑͏Δ͔Λݕূ͢ΔɽͦͷͨΊʹɼ ϝτϦοΫ͕૿େͨ͠߹ͷݪҼஅͷܭࢉ࣌ؒͷධՁΛߦ͏ɽ • ࠓճͷ࠾༻ͨ͠PCAɼઢܗ͔ͭ࣌ܥྻͷใΛߟྀ͍ͯ͠ͳ͍୯७ͳϞσϧͰ͋ΔͨΊɼࠓޙɼ ඇઢܗͷϞσϧ࣌ܥྻʹରԠͨ͠ϞσϧΛ࠾༻͠ɼͦͷ༗ޮੑΛݕূ͢Δɽ ·ͱΊ ࠓޙͷల