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

Hydra, MLflow, Optunaの組み合わせで手軽に始めるハイパーパラメータ管理

Hydra, MLflow, Optunaの組み合わせで手軽に始めるハイパーパラメータ管理

Optuna meetup #1 で使用した資料です.

91b77d9a98b86e27838b183407270bc0?s=128

Taiki Nakamura

June 26, 2021
Tweet

Transcript

  1. )ZESB .-GMPX 0QUVOBͷ૊Έ߹ΘͤͰ खܰʹ࢝ΊΔϋΠύʔύϥϝʔλ؅ཧ ౦େӃɾ৘ใཧ޻ म࢜՝ఔ ೥ தଜହوʢͳ͔ΉΒ ͍͖ͨʣ 1

    0QUVOB .FFUVQ
  2. /27 ࣗݾ঺հ 2 ▪ ϓϩϑΟʔϧ • ౦େେֶӃ  ৘ใཧ޻ Ԑ౉ɾখࢁݚ

    . • Ի੠߹੒ ੠࣭ม׵ٕज़Λීஈݚڀ͍ͯ͠·͢ • 5XJUUFS!TVQJLJUJ ʢΞΠίϯɿӈਤʣ ▪ ొஃཧ༝ • Ҏલ NFEJVNDPNPQUVOB ʹͯຊൃදͱಉ͡୊໨ʹͯࣥච • &BTZ)ZQFSQBSBNFUFS.BOBHFNFOUXJUI)ZESB .-GMPX  BOE0QUVOB • )ZESB .-GMPX 0QUVOBͷ૊Έ߹ΘͤͰखܰʹ࢝ΊΔϋΠύʔ ύϥϝʔλ؅ཧ
  3. /27 ຊ೔ͷ಺༰ 3 ▪ ঺հ͢Δ͜ͱ • )ZESB .-GMPX 0QUVOB Λ༻͍ͨޮ཰తͳϋΠύϥ؅ཧ

    • ͦΕͧΕͷ୯ମͰͷ࢖͍ํ ૊Έ߹Θͤͨ۩ମతͳ࢖͍ํ ▪ ঺հ͠ͳ͍͜ͱ • ͦΕͧΕͷϥΠϒϥϦͷ࢓૊Έ ಺෦ಈ࡞౳ ◦ ૉਓͳͷͰʜ ▪ ຊ೔ͷڞ༗ࢿྉ͸ [PPNͷνϟοτཝʹܝࡌ ▪ αϯϓϧίʔυ͸ͪ͜Β
  4. ϋΠύϥ؅ཧ

  5. /27 ϋΠύϥ؅ཧͷํ๏ 5 "SHQBSTF ʹΑΔ؅ཧ IQBSBNQZ ౳ʹΑΔ؅ཧ

  6. /27 ϋΠύϥ؅ཧͷ໰୊఺ 6 ▪ BSHQBSTFʹΑΔϋΠύϥ؅ཧ • ԟʑʹͯ͠ઃఆ͢ΔϋΠύϥ਺͕๲େʹͳΓ͕ͪ • ͲͷϋΠύϥ͕ NPEFMQSFQSPDFTTͳͲʹରԠ͢Δ͔ݟͮΒ͍

    ▪ ઃఆϑΝΠϧΛ༻͍ͨϋΠύϥ؅ཧ • ϋΠύϥมߋͷͨͼʹઃఆϑΝΠϧΛฤू͋Δ͍͸࡞੒ ▪ )ZESB .-GMPX 0QUVOBʹΑΔϋΠύϥ؅ཧ • ઃఆύϥϝʔλΛίϚϯυϥΠϯ͔Β਺छྨมߋ ࣮ߦՄೳ • ϋΠύϥͷάϦουαʔν͕༰қʹՄೳ ਺छྨͷ؅ཧ͕༰қ • ڧྗͳϋΠύϥ୳ࡧΛίϚϯυϥΠϯ͔Βར༻Մೳ
  7. )ZESB

  8. /27 8 ▪ ಛ௃ • 'BDFCPPL"*3FTFBSDI͕ެ։͍ͯ͠Δύϥϝʔλ؅ཧπʔϧ • ύϥϝʔλΛ֊૚ཱͯͯߏ଄తʹ :".-ϑΝΠϧʹهड़ •

    ίϚϯυϥΠϯ͔Βઃఆ஋Λ্ॻ͖ ࣮ߦ • ϋΠύϥͷ਺छྨͷάϦουαʔνΛ ߦͰ࣮ߦՄೳ IUUQTIZESBDD )ZESBʹ͍ͭͯ
  9. /27 جຊతͳ࢖͍ํ 9 • ؅ཧ͍ͨ͠ϋΠύϥΛ ZBNM ܗࣜͰ $POGJHϑΝΠϧ΁هड़

  10. /27 جຊతͳ࢖͍ํ 10 • ؔ਺ʹσίϨʔλΛ౉͢͜ͱͰؔ਺಺͔ΒϋΠύϥ΁ࢀরՄೳ

  11. /27 جຊతͳ࢖͍ํ 11 ▪ ίϚϯυϥΠϯ͔Βͷ஋ͷมߋ ࣮ߦ • ϋΠύϥͷ஋Λௐ੔ͯ͠࠶࣮ߦ͍ͨ͠৔߹ίϚϯυϥΠϯ͔Β ϋΠύϥͷ஋Λ௚઀มߋͯ͠ϓϩάϥϜΛ࠶࣮ߦՄೳ

  12. /27 جຊతͳ࢖͍ํ 12 ▪ ϋΠύϥͷάϦουαʔν • ਺छྨͷϋΠύϥΛॱʹ༻͍࣮ͯߦ͍ͨ͠৔߹ɼ$POGJHΛ ॻ͖׵͑Δ͜ͱͳ͘ίϚϯυϥΠϯ͔Β௚઀ࢦఆՄೳ • ࢦఆͨ͠ϋΠύϥͷ૊Έ߹Θͤͷ਺ʹԠ࣮ͯ͡ߦ

  13. /27 جຊతͳ࢖͍ํ 13 ▪ )ZESBͷϋΠύϥࣗಈอଘػೳ • ࣮ߦ͝ͱͷઃఆ஋΍࣮ߦதͷग़ྗ౳ΛࣗಈͰอଘ͞ΕΔػೳ • 0VUQVUTσΟϨΫτϦʹ࣮ߦ೔࣮ߦຖछʑͷઃఆϑΝΠϧ͕ ࣗಈอଘ

    • อଘܗࣜͷՄಡੑ͕௿͘ϋΠύϥൺֱ͕Ͱ͖ͳ͍ʢࠨਤʣͨΊ .-GMPX Λಋೖ͜͠ΕΛվળʢӈਤʣ
  14. .-GMPX

  15. /27 .-GMPXͷجຊతͳ࢖͍ํ 15 ▪ .-GMPX ͱ͸ • ػցֶशϥΠϑαΠΫϧΛ࣮ݱ͢ΔΦʔϓϯιʔε • )ZESB

    ͱ૊Έ߹ΘͤϋΠύϥͷ؅ཧ อଘ ൺֱ͕༰қʹ • ຊൃදͰ͸ .-GMPX 5SBDLJOHΛ༻͍ͨϋΠύϥ؅ཧΛ঺հ ▪ .-GMPX 5SBDLJOH • ػցֶशͳͲͷϋΠύϥͷϩΪϯά MPTT΍BDDVSBDZͳͲͷ ϝτϦΫε ग़ྗϑΝΠϧͳͲͷ؅ཧΛิॿ͢Δ "1*Λఏڙ • QJQͰΠϯετʔϧՄೳ
  16. /27 جຊతͳ࢖͍ํ 16 ▪ ϋΠύϥͷ௥੻ͱه࿥ • .-GMPX ͕ఏڙ͢ΔϩΪϯάؔ਺Λ༻͍ͯϋΠύϥΛه࿥Մೳ start_run() runID

    の発行 log_param() ハイパラの登録 log_metric() メトリックの記録 log_artifact() 出力されたファイル等の記録 … mlflow ui localserver:5000でGUI
  17. 17 )ZESBͱ .-GMPX ͷ࣮૷ྫ

  18. 18 hydra.mainデコレータ パラメータの登録 (log_params()) メトリックの登録

  19. 19 શࢼߦաఔ͕ࣗಈอଘ ൺֱՄೳ MPTT BDDVSBDZ

  20. /27 )ZESB .-GMPX ·ͱΊ 20 ▪ )ZESB • 'BDFCPPL"*3FTFBSDI͕ެ։͍ͯ͠Δύϥϝʔλ؅ཧπʔϧ •

    ίϚϯυϥΠϯ͔Βઃఆ஋Λෳ਺มߋ ࣮ߦՄೳ ▪ .-GMPX • ػցֶशͷ࣮ݧ؅ཧΛࣗಈͰߦ͏πʔϧ • (6*্Ͱύϥϝʔλͷҧ͍ʹΑΔ݁Ռͷൺֱ͕༰қʹՄೳ ▪ )ZESB .-GMPX 0QUVOB • )ZESBͷϓϥάΠϯΛར༻ͨ͠ 0QUVOB ͷಋೖํ๏Λղઆ
  21. 0QUVOB

  22. /27 0QUVOB ͷಋೖ 22 ▪ 0QUVOB ͱ͸ • ΦʔϓϯιʔεͷϋΠύϥࣗಈ࠷దԽϑϨʔϜϫʔΫ •

    ϋΠύϥͷ஋ʹؔ͢ΔࢼߦࡨޡΛࣗಈԽ • ༏ΕͨੑೳΛൃش͢ΔϋΠύϥͷ஋Λࣗಈతʹൃݟ ▪ )ZESB .-GMPX 0QUVOB • )ZESBͷ 0QUVOB 4XFFQFSϓϥάΠϯΛ࢖༻͢Δ͜ͱͰ )ZESBͰઃఆͨ͠ม਺ͷ୳ࡧΛίϚϯυϥΠϯ͔Β࣮ࢪՄೳ • ࠷దԽ͞ΕΔม਺ͱ৚݅ΛίϚϯυϥΠϯ͔ΒมߋՄೳ
  23. /27 ઃఆϑΝΠϧ΁ͷ௥Ճ఺ 23 )ZESBͷઃఆϑΝΠϧ΁0QUVOB ʹؔ͢Δ ۩ମతͳઃఆ߲໨Λ௥ՃͰॻ͖͜Ή͚ͩ ࡉ͔ͳ 0QUVOB ͷઃఆ߲໨ΛมߋՄೳ l

    EJSFDUJPO ධՁؔ਺Λ࠷খԽ PS࠷େԽ l O@USJBMT୳ࡧճ਺ͷઃఆ l /@KPCTฒྻϫʔΧʔͷ਺ l ʜ
  24. /27 NBJOؔ਺Ͱͷมߋ఺ 24 • σίϨʔλͰ౉ͨؔ͠਺ͷฦΓ஋Λ࠷దԽ͢Δ໨తม਺ʹઃఆ • ҎԼͷίʔυ͸ BDDVSBDZΛ࠷େԽ͍ͨ͠৔߹ͷྫ

  25. /27 ୳ࡧൣғͷࢦఆ 25 • ίϚϯυϥΠϯ͔Β࠷దԽ͍ͨ͠ม਺͓ΑͼൣғΛ௚઀ࢦఆ • ҎԼͰ͸ PQUJNJ[FS ͷֶश཰ͱϞσϧͷϊʔυ਺Λ୳ࡧ ◦

    DIPJDF͸ΧςΰϦܕͷม਺΁ม׵͞ΕΔͨΊ PQUJNJ[FS ͷ ֶश཰͸ छྨ୳ࡧ͞ΕΔ ◦ SBOHF ͸੔਺ܕͷม਺΁ม׵͞ΕΔͨΊ NPEFMOPEF ͕ < >ͷൣғ͔ͭ੔਺ͷ৚݅Ͱ୳ࡧ͞ΕΔ ◦ ଞʹ΋༷ʑͳ෼෍ʹରԠ͍ͯ͠Δ͕͜͜Ͱ͸ׂѪ
  26. /27 .-GMPXͰͷՄࢹԽ 26 • 0QUVOB Ͱ୳ࡧ͞ΕͨϋΠύϥͷ஋͓Αͼ໨తؔ਺ͷ஋Λ .-GMPX Ͱߏஙͨ͠ϩʔΧϧαʔόʔ্Ͱ֬ೝՄೳ

  27. /27 ૯·ͱΊ 27 ▪ )ZESB .-GMPX 0QUVOB • ֶश࣌ʹ൥ࡶʹͳΓ͕ͪͳύϥϝʔλ؅ཧͷܾఆ൛ •

    )ZESBͱ 0QUVOB ͰύϥϝʔλΛ༰қʹมߋɾ୳ࡧ͠ .-GMPX ͰશύϥϝʔλΛҰݩ؅ཧ ▪ ͞Βʹֶͼ͍ͨํʹ͸ • ,FESP8PSLGMPXͷύΠϓϥΠϯ؅ཧπʔϧ ◦ )ZESB .-GMPX 0QUVOB ,FESP ◦ ΑΓ࠶ݱੑͷ͋Δ࢖͍ճ͠Λҙࣝͨ͠ίʔυʹ https://github.com/quantumblacklabs/kedro
  28. /27 ࢀߟࢿྉ 28 • IUUQTDZCFSBHFOUBJCMPHSFTFBSDI • IUUQTZNZNIBUFOBCMPHDPNFOUSZ  • IUUQT[FSFCPNIBUFOBCMPHDPN)ZESB

    • IUUQTTQFBLFSEFDLDPNDIDLTPLYJBPTBLVTIJNFUFEB LJLVZVUFSVNMPQT