The Feature Store Evolved
์์ฑ์: ๋ง๋ ํ๋ฅด์ผ, ํฌ๋ ์ด๊ทธ ์์ผ๋ฆฌ, Patrick Wendell , Matei Zaharia
๋ฐ์ดํฐ ๊ณผํ์ ํ์๊ฒ ๊ณ ํ์ง์ AI ๋ชจ๋ธ์ ๊ตฌ์ถํ๋ ๋ฐ ์์ด ๊ฐ์ฅ ํฐ ์ด๋ ค์์ด ๋ฌด์์ธ์ง ๋ฌผ์ผ๋ฉด ๊ฑฐ์ ๋ง์ฅ์ผ์น๋ก ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ ๊ฒ์ ๋๋ค. ์๋ ๋์ ์ค๋ฌด์๋ค์ ์คํ๊ณผ ๊ฐ๋ฐ์ ๊ฐ์ํํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค์ํ ๊ธฐ์ ๊ณผ ์ถ์ํ๋ฅผ ์ ์ฉํด ์์ต๋๋ค. ์ง๋ ๋ช ๋ ๋์, ํผ์ฒ ์คํ ์ด๋ ์ค๋ฌด์๋ค์ด ๋จธ์ ๋ฌ๋์ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๊ณ ์ค๋นํ๋ ๋ฐ ์ ์ ๋ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ด ๋์์ต๋๋ค. 2022๋ ์ด, ๋ฐ์ดํฐ๋ธ๋ฆญ์ค๋ ํผ์ฒ ์คํ ์ด๋ฅผ ์ผ๋ฐ์ ๊ณต๊ฐํ์ต๋๋ค. ์ฌ์ฌ๋ฆ, ์ ๋ํฐ๋ ํผ์ฒ ์์ง ๋์ด๋ง ๋ฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ๋ธ๋ฆญ์ค Unity Catalog์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ผ๋ก ๋์ ํ๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค. ์ด๋ AI ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ค ๊ฐํธํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ด ํฐ ์งํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์งํ๋ฅผ ํตํด ํผ์ฒ ๊ด๋ฆฌ์ ๋๊ธ ์ต๊ณ ์ ๋ฐ์ดํฐ ์นดํ๋ก๊ทธ๊ฐ ํตํฉ๋์ด ํผ์ฒ๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ต ๋ฐ ์ ๊ณตํ๋ ๊ณผ์ ์ ๊ฐ์ํํ๊ณ ์์ ํ๊ฒ ๋ณดํธํฉ๋๋ค.
Feature Store๋ ML ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๋ ๊ฐ์ง ์ฃผ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋๋ก ์ค๊ณ๋ ์ผ์ข ์ ์นดํ๋ก๊ทธ์ ๋๋ค. ์ด๋ ML ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ฒ์ํ๊ณ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ฉฐ, ๊ณ ์ฑ๋ฅ ๋ชจ๋ธ ํ์ต ๋ฐ ์๋น์ค ์์คํ ์์ ์์ ์ ์ธ ๊ณ ํ์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. Feature Store๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ๊ณผํ์๊ฐ ์กฐ์ง์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ก์ด ํผ์ฒ๋ฅผ ์ฝ๊ฒ ๋ฐ๊ฒฌํ๊ณ , ์๋ก์ด ํผ์ฒ๋ฅผ ์ถ๊ฐํ๊ณ , ML ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ๋ก ์์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Unity Catalog๋ ๋ ์ดํฌํ์ฐ์ค์ ๋ฐ์ดํฐ๋ธ๋ฆญ์ค ์ํฌ์คํ์ด์ค์์ ์ค์ ์ง์ค์ ์ก์ธ์ค ์ ์ด, ๊ณต์ , ๊ฐ์ฌ, ๊ณ๋ณด(๋ฆฌ๋์ง)์ ๋ฐ์ดํฐ ๊ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Feature Store๋ฅผ ์ฌ์ฉํ๋ ๊ณ ๊ฐ๋ค์ ํผ์ฒ์ ๊ณต์ ์ ๊ฑฐ๋ฒ๋์ค์ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ Unity Catalog์ ๊ณ์ํด์ ์์ฒญํ์ต๋๋ค. "์ ํผ์ฒ์ฉ ์นดํ๋ก๊ทธ์ ๊ทธ ์ธ์ ๋ชจ๋ ๊ฒ์ ์ํ ์นดํ๋ก๊ทธ๊ฐ ๋ฐ๋ก ์์ด์ผ ํ๋์?"๋ผ๋ ์ง๋ฌธ์ด ์ ์ ๋ ๋ช ํํด์ก์ต๋๋ค.
Unity Catalog์ ํผ์ฒ ๊ด๋ฆฌ๋ฅผ ํตํฉํ๋ฉด์, Feature Store์ ๋ฐ์ ์ด AI ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ์ฌ๋ฌ ์ธก๋ฉด์ ์ผ๋ง๋ ํฐ ์ํฅ์ ๋ฏธ์น ์ง ๋ถ๋ช ํด์ก์ต๋๋ค.
๋ ์ดํฌํ์ฐ์ค๋ฅผ ๊ด๋ฆฌํ๋ ์นดํ๋ก๊ทธ์ธ Unity Catalog์ ํผ์ฒ ์ ์ฅ์ ๊ธฐ๋ฅ์ ์ง์ ๋น๋ํจ์ผ๋ก์จ,ย Unity Catalog์ ํผ์ฒ ์์ง๋์ด๋ง์ ๋ชจ๋ธ์ ํ๋ จ๊ณผ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค.
ํผ์ฒ ๊ฒ์ ๊ฐ์ํ: Unity Catalog์์๋ ํ ์ด๋ธ๊ณผ ํผ์ฒ, ๋ชจ๋ธ, ํจ์ ๋ฑ ๋ชจ๋ ๋ ์ดํฌํ์ฐ์ค ์ํฐํฐ๋ฅผ ํ ๊ณณ์์ ๊ฒ์ํ ์ ์์ต๋๋ค. ๋ ์ด์ ๋์ผํ ๋ฐ์ดํฐ์ ๋ํด ์ฌ๋ฌ ๊ฒ์ ์์คํ ์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
๊ด๋ฆฌ ๋ฐ ๊ณต์ ๊ธฐ๋ฅ: Unity Catalog๋ ๋ชจ๋ ์ํฐํฐ(ํ ์ด๋ธ, ํจ์, ๋ชจ๋ธ)์ ๋ํ ํตํฉ ์ํฐํ๋ผ์ด์ฆ๊ธ ๊ฑฐ๋ฒ๋์ค๋ ๋ฌผ๋ก ย ํ ๋ฐ ์ด ์์ค ๋ณด์๊ณผ ์ ์ฑ ๊ณผ ๊ฐ์ ํด์ ์ ๊ณตํ์ฌ, ๊ฑฐ๋ฒ๋์ค๊ฐ ํ์ฉํ๋ ๊ฒฝ์ฐ ํ์ด ์ํฌ์คํ์ด์ค ๊ฐ์ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๊ณต์ ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ๋์ฑ ํ๋ถํ ๊ฑฐ๋ฒ๋์ค ๋ฐ ๋ณด์ ๊ธฐ๋ฅ์ดย ์ถ๊ฐ๋์ดย Unity Catalog๊ฐย ์งํํ๋ฉด์ย ํผ์ฒ์๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๋ณต์ฌ ๋ถํ์: ๋์ผํ ํ ์ด๋ธ์ ML์ฉ ํผ์ฒ ์์ค๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ BI ๋์๋ณด๋์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. Delta๋ ์ด๋ฌํ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๋๋ก ๊ตฌ์ถ๋์์ผ๋ฏ๋ก, ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ฌํ๊ฑฐ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์บ์ํ ํ์๊ฐ ์์ต๋๋ค. ํญ์ ๋๊ธฐํ๋ AI ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.ย
์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ํ๋ ๋ฆฌ๋์งย ๊ทธ๋ํ ๋ด์ฅ: ๊ณ ๊ฐ์ ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๋ก ํ์ต/์๋น์คํ๊ณ ์๋์ง ๋ฆฌ๋์ง ๊ทธ๋ํ๋ฅผ ํตํด ํ์ธํ ์ ์์ผ๋ฉฐ, ๋จ์ผ ํตํฉ ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์์ ๊ธฐ๋ฅ๊น์ง ์ญ์ถ์ ํจ์ผ๋ก์จ ์ค๋ฅ ๋ฐ ๋ชจ๋ธ ์ฑ๋ฅ์ ๋ณํ๋ฅผ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ธฐ์ ๋ค์ ๋ชจ๋ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ์ดํ๋ผ์ธ์ ๋ํด ๋จ์ผ ELT ํ๋ ์์ํฌ๋ก ํ์คํํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด๋ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ๋ ์ดํฌํ์ฐ์ค์ ๋ชจ๋ ๋ฐ์ดํฐ ์ธํธ์ ์ํฐํ๋ผ์ด์ฆ ์ ์ฑ ์ ์ ์ฉํ๊ธฐ ์ํจ์ ๋๋ค. ํผ์ฒ ์์ง๋์ด๋ง ๊ธฐ๋ฅ์ Unity Catalog์ ํตํฉํ๋ฉด ์กฐ์ง์ ํ๋์ ํ์คํ๋ ELT ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ํผ์ฒ ์์ง๋์ด๋ง ํ์ดํ๋ผ์ธ์ ๋ง๋ค๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Unity Catalog์์ ์๋ก์ด ๊ธฐ๋ฅ์ ์์ฑํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ PRIMARY KEY ์ ์ฝ ์กฐ๊ฑด์ย TIMESERIES ์ ์ ์ง์ํ๋๋ก SQL ๊ตฌ๋ฌธ์ ์
๊ทธ๋ ์ด๋ํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ชจ๋ธ ํ์ต๊ณผ ํ๊ฐ์ ํผ์ฒ๋ฅผ ์๋์ผ๋ก ์ฌ์ฉํ ์ ์๊ณ , ์ ์ ํ ์์ ์กฐ์ธ(point-in-time JOIN)์ ์ํํ ์ ์์ต๋๋ค. [AWS][Azure][GCP]
ํผ์ฒ ์คํ ์ด ๊ธฐ๋ฅ์ ์์ฒด ๊ตฌํํ๊ฑฐ๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ํน์ ๋ฒค๋์ DSL(Domain Specific Language)์ ์ฌ์ฉํ์ฌ ์์ฑํ ๊ธฐ์กด ํผ์ฒ ํ
์ด๋ธ์ ๊ฐ์ง๊ณ ์๋ ๊ณ ๊ฐ๋ค๋ ์์ต๋๋ค. ์ด๋ฌํ ๋ธํ ํ
์ด๋ธ์ PRIMARY KEY ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ฉด ๊ธฐ์กด ํผ์ฒ ํ
์ด๋ธ์ ํผ์ฒ๋ค์ ML ๋ชจ๋ธ ํ์ต๊ณผ ์๋น์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํผ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ธ๋ฆญ์์ ํ์ต๋ MLflow ๋ชจ๋ธ์ ๋ชจ๋ธ ํ์ต์ ์ฌ์ฉ๋ ํผ์ฒ์ ๋ํ ๊ณ๋ณด(๋ฆฌ๋์ง)๋ฅผ ์๋์ผ๋ก ์บก์ฒํฉ๋๋ค. ์ด ๋ฆฌ๋์ง๋ ๋ชจ๋ธ ๋ด์ feature_spec.yaml์ํฐํฉํธ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์๊ฐ ๋ชจ๋ธ๊ณผ ํผ์ฒ์ ๋งคํ์ ๋ฐ๋ก ์ ์ง ๊ด๋ฆฌํ ํ์๊ฐ ์์ด์ ธ ๊ทธ๋์ ๋ถํธํ๋ ์ ์ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ถ๋ก ์์คํ
์ ํผ์ฒ์ ์คํ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ ์ค์ฝ์ด๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ ์ด ์ ๋ณด๋ฅผ ๋ฆฌ๋์ง ๊ทธ๋ํ ์์คํ
์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์ฌ์ฉ๋ ๋ชจ๋ ํผ์ฒ๋ฅผ ํ์ํ ์ ์๊ณ , ํน์ ํผ์ฒ์ ๋ํด ํด๋น ํผ์ฒ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ชจ๋ธ๋ก์ ์ฐ๊ฒฐ ๋งํฌ๋ฅผ ํ์ํ ์ ์์ต๋๋ค.

๋ชจ๋ธ์ด ๋ฐ์ดํฐ๋ธ๋ฆญ์ค Model Serving์ ๋ฐฐํฌ๋๋ฉด, ์์คํ ์ ๋ฆฌ๋์ง๋ฅผ ์ฌ์ฉํด ์ถ๋ก ์ ํ์ํ ํผ์ฒ๋ค์ ์ถ์ ํ๊ณ ๋ ์ดํฌํ์ฐ์ค์ ์๋ ์ ์ ํ ์จ๋ผ์ธ ํ ์ด๋ธ์ ํตํด ํผ์ฒ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ MLOps ์์ง๋์ด๊ฐ ๋ชจ๋ธ ์ค์ฝ์ด๋ง์ ์ํด ์์ฑํด์ผ ํ๋ ์ฝ๋๊ฐ ๊ฐ์ํ๋ฉ๋๋ค. ์ ์ ํ ID๋ก ๋ชจ๋ธ ์๋น ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ์๋์ผ๋ก ํผ์ฒ๊ฐ ์กฐํ๋ฉ๋๋ค. ๋ํ ๋ชจ๋ธ, ํผ์ฒ, ๊ธฐํ ๋ฐ์ดํฐ ์์ฐ๋ค์ด Unity Catalog์ ์์ผ๋ฏ๋ก ์ด๋ฌํ ์์ฐ์ ๋ํ ๋ชจ๋ ์ก์ธ์ค๋ ๋์ผํ ์ํฐํ๋ผ์ด์ฆ ๊ฑฐ๋ฒ๋์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค.

๋ฐ์ดํฐ ๊ณผํ์๋ค์ ๋ฐ์ดํฐ๋ธ๋ฆญ์ค Feature Store API ๋๋ ๊ธฐํ ELT ํ๋ ์์ํฌ ๋ฐ SDK๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๋ชจ๋ ํผ์ฒ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. Unity Catalog์์ ํน์ ์นดํ๋ก๊ทธ๋ฅผ ์ ํํ์ฌ primary key๋ฅผ ๊ฐ์ง ๋ชจ๋ ๋ธํ ํ ์ด๋ธ์ ๋์ดํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฌ์ฉ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ํ๋ ์ด์ ๋ฐ ๊ฒ์ ๊ณผ์ ์ ๊ฐ์ํํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ๋จธ์ ๋ฌ๋ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๋ํด ํ๋ ์ด์ ๋ ์ธํธ๋ฅผ ๋ง๋ค๊ณ ์ ํ๋ ๊ฒฝ์ฐ
๋ฐ์ดํฐ ๊ณผํ์๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ํผ์ฒ๋ค๊ณผ ํ ์ด๋ธ๋ค์ ๋ํ ๊ฐ์ธ ์ปฌ๋ ์ ์ ๋ง๋ค๊ณ ์ถ์ ๊ฒฝ์ฐ
ํ์์ ํด๋น ํ์ย ML ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒย ์ ๋ณ๋ ๊ณ ํ์ง์ ํผ์ฒย ์ธํธ๋ฅผ ๋ง๋ค๋ ค๋ ๊ฒฝ์ฐ

Unity Catalog ๊ฒ์ ํ๊ทธ๋ ์นดํ๋ก๊ทธ์ ์คํค๋ง ์ ์ฒด์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ํ ์ด๋ธ, ๋ทฐ, ๋ชจ๋ธ, ํจ์ ๋ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์ํฐํฐ์ ์ด๋ฌํ ํ๊ทธ๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค. Unity Catalog์์ ์ฌ์ฉ์ ํ๊ทธ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ย ย AWS, Azure,ย GCPย ๋ณ๋ก ์์ธ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.ย
์ํฌ์คํ์ด์ค ํ๋ฉด์์ ์ผ์ชฝ ๋ฉ๋ด์ Machine Learning ์๋ Features ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ ์ดํฌํ์ฐ์ค์์ ์๋ก์ด Feature Store ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์นดํ๋ก๊ทธ๋ฅผ ์ ํํ๋ฉด ML ๋ชจ๋ธ ํ๋ จ์ ํผ์ฒ๋ก ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๊ธฐ์กด ํ ์ด๋ธ์ ํ์ธํ ์ ์์ต๋๋ค.
Unity Catalog์ ํผ์ฒ ์์ง๋์ด๋ง ๋ฌธ์๋ฅผ ๋ฐ๋ผย AWS, Azure,ย GCPย ์์ ์์ํด ๋ณด์ธ์. ์ด end-to-end notebook์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
ย
๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ๋ ํ๊ณ ์ต์ ๊ฒ์๋ฌผ์ ์ด๋ฉ์ผ๋ก ๋ฐ์๋ณด์ธ์.