$30 off During Our Annual Pro Sale. View Details »

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

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

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

Taiki Nakamura

June 26, 2021
Tweet

More Decks by Taiki Nakamura

Other Decks in Programming

Transcript

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

    View Slide

  2. /27
    ࣗݾ঺հ
    2
    ■ ϓϩϑΟʔϧ
    ● ౦େେֶӃ ৘ใཧ޻ Ԑ౉ɾখࢁݚ .
    ● Ի੠߹੒ ੠࣭ม׵ٕज़Λීஈݚڀ͍ͯ͠·͢
    ● 5XJUUFS!TVQJLJUJ ʢΞΠίϯɿӈਤʣ
    ■ ొஃཧ༝
    ● Ҏલ NFEJVNDPNPQUVOB ʹͯຊൃදͱಉ͡୊໨ʹͯࣥච
    ● &BTZ)ZQFSQBSBNFUFS.BOBHFNFOUXJUI)ZESB .-GMPX
    BOE0QUVOB
    ● )ZESB .-GMPX 0QUVOBͷ૊Έ߹ΘͤͰखܰʹ࢝ΊΔϋΠύʔ
    ύϥϝʔλ؅ཧ

    View Slide

  3. /27
    ຊ೔ͷ಺༰
    3
    ■ ঺հ͢Δ͜ͱ
    ● )ZESB .-GMPX 0QUVOB Λ༻͍ͨޮ཰తͳϋΠύϥ؅ཧ
    ● ͦΕͧΕͷ୯ମͰͷ࢖͍ํ ૊Έ߹Θͤͨ۩ମతͳ࢖͍ํ
    ■ ঺հ͠ͳ͍͜ͱ
    ● ͦΕͧΕͷϥΠϒϥϦͷ࢓૊Έ ಺෦ಈ࡞౳
    ○ ૉਓͳͷͰʜ
    ■ ຊ೔ͷڞ༗ࢿྉ͸ [PPNͷνϟοτཝʹܝࡌ
    ■ αϯϓϧίʔυ͸ͪ͜Β

    View Slide

  4. ϋΠύϥ؅ཧ

    View Slide

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

    View Slide

  6. /27
    ϋΠύϥ؅ཧͷ໰୊఺
    6
    ■ BSHQBSTFʹΑΔϋΠύϥ؅ཧ
    ● ԟʑʹͯ͠ઃఆ͢ΔϋΠύϥ਺͕๲େʹͳΓ͕ͪ
    ● ͲͷϋΠύϥ͕ NPEFMQSFQSPDFTTͳͲʹରԠ͢Δ͔ݟͮΒ͍
    ■ ઃఆϑΝΠϧΛ༻͍ͨϋΠύϥ؅ཧ
    ● ϋΠύϥมߋͷͨͼʹઃఆϑΝΠϧΛฤू͋Δ͍͸࡞੒
    ■ )ZESB.-GMPX 0QUVOBʹΑΔϋΠύϥ؅ཧ
    ● ઃఆύϥϝʔλΛίϚϯυϥΠϯ͔Β਺छྨมߋ ࣮ߦՄೳ
    ● ϋΠύϥͷάϦουαʔν͕༰қʹՄೳ ਺छྨͷ؅ཧ͕༰қ
    ● ڧྗͳϋΠύϥ୳ࡧΛίϚϯυϥΠϯ͔Βར༻Մೳ

    View Slide

  7. )ZESB

    View Slide

  8. /27
    8
    ■ ಛ௃
    ● 'BDFCPPL"*3FTFBSDI͕ެ։͍ͯ͠Δύϥϝʔλ؅ཧπʔϧ
    ● ύϥϝʔλΛ֊૚ཱͯͯߏ଄తʹ :".-ϑΝΠϧʹهड़
    ● ίϚϯυϥΠϯ͔Βઃఆ஋Λ্ॻ͖ ࣮ߦ
    ● ϋΠύϥͷ਺छྨͷάϦουαʔνΛ ߦͰ࣮ߦՄೳ
    IUUQTIZESBDD
    )ZESBʹ͍ͭͯ

    View Slide

  9. /27
    جຊతͳ࢖͍ํ
    9
    ● ؅ཧ͍ͨ͠ϋΠύϥΛ ZBNM ܗࣜͰ $POGJHϑΝΠϧ΁هड़

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. /27
    جຊతͳ࢖͍ํ
    13
    ■ )ZESBͷϋΠύϥࣗಈอଘػೳ
    ● ࣮ߦ͝ͱͷઃఆ஋΍࣮ߦதͷग़ྗ౳ΛࣗಈͰอଘ͞ΕΔػೳ
    ● 0VUQVUTσΟϨΫτϦʹ࣮ߦ೔࣮ߦຖछʑͷઃఆϑΝΠϧ͕
    ࣗಈอଘ
    ● อଘܗࣜͷՄಡੑ͕௿͘ϋΠύϥൺֱ͕Ͱ͖ͳ͍ʢࠨਤʣͨΊ
    .-GMPX Λಋೖ͜͠ΕΛվળʢӈਤʣ

    View Slide

  14. .-GMPX

    View Slide

  15. /27
    .-GMPXͷجຊతͳ࢖͍ํ
    15
    ■ .-GMPX ͱ͸
    ● ػցֶशϥΠϑαΠΫϧΛ࣮ݱ͢ΔΦʔϓϯιʔε
    ● )ZESB ͱ૊Έ߹ΘͤϋΠύϥͷ؅ཧ อଘ ൺֱ͕༰қʹ
    ● ຊൃදͰ͸ .-GMPX 5SBDLJOHΛ༻͍ͨϋΠύϥ؅ཧΛ঺հ
    ■ .-GMPX 5SBDLJOH
    ● ػցֶशͳͲͷϋΠύϥͷϩΪϯά MPTT΍BDDVSBDZͳͲͷ
    ϝτϦΫε ग़ྗϑΝΠϧͳͲͷ؅ཧΛิॿ͢Δ "1*Λఏڙ
    ● QJQͰΠϯετʔϧՄೳ

    View Slide

  16. /27
    جຊతͳ࢖͍ํ
    16
    ■ ϋΠύϥͷ௥੻ͱه࿥
    ● .-GMPX ͕ఏڙ͢ΔϩΪϯάؔ਺Λ༻͍ͯϋΠύϥΛه࿥Մೳ
    start_run()
    runID の発行
    log_param()
    ハイパラの登録
    log_metric()
    メトリックの記録
    log_artifact()
    出力されたファイル等の記録

    mlflow ui
    localserver:5000でGUI

    View Slide

  17. 17
    )ZESBͱ .-GMPX ͷ࣮૷ྫ

    View Slide

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

    View Slide

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

    View Slide

  20. /27
    )ZESB.-GMPX ·ͱΊ
    20
    ■ )ZESB
    ● 'BDFCPPL"*3FTFBSDI͕ެ։͍ͯ͠Δύϥϝʔλ؅ཧπʔϧ
    ● ίϚϯυϥΠϯ͔Βઃఆ஋Λෳ਺มߋ ࣮ߦՄೳ
    ■ .-GMPX
    ● ػցֶशͷ࣮ݧ؅ཧΛࣗಈͰߦ͏πʔϧ
    ● (6*্Ͱύϥϝʔλͷҧ͍ʹΑΔ݁Ռͷൺֱ͕༰қʹՄೳ
    ■ )ZESB.-GMPX 0QUVOB
    ● )ZESBͷϓϥάΠϯΛར༻ͨ͠ 0QUVOB ͷಋೖํ๏Λղઆ

    View Slide

  21. 0QUVOB

    View Slide

  22. /27
    0QUVOB ͷಋೖ
    22
    ■ 0QUVOB ͱ͸
    ● ΦʔϓϯιʔεͷϋΠύϥࣗಈ࠷దԽϑϨʔϜϫʔΫ
    ● ϋΠύϥͷ஋ʹؔ͢ΔࢼߦࡨޡΛࣗಈԽ
    ● ༏ΕͨੑೳΛൃش͢ΔϋΠύϥͷ஋Λࣗಈతʹൃݟ
    ■ )ZESB .-GMPX 0QUVOB
    ● )ZESBͷ 0QUVOB 4XFFQFSϓϥάΠϯΛ࢖༻͢Δ͜ͱͰ
    )ZESBͰઃఆͨ͠ม਺ͷ୳ࡧΛίϚϯυϥΠϯ͔Β࣮ࢪՄೳ
    ● ࠷దԽ͞ΕΔม਺ͱ৚݅ΛίϚϯυϥΠϯ͔ΒมߋՄೳ

    View Slide

  23. /27
    ઃఆϑΝΠϧ΁ͷ௥Ճ఺
    23
    )ZESBͷઃఆϑΝΠϧ΁0QUVOB ʹؔ͢Δ
    ۩ମతͳઃఆ߲໨Λ௥ՃͰॻ͖͜Ή͚ͩ
    ࡉ͔ͳ 0QUVOB ͷઃఆ߲໨ΛมߋՄೳ
    l EJSFDUJPO ධՁؔ਺Λ࠷খԽ PS࠷େԽ
    l O@USJBMT୳ࡧճ਺ͷઃఆ
    l /@KPCTฒྻϫʔΧʔͷ਺
    l ʜ

    View Slide

  24. /27
    NBJOؔ਺Ͱͷมߋ఺
    24
    ● σίϨʔλͰ౉ͨؔ͠਺ͷฦΓ஋Λ࠷దԽ͢Δ໨తม਺ʹઃఆ
    ● ҎԼͷίʔυ͸ BDDVSBDZΛ࠷େԽ͍ͨ͠৔߹ͷྫ

    View Slide

  25. /27
    ୳ࡧൣғͷࢦఆ
    25
    ● ίϚϯυϥΠϯ͔Β࠷దԽ͍ͨ͠ม਺͓ΑͼൣғΛ௚઀ࢦఆ
    ● ҎԼͰ͸ PQUJNJ[FS ͷֶश཰ͱϞσϧͷϊʔυ਺Λ୳ࡧ
    ○ DIPJDF͸ΧςΰϦܕͷม਺΁ม׵͞ΕΔͨΊ PQUJNJ[FS ͷ
    ֶश཰͸ छྨ୳ࡧ͞ΕΔ
    ○ SBOHF ͸੔਺ܕͷม਺΁ม׵͞ΕΔͨΊ NPEFMOPEF ͕
    < >ͷൣғ͔ͭ੔਺ͷ৚݅Ͱ୳ࡧ͞ΕΔ
    ○ ଞʹ΋༷ʑͳ෼෍ʹରԠ͍ͯ͠Δ͕͜͜Ͱ͸ׂѪ

    View Slide

  26. /27
    .-GMPXͰͷՄࢹԽ
    26
    ● 0QUVOB Ͱ୳ࡧ͞ΕͨϋΠύϥͷ஋͓Αͼ໨తؔ਺ͷ஋Λ
    .-GMPX Ͱߏஙͨ͠ϩʔΧϧαʔόʔ্Ͱ֬ೝՄೳ

    View Slide

  27. /27
    ૯·ͱΊ
    27
    ■ )ZESB.-GMPX 0QUVOB
    ● ֶश࣌ʹ൥ࡶʹͳΓ͕ͪͳύϥϝʔλ؅ཧͷܾఆ൛
    ● )ZESBͱ 0QUVOB ͰύϥϝʔλΛ༰қʹมߋɾ୳ࡧ͠
    .-GMPX ͰશύϥϝʔλΛҰݩ؅ཧ
    ■ ͞Βʹֶͼ͍ͨํʹ͸
    ● ,FESP8PSLGMPXͷύΠϓϥΠϯ؅ཧπʔϧ
    ○ )ZESB.-GMPX 0QUVOB ,FESP
    ○ ΑΓ࠶ݱੑͷ͋Δ࢖͍ճ͠Λҙࣝͨ͠ίʔυʹ
    https://github.com/quantumblacklabs/kedro

    View Slide

  28. /27
    ࢀߟࢿྉ
    28
    ● IUUQTDZCFSBHFOUBJCMPHSFTFBSDI
    ● IUUQTZNZNIBUFOBCMPHDPNFOUSZ

    ● IUUQT[FSFCPNIBUFOBCMPHDPN)ZESB
    ● IUUQTTQFBLFSEFDLDPNDIDLTPLYJBPTBLVTIJNFUFEB
    LJLVZVUFSVNMPQT

    View Slide