{"id":61209,"date":"2021-11-22T15:51:37","date_gmt":"2021-11-22T06:51:37","guid":{"rendered":"https:\/\/smilegate.ai\/?p=61209"},"modified":"2021-12-07T00:04:17","modified_gmt":"2021-12-06T15:04:17","slug":"kubernetes-%ea%b8%b0%eb%b0%98-ml%eb%aa%a8%eb%8d%b8-%ea%b4%80%eb%a6%ac-%eb%b0%8f-%eb%b0%b0%ed%8f%ac-%ed%88%b4-kubeflow","status":"publish","type":"post","link":"https:\/\/smilegate.ai\/cn\/2021\/11\/22\/kubernetes-%ea%b8%b0%eb%b0%98-ml%eb%aa%a8%eb%8d%b8-%ea%b4%80%eb%a6%ac-%eb%b0%8f-%eb%b0%b0%ed%8f%ac-%ed%88%b4-kubeflow\/","title":{"rendered":"Kubernetes \uae30\ubc18 ML\ubaa8\ub378 \uad00\ub9ac \ubc0f \ubc30\ud3ec \ud234 ‘KubeFlow’"},"content":{"rendered":"

[\u670d\u52a1\u5f00\u53d1\u7ec4\u6797\u660c\u5927]<\/p>\n\n\n\n

ML(Machine Learning) \uc740 \ucd5c\uadfc \uba87 \ub144 \ub3d9\uc548 \uc810\uc810 \ub354 \ub9ce\uc740 \uad00\uc2ec\uc744 \ubc1b\uc544 \uc774\uc81c \uc8fc\ub958\ub85c \ubd80\uc0c1\ud55c IT \uc8fc\uc81c \uc911 \ud558\ub098 \uc785\ub2c8\ub2e4.
ML \ubaa8\ub378 \ud559\uc2b5\uc740 API\uc640 tool \uc774 \ub108\ubb34 \ubc1c\uc804\ub418\uc5b4 \ub354 \uc774\uc0c1 \uc219\ub828\ub41c \ub370\uc774\ud130 \uacfc\ud559\uc790\uac00 \uc544\ub2c8\uc5b4\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7fc\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 ML \ubaa8\ub378\uc744 \uc774\uc6a9\ud55c \uc11c\ube44\uc2a4 \uac1c\ubc1c\uc740 \ub370\uc774\ud130 \uc218\uc9d1 \ubc0f \uac80\uc99d, ML \ubaa8\ub378 \ud559\uc2b5\uacfc \ubc30\ud3ec\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub85c\uc138\uc2a4\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 ML \ubaa8\ub378 \uc11c\ube44\uc2a4 \uad6c\ucd95\uc5d0 \uc774\uc5b4 \uc6b4\uc601 \ub610\ud55c \u200b\uc911\uc694\ud55c \uacfc\uc81c\uc785\ub2c8\ub2e4. \uc644\uc131\ub41c \ubaa8\ub378\uc740 \ucd5c\uc885\uc801\uc73c\ub85c \ub300\uc0c1 \ud658\uacbd\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5b4\uc57c \ud558\uba70 \uc801\uc808\ud55c \ubaa8\ub2c8\ud130\ub9c1 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc791\ub3d9\uc744 \ubaa8\ub2c8\ud130\ub9c1 \ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n

Kubeflow \ub294 data science tool \ub4e4\uc744 \ud1b5\ud569\ud558\uc5ec \uc81c\uacf5\ud558\ub294 \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub85c\uc368 \uc8fc\uc694 \uac1c\ub150\uc740 Kubernetes \ud658\uacbd\uc5d0\uc11c ML Workflow \ub97c \uad00\ub9ac\ud558\uace0, \ud559\uc2b5\ud55c ML \ubaa8\ub378\uc744 \ud504\ub85c\ud1a0\ud0c0\uc785\uc5d0\uc11c \ubc30\ud3ec\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \ud658\uacbd \uc81c\ud55c \uc5c6\uc774 \ubc30\ud3ec \ubc0f \ud655\uc7a5\ud560 \uc218 \uc788\ub3c4\ub85d \ub3d5\uae30 \uc704\ud574 \uac1c\ubc1c\ub41c Toolkit \uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub370\uc774\ud130 \uacfc\ud559\uc790, \uac1c\ubc1c\uc790, \uae30\uacc4 \ud559\uc2b5 \uc5d4\uc9c0\ub2c8\uc5b4 \ubc0f \uc6b4\uc601\uc790\uc758 \uc0b6\uc744 \ub354 \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc5b4 Kubernetes \ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4\uba74 Kubeflow \ub610\ud55c \uac19\uc774 \uc0ac\uc6a9\ud574 \ubcf4\ub294 \uac83\ub3c4 \uc88b\uc740 \uc120\ud0dd\uc9c0 \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n

\"\"
Kubeflow dashboard page – data science tools are on the sidebar<\/figcaption><\/figure><\/div>\n\n\n\n

Notebooks<\/strong>
Jupyter notebook \uc740 ML \ubaa8\ub378\uc744 \ud504\ub85c\ud1a0\ud0c0\uc774\ud551\ud558\uace0 \ud300 \uac04\uc5d0 \uacf5\uc720\ud558\uae30 \uc704\ud55c \uc5c5\uacc4 \ud45c\uc900\uc774 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. Kubeflow \uc5d0\ub294 \ub300\ud654\ud615 Jupyter notebook\uc744 \ub9cc\ub4e4\uace0 \uad00\ub9ac\ud558\ub294 \uc11c\ube44\uc2a4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc5b4 Jupyter Lab \uc744 \ube60\ub974\uac8c \ubc30\ud3ec\ud558\uace0 ML \ubaa8\ub378 \uc0dd\uc131\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
\uac1c\ubc1c \ud658\uacbd \uc694\uad6c \uc0ac\ud56d\uc5d0 \ub9de\uac8c Jupyter notebook \ubc30\ud3ec \ubc0f \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c \uc0ac\uc6a9\uc790\uac00 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 Workflow \ub97c local \uc5d0\uc11c \uc2e4\ud5d8\ud55c \ub2e4\uc74c \uc900\ube44\uac00 \ub418\uba74 cloud \uc5d0 \ubc30\ud3ec\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

Model training<\/strong>
Kubeflow \ub294 ML \ubaa8\ub378 \ud559\uc2b5\uc744 \uc704\ud55c \uc5ec\ub7ec \ubc29\ubc95\ub4e4\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Jupyter Notebook, Google Cloud AI Platform \uacfc \uac19\uc740 \uad00\ub9ac\ud615 \uc11c\ube44\uc2a4, TensorFlow Training(TFJob)\uc744 \uc0ac\uc6a9\ud55c \ub9de\ucda4\ud615 \ubd84\uc0b0 \ud559\uc2b5\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 Tensorflow \ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4\uba74 TensorBoard \ub610\ub294 TensorFlow Model Analysis(TFMA)\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ub378\uc744 \uc27d\uac8c \ubd84\uc11d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

Fairing<\/strong>
Kubeflow Fairing\uc740 hybrid cloud \ud658\uacbd\uc5d0\uc11c ML \ubaa8\ub378\uc744 \uad6c\ucd95, \ud559\uc2b5 \ubc0f \ubc30\ud3ec\ud558\ub294 \ud504\ub85c\uc138\uc2a4\ub97c \uac04\uc18c\ud654\ud574\uc8fc\ub294 Python \ud328\ud0a4\uc9c0\uc785\ub2c8\ub2e4. Kubeflow Fairing \uc744 \uc0ac\uc6a9\ud558\uc5ec \uba87 \uc904\uc758 \ucf54\ub4dc\ub97c \ucd94\uac00\ud558\uba74 local \ub610\ub294 cloud \ud658\uacbd\uc5d0\uc11c ML \ubaa8\ub378 \ud559\uc2b5 \uc791\uc5c5\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uace0, ML \ubaa8\ub378 \ud559\uc2b5 \uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uba74 Kubeflow Fairing\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud559\uc2b5\ub41c \ubaa8\ub378\uc744 Kubeflow \ub610\ub294 AI Platform \uc5d0 \ubc30\ud3ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

Hyperparameter tuning<\/strong>
Katib\ub294 Hyperparameter tuning, Early stopping, Neural Architecture Search \uc744 \ud1b5\ud574 \uc790\ub3d9\ud654\ub41c ML \ud559\uc2b5(Auto ML)\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774 \uac19\uc740 \ud0d0\uc0c9 \uc54c\uace0\ub9ac\uc998\uc744 \ud1b5\ud574 Katib\ub294 \ucd5c\uc801\uc758 \ud558\uc774\ud37c \ud30c\ub77c\ubbf8\ud130 \uac12\uc744 \ud0d0\uc0c9\ud558\uc5ec, \ubaa8\ub378\uc758 \uc608\uce21 \uc815\ud655\ub3c4\ub97c \ucd5c\ub300\ud654\ud558\uace0 \ucd5c\uc801\uc758 \uc2e0\uacbd\ub9dd \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\uc131\ud574\uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n

Pipelines<\/strong>
Kubeflow Pipelines \ub294 \uc885\ub2e8 \uac04 ML Workflow \ub97c \ubc30\ud3ec\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud55c \ud3ec\uad04\uc801\uc778 \uc194\ub8e8\uc158\uc785\ub2c8\ub2e4. Pipeline \uc758 \ubaa8\ub4e0 \ub2e8\uacc4\ub294 Docker container \ub2e8\uc704\ub85c \uad6c\uc131 \ub418\uba70 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0 \ubc30\ud3ec\ud560 \uc218 \uc788\uc5b4 \ube60\ub974\uace0 \uc548\uc815\uc801\uc778 \uc2e4\ud5d8\uc744 \ud1b5\ud574 \ud504\ub85c\ud1a0\ud0c0\uc785\uc5d0\uc11c \ubc30\ud3ec\uc5d0 \uc774\ub974\ub294 \uc804\uccb4 Workflow \ub97c \ub2e8\ucd95\ud558\uace0 Workflow \uc2e4\ud589\uc744 \uc608\uc57d \ubc0f \ube44\uad50\ud558\uc5ec \uac01 \uc2e4\ud589\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uac80\ud1a0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

\u5b9e\u9a8c<\/strong>
Kubeflow Pipeline \uc758 \ub2e4\uc591\ud558\uac8c \uc2e4\ud589\ud558\uace0 \ube44\uad50\ud560 \uc218 \uc788\ub294 \uc26c\uc6b4 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc989, ML \ubaa8\ub378 \ud559\uc2b5 \ubcc4\ub85c Pipeline \uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \ub2e4\ub978 \ub9e4\uac1c\ubcc0\uc218 \uac12\uc73c\ub85c \uc5ec\ub7ec \ubc88 \uc2e4\ud589\ud558\uba74 \ube44\uad50\ub418\ub294 \ubaa8\ub4e0 \uc2e4\ud589\uc5d0 \ub300\ud574 \uc815\ud655\ub3c4\uc640 ROC AUC \uc810\uc218\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

Model serving <\/strong>
Kubeflow \ub294 \ud559\uc2b5\ub41c TensorFlow \ubaa8\ub378\uc744 Kubernetes \ub85c \ub0b4\ubcf4\ub0b4\ub294 TensorFlow Serving \uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. Kubeflow \ub294 \ub610\ud55c Kubernetes \uc5d0 ML \ubaa8\ub378\uc744 \ubc30\ud3ec\ud558\uae30 \uc704\ud55c \uc624\ud508 \uc18c\uc2a4 \ud50c\ub7ab\ud3fc\uc778 Seldon Core, ML \ubaa8\ub378\uc744 \ub300\uaddc\ubaa8\ub85c \ubc30\ud3ec\ud560 \ub54c GPU \ud65c\uc6a9\uc744 \uadf9\ub300\ud654\ud558\uae30 \uc704\ud55c NVIDIA Triton Inference Server, \uc2e4\uc2dc\uac04 ML \ubaa8\ub378 \ubc0f pipeline \ubaa8\ub2c8\ud130\ub9c1\uc744 \uc704\ud55c MLRun Serving \ub4f1\uc744 \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

\uc774\uc678\uc5d0\ub3c4 Kubeflow \ub294 CPU \ub610\ub294 GPU\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub2e4\uc591\ud55c \ud074\ub7ec\uc2a4\ud130 \ud06c\uae30\uc5d0 \ub9de\uac8c \ud559\uc2b5\uc744 \uc218\ud589\ud558\uace0 Kubernetes \ub9de\ucda4\ud615 \ub9ac\uc18c\uc2a4\ub97c \uc81c\uacf5\ud574 \ubcf5\uc7a1\ud55c \ubd84\uc0b0 \ud559\uc2b5\uc744 \uac04\uc18c\ud654\ud558\uba70 Tensorflow \uc678\uc5d0\ub3c4 Pytorch, MXNet \ub4f1 multi-framework\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n

Kubeflow \ub294 Google, Cisco, IBM, Redhat \ub4f1\uc774 \uacf5\ub3d9\uc73c\ub85c \uac1c\ubc1c \uc911\uc774\uba70 Amazon, Dell, Intel, Uber, Github, Bank of America \ub4f1 30\uc5ec \uac1c \uae30\uc5c5\uc5d0\uc11c \ud65c\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n

\u53c2\u8003
https:\/\/www.kubeflow.org\/
<\/a>
https:\/\/medium.com\/@michal.brys\/kubeflow-a-machine-learning-toolkit-for-kubernetes-d8686f6c91b6<\/a>
https:\/\/proceedings.neurips.cc\/paper\/2015\/file\/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf<\/a><\/p>\n

<\/span><\/div>","protected":false},"excerpt":{"rendered":"

[\uc11c\ube44\uc2a4\uac1c\ubc1c\ud300 \uc784\ucc3d\ub300] ML(Machine Learning) \uc740 \ucd5c\uadfc \uba87 \ub144 \ub3d9\uc548 \uc810\uc810 \ub354 \ub9ce\uc740 \uad00\uc2ec\uc744 \ubc1b\uc544 \uc774\uc81c \uc8fc\ub958\ub85c \ubd80\uc0c1\ud55c IT \uc8fc\uc81c \uc911 \ud558\ub098 \uc785\ub2c8\ub2e4.ML \ubaa8\ub378 \ud559\uc2b5\uc740 API\uc640 tool \uc774 \ub108\ubb34 \ubc1c\uc804\ub418\uc5b4 \ub354 \uc774\uc0c1 \uc219\ub828\ub41c \ub370\uc774\ud130 \uacfc\ud559\uc790\uac00 \uc544\ub2c8\uc5b4\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7fc\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 ML \ubaa8\ub378\uc744 \uc774\uc6a9\ud55c \uc11c\ube44\uc2a4 \uac1c\ubc1c\uc740 \ub370\uc774\ud130 \uc218\uc9d1 \ubc0f \uac80\uc99d, ML \ubaa8\ub378 \ud559\uc2b5\uacfc \ubc30\ud3ec\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub85c\uc138\uc2a4\ub85c…<\/p>\n

<\/span><\/div>","protected":false},"author":1,"featured_media":61217,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[19],"tags":[509,539],"class_list":["post-61209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech04","tag-automl","tag-mlops","category-19","description-off"],"_links":{"self":[{"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/posts\/61209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/comments?post=61209"}],"version-history":[{"count":7,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/posts\/61209\/revisions"}],"predecessor-version":[{"id":61297,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/posts\/61209\/revisions\/61297"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/media\/61217"}],"wp:attachment":[{"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/media?parent=61209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/categories?post=61209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smilegate.ai\/cn\/wp-json\/wp\/v2\/tags?post=61209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}