์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๋‹ค์Œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก Vertex AI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

Vertex AI๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ Google์—์„œ Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ๊ณ„์ • ์ค‘ ํ•˜๋‚˜์˜ ๊ถŒํ•œ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ปจํ…์ŠคํŠธ์—์„œ ๋‹ค๋ฅธ Google Cloud ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ Vertex AI์— ๋ถ€์—ฌํ•˜๋ ค๋ฉด Vertex AI์˜ ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— ํŠน์ • ์—ญํ• ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์„œ๋น„์Šค ์—์ด์ „ํŠธ์˜ ๊ถŒํ•œ์„ ๋งž์ถค์„ค์ •ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์„ธ๋ถ„ํ™”๋œ ์•ก์„ธ์Šค ์ œ์–ด ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Vertex AI ์ž‘์—… ๋ฐ ๋ชจ๋ธ์— ๋Œ€ํ•œ ๋” ์ ์€ ๊ถŒํ•œ ํ—ˆ์šฉ. ๊ธฐ๋ณธ Vertex AI ์„œ๋น„์Šค ์—์ด์ „ํŠธ์—๋Š” BigQuery ๋ฐ Cloud Storage์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์ž‘์—…์— ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ—ˆ์šฉ. ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹จ์ผ ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ ์‚ฌ์šฉ์ž ์ž‘์—…์— ํŠน์ • BigQuery ํ…Œ์ด๋ธ”์ด๋‚˜ Cloud Storage ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ์ปค์Šคํ…€ ํ•™์Šต ์ž‘์—…์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋งž์ถค์„ค์ •ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€์˜ ์—ฌ๋ŸฌGoogle Cloud ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๊ณ ์ž ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์„œ๋น„์Šค ์—์ด์ „ํŠธ์˜ ๊ถŒํ•œ์„ ๋งž์ถค์„ค์ •ํ•˜์—ฌ๋„ ์ปค์Šคํ…€ ํ•™์Šต Model์—์„œ ์˜ˆ์ธก์„ ์ œ๊ณตํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์ œ๊ณต๋˜๋Š” ๊ถŒํ•œ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์•ก์„ธ์Šค๋ฅผ ๋งž์ถค์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์ปค์Šคํ…€ ํ•™์Šต Model์˜ ์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ์˜ ๊ถŒํ•œ์„ ๋งž์ถค์„ค์ •ํ•˜๋ ค๋ฉด ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์•ก์„ธ์Šค

์ด ์„น์…˜์—์„œ๋Š” ์ปค์Šคํ…€ ํ•™์Šต ์ปจํ…Œ์ด๋„ˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์•ก์„ธ์Šค ๋ฐ ์ปค์Šคํ…€ ํ•™์Šต Model ๋ฆฌ์†Œ์Šค์˜ ์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํŠน์ • CustomJob, HyperparameterTuningJob, TrainingPipeline ๋˜๋Š” DeployedModel ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ด ์•ก์„ธ์Šค๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ์ปจํ…Œ์ด๋„ˆ

CustomJob, HyperparameterTuningJob ๋˜๋Š” ์ปค์Šคํ…€ TrainingPipeline์„ ๋งŒ๋“ค ๋•Œ ํ•™์Šต ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœGoogle Cloud ํ”„๋กœ์ ํŠธ์˜ Vertex AI ์ปค์Šคํ…€ ์ฝ”๋“œ ์„œ๋น„์Šค ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋น„๋กฏํ•˜์—ฌ Vertex AI ์ปค์Šคํ…€ ์ฝ”๋“œ ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”. Google Cloud

์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ

์ปค์Šคํ…€ ํ•™์Šต Model์„ Endpoint์— ๋ฐฐํฌํ•  ๋•Œ ์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ๋Š” Vertex AI์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค ๊ณ„์ •์€ Vertex AI ์„œ๋น„์Šค ์—์ด์ „ํŠธ์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์—๋Š” Vertex AI๊ฐ€ AIP_STORAGE_URI ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ €์žฅ๋œ URI์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ชจ๋ธ ์•„ํ‹ฐํŒฉํŠธ ์ฝ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ถŒํ•œ์„ ์–ป๊ธฐ ์œ„ํ•ด ์„œ๋น„์Šค ๊ณ„์ •์— ์˜์กดํ•˜์ง€ ๋งˆ์„ธ์š”. ์„œ๋น„์Šค ๊ณ„์ •์˜ ๊ถŒํ•œ์€ ๋งž์ถค์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ • ๊ตฌ์„ฑ

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Vertex AI์—์„œ ์‚ฌ์šฉํ•  ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก CustomJob, HyperparameterTuningJob, TrainingPipeline, DeployedModel์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Artifact Registry์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Vertex AI๋Š” ๊ธฐ๋ณธ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ • ์„ค์ •

์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์‚ฌ์šฉ์ž ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์€ Vertex AI ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. Vertex AI๊ฐ€ ์ปค์Šคํ…€ ํ•™์Šต ๋˜๋Š” ์˜ˆ์ธก ์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋Š” Google Cloud ์„œ๋น„์Šค ๋ฐ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜๋Š” ์ƒˆ ์„œ๋น„์Šค ๊ณ„์ • IAM ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

  3. ์„ ํƒ์‚ฌํ•ญ: ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์ด ํ•™์Šต ์ž‘์—…๊ณผ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š” ๊ฒฝ์šฐ Vertex AI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ Vertex AI ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— ์„œ๋น„์Šค ๊ณ„์ • ํ† ํฐ ์ƒ์„ฑ์ž ์—ญํ• (roles/iam.serviceAccountTokenCreator)์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    gcloud iam service-accounts add-iam-policy-binding \
        --role=roles/iam.serviceAccountTokenCreator \
        --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \
        CUSTOM_SERVICE_ACCOUNT
    
  4. ์„ ํƒ์‚ฌํ•ญ: ์˜ˆ์ธก์— ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Vertex AI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ Vertex AI ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— ์„œ๋น„์Šค ๊ณ„์ • ๊ด€๋ฆฌ์ž ์—ญํ• (roles/iam.serviceAccountAdmin)์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    gcloud iam service-accounts add-iam-policy-binding \
      --role=roles/iam.serviceAccountAdmin \
      --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \
      CUSTOM_SERVICE_ACCOUNT
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • AI_PLATFORM_SERVICE_AGENT: ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ€์ง„ ํ”„๋กœ์ ํŠธ Vertex AI ์„œ๋น„์Šค ์—์ด์ „ํŠธ์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

      service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

      Vertex AI ์„œ๋น„์Šค ์—์ด์ „ํŠธ๋ฅผ ์ฐพ์œผ๋ ค๋ฉด Google Cloud ์ฝ˜์†”์—์„œ IAM ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

      IAM์œผ๋กœ ์ด๋™

    • CUSTOM_SERVICE_ACCOUNT: ์ด ์„น์…˜์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  ์ƒˆ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

Vertex AI ๋ฆฌ์†Œ์Šค์˜ ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ • ์ง€์ •

๋ฆฌ์†Œ์Šค์— ํŠน์ • ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก Vertex AI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋น„์Šค ๊ณ„์ •์„ ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด์ „ ์„น์…˜์—์„œ ๋งŒ๋“  ์„œ๋น„์Šค ๊ณ„์ •์„ ์—ฌ๋Ÿฌ Vertex AI ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ํ•™์Šต ๋ฆฌ์†Œ์Šค์— ์„œ๋น„์Šค ๊ณ„์ • ์—ฐ๊ฒฐ

์ปค์Šคํ…€ ํ•™์Šต ์ค‘์— ์ƒˆ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก Vertex AI๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์ปค์Šคํ…€ ํ•™์Šต์„ ์‹œ์ž‘ํ•  ๋•Œ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ CustomJobSpec ๋ฉ”์‹œ์ง€์˜ serviceAccount ํ•„๋“œ์— ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑํ•˜๋Š” ์ปค์Šคํ…€ ํ•™์Šต ๋ฆฌ์†Œ์Šค ์œ ํ˜•์— ๋”ฐ๋ผ API ์š”์ฒญ์—์„œ ์ด ํ•„๋“œ์˜ ๋ฐฐ์น˜๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • CustomJob์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ CustomJob.jobSpec.serviceAccount์— ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    CustomJob ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

  • HyperparameterTuningJob์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ HyperparameterTuningJob.trialJobSpec.serviceAccount์— ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    HyperparameterTuningJob ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ • ์—†์ด ์ปค์Šคํ…€ TrainingPipeline์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ TrainingPipeline.trainingTaskInputs.serviceAccount์— ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ •์œผ๋กœ ์ปค์Šคํ…€ TrainingPipeline์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ TrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount์— ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ ์˜ˆ์ธก์„ ์ œ๊ณตํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์„œ๋น„์Šค ๊ณ„์ • ์—ฐ๊ฒฐ

์ƒˆ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ปค์Šคํ…€ ํ•™์Šต Model์˜ ์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด Endpoint์— Model์„ ๋ฐฐํฌํ•  ๋•Œ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ ๋ฐฐํฌ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”. ๋ชจ๋ธ ์„ค์ •์„ ์ง€์ •ํ•  ๋•Œ ์„œ๋น„์Šค ๊ณ„์ • ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

gcloud

Vertex AI API๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ ๋ฐฐํฌ ๋”ฐ๋ฅด๊ธฐ gcloud ai endpoints deploy-model ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ --service-account ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ๋ช…๋ น์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • ENDPOINT_ID: ์—”๋“œํฌ์ธํŠธ์˜ ID
  • LOCATION_ID: Vertex AI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์ „
  • MODEL_ID: ๋ฐฐํฌํ•  ๋ชจ๋ธ์˜ ID
  • DEPLOYED_MODEL_NAME: DeployedModel์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. DeployedModel์˜ Model ํ‘œ์‹œ ์ด๋ฆ„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • MACHINE_TYPE: (์„ ํƒ์‚ฌํ•ญ) ์ด ๋ฐฐํฌ์˜ ๊ฐ ๋…ธ๋“œ์— ์‚ฌ์šฉ๋˜๋Š” ๋จธ์‹  ๋ฆฌ์†Œ์Šค. ๊ธฐ๋ณธ ์„ค์ •์€ n1-standard-2์ž…๋‹ˆ๋‹ค. ๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.
  • MIN_REPLICA_COUNT: ์ด ๋ฐฐํฌ์˜ ์ตœ์†Œ ๋…ธ๋“œ ์ˆ˜. ์ถ”๋ก  ๋กœ๋“œ ์‹œ ํ•„์š”์— ๋”ฐ๋ผ ์ตœ๋Œ€ ๋…ธ๋“œ ์ˆ˜๊นŒ์ง€ ๋…ธ๋“œ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๋…ธ๋“œ ์ˆ˜ ๋ฏธ๋งŒ์œผ๋กœ๋Š” ์ค„์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • MAX_REPLICA_COUNT: ์ด ๋ฐฐํฌ์˜ ์ตœ๋Œ€ ๋…ธ๋“œ ์ˆ˜. ์ถ”๋ก  ๋กœ๋“œ ์‹œ ํ•„์š”์— ๋”ฐ๋ผ ์ด ๋…ธ๋“œ ์ˆ˜๊นŒ์ง€ ๋…ธ๋“œ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์†Œ ๋…ธ๋“œ ์ˆ˜ ๋ฏธ๋งŒ์œผ๋กœ๋Š” ์ค„์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • CUSTOM_SERVICE_ACCOUNT: ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด SA_NAME@PROJECT_ID.iam.gserviceaccount.com์ž…๋‹ˆ๋‹ค.

gcloud ai endpoints deploy-model ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Linux, macOS ๋˜๋Š” Cloud Shell

gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --min-replica-count=MIN_REPLICA_COUNT \
  --max-replica-count=MAX_REPLICA_COUNT \
  --traffic-split=0=100 \
  --service-account=CUSTOM_SERVICE_ACCOUNT

Windows(PowerShell)

gcloud ai endpoints deploy-model ENDPOINT_ID `
  --region=LOCATION `
  --model=MODEL_ID `
  --display-name=DEPLOYED_MODEL_NAME `
  --machine-type=MACHINE_TYPE `
  --min-replica-count=MIN_REPLICA_COUNT `
  --max-replica-count=MAX_REPLICA_COUNT `
  --traffic-split=0=100 `
  --service-account=CUSTOM_SERVICE_ACCOUNT

Windows(cmd.exe)

gcloud ai endpoints deploy-model ENDPOINT_ID ^
  --region=LOCATION ^
  --model=MODEL_ID ^
  --display-name=DEPLOYED_MODEL_NAME ^
  --machine-type=MACHINE_TYPE ^
  --min-replica-count=MIN_REPLICA_COUNT ^
  --max-replica-count=MAX_REPLICA_COUNT ^
  --traffic-split=0=100 ^
  --service-account=CUSTOM_SERVICE_ACCOUNT
 

API

Vertex AI API๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ ๋ฐฐํฌ ๋”ฐ๋ฅด๊ธฐ projects.locations.endpoints.deployModel ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ deployedModel.serviceAccount ํ•„๋“œ๋ฅผ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ์—์„œ Google Cloud ์„œ๋น„์Šค์— ์•ก์„ธ์Šค

์ด์ „ ์„น์…˜์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ์ปค์Šคํ…€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก Vertex AI๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด ํ•™์Šต ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ์˜ˆ์ธก ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์„œ๋น„์Šค ๊ณ„์ •์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  Google Cloud ์„œ๋น„์Šค ๋ฐ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Cloud ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด (ADC)๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•™์Šต ์ฝ”๋“œ ๋˜๋Š” ์˜ˆ์ธก ์ œ๊ณต ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์•ก์„ธ์Šคํ•  ๋ฆฌ์†Œ์Šค์˜ ํ”„๋กœ์ ํŠธ ID ๋˜๋Š” ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ Google Cloud

๋‹ค์Œ ๋‹จ๊ณ„