{"id":62850,"date":"2022-11-08T11:23:40","date_gmt":"2022-11-08T02:23:40","guid":{"rendered":"https:\/\/smilegate.ai\/?p=62850"},"modified":"2022-11-08T11:23:42","modified_gmt":"2022-11-08T02:23:42","slug":"ml-%eb%aa%a8%eb%8d%b8-lifecycle-%ea%b4%80%eb%a6%ac-mlflow","status":"publish","type":"post","link":"https:\/\/smilegate.ai\/cn\/2022\/11\/08\/ml-%eb%aa%a8%eb%8d%b8-lifecycle-%ea%b4%80%eb%a6%ac-mlflow\/","title":{"rendered":"ML \ubaa8\ub378 Lifecycle \uad00\ub9ac – MLflow"},"content":{"rendered":"

[\ubd84\uc11d\uc9c0\ub2a5\uac1c\ubc1c\ud300 \ubc15\ud6a8\uc8fc]<\/p>\n\n\n\n

ML \ubaa8\ub378\uc758 Lifecycle\uc740 \uc5f0\uad6c \ubc0f \ud14c\uc2a4\ud2b8\ub97c \uc9c4\ud589\ud558\ub294 Research \ub2e8\uacc4<\/strong>\uc640 \uc2e4\uc81c \uc11c\ube44\uc2a4\ud654\ud558\ub294 Production \ub2e8\uacc4<\/strong>\ub85c \ub098\ub20c \uc218 \uc788\uc2b5\ub2c8\ub2e4. Research \ub2e8\uacc4\uc5d0\uc11c\ub294 \ubb38\uc81c \uc815\uc758\ubd80\ud130 \ubaa8\ub378 \uc120\uc815, \uc131\ub2a5\uc744 \ub192\uc774\uae30 \uc704\ud55c \ub2e4\uc591\ud55c \uc2e4\ud5d8 \ub4f1\uc744 \uc9c4\ud589\ud558\uac8c \ub429\ub2c8\ub2e4. \uc774\ub54c\ub294 \ub2f9\uc7a5\uc758 \uc11c\ube44\uc2a4\ud654\ub294 \uace0\ub824\ud558\uc9c0 \uc54a\uace0 \ubaa8\ub378 \uc131\ub2a5\uc744 \ucd5c\ub300\ud55c \ub192\uc77c \uc218 \uc788\ub294 \ubc29\ubc95\ub9cc\uc744 \uace0\ubbfc\ud569\ub2c8\ub2e4. Production \ub2e8\uacc4\uc5d0\uc11c\ub294 \uac00\uc7a5 \ub192\uc740 \uc131\ub2a5\uc758 \ubaa8\ub378\uc774 \ud559\uc2b5\ub41c \ud658\uacbd\uc744 \uad00\ub9ac\ud558\uace0 Versioning\ud574\uc11c \ubc30\ud3ec \ud658\uacbd\uc5d0 \uadf8\ub300\ub85c \uc801\uc6a9\ub420 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc774\ub54c\ub294 \ubaa8\ub378\uc744 \ucd5c\ub300\ud55c \ube60\ub974\uace0 \uc548\uc815\uc801\uc73c\ub85c \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\ub9cc\uc744 \uace0\ubbfc\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n

\ub450 \ub2e8\uacc4\ub294 \uc11c\ub85c \ubaa9\ud45c\uac00 \ub2e4\ub974\uae30 \ub54c\ubb38\uc5d0 \uac01\uc790\uc758 \uc5ed\ud560\ub3c4 \ub2e4\ub985\ub2c8\ub2e4. Research \ub2e8\uacc4\ub294 ML Researcher(\ud639\uc740 Data Scientist)\uac00, Production \ub2e8\uacc4\ub294 ML Engineer\uac00 \uc9c4\ud589\ud558\uac8c \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c ML Researcher\uac00 ML Engineer\uc5d0\uac8c \ubaa8\ub378\uc744 \uc804\ub2ec\ud558\ub294 \uacfc\uc815<\/strong>\uc774 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uc774\ub8e8\uc5b4\uc9c0\ub294 \uac83\uc774 \ubb3c \ud750\ub974\ub4ef \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \ubaa8\ub378 Lifecycle \uad00\ub9ac\uc758 \ud575\uc2ec\uc785\ub2c8\ub2e4. \uc9c0\uae08\uae4c\uc9c0 \uc124\uba85\ud55c \uc774 Lifecycle\uc744 MLflow\ub97c \uc774\uc6a9\ud574 \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

<\/div>\n\n\n\n

MLflow\ub294 ML \ubaa8\ub378\uc758 Lifecycle\uc744 \uad00\ub9ac\ud558\ub294 \ud50c\ub7ab\ud3fc\uc785\ub2c8\ub2e4. \ub0b4\ubd80\uc5d0\ub294 Tracking<\/strong>, Projects<\/strong>, Models<\/strong>, Model Registry<\/strong> 4\uac00\uc9c0 \ucef4\ud3ec\ub10c\ud2b8\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

<\/div>\n\n\n\n

Tracking<\/strong><\/p>\n\n\n\n

Tracking\uc740 ML Researcher\uac00 \uc9c4\ud589\ud55c \ub2e4\uc591\ud55c \uc2e4\ud5d8\uc758 parameters, metrics, artifacts \ub4f1\uc744 \ub85c\uae45\ud558\uae30 \uc704\ud55c API \ubc0f UI\uc785\ub2c8\ub2e4. ML Researcher\ub294 \uae30\uc874 \uc2e4\ud5d8 \ucf54\ub4dc\uc5d0 \ub2e8 2\uc904(run, log_model)\ub9cc \ucd94\uac00\ud574\ub3c4 \uc704\uc5d0\uc11c \uc5b8\uae09\ud55c \uc815\ubcf4\ub4e4\uc744 \uc804\ubd80 \ub85c\uae45\ud560 \uc218 \uc788\uc73c\uba70, \ucf54\ub4dc\ub97c \ucd94\uac00\ud574\uc11c \ucee4\uc2a4\ud140\ud55c \ub85c\uae45\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n

\n
\"\"
< MLflow logging example ><\/strong><\/figcaption><\/figure><\/div>\n\n\n

Tracking\uc740 \ub85c\uceec \ud658\uacbd\uc5d0\uc11c \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\ubd80\ud130 \uc11c\ubc84\uc640 DB\ub97c \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uae4c\uc9c0 6\uac00\uc9c0 \uc2dc\ub098\ub9ac\uc624\ub85c \ub098\ub20c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uacf5\uc2dd \ubb38\uc11c\uc758 \u201cHow Runs and Artifacts are Recorded\u201d \ubd80\ubd84(https:\/\/www.mlflow.org\/docs\/latest\/tracking.html#how-runs-and-artifacts-are-recorded)\uc744 \ucc38\uace0\ubc14\ub77c\uba70, ML Researcher\uc640 ML Engineer \uac04\uc758 \uc6d0\ud65c\ud55c \ud611\uc5c5\uc744 \uc704\ud574\uc11c\ub294 \ucd5c\uc18c \uacf5\uc2dd \ubb38\uc11c\uc5d0 \uc788\ub294 \uc2dc\ub098\ub9ac\uc6244 \uc774\uc0c1\uc758 \uc544\ud0a4\ud14d\ucc98 \uad6c\uc131\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n

<\/div>\n\n\n\n

Projects<\/strong><\/p>\n\n\n\n

Projects\ub294 \ucf54\ub4dc\ub97c \uc7ac\uc0ac\uc6a9 \ubc0f \uc7ac\ud604 \uac00\ub2a5\ud55c \ubc29\uc2dd\uc73c\ub85c \ud328\ud0a4\uc9d5\ud558\uae30 \uc704\ud55c \ud3ec\ub9f7\uc785\ub2c8\ub2e4. Dockerfile\uacfc \uc720\uc0ac\ud55c \ud615\ud0dc\uc758 MLproject \ud30c\uc77c\uc5d0 python \ubc84\uc804, \ud328\ud0a4\uc9c0, \ub3c4\ucee4 \ucee8\ud14c\uc774\ub108 \ub4f1\uc758 \uc815\ubcf4\ub97c \uc785\ub825\ud558\uace0 \uc2e4\ud589\ud560 \ucee4\ub9e8\ub4dc\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4. \uc774\ub54c parameters \uc815\ubcf4\ub97c \uc678\ubd80\uc5d0\uc11c \uc785\ub825 \uac00\ub2a5\ud558\ub3c4\ub85d \uc124\uc815\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4. Python \ud328\ud0a4\uc9c0\ub294 \uae30\ubcf8\uc801\uc73c\ub85c conda\uac00 \uc801\uc6a9\ub418\uc9c0\ub9cc pip\ub3c4 \uc0ac\uc6a9 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc774 MLproject\ub97c \uc774\uc6a9\ud574\uc11c \ud558\ub098\uc758 project \ub2e8\uc704\ub85c \uad00\ub9ac\uac00 \uac00\ub2a5\ud574\uc9d1\ub2c8\ub2e4.<\/p>\n\n\n

\n
\"\"
< MLproject example ><\/strong><\/figcaption><\/figure><\/div>\n\n\n
<\/div>\n\n\n\n

Models<\/strong><\/p>\n\n\n\n

Models\ub294 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\ub85c \ud559\uc2b5\ud55c \ubaa8\ub378\uc744 \ud328\ud0a4\uc9d5\ud558\uae30 \uc704\ud55c \ud45c\uc900 \ud3ec\ub9f7\uc785\ub2c8\ub2e4. ML Researcher \ub9c8\ub2e4 \uc120\ud638\ud558\ub294\ud504\ub808\uc784\uc6cc\ud06c\uac00 \ub2e4\ub97c \uc218 \uc788\ub294\ub370, \ud45c\uc900 \ud3ec\ub9f7\uc73c\ub85c \ud328\ud0a4\uc9d5\ud568\uc73c\ub85c\uc368 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\ub85c \ud559\uc2b5\ub41c \ubaa8\ub378\uc744 \ub3d9\uc77c\ud55c MLflow \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud574\uc11c \ubc30\ud3ec\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4.<\/p>\n\n\n

\n
\"\"
< MLflow Models (\ucd9c\ucc98: Dataiku Blog) ><\/strong><\/figcaption><\/figure><\/div>\n\n\n
<\/div>\n\n\n\n

Model Registry<\/strong><\/p>\n\n\n\n

Model Registry\ub294 \ubaa8\ub378\uc758 Lifecycle \uad00\ub9ac\ub97c \uc704\ud55c \uc911\uc559 \uc9d1\uc911\uc2dd \ubaa8\ub378 \uc800\uc7a5\uc18c\uc785\ub2c8\ub2e4. \uc55e\uc11c \uc2e4\ud5d8\uc744 \ud1b5\ud574 \ud559\uc2b5\ub41c \ubaa8\ub378\uc744 \ub4f1\ub85d\ud558\uace0 \uac01 \ubaa8\ub378\uc758 \ubc84\uc804\uacfc Stage(Production, Staging, Archived) \uc815\ubcf4 \ub4f1\uc744 \uad00\ub9ac\ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ubaa8\ub378 \uc11c\ube59 \ud504\ub808\uc784\uc6cc\ud06c\uc5d0\uc11c\ub294 Production \ubaa8\ub378\ub9cc \ubc14\ub77c\ubcfc \uc218 \uc788\uac8c \ub418\uace0, Staging\uc744 \ud1b5\ud574 \ubaa8\ub378\uc744 \ubc30\ud3ec\ud558\uae30 \uc804\uc5d0 A\/B \ud14c\uc2a4\ud2b8\ub97c \uac70\uccd0 Production \ubaa8\ub378\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. \uc774 \uacfc\uc815\uc774 ML Researcher\uac00 \uc2e4\ud5d8 \uacb0\uacfc \ubaa8\ub378\uc744 Staging\uc73c\ub85c \uc62c\ub9ac\uba74 ML Engineer\uac00 A\/B \ud14c\uc2a4\ud2b8\ub97c \uac70\uccd0 Production\uc73c\ub85c \ubc30\ud3ec\ud558\ub294 \uacfc\uc815\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n

\n
\"\"
< ML Researcher\uc640 Engineer\uc758 \uc5ed\ud560 \ucc28\uc774 (\ucd9c\ucc98: Databricks Blog) ><\/strong><\/figcaption><\/figure><\/div>\n\n\n
<\/div>\n\n\n\n

ML \ubaa8\ub378\uc758 Lifecycle\uc744 \uc6d0\ud65c\ud558\uac8c \uc6b4\uc601\ud558\uae30 \uc704\ud574\uc11c\ub294 ML Researcher\uc640 ML Engineer\uc758 \uc6d0\ud65c\ud55c \ud611\uc5c5\uc774 \ud544\uc218\uc785\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 MLflow\uc640 \uac19\uc740 ML Lifecycle \uad00\ub9ac \ud50c\ub7ab\ud3fc\uc744 \uc801\uadf9 \ud65c\uc6a9\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

<\/div>\n\n\n\n

\u53c2\u8003<\/strong><\/p>\n\n\n\n