Dataflow ML
Dataflow ML์ ์ฌ์ฉํ๋ฉด Dataflow๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ๋จธ์ ๋ฌ๋(ML) ํ์ดํ๋ผ์ธ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ML ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ผ๊ด ๋ฐ ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ์ผ๋ก ๋ก์ปฌ ๋ฐ ์๊ฒฉ ์ถ๋ก ์ ์ํํ์ธ์. ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ํ์ต์ฉ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๊ณ ๋ชจ๋ธ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์์ธก ๋ฐ ์ถ๋ก
์ค์๊ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๊ฑฐ๋ ์๊ฒฉ ์ถ๋ก ํธ์ถ์ ์คํํ๊ฑฐ๋ ์ปค์คํ
๋ชจ๋ธ ํธ๋ค๋ฌ๋ฅผ ๋น๋ํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฒด Dataflow ML ์์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ฒ๋ฆฌ
MLTransform
ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋จธ์ ๋ฌ๋(ML) ์ํฌํ๋ก์ ๋ํด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์ฒ๋ฆฌํฉ๋๋ค. ํ ํด๋์ค์ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ณํ์ ๊ฒฐํฉํ๋ฉด MLTransform
์์ Apache Beam ML ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ณํ์ ์ํฌํ๋ก์ ์ ์ฉํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํฉ๋๋ค.
with pipeline as p: predictions = ( p | beam.ReadFromSource('a_source') | RunInference(MODEL_HANDLER))
RunInference ๋ณํ
RunInference
์ฌ์ฉ์ ํ์ดํ๋ผ์ธ์ ๋ณํ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋งํผ ๊ฐ๋จํฉ๋๋ค. ์ด ์์์์ MODEL_HANDLER๋ ๋ชจ๋ธ ๊ตฌ์ฑ ๊ฐ์ฒด์
๋๋ค.
with beam.Pipeline() as p: transformed_data = ( p | beam.Create(data) | MLTransform(...) | beam.Map(print))
MLTransform ์ฝ๋
ML ๋ชจ๋ธ ํ์ต์ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๋ ค๋ฉด ํ์ดํ๋ผ์ธ์์
MLTransform
์ ์ฌ์ฉํฉ๋๋ค. MLTransform
์ ํ๋์ ํด๋์ค์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ณํ์ ๋ํํ์ฌ, ์ฌ๋ฌ ์ ์ฒ๋ฆฌ ํ์คํฌ์ ํ๋์ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค.
์ ํ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ ์์ธก ๋ฐ ์ถ๋ก
Pytorch ๋ชจ๋ธ์ด ์์ต๋๋ค
Pytorch์์ ์ ํ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ธ์.
scikit-learn ๋ชจ๋ธ์ด ์์ต๋๋ค
scikit-learn์ผ๋ก ์ ํ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ธ์.
TensorFlow ๋ชจ๋ธ์ด ์์ต๋๋ค
TensorFlow์ ํจ๊ป ์ ํ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ธ์.
Vertex AI ๋ชจ๋ธ ํธ๋ค๋ฌ๊ฐ ์์ต๋๋ค.
Apache Beam์๋ ์๊ฒฉ์ผ๋ก ๋ฐฐํฌ๋ Vertex AI ์๋ํฌ์ธํธ์ ์์ฒญ์ ์ ์กํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ์ง์์ด ํฌํจ๋ฉ๋๋ค. ์ด ๋
ธํธ๋ถ์ Vertex AI๋ฅผ ์ฌ์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๊ธฐ ์ํด Apache Beam
RunInference
๋ณํ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
ํ์ดํ๋ผ์ธ์์ ์๋ก ๋ค๋ฅด๊ฒ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค.
๋์ผํ
RunInference
๋ณํ์์ ์ฌ๋ฌ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด ํค๊ฐ ์ง์ ๋ ๋ชจ๋ธ ํธ๋ค๋ฌ์ ํจ๊ป RunInference
๋ณํ์ ์ฌ์ฉํฉ๋๋ค.
MLTransform์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
Vertex AI๋ฅผ ์ฌ์ฉํ์ฌ LLM์ ํ ์คํธ ์๋ฒ ๋ฉ ์์ฑ
Vertex AI ํ
์คํธ ์๋ฒ ๋ฉ API์ ํจ๊ป Apache Beam์
MLTransform
ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ์๋ฒ ๋ฉ์ ์์ฑํฉ๋๋ค. ํ
์คํธ ์๋ฒ ๋ฉ์ ํ
์คํธ๋ฅผ ์ซ์ ๋ฒกํฐ๋ก ํํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก, ๋ง์ ์์ฐ์ด ์ฒ๋ฆฌ(NLP) ์์
์ ํ์ํฉ๋๋ค.
Hugging Face๋ฅผ ์ฌ์ฉํ์ฌ LLM์ ํ ์คํธ ์๋ฒ ๋ฉ ์์ฑ
Hugging Face Hub ๋ชจ๋ธ๊ณผ ํจ๊ป Apache Beam
MLTransform
ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ์๋ฒ ๋ฉ์ ์์ฑํฉ๋๋ค. Hugging Face SentenceTransformers
ํ๋ ์์ํฌ๋ Python์ ์ฌ์ฉํ์ฌ ๋ฌธ์ฅ, ํ
์คํธ, ์ด๋ฏธ์ง ์๋ฒ ๋ฉ์ ์์ฑํฉ๋๋ค.
๋ฐ์ดํฐ ์ธํธ์์ ์ดํ ๊ณ์ฐ
๋ฐ์ดํฐ ์ธํธ์์ ๊ณ ์ ์ดํ๋ฅผ ๊ณ์ฐํ ๋ค์ ๊ฐ ๋จ์ด ๋๋ ํ ํฐ์ ๊ณ ์ ํ ์ ์ ์์ธ์ ๋งคํํฉ๋๋ค. ์ด ๋ณํ์ ์ฌ์ฉํ์ฌ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ๋จธ์ ๋ฌ๋ ์์
์ ์ฌ์ฉ๋๋ ์ซ์ ํํ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
ML ๋ชจ๋ธ ํ์ต์ ํ์ํ ๋ฐ์ดํฐ ํ์ฅ
๋ฐ์ดํฐ๋ฅผ ML ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฐ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฅํฉ๋๋ค. Apache Beam์
MLTransform
ํด๋์ค์๋ ์ฌ๋ฌ ๋ฐ์ดํฐ ํ์ฅ ๋ณํ์ด ํฌํจ๋์ด ์์ต๋๋ค.
ํ๋ธ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์์ธก ๋ฐ ์ถ๋ก
๊ฐ์ ๋ถ์ ๋ฐ ์์ฝ์ ์ํํ๋ ค๊ณ ํฉ๋๋ค.
์ถ๋ก ํ์ดํ๋ผ์ธ์์ Gemma ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ํ์ ๊ฐ์ ์ ์ธก์ ํ๊ณ , ๋ํ์ ์ฝํ
์ธ ๋ฅผ ์์ฝํ๊ณ , ์ด๋ ค์ด ๋ํ์ ๋ํ ๋ต์ฅ์ ์์ฑํ ์ ์์ต๋๋ค.
Hugug Face์์ ํ์ต๋ ๋ชจ๋ธ์ด ์์ต๋๋ค.
Hugging Face์ ํ์ต๋ ๋ชจ๋ธ๊ณผ ํจ๊ป
RunInference
๋ณํ์ ์ฌ์ฉํฉ๋๋ค.
TensorFlow Hub์์ ํ์ต๋ ๋ชจ๋ธ์ด ์์ต๋๋ค.
TensorFlow Hub์์ ํ์ต๋ ๋ชจ๋ธ๊ณผ ํจ๊ป TensorFlow์ฉ
RunInference
๋ณํ์ ์ฌ์ฉํฉ๋๋ค.
์์ฑํ AI๋ฅผ ์ํํ๊ณ ์ถ์ต๋๋ค.
์์ฑํ AI ํ์คํฌ์
RunInference
๋ณํ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฉ๋ชจ์ฅ์ Hugging Face Model Hub์ ์ธ์ด ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค.
ML ์ํฌํ๋ก ์กฐ์
Vertex AI Pipelines์ ํจ๊ป Dataflow๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค
Vertex AI Pipelines๋ ์๋ฒ๋ฆฌ์ค ๋ฐฉ์์ผ๋ก ML ์ํฌํ๋ก๋ฅผ ์กฐ์ ํ์ฌ ML ์์คํ
์ ์๋ํ, ๋ชจ๋ํฐ๋ง, ์ ์ดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Vertex AI Pipelines๋ฅผ ์ฌ์ฉํ์ฌ TFX ๋๋ KFP๋ก ์ ์๋ ์ํฌํ๋ก DAG๋ฅผ ์กฐ์ ํ๊ณ Vertex ML Metadata๋ฅผ ์ฌ์ฉํ์ฌ ML ์ํฐํฉํธ๋ฅผ ์๋์ผ๋ก ์ถ์ ํฉ๋๋ค.
TFX์ Dataflow๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค
TensorFlow Extended(TFX)๋ฅผ ์ฌ์ฉํ๋ฉด Apache Beam ๋ฐ Dataflow ์คํ๊ธฐ์ ๊ธฐ๋ณธ ํตํฉ๋ ์กฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ML ํ์ดํ๋ผ์ธ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
KFP์ Dataflow๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค
Kubeflow๋ Kubernetes์์ ML ์ํฌํ๋ก ๋ฐฐํฌ๋ฅผ ๊ฐํธํ๊ฒ ์ํํ๊ณ ์ด๋ ๋ฐ ํ์ฅํ ์ ์๊ฒ ํด์ค๋๋ค. Kubeflow Pipelines๋ Kubeflow Pipelines SDK๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ํ ML ์ํฌํ๋ก์
๋๋ค.
์ถ๊ฐ ๊ธฐ๋ฅ
GPU ์ฌ์ฉ
Dataflow ์์
์์ GPU๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฐ ๋จธ์ ๋ฌ๋ ์ฒ๋ฆฌ ํ์คํฌ๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค. Dataflow์์ ์ง์ํ๋ GPU ์ ํ๊ณผ ๋ค์ํ ์ํฌ๋ก๋์ ์ฌ์ฉํ GPU ์ ํ์ ๋ํ ๊ถ์ฅ์ฌํญ์ ํ์ธํ์ธ์.
CPU์ GPU๋ฅผ ์ ์ ํ๊ฒ ์กฐํฉํ์ฌ ์ฌ์ฉ
GPU์ CPU๋ฅผ ์กฐํฉํ์ฌ ์ฌ์ฉํ๋ฉด ๋์ ์ฑ๋ฅ๊ณผ ๋น์ฉ ์ ๊ฐ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋ฆฌ์์ค๋ฅผ ํน์ ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ก ํ๊ฒํ
ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐ์ ์ธ ํ์ดํ๋ผ์ธ ์ ์ฐ์ฑ๊ณผ ๊ธฐ๋ฅ ๋ฐ ์ ์ฌ์ ์ธ ๋น์ฉ ์ ๊ฐ ํจ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Feature Store ๋ฐ์ดํฐ๋ก ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ ๋ณด๊ฐ
Apache Beam์ ํ์ดํ๋ผ์ธ์ ์ถ๊ฐํ ์ ์๋ ํดํค ๋ณด๊ฐ ๋ณํ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ๋ณด๊ฐ ์ํฌํ๋ก๋ฅผ ๋จ์ํํฉ๋๋ค.
๋ชจ๋ธ ์ ์ง๋ณด์ ๋ฐ ํ๊ฐ
์๋ ๋ชจ๋ธ ์๋ก๊ณ ์นจ
RunInference
๋ฅผ ์ฌ์ฉํ๋ฉด Apache Beam ํ์ดํ๋ผ์ธ์ ์ค์งํ์ง ์๊ณ ๋ ์๋ ๋ชจ๋ธ ์
๋ฐ์ดํธ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ํ์ดํ๋ผ์ธ์ด ์คํ๋๋ ๋์์๋ ๋ถ ์
๋ ฅ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์ค์๊ฐ์ผ๋ก ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๋ชจ๋ธ ํ๊ฐ
TensorFlow ๋ชจ๋ธ ๋ถ์(TFMA)์ ์ฌ์ฉํ์ฌ ๋ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ๋น๊ตํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์กฐ์ฌํ๊ณ ์๊ฐํํฉ๋๋ค. Apache Beam์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋ชจ๋ธ์ ํ ๋ฒ์ ํ๊ฐํ๊ณ ๋น๊ตํ ์ ์์ต๋๋ค.
๋ฆฌ์์ค
๊ต์ฐจ ์ธ์ด ํ์ดํ๋ผ์ธ ์คํ
Java ํ์ดํ๋ผ์ธ์ RunInference๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ต์ฐจ ์ธ์ด Python ๋ณํ์ ๋ง๋ญ๋๋ค. ํ์ดํ๋ผ์ธ์ด ๋ณํ์ ํธ์ถํ์ฌ ์ ์ฒ๋ฆฌ, ํ์ฒ๋ฆฌ, ์ถ๋ก ์ ์ํํฉ๋๋ค.
Dataflow ๊ถํ
Dataflow ML ์์๋ฅผ ์คํํ๋ ค๋ฉด Google Cloud ๊ถํ์ ๊ตฌ์ฑํด์ผ ํ ์ ์์ต๋๋ค. Dataflow ํ์ดํ๋ผ์ธ์ ํ์ํ ๊ถํ์ ๋ํ ์์ธ ๊ฐ์ด๋๋ฅผ ์ฝ์ด๋ณด์ธ์.
GitHub์์ ์์ ๋ณด๊ธฐ
GitHub์์ ์์ ๋ฐ ํด๋น ์์ค ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. GitHub์์๋ Colab์ ์์๋ฅผ ์คํํ๊ธฐ ์ํ ์๋ด๋ ์ฐพ์ ์ ์์ต๋๋ค.
์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์์๋ณด๊ธฐ
์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ ์๋งจํฑ ๊ฒ์๊ณผ ์ซ์ ํํ(์๋ฒ ๋ฉ)์ ์ฌ์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก RAG ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค. Dataflow ML์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํ๊ณ AlloyDB์ ๊ฐ์ ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํฉ๋๋ค.