mlops-for-all.github.io's People
Forkers
jsshinn qqq-tech mrsyee anencore94 kairos03 watanka taepd ryankor eeeclipse kosehy grepp-pepper breaktime11 hoyajigi bybatkhuu ckdrkt2 k021 jingwanha borishim chromatices haidang10897 as960408 peace0096 kyuber1007 white091612 baiyongzhen kimjongkwang altair4357 theg1 kakikaki7 d2n0s4ur minkj1992 wody34 binarybamboo hangj11 jcpark3797 jlcan yblmmenmlops-for-all.github.io's Issues
English Version
Hi Folks, I get interested in the content are you are creating, but I can't read Korean ๐
Is there some way I could help translate it to English? Probably google translate it's not a good solution, I tried using it and some text got strange
Seldon - Prometheus, Grafana ์ฐ๋
MLflow ์๋ฒ ๋์ฐ๊ธฐ & ํด๋น ๋ถ๋ถ ์์
MLOps ํ ์ด๋ธ์์ ๋ค๋ฃฌ ๋ถ๋ถ ํ์ํ๊ธฐ
install-components-kf ์ถ๋ ฅ ๋ฉ์์ง ๋ณ๊ฒฝ
https://mlops-for-all.github.io/docs/setup-components/install-components-kf/#cert-manager
ํ์ฌ issuer ์ค์น์ ๋ณด์ด๋ ์ถ๋ ฅ ๋ฉ์์ง๋ cert-manager ๋ฅผ ์ค์นํฉ๋๋ค. ๋จ๊ณ์ ์ถ๋ ฅ ๋ฉ์์ง์ด๋ฉฐ,
๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋์ด์ผ ํจ
clusterissuer.cert-manager.io/kubeflow-self-signing-issuer created
Python ๊ฐ์ํ๊ฒฝ ์ค์น ๊ฐ์ด๋
[Enh] `API Deployment` ์ดํ Mlops ์ค์ต ์์ ์ถ๊ฐ ๊ด๋ จ ๋ฌธ์
์๋ ํ์ธ์.
์ต๊ทผ ์ ํ๋ธ์ ํ์ด์ค๋ถ ์ปค๋ฎค๋ํฐ ๋ฑ์ ์ค์ฌ์ผ๋ก MLops ๊ด๋ จ ๊ธ์ด ๊พธ์คํ ์ฆ๊ฐํ๋ฉฐ ์ฌ๋ผ์ค๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋ชจ๋์ MLops ๋ฌธ์
์์๋ ํ์ฌ ์ค์ต ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ ๊ฐ๋จํ ํ์ฉ ์ ๋๋ฅผ ํ ์ ์๊ฒ๋ ๋ฌธ์๋ฅผ ์ ๊ณตํ๊ณ ์๋๋ฐ์.
์ถ๊ฐ๋ก MLops ์ค์ต์ ํด ๋ณผ ์ ์๋ ์ฌ๋ฌ ์ค์ ์ฌ๋ก ๋ฑ์ ์ถ๊ฐ๋ณด๋ฉด ์ด๋จ์ง ๋ฌธ์๋๋ฆฝ๋๋ค.
๋ชจ๋์ mlops ๋ฌธ์๋ฅผ ๋ณด๋ค ๋ณด๋ ๋จธ์ ๋ฌ๋ ํ์ดํ๋ผ์ธ์ ๋ค์ํ๊ฒ ์ค๊ณํ๋ ๊ด์ ์์์ ์ฝ๋๊ฐ ๋ ์ถ๊ฐ๋๋ฉด mlops ์ปค๋ฆฌ์ด๋ฅผ ์ค๋นํ๋ ๋ถ๋ค์๊ฒ ๋ ๋ง์ ๋์์ด ๋์ง ์์๊น ์ถ์ด ์ถ๊ฐ๋ก ์ด์๋ฅผ ๋จ๊น๋๋ค.
๋ํ์ ์ผ๋ก MS Azure์์๋ ์ด๋ ๊ฒ MLops ๊ด๋ จ ์๋ฃ๋ฅผ ๊ณต๊ฐํ๊ณ ์๋๋ฐ, ๊ธฐ์ ๋ณ ์ฌ๋ก ์ค ์ฌ์ด ๊ฒ๋ค์ ํ๋์ฉ ์ถ๊ฐํด ๋๊ฐ๋ฉด ์ด๋จ๊น ์ถ์ต๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ค์ต ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉด์ ํ ์ด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ์์ง ์์ ๊ฐ ๋ง์ด ํ๋ถํ ์ชฝ์ ์๋ ๊ฒ ๊ฐ์์, ์ด๋ ๊ฒ ๊ธ์ ๋จ๊น๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
ghcr ๋์ปค ์ ๋ก๋ ๋ถ๋ถ ์ถ๊ฐ
์์ด ๋ฒ์
v1.0์ ์์ด๋ฒ์ ๋ฐฐํฌ
์ถ๊ฐ์ ์ธ ์คํ ์์ค์ ๋ํ ์ ๋ณด ์ถ๊ฐ ๋ฌธ์
์ฌ๊ธฐ์ ๋ณด์๋ฉด ์ถ๊ฐ์ ์ผ๋ก ๋ณด๋ฉด ์ข์ ์คํ์์ค๋ฅผ ์ ๋ฆฌํด์ ๊ทธ๋ฆผ์ผ๋ก ์ฌ๋ ค์ฃผ์
จ๋๋ฐ
์คํ์์ค์ ์์ด์ฝ์ ๋ณด๊ณ ์ด๋ค ํค์๋๋ก ๊ฒ์์ ํด์ผํ ์ง ์์ง ๋ชปํด์ ํ
์คํธ๋ก ์คํ์์ค ์ด๋ฆ์ ์ ์ด์ฃผ์ ๋ค๋ฉด ์์ฒญ ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค!
์ด๋์๋ค๊ฐ ์ ๋ฌํ ๊น ํ๋ค๊ฐ ์ด์๋ก ๋จ๊น๋๋ค ใ
README link ๊นจ์ง
์๋ ํ์ธ์,
๋ง์ด๋ํ ์ด์์ด๊ธด ํ์ง๋ง
README ํ์ผ์
How to Contribute ๋งํฌ๊ฐ ๊นจ์ก์ต๋๋ค.
๊ธฐ์กด How to Contribute ์์
ํ์ฌ How to Contribute ์ผ๋ก
๋ณ๊ฒฝํ ํ์๊ฐ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์์ง์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ปจํธ๋ฆฌ๋ทฐ์ ์ test ์คํจํ๋ ๋ฌธ์
์ด์ ํ ํ๋ฆฟ ์ถ๊ฐ
๋ฒ๊ทธ ๋ฆฌํฌํธ, ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฑ์ ์นดํ
๊ณ ๋ฆฌ์ ๋ฐ๋ฅธ ์์ ํ
ํ๋ฆฟ ์ถ๊ฐ
Discussion ๊ณผ์ ํํธํ๋ฅผ ๋ง๊ธฐ ์ํ ์ฌ์ฉ ๋ฐฉ์ ๋
ผ์
[Question] 12. Component - MLFlow `Run` ํํธ ์ฝ๋ ์๋ฌ ๋ฌธ์
1. ์๋ฌ ์ฌํ
12. Component - MLFlow
์ Run ํํธ ์ฝ๋๋ฅผ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํ, ์คํํ์ฌ yaml ํ์ผ์ ์์ฑํ์ต๋๋ค.
์ดํ ์์ฑ๋ yaml ํ์ผ์ kubeflow pipeline์ ์ฌ๋ ค ์คํํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์๋ฌ ํ๋ฉด์ ๋ง์ฃผํ๊ฒ ๋์์ต๋๋ค.
ValueError: '' is not in list
13๋ฒ ๋ด์ฉ์ด ๋๋ฒ๊น ์ด๋ผ, ์ดํ ๋ด์ฉ์ ๋ณด๋ฉด์ ๋ฐ์ดํฐ๊ฐ ๋น์ด์๋ ๊ฒ ๊ฐ์ kubeflow์ ์ฌ๋ผ์ ์๋ tgz ํ์ผ์ csv๋ก ๋ณํํด ์ฃผํผํฐ ๋ ธํธ๋ถ์์ ํ์ธํด๋ดค์ผ๋, ๋ฐ์ดํฐ๊ฐ ๋น์ด์๋ ์ํฉ์ ์๋ ๊ฒ ๊ฐ์์ต๋๋ค.
์ ํฉ์ SVM ํ๋ จ์ ์ํ ๋ฐ์ดํฐ๋ ์กด์ฌํ๋ ๊ฒ ๊ฐ์๋ฐ, ํด๋น ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๋ถ๋ถ์ ํน์ ํ ์๊ฐ ์์ด (svm fit ๋ถ๋ถ์ด๋ผ ๋ชจ๋ธ ํ๋ จ์ด ์งํ๋๋ ์์น๋ผ ์ง์๋๋, ๋ก์ปฌ ์ปดํจํฐ์์ kfp ์ค์น ํ from kfp.components import InputPath, OutputPath, create_component_from_func
๊ฐ ์คํ๋์ง ์์ ์ ๋
๋๋ฒ๊น
์ด ์ด๋ ค์์ง ๊ฒ ๊ฐ์ต๋๋ค.) issue๋ฅผ ๋จ๊น๋๋ค.
ํด๋น ์๋ฌ๋ฅผ ํด๊ฒฐ ํ, 12. Component - MLFlow
์ Run ํํธ๊ฐ ์์ ๋์ด์ผ ํ๋ค๋ฉด, python ์ฝ๋์ ํจ๊ฒ ์์ฑ๋ yaml ๋ด์ฉ์ด ํจ๊ป PR๋๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
mlflow endpoint ๋ง์ถ๊ธฐ
๋ฆด๋ฆฌ์ฆ ์ ๊ฒํ
- ๋งํฌ ๊นจ์ง ๊ฒ ์๋์ง ํ์ธ
- ๋ง์ถค๋ฒ ์ ์ฒด ์น ๊ฐ๊ธฐ
seldon-core-analytics chart (Grafana and prometheus) not working with k8s v.1.22+
Hello!
According to SeldonIO/seldon-core#4513, seldon-core analytics was deprecated for new versions of kubernetes.
I've tested out your documentation regarding the installation of the two monitoring components
as described here,
https://mlops-for-all.github.io/en/docs/setup-components/install-components-pg,
on k3s version Server Version: v1.27.5+k3s1, and I got the same errors as described in SeldonIO/seldon-core#4513, meaning
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: [resource mapping not found for name: "seldon-core-analytics-grafana" namespace: "seldon-system" from "": no matches for kind "PodSecurityPolicy" in version "policy/v1beta1"
I've added also a new issue on the seldon about the Grafana support for new versions of k8s:
Do you have any updates on the above issues?
Thanks,
Florin
[Question] ๋ก์ปฌ์์ ๋ชจ๋์ MLops ํ๊ฒฝ ๊ตฌ์ฑ์, Docker ๋น๋ ํ, ์ฟ ๋ฒ๋คํฐ์ค ์ค์ตํ๊ธฐ
์๋ ํ์ธ์.
๋ชจ๋์ mlops ๋ฌธ์๋ฅผ ์ฒซ ์ค์ต์ ๋น ๋ฅด๊ฒ ์ํํ๊ณ , ์ด์ 2๋ฒ์งธ ๋ด์ฉ์ ์ญ ์ฝ์ด๋ณด๋ฉด์ ๋ด์ฉ์ ๋ค์ ธ๊ฐ๋ ค๋ ๊ตฌ๋ ์์ ๋๋ค.
์ ํฌ๊ฐ ์ง๊ธ ์๋ดํด์ฃผ์ ๋ด์ฉ๋๋ก๋ฉด, Ubuntu OS์์ ๋์ปค๋ฅผ ๊ตฌ์ฑํ๋๋ฐ์.
๋ก์ปฌ์์ ์ฐ๋ถํฌ๋ฅผ ํํฐ์ ํด์ ๊ตฌ์ฑํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๊ณ , virtual box๋ฅผ ์ด์ฉํด ๋์ฐ๋ ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ๊ฑฐ์ ๋๋ถ๋ถ์ด ๋งฅ์ด๋ ์๋์ฐ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ , m1 ๋งฅ๋ถ์์๋ ์์ง virtual box ์ง์์ด ์๋๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ํ๊ฒฝ์ ์ธ ์์๋ค์ ๊ฐ์ํด ์ฌ์ฉ์์ ๋ก์ปฌ ์ปดํจํฐ์์ ๋์ปค๋ฅผ ์ฌ์ฉํด ubuntu ํ๊ฒฝ์ ๊ตฌ์ฑํ๊ณ , ๊ฑฐ๊ธฐ์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ธ์ ์ ๋ฌธ์ ์ด๋ฐ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ด๋จ์ง ํ ๋ฒ ์ ์๋๋ฆฝ๋๋ค.
์ข ์ฐพ์๋ด์ผ๊ฒ ์ง๋ง, ๋์ปค์ OS ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด ๋น๋ํ๊ณ , ๊ทธ ์์์ ๋ค์ ๋์ปค๋ฅผ ์ฌ์ฉํด ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ, ๋ฌธ๋ ๋ ์ค๋ฅธ ์์ด๋์ด๋ผ maintainer ๋ถ๋ค๊ณผ ๋ ผ์ ํ, ํด๋น ํ๊ฒฝ์ ๊ตฌ์ฑํด์ ์ค์ตํด ๋ณด๊ณ ์ถ์ต๋๋ค.
Seldon yaml ํ๋ ์ค๋ช
`Edit this page on GitHub` ๋งํฌ 404 ์๋ฌ
์๋ ํ์ธ์.
๋ชจ๋์ mlops ๋ฌธ์ ํ์ต ์ค์ footer ๋ถ๋ถ์ Edit this page on Github
๋งํฌ ํด๋ฆญ ์, 404 ์๋ฌ๊ฐ ๋ฐ์ํด ์ด์๋ฅผ ๋จ๊น๋๋ค.
1. ํ์ด์ง ๋งํฌ ํด๋ฆญ ํ๋ฉด
2. ๋งํฌ ํด๋ฆญ์ 404 ์๋ฌ ๋ฐ์
ํด๋น ํ์ด์ง์ ๋งํฌ๊ฐ github์์ ์ ๊ฑฐ๋ ๊ฒ ๊ฐ์๋ฐ, ํ ๋ฒ ํ์ธํด์ฃผ์ค ์ ์๋์ง ๋ฌธ์๋๋ฆฌ๊ธฐ ์ํด issue๋ฅผ ๋จ๊น๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
helm chart ์์ ์ฌ์ฉํ๋ ghcr.io/mlops-for-all/mlflow-server ์ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ
ํ๋ก์ ํธ ์ ์ฒด ๋ง์ถค๋ฒ ๊ต์
Could not find CSRF cookie XSRF-TOKEN in the request
์๋
ํ์ธ์!
๊ฐ์์ ํ์ํ kubflow ์ปดํฌ๋ํธ๋ค์ ์ค์นํ๊ณ kubectl port-forward --address [์ฐ๋ถํฌ ์๋ฒ IP] svc/istio-ingressgateway -n istio-system 8080:80 ๋ก ๋์๋ณด๋์ ๋ค์ด์์ ์ฃผํผํฐ๋ฉ์ launchํ๋ฉด ๋ค์๊ณผ ๊ฐ์ alert๊ฐ ๋ฐ์ํ๋ฉด์ ์งํ์ด ๋์ง ์์ต๋๋ค.
[403] Could not find CSRF cookie XSRF-TOKEN in the request. http://[์ฐ๋ถํฌ ์๋ฒ IP]:8080/jupyter/api/namespaces/kubeflow-user-example-com/notebooks
๋ก์ปฌํ๊ฒฝ์์ ์งํํ๋ฉด ๋ฌธ์ ๊ฐ ์์ ๊ฒ ๊ฐ์๋ฐ ์๊ฒฉ์๋ฒ์์ ์ค์ต์ ํ๊ณ ์ถ์ด ๊ผญ ํด๊ฒฐํ๊ณ ์ถ์๋ฐ ๊ตฌ๊ธ๋ง์ ํด๋ด๋ ํด๊ฒฐ์ด ๋์ง ์์ต๋๋ค...
๋์์ ๋ฐ์ ์ ์์๊น์?
ํญ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
API deployment์ชฝ ์บก์ณํ๋ฉด์ ๋ถ๋งํฌ ์๋ผ๋ด๊ธฐ
์ง๋ฌธ, ์ด์, ๊ธฐ์ฌ ํ ํ๋ฆฟ ๋ฐ ๊ฐ์ด๋๋ผ์ธ
2๊ฐ children์ผ๋ก ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
`Kubeflow UI Guide` ํ์ด์ง์ `Central Dashboard` ์ ์ ๊ด๋ จ ์ถ๊ฐ ๋ด์ฉ ํ์ ๋ฌธ์
์๋ ํ์ธ์.
๊พธ์คํ ๋ชจ๋์ mlops
๋ฌธ์๋ฅผ ์ ์ฝ๊ณ ์ค์ต ์ค์ธ ์ฌ๋์
๋๋ค.
์ข์ ์ค์ต ์๋ฃ๋ฅผ ์ ๊ณตํด์ฃผ์ ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ค์ต ๊ด๋ จ ๋ฌธ์ ์ฌํญ์ด ์์ด ์ด์๋ฅผ ๋จ๊ธฐ๊ฒ ๋์์ต๋๋ค.
1. ๋ฌธ์ ์ํฉ ๊ตฌํ ์๋
์์ ์ด๋ฏธ์ง์์์ฒ๋ผ Central Dashboard
์ ์๊ณผ ๊ด๋ จํ ๋ด์ฉ์ด ๋ชจ๋์ mlops
๋ฌธ์์ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ํด๋น ๋ฌธ์ ์์ ์ค๋ช
๋์ด ์๋ Central Dashboard
์ ์์ ํ๊ธฐ ์ํด์๋ kubectl port-forward --address <internal ip> svc/centraldashboard -n kubeflow 8082:80
ํํ๋ก ์ ์ํ๊ฒ๋ ์๋ด๊ฐ ๋์ด ์์๊ณ , ์ด๋ฐ์ ํด๋น ๋ฐฉ๋ฒ์ผ๋ก ์ ์ํ๋, ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์์ต๋๋ค.
2. ๋ฌธ์ ๋ด์ฉ ์ค์ธ์ผ๋ก CentralDashboard์์ ์๋ฌ ๋ฐ์
์ดํ, Kubeflow repo์ ์ฌ๋ผ์จ ๋ฒ๊ทธ ๋ฆฌํฌํธ๋ฅผ ์ฝ์ผ๋ฉด์ istio-ingressgateway
์ค์ ์ ํตํด ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋์ mlops
๋ฌธ์์์ ์๋ดํ๋ ๊ฒ์ด ์๊ฐ์ด ๋ฌ๊ณ , kubectl port-forward --address <internal ip> svc/istio-ingressgateway -n istio-system 8080:80
๋ก ์ ์ํ๋ ์ ์์ ์ผ๋ก jupyter notebook ์์ฑ ํ๋ฉด์ด ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค.
3. ์๋ฌ ์ํฉ ํด๊ฒฐ
๊ทธ๋์ ๋ฌธ์๋ฅผ ์ค์ตํ๋ ๊ณผ์ ์์ ๋ค๋ฅธ ๋ถ๋ค์ด ๋๊ฐ์ ์ํฉ์ ๊ฒช์ ์ ์์ ๊ฒ ๊ฐ์๋ฐ, ํด๋น ๋ถ๋ถ ๋ด์ฉ์ ์กฐ๊ธ ์์ ํด์ kubectl port-forward --address <internal ip> svc/istio-ingressgateway -n istio-system 8080:80
๋ก ์ ๊ทผํด๋ฌ๋ผ๋ ๋ด์ฉ์ ํ ์ค ์ถ๊ฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ์๋ฐ, ํน์ PR์ ๋ณด๋ด๋ ๋๋์ง ๋ฌธ์๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
4. Reference
Kubeflow Component ์ฌ์ฉ๋ฒ
- Notebook
- Volumes w\ Notebook
[Question] Kubeflow -> 11. Pipeline Run Result ํํธ์ Visualization ๊ด๋ จ yaml ํ์ผ ๋ด์ฉ ์ถ๊ฐ ๋ฌธ์ ๋ฐ 8. Component InputPath / OutputPath ์คํ ์ปค๋ฐ ๊ด๋ จ ์์ฒญ
1. Kubeflow -> 11. Pipeline Run Result ํํธ์ Visualization ๊ด๋ จ yaml ํ์ผ ๋ด์ฉ ์ถ๊ฐ ๋ฌธ์
์๋ ํ์ธ์.
์์ ์ด๋ฏธ์ง์ ๋ณด์ด๋ ํ๋ธ ํ๋ก์ฐ์ ์๊ฐํ๋ฅผ ์งํํ ์ ์๋ yaml ํ์ผ ๋ด์ฉ์ ๋ชจ๋์mlops
๋ฌธ์์ ํ์ฌ ์์ด ์ถ๊ฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ์๋ฐ ํด๋น ๋ถ๋ถ ํ๋ก์ ํธ ๊ด๋ฆฌ์๋์ด ํ์ธํด์ฃผ์๋ฉด, ๋น ๋ฅด๊ฒ PR์ ์งํํ๊ณ ์ ํฉ๋๋ค.
ํ๋จ์ plot_pipeline.yaml
์ค์ ๋ด์ฉ์
๋๋ค.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: plot-pipeline-
annotations: {pipelines.kubeflow.org/kfp_sdk_version: 1.8.9, pipelines.kubeflow.org/pipeline_compilation_time: '2
022-01-17T13:31:32.963214',
pipelines.kubeflow.org/pipeline_spec: '{"name": "plot_pipeline"}'}
labels: {pipelines.kubeflow.org/kfp_sdk_version: 1.8.9}
spec:
entrypoint: plot-pipeline
templates:
- name: plot-linear
container:
args: [--mlpipeline-ui-metadata, /tmp/outputs/mlpipeline_ui_metadata/data]
command:
- sh
- -c
- (PIP_DISABLE_PIP_VERSION_CHECK=1 python3 -m pip install --quiet --no-warn-script-location
'matplotlib' || PIP_DISABLE_PIP_VERSION_CHECK=1 python3 -m pip install --quiet
--no-warn-script-location 'matplotlib' --user) && "$0" "$@"
- sh
- -ec
- |
program_path=$(mktemp)
printf "%s" "$0" > "$program_path"
python3 -u "$program_path" "$@"
- |
def _make_parent_dirs_and_return_path(file_path: str):
import os
os.makedirs(os.path.dirname(file_path), exist_ok=True)
return file_path
def plot_linear(mlpipeline_ui_metadata):
import base64
import json
from io import BytesIO
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 2, 3])
tmpfile = BytesIO()
plt.savefig(tmpfile, format="png")
encoded = base64.b64encode(tmpfile.getvalue()).decode("utf-8")
html = f"<img src='data:image/png;base64,{encoded}'>"
metadata = {
"outputs": [
{
"type": "web-app",
"storage": "inline",
"source": html,
},
],
}
with open(mlpipeline_ui_metadata, "w") as html_writer:
json.dump(metadata, html_writer)
import argparse
_parser = argparse.ArgumentParser(prog='Plot linear', description='')
_parser.add_argument("--mlpipeline-ui-metadata", dest="mlpipeline_ui_metadata", type=_make_parent_dirs_and_return_path, required=True, default=argparse.SUPPRESS)
_parsed_args = vars(_parser.parse_args())
_outputs = plot_linear(**_parsed_args)
image: python:3.7
outputs:
artifacts:
- {name: mlpipeline-ui-metadata, path: /tmp/outputs/mlpipeline_ui_metadata/data}
metadata:
labels:
pipelines.kubeflow.org/kfp_sdk_version: 1.8.9
pipelines.kubeflow.org/pipeline-sdk-type: kfp
pipelines.kubeflow.org/enable_caching: "true"
annotations: {pipelines.kubeflow.org/component_spec: '{"implementation": {"container":
{"args": ["--mlpipeline-ui-metadata", {"outputPath": "mlpipeline_ui_metadata"}],
"command": ["sh", "-c", "(PIP_DISABLE_PIP_VERSION_CHECK=1 python3 -m pip
install --quiet --no-warn-script-location ''matplotlib'' || PIP_DISABLE_PIP_VERSION_CHECK=1
python3 -m pip install --quiet --no-warn-script-location ''matplotlib''
--user) && \"$0\" \"$@\"", "sh", "-ec", "program_path=$(mktemp)\nprintf
\"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n",
"def _make_parent_dirs_and_return_path(file_path: str):\n import os\n os.makedirs(os.path.dirname(file_path),
exist_ok=True)\n return file_path\n\ndef plot_linear(mlpipeline_ui_metadata):\n import
base64\n import json\n from io import BytesIO\n\n import matplotlib.pyplot
as plt\n\n plt.plot([1, 2, 3], [1, 2, 3])\n\n tmpfile = BytesIO()\n plt.savefig(tmpfile,
format=\"png\")\n encoded = base64.b64encode(tmpfile.getvalue()).decode(\"utf-8\")\n\n html
= f\"<img src=''data:image/png;base64,{encoded}''>\"\n metadata = {\n \"outputs\":
[\n {\n \"type\": \"web-app\",\n \"storage\":
\"inline\",\n \"source\": html,\n },\n ],\n }\n with
open(mlpipeline_ui_metadata, \"w\") as html_writer:\n json.dump(metadata,
html_writer)\n\nimport argparse\n_parser = argparse.ArgumentParser(prog=''Plot
linear'', description='''')\n_parser.add_argument(\"--mlpipeline-ui-metadata\",
dest=\"mlpipeline_ui_metadata\", type=_make_parent_dirs_and_return_path,
required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs
= plot_linear(**_parsed_args)\n"], "image": "python:3.7"}}, "name": "Plot
linear", "outputs": [{"name": "mlpipeline_ui_metadata", "type": "UI_Metadata"}]}',
pipelines.kubeflow.org/component_ref: '{}'}
- name: plot-pipeline
dag:
tasks:
- {name: plot-linear, template: plot-linear}
arguments:
parameters: []
serviceAccountName: pipeline-runner
2. Kubeflow -> 8. Component InputPath / OutputPath ๋ถ๋ถ ์คํ ์ปค๋ฐ ์งํ ๋ฌธ์
1๋ฒ ๋ด์ฉ ์ถ๊ฐ์ ํจ๊ป ๊ฐ๋จํ ์คํ๋ฅผ ํ๋ธํ๋ก์ฐ ์ฑํฐ 8์์ ๋ฐ๊ฒฌํด ํจ๊ป ์์ PR์ ๋ณด๋ด๊ณ ์ถ์๋ฐ, ํ์ธํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
Levels of MLOps ๋ฌธ์ ์ด์
๋ฌธ์ ๋งํฌ: https://mlops-for-all.github.io/docs/introduction/levels/
์๋
ํ์ธ์, ๋จผ์ MLOps ์
๋ฌธ์๋ฅผ ์ํด ํด๋น ๋ฌธ์๋ฅผ ๋ง๋ค์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
๋ค๋ฆ์ด ์๋๊ณ Levels of MLOps ๋ฌธ์์ชฝ์ ์ฝ๋ค๊ฐ ์ด์ํ์ ์ด ๋ฐ๊ฒฌ๋์ด ๋ฌธ์๋๋ฆฝ๋๋ค.
ํ์ฌ ํด๋น ๋ฌธ์์ Google MLOps level2 ์ํคํ
์ณ ๊ทธ๋ฆผ์ ๋ดค์ ๋
5๋ฒ, ๋ชจ๋ธ ์๋น Prediction server์ CD๊ฐ 2๋จ๊ณ์ ๊ทธ๋ ค์ ธ ์์ต๋๋ค.
ํ์ง๋ง ์ค์ ๊ตฌ๊ธ์ ๊ณต์ ๋ฌธ์๋ฅผ ๋ดค์ ๋ ํด๋น Model Serving์ ๋ํ CD๋ MLOps level 1์์ ์ด๋ค์ง๊ณ ์๊ณ ์ด๊ฐ ํผ๋์ ๋ฐ์์ํฌ ๊ฒ ๊ฐ์ ์ด์๋ฅผ ๋จ๊น๋๋ค.
๊ตฌ๊ธ ๊ณต์ ๋ฌธ์ ์๋ฃ(์๋ณธ)
๋ชจ๋ธ์ ์ง์์ ๋ฐฐํฌ: ํ๋ก๋์ ๋จ๊ณ์ ML ํ์ดํ๋ผ์ธ์ ์ ๋ฐ์ดํฐ๋ก ํ์ต๋ ์ ๋ชจ๋ธ์ ์์ธก ์๋น์ค๋ฅผ ์ง์์ ์ผ๋ก ๋ฐฐํฌํฉ๋๋ค. ํ์ต ๋ฐ ๊ฒ์ฆ๋ ๋ชจ๋ธ์ ์จ๋ผ์ธ ์์ธก์ฉ ์์ธก ์๋น์ค๋ก ์ ๊ณตํ๋ ๋ชจ๋ธ ๋ฐฐํฌ ๋จ๊ณ๊ฐ ์๋ํ๋ฉ๋๋ค.
https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ko#mlops_level_1_ml_pipeline_automation
ํน์ ์ด์ ๋ํด ์ ๊ฐ PR์ ๋ง๋ค์ด ์์ ํด๋ ๊ด์ฐฎ์๊น์?
๊ตฌ๊ธ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ
์ปจํธ๋ฆฌ๋ทฐํฐ ์๊ฐ ํ์ด์ง์์ ์ฑ ์ ๋ชฉ์ฐจ ํ์๋จ
[Question] API Deployment ํํธ `Node_IP` ์ฃผ์ ์ค์ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ค์ ๊ฐ ๋ฌธ์
์๋ ํ์ธ์.
๋ชจ๋์ MLops ์ค์ต์ ์ํ ์ค์ธ ๊ฐ๋ฐ์์ ๋๋ค.
์ด์ ๋ชจ๋์ MLops 1ํ๋ ์ ๊ฑฐ์ ์งํ ์๋ฃํ๊ณ , ๋ฐฐํฌ ๋จ๊ณ์ ์ ํ์ต๋๋ค.
๋ฐฐํฌ ๋จ๊ณ์์ ํ ๊ฐ์ง ๊ถ๊ธํ ์ ์ด ์์ด ๋ฌธ์๋๋ฆฝ๋๋ค.
์์ ๊ฐ์ด ๋ ธ๋ ์ฃผ์ ๊ฐ์ ์ค์ ์ค์ธ๋ฐ์.
ํด๋น ๊ฐ์ ์ฃผ์ ๊ฐ์ ์ค์ ํ ๋, ํด๋ผ์ฐ๋ ํ๊ฒฝ์ด๋ผ๋ฉด ํด๋ผ์ฐ๋์์ ์ ๊ณตํ๊ณ ์๋ internal ip (๋๋ private ip) ๋ก ๋์ฒดํด๋ ๋๋์ง ๊ถ๊ธํฉ๋๋ค.
์๋ง ์ฌํ๊น์ง ๋ชจ๋์ mlops ๋ฌธ์๋ฅผ ์ค์ตํ ๋์ ์ ํฉ์ 192.168.x.x
์ฌ์ค ์ฃผ์๋ฅผ ํด๋ผ์ฐ๋์์ ์ค์ ํ ๋, ํด๋ผ์ฐ๋ ์์ฒด์์ ์ ๊ณตํ๋ internal ip๋ก ๋์ฒด์ ์ฌ์ฉ์ ํ์๋๋ฐ, ์ ๊ฐ ๋คํธ์ํฌ ์ง์์ด ์งง๋ค๋ณด๋, ํด๋น ๋ถ๋ถ์ ๋ฌธ์๋๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์ถ๊ฐ๋ก, ๋ง์ฝ ์ฌ์ค ์ฃผ์๋ก ์ค์ ํด๋ ๋๋ค๋ฉด, ์์ ์ด๋ฏธ์ง ๋ด์ฉ์ ๋ํด ํด๋ผ์ฐ๋ ์์ ์ฃผ์ ๊ฐ ์ค์ ๋ด์ฉ์ ๋ํ ๋ถ๋ถ์ PR ํด๋ ๋๋์ง ํจ๊ป ๋ฌธ์๋๋ฆฝ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.