Production์์์ ML๊ณผ MLOps tools ๐
์ด ํฌ์คํธ๋ ์ฃผ๊ด์ ์ธ ๊ฒฌํด๋ก ์์ฑํ์์ต๋๋ค. ๋ ์ข์ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
Production์ ML๊ณผ Research ML์ ์ฐจ์ด
์ฐ๊ตฌ์ค์์ ์ฐ๊ตฌ ๋ชฉ์ ์ ์ํ ๋ชจ๋ธ์ ํ์ต๊ณผ ํ์ฌ์์ ํ๋ก๋ํธ ์ ์ฉ์ ์ํ ๋ชจ๋ธ ํ์ต์ ํ๋ฉด์ ๋ง์ ์ฐจ์ด์ ์ ๋๋ผ๊ฒ ๋์ด์ ์ ๋ฆฌ๊ฒธ ์์ฑ์ ํด๋ณธ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฐ๊ตฌ์ค์์์ ํ์ต์ ์ ํด์ง ๋ฐ์ดํฐ์ ์ ๊ฐ์ง๊ณ baseline ๋ชจ๋ธ๋ค๋ณด๋ค ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๊ณ ์ด๋ฅผ ๊ทผ๊ฑฐ๋ฅผ ๋ค์ด์ SOTA(State-Of-The-Art)์ ์คํ๋ ์ฑ๋ฅ์ ์ ์ฆํ๋ฉด ์ข์ ์ฑ๊ณผ๋ก ์ด์ด์ง๊ณ ๋ ํ๋๊ฒ ๊ฐ๋ค.
๋ฐ๋๋ก ํ๋ก๋์ ์ ๊ฒฝ์ฐ์๋ ํ์ต ๋ฐ์ดํฐ์ ์ ์ ํด์ ธ์์ง ์๊ณ ๊ณ์ ๋ณํ๋ค. ๊ฐ์ธ์ ๋ณด์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ๋ฌด๋ ค ์ญ์ ๋๊ธฐ๋ ํ๋ค! ์ด๋ก์ธํด ๊ตฌ์ถํด๋ ๋ฐ์ดํฐ ์ ์ด ๋ง๊ฐ์ง๋ ๊ฒฝ์ฐ๋ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํ ์ฌํญ์ด ๋ง์์ง๋ค. ๋ํ ์ด๋ฌํ ๋ฐฉ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ์ดํ๋ผ์ธ์ ํ์์ฑ๋ ๋๋๋๋ค.
๋ชจ๋ธ์ ์์ด์ ์์ ์ฐจ์ด์ ์ฑ๋ฅ ํฅ์๋ณด๋ค๋ ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ๋น ๋ฅธ ์๋, ์ฑ๋ฅ๋๋น ์ ์ ์ถ๋ก ๋น์ฉ์ ๊ฐ์ง ๋ชจ๋ธ์ ์ ํธํ๊ฒ ๋๋๊ฒ ๊ฐ๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋์ ์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ฉด,
ย | Research ML |
---|---|
๋ฐ์ดํฐ | ์ฃผ๋ก ๋ค์ํ๊ณ ๊ฒ์ฆ๋ ์ ํด์ง ๋ฐ์ดํฐ์ ์ ๋ํด ํ์ต ๋ฐ ํ ์คํธ |
ํ์ดํ๋ผ์ธ | ๊ทธ๋ ๊ทธ๋ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ฑฐ๋ ์ฆ์ํด์ ์์ฑ |
ํ์ต | ์ ํด์ง ๋ฐ์ดํฐ์ ์ ๋ํ ์ฑ๋ฅ ๊ฒ์ฆ์ ์ํ ๋จ๋ฐ์ฑ ํ์ต |
์ฑ๋ฅ | ์ ํด์ง ํ ์คํธ์ ์ ๋ํ ๋์ ์ฑ๋ฅ |
๋ชจ๋ธ | SOTA ๋ชจ๋ธ์ ๊ฐ์ ํ๊ฑฐ๋ ๋ค์ํ ์๋ก์ด ๋ฐฉ์๋ค์ ๊ฐ์ ํ์ฌ ์ฑ๋ฅ ํฅ์ |
๊ท๋ชจ | ์ฃผ์ ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์ฑ๋ฅ์ด ๋ชฉ์ ์ด๋ผ๋ฉด ๊ท๋ชจ์ ์ํฅ์ ํฌ๊ฒ ๋ฐ์ง ์์ |
๋ฐฐํฌ | ๋ชจ๋ธ๊ณผ ํ์ต ์ฝ๋๋ง ๊ฐ๋ฐํ๊ฑฐ๋ ๋ฐฐํฌ์ ํฌ๊ฒ ์ ๊ฒฝ์ฐ์ง ์์ (์์ฆ์ ๋ง์ด ๋ฐ๋๋๋ฏ) |
ย | Production ML |
---|---|
๋ฐ์ดํฐ | ๋ชฉ์ ๋ฐ์ดํฐ๊ฐ ์ ํด์ ธ์์ง๋ง ๋ฐ์ดํฐ๊ฐ ๋ฐฉ๋ํ๊ณ ๋ณ๋์ฑ์ด ์์ |
ํ์ดํ๋ผ์ธ | ๋์ผํ ํ๊ฒฝ์์ ๋ฐ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ง์์ ๋ฐ์ดํฐ ๋ฐ ๊ธฐํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ํ์ |
ํ์ต | ๋ฐ์ดํฐ ๋ณํ์ ๋ฐ๋ฅธ ์ง์์ ํ์ต |
์ฑ๋ฅ | ์ ๋์ ์ฑ๋ฅ๋ฟ๋ง ์๋๋ผ ์ ์ฑ์ ์ฑ๋ฅ๋ ์ค์ํจ |
๋ชจ๋ธ | ๊ธฐ์กด์ ๊ตฌ์ถ๋ ๋ชจ๋ธ์ ๋น ๋ฅด๊ฒ ๊ฐ์ ๋ฐ ์ ์ฉ |
๊ท๋ชจ | ๋น์ฉ์ ์ด์ ๋ก ์ค์ ๊ท๋ชจ๊ฐ ์ ํ์ |
๋ฐฐํฌ | ๋ฐฐํฌ๊ฐ ๋งค์ฐ ์ค์! |
๋์์ ์ค ์ ์๋ ๋๊ตฌ๋ค
์์ ๋งํ๊ฒ์ฒ๋ผ Production์์์ AI ๊ฐ๋ฐ์ ์ฝ์ง ์์๊ณ ์ด๋ฅผ ๋์์ค ํด๋ค์ ์ฐพ์๋ณด๊ฒ ๋์๋ค. ์๋์ ๋ฆฌ์คํธ๋ค์ ์ฃผ๊ด์ ์ธ ์ธก๋ฉด์์ ๋ถ๋ฅํด๋์๊ณ ๊ฒ์์ผ๋ก๋ ์ ์๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์์ด์(๋ค๋ฅธ ์ฃผ์ ๊ฐ ๊ฒ์๋๋ค๊ฑฐ๋) ๋งํฌ๋ ๊ฐ์ด ๋ฃ์ด๋์๋ค.
๊ฐ ํด๋ค์ ๋ํ ์ค๋ช ์ ๋ฐ๋ก ์ถ๊ฐํ์ง ์์๋ค. (์ง์ ์ ํด๋ณด๋ ์ํ์ด๋ผ๋ ์ง์ ์ฌ์ฉํด๋ณด๋๊ฒ ๋ ์ข์ ๊ฒฝํ์ด์๋ค.)
Infra
์ ์ฒด์ ์ธ ์ธํ๋ผ ๊ตฌ์ถ์ ๋์์ ์ค ์ ์๋ ํด๋ค์ด๋ค. ํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ ๋ฆฌ์์ค๋ ๋น์ฉ์ ์ธ ์ด์ ๋ก ๋ฐ๋ก ์ ์ฉ์ด ์ด๋ ค์ธ ์ ์๋ค.
- k8s-kubeflow
- ML workflow๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํตํฉ ํ๋ซํผ.
- AWS sagemaker
- AWS์์ ์ ๊ณตํ๋ ML workflow ํตํฉ ํ๋ซํผ.
Parameter, Configurations
- hydra
- configuration ๊ด๋ฆฌ ํด.
- optuna
- ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ๋ํ ์ ์๋ ํด.
CI/CD
- github action
- ์ ๋ง ๋ง์ด ์ฌ์ฉํ๋ ํด.
- Jenkins
- ์ ๋ช ํ CI ํด.
- CML
- ๋จธ์ ๋ฌ๋์ ์ํ CI/CD ํด.
Pipeline
- crontab
- ๋ฆฌ๋ ์ค OS ์์ฒด์ crontab๋ ํผ๋ฅญํ ํด๋ก์ ์ฌ์ฉํ ์ ์์.
- Apache airflow
- python ๊ธฐ๋ฐ์ ์ค์ผ์ค๋ง ํด.
- Apache kafka
- ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ ๊ด๋ฆฌ ํด.
- Celery
- ๋ฉ์์ง ๋น๋๊ธฐ ์ก ํ.
- luigi
- python ๊ธฐ๋ฐ์ ๋ฐฐ์น ์ก ํ.
- argo
- Open source tools for Kubernetes to run workflows, manage clusters, and do GitOps right.
- Apache spark
- Engine for executing data engineering, data science, and machine learning on single-node machines or clusters.
- Apache hadoop
- Distributed processing of large data sets across clusters of computers using simple programming models.
- flyte
- ML ์ํฌํ๋ก์ฐ ํด.
- python-rqscheduler
- RQ Scheduler is a small package that adds job scheduling capabilities to RQ, a Redis based Python queuing library.
Model Management & Monitoring
- tensorboard
- ํ ์ํ๋ก์ฐ ์๊ฐํ ํดํท.
- mlflow
- ๋จธ์ ๋ฌ๋ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ ํด.
- metaflow
- Netflix์ ML ์ํฌํ๋ก์ฐ ํด.
- Weight and Bias
- Build better models faster with experiment tracking, dataset versioning, and model management.
- comet ml
- Manage, visualize, and optimize models.
- Neptune ai
- Log, organize, compare, register, and share all your ML model metadata in a single place.
- dvclive
- dvc ๊ธฐ๋ฐ์ ํธ๋ ํน ํด.
- ZenML
- The Open Source MLOps Framework for Unifying Your ML Stack.
Training
- skypilot
- Framework for easily and cost effectively running ML workloads on any cloud.
- petals
- ํ ๋ ํธ ์คํ์ผ์ NLP ํ์ต ํด.
Data Management
Data Visialize
- streamlit
- Streamlit turns data scripts into shareable web apps in minutes.
- gradio
- Gradio is the fastest way to demo your machine learning model with a friendly web interface.
- dash
- Dash is the most downloaded, trusted Python framework for building ML & data science web apps.
- metabase
- Metabase is the easy, open-source way for everyone in your company to ask questions and learn from data.
- pynecone
- Build web apps in minutes, Deploy with a single command.
Model Serving
- flask
- Flask is a lightweight WSGI web application framework.
- fastapi
- FastAPI๋ ํ๋์ ์ด๊ณ , ๋น ๋ฅด๋ฉฐ(๊ณ ์ฑ๋ฅ), ํ์ด์ฌ ํ์ค ํ์ ํํธ์ ๊ธฐ์ดํ Python3.6+์ API๋ฅผ ๋น๋ํ๊ธฐ ์ํ ์น ํ๋ ์์ํฌ์ ๋๋ค.
- heroku
- ํค๋ก์ฟ ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐ์น ๋ชจ๋ธ๋ก ์ฌ์ฉ๋๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๋ ํด๋ผ์ฐ๋ PaaS.
- bentoml
- BentoML makes it easy to create ML-powered prediction services that are ready to deploy and scale.
- seldon-core
- Seldon Core is the open-source framework for easily and quickly deploying models and experiments at scale.
Distributed Computing
- Ray
- Makes it easy to scale AI and Python workloads
ETC
ํด์ ํ์ฉ
์์ ๋์ดํ ํด๋ค์ ๋ฌด์กฐ๊ฑด ์ข๊ณ ๊ฑฐ๋ํ ํด์ ์ฌ์ฉํ๋๊ฒ์ด ์๋ ์งํ์ค์ธ ํ๋ก์ ํธ์ ๋ง์ถฐ์ ์ ์ ํ ๋๊ตฌ๋ฅผ ์ ํํ๋๊ฒ์ด ๋งค์ฐ ์ค์ํ๊ฒ ๊ฐ๋ค.
๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์๋ก๋ค๋ฉด ์ฒ์๋ถํฐ ํ๋ก, ์คํํฌ ๋ฑ์ ๋์ ์ ๊ณ ๋ คํ ๊ฒ ์์ด ์์ DB ํ๋์ cronjob๋ง์ผ๋ก๋ ๋งค์ฐ ์ข์ ํ์ดํ๋ผ์ธ์ ๋ง๋ค ์ ์์๊ฒ ๊ฐ๋ค.