ML ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ์š”

์ด ๋ฌธ์„œ์—์„œ๋Š” BigQuery ML MLOps ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ML ํŒŒ์ดํ”„๋ผ์ธ์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ML ํŒŒ์ดํ”„๋ผ์ธ์€ ์ผ๋ จ์˜ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ๋กœ ๊ตฌ์„ฑ๋œ MLOps ์›Œํฌํ”Œ๋กœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ๋งˆ๋‹ค MLOps ์›Œํฌํ”Œ๋กœ์—์„œ ํŠน์ • ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ณ  ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„๋ฅผ ํ‘œ์ค€ํ™”๋œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํƒœ์Šคํฌ๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ML ์‚ฌ์šฉ ์‹œ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BigQuery ML ML ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Vertex AI Pipelines๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋™ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ML ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • GoogleSQL ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋œ ๋ณต์žกํ•œ SQL ๊ธฐ๋ฐ˜ ML ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • Dataform์„ ์‚ฌ์šฉํ•˜์—ฌ ๋”์šฑ ๋ณต์žกํ•œ SQL ๊ธฐ๋ฐ˜ ML ํŒŒ์ดํ”„๋ผ์ธ์ด๋‚˜ ๋ฒ„์ „ ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ML ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Vertex AI Pipelines

Vertex AI Pipelines์—์„œ ML ํŒŒ์ดํ”„๋ผ์ธ์€ ์ž…๋ ฅ-์ถœ๋ ฅ ์ข…์† ํ•ญ๋ชฉ์„ ํ†ตํ•ด ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ์˜ ๋ฐฉํ–ฅ์„ฑ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„(DAG)๋กœ ๊ตฌ์กฐํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ๋Š” ํŠน์ • ์ž…๋ ฅ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•ฉ๋‹ˆ๋‹ค. ML ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•  ๋•Œ ML ์›Œํฌํ”Œ๋กœ์—์„œ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ์„ ๋‹ค์Œ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ์˜ ์ž…๋ ฅ์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜์—ฌ ์—ฌ๋Ÿฌ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ๋ฅผ ์—ฐ๊ฒฐํ•ด DAG๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ML ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•œ ์›๋ž˜ ์ž…๋ ฅ์„ ์ง€์ •๋œ ํŒŒ์ดํ”„๋ผ์ธ ํƒœ์Šคํฌ์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Cloud ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์š”์†Œ SDK์˜ BigQuery ML ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Vertex AI Pipelines์—์„œ ML ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. BigQuery ML ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋…ธํŠธ๋ถ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

GoogleSQL ์ฟผ๋ฆฌ

GoogleSQL ์ ˆ์ฐจ์  ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ€ํ‹ฐ ๋ฌธ ์ฟผ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ ๋ฌธ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ๋ฌธ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ณต์œ  ์ƒํƒœ๋กœ ํ•œ ์‹œํ€€์Šค์—์„œ ์—ฌ๋Ÿฌ ๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ ๋˜๋Š” ํ…Œ์ด๋ธ” ์‚ญ์ œ์™€ ๊ฐ™์€ ๊ด€๋ฆฌ ํƒœ์Šคํฌ๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • IF ๋ฐ WHILE๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ ๋ฌธ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“  ํ›„์—๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ €์žฅ ๋ฐ ์˜ˆ์•ฝํ•˜์—ฌ ๋ชจ๋ธ ํ•™์Šต, ์ถ”๋ก , ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ML ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ML.GENERATE_TEXT ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ SQL์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ML.GENERATE_TEXT๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ ํ• ๋‹น๋Ÿ‰ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด ํ• ๋‹น๋Ÿ‰ ๋ฐ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ์žฌ์‹œ๋„ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dataform

Dataform์„ ์‚ฌ์šฉํ•˜์—ฌ BigQuery์—์„œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์— ์‚ฌ์šฉ๋˜๋Š” ๋ณต์žกํ•œ SQL ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ๋ฒ„์ „ ์ œ์–ด, ์˜ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Dataform์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ์„ ์œ„ํ•œ ์ถ”์ถœ, ๋กœ๋“œ, ๋ณ€ํ™˜(ELT) ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜๊ณผ ๊ฐ™์€ ํƒœ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ์Šค ์‹œ์Šคํ…œ์—์„œ ์ถ”์ถœ๋˜์–ด BigQuery๋กœ ๋กœ๋“œ๋œ ํ›„์— Dataform์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ •์˜๋˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค์œผ๋ฉฐ ๋ฌธ์„œํ™”๋œ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ” ์ œํ’ˆ๊ตฐ์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ML ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ML.GENERATE_TEXT ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด structured_table_ml.js ์˜ˆ์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด ํ•จ์ˆ˜์— ์ ์šฉ๋˜๋Š” ํ• ๋‹น๋Ÿ‰ ๋ฐ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ์žฌ์‹œ๋„ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.