์จ๋ผ์ธ ์ถ๋ก ๊ณผ ์ผ๊ด ์ถ๋ก ์ ์ฐจ์ด์
์จ๋ผ์ธ ์ถ๋ก ์ ๋ชจ๋ธ ์๋ํฌ์ธํธ์ ์ํ๋๋ ๋๊ธฐ์ ์์ฒญ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ฅ์ ๋ํ ์๋ต์ผ๋ก ์์ฒญํ๊ฑฐ๋ ์ ์์ ์ถ๋ก ์ด ํ์ํ ์ํฉ์์ ์์ฒญํ๋ ๊ฒฝ์ฐ์ ์จ๋ผ์ธ ์ถ๋ก ์ ์ฌ์ฉํ์ธ์.
์ผ๊ด ์ถ๋ก ์ ๋น๋๊ธฐ์ ์์ฒญ์ ๋๋ค. ๋ชจ๋ธ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํ ํ์ ์์ด ๋ชจ๋ธ ๋ฆฌ์์ค์์ ์ง์ ์ผ๊ด ์ถ๋ก ์ ์์ฒญํฉ๋๋ค. ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ฆ๊ฐ์ ์ธ ์๋ต์ด ํ์ํ์ง ์๊ณ ๋จ์ผ ์์ฒญ์ ์ฌ์ฉํ์ฌ ๋์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ผ๊ด ์ถ๋ก ์ ์ฌ์ฉํ์ธ์.
์จ๋ผ์ธ ์ถ๋ก ์ํ
์๋ํฌ์ธํธ์ ๋ชจ๋ธ ๋ฐฐํฌ
๋ชจ๋ธ์ ์จ๋ผ์ธ ์ถ๋ก ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ๋ชจ๋ธ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค. ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ฉด ๋ฌผ๋ฆฌ์ ๋ฆฌ์์ค๊ฐ ๋ชจ๋ธ๊ณผ ์ฐ๊ฒฐ๋๋ฏ๋ก ์งง์ ์ง์ฐ ์๊ฐ์ผ๋ก ์จ๋ผ์ธ ์ถ๋ก ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์๋ํฌ์ธํธ 1๊ฐ์ ๋ชจ๋ธ์ 2๊ฐ ์ด์ ๋ฐฐํฌํ ์ ์๊ณ 2๊ฐ ์ด์์ ์๋ํฌ์ธํธ์ ๋ชจ๋ธ 1๊ฐ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ชจ๋ธ ๋ฐฐํฌ ์ต์ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ชจ๋ธ ๋ฐฐํฌ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ฐฐํฌํฉ๋๋ค.
Google Cloud ์ฝ์
Google Cloud ์ฝ์์ Vertex AI ์น์ ์์ ๋ชจ๋ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฐํฌํ๋ ค๋ ๋ชจ๋ธ์ ์ด๋ฆ์ ํด๋ฆญํ์ฌ ๋ชจ๋ธ ์ค๋ช ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
๋ฒ์ ID ์ด์์ ๋ฐฐํฌํ ๋ชจ๋ธ ๋ฒ์ ์ ID๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐฐํฌ ๋ฐ ํ ์คํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฏธ ์๋ํฌ์ธํธ์ ๋ฐฐํฌ๋ ๋ชจ๋ธ์ ๋ชจ๋ธ ๋ฐฐํฌ ์น์ ์ ๋์ด๋ฉ๋๋ค.
์๋ํฌ์ธํธ์ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ชจ๋ธ์ ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํ๋ ค๋ฉด
์ ์๋ํฌ์ธํธ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ๊ณ ์ ์๋ํฌ์ธํธ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. ๊ธฐ์กด ์๋ํฌ์ธํธ์ ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ค๋ฉด ๊ธฐ์กด ์๋ํฌ์ธํธ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์๋ํฌ์ธํธ ์ด๋ฆ์ ์ ํํฉ๋๋ค.์๋ํฌ์ธํธ 1๊ฐ์ ๋ชจ๋ธ์ 2๊ฐ ์ด์ ์ถ๊ฐํ ์ ์๊ณ ์ฌ๋ฌ ์๋ํฌ์ธํธ์ ๋ชจ๋ธ 1๊ฐ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ
์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์๋ํฌ์ธํธ์ ์ก์ธ์คํ๋ ๋ฐฉ๋ฒ์ ์ ํํฉ๋๋ค.
์๋ํฌ์ธํธ์์ REST API๋ฅผ ํตํด ์ถ๋ก ํ ์ ์๋๋ก ํ์ค์ ํด๋ฆญํฉ๋๋ค.
์๋ํฌ์ธํธ์์ ๋น๊ณต๊ฐ๋ฅผ ํด๋ฆญํ์ฌ ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ ์ฌ์ฉํฉ๋๋ค.
๋ชจ๋ธ์ด ํ๋ ์ด์ ๋ฐฐํฌ๋ ๊ธฐ์กด ์๋ํฌ์ธํธ์ ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ๋ฐฐํฌ ์ค์ธ ๋ชจ๋ธ๊ณผ ์ด๋ฏธ ๋ฐฐํฌ๋ ๋ชจ๋ธ์ ํธ๋ํฝ ๋ถํ ๋น์จ์ ์ ๋ฐ์ดํธํ์ฌ ๋ชจ๋ ๋น์จ ํฉ๊ณ๊ฐ 100%๊ฐ ๋๋๋ก ํฉ๋๋ค.
AutoML ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํฉ๋๋ค.
๋ชจ๋ธ์ ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ํธ๋ํฝ ๋ถํ ๊ฐ์ผ๋ก 100์ ํ์ฉํฉ๋๋ค. ์๋๋ฉด ๋ชจ๋ ํฉํ์ฌ 100์ด ๋๋๋ก ์๋ํฌ์ธํธ์ ๋ชจ๋ ๋ชจ๋ธ์ ๋ํ ํธ๋ํฝ ๋ถํ ๊ฐ์ ์กฐ์ ํฉ๋๋ค.
๋ชจ๋ธ์ ์ ๊ณตํ ์ปดํจํ ๋ ธ๋ ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์ด ์ซ์๋ ํญ์ ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋ ๋ ธ๋ ์์ ๋๋ค. ์ถ๋ก ํธ๋ํฝ์ด ์๋ ๋ ธ๋์ ๋ํ ์๊ธ๋ ์ฒญ๊ตฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ฐ๊ฒฉ ์ฑ ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๋ก ๋ก๊น ์ ๊ธฐ๋ณธ ์ค์ ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
๋ถ๋ฅ ๋ชจ๋ธ๋ง (์ ํ์ฌํญ): ์ค๋ช ๊ธฐ๋ฅ ์ต์ ์น์ ์์Vertex Explainable AI๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ๊ธฐ์กด ์๊ฐํ ์ค์ ์ ์๋ฝํ๊ฑฐ๋ ์ ๊ฐ์ ์ ํํ๊ณ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด ๋ชจ๋ธ์ ํน์ฑ ๊ธฐ์ฌ ๋ถ์ ์ฌ์ฉ ์ค์ ์ ์ ํํ์ฌVertex Explainable AI๋ฅผ ์ฌ์ฉํ์ฌ AutoML ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ์ ๋ฐฐํฌํ๊ณ ์ค๋ช ์ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ์ํํ๋ ๊ฒ์ ์ ํ์ฌํญ์ ๋๋ค. ๋ฐฐํฌ ์ Vertex Explainable AI๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ฉด ๋ฐฐํฌ๋ ๋ ธ๋ ์์ ๋ฐฐํฌ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ฐ๊ฒฉ ์ฑ ์ ์ ์ฐธ์กฐํ์ธ์.
๋ชจ๋ธ์์ ์๋ฃ๋ฅผ ํด๋ฆญํ๊ณ ๋ชจ๋ ํธ๋ํฝ ๋ถํ ๋น์จ์ด ์ฌ๋ฐ๋ฅด๋ฉด ๊ณ์์ ํด๋ฆญํฉ๋๋ค.
๋ชจ๋ธ์ด ๋ฐฐํฌ๋๋ ๋ฆฌ์ ์ด ํ์๋ฉ๋๋ค. ์ด ๋ฆฌ์ ์ ๋ชจ๋ธ์ ๋ง๋ ๋ฆฌ์ ์ด์ด์ผ ํฉ๋๋ค.
๋ฐฐํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ชจ๋ธ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํฉ๋๋ค.
API
Vertex AI API๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค.
- ์๋ํฌ์ธํธ ID๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- ๋ชจ๋ธ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํฉ๋๋ค.
์๋ํฌ์ธํธ ๋ง๋ค๊ธฐ
๊ธฐ์กด ์๋ํฌ์ธํธ์ ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.
gcloud
๋ค์ ์์์์๋ gcloud ai endpoints create
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION_ID: Vertex AI๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์
- ENDPOINT_NAME: ์๋ํฌ์ธํธ์ ํ์ ์ด๋ฆ
Google Cloud CLI ๋๊ตฌ๊ฐ ์๋ํฌ์ธํธ๋ฅผ ๋ง๋๋ ๋ฐ ๋ช ์ด ์ ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION_ID: ๋ฆฌ์
- PROJECT_ID: ํ๋ก์ ํธ ID์ ๋๋ค.
- ENDPOINT_NAME: ์๋ํฌ์ธํธ์ ํ์ ์ด๋ฆ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "display_name": "ENDPOINT_NAME" }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
๊ฐ ํฌํจ๋ ๋๊น์ง ์์
์ํ๋ฅผ ํด๋งํ ์ ์์ต๋๋ค.
Java
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Vertex AI ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Java ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Vertex AI Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Vertex AI์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Vertex AI ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Node.js ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Vertex AI Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Vertex AI์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Vertex AI SDK for Python์ ์ค์นํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ Vertex AI SDK for Python ์ค์น๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋ํฌ์ธํธ ID ๊ฒ์
๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ค๋ฉด ์๋ํฌ์ธํธ ID๊ฐ ํ์ํฉ๋๋ค.
gcloud
๋ค์ ์์์์๋ gcloud ai endpoints list
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION_ID: Vertex AI๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์
- ENDPOINT_NAME: ์๋ํฌ์ธํธ์ ํ์ ์ด๋ฆ
ENDPOINT_ID
์ด์ ํ์๋๋ ๋ฒํธ๋ฅผ ํ์ธํฉ๋๋ค. ๋ค์ ๋จ๊ณ์์ ์ด ID๋ฅผ ์ฌ์ฉํฉ๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION_ID: Vertex AI๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์
- PROJECT_ID: .
- ENDPOINT_NAME: ์๋ํฌ์ธํธ์ ํ์ ์ด๋ฆ
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
๋ชจ๋ธ ๋ฐฐํฌ
์๋์์ ์ธ์ด ๋๋ ํ๊ฒฝ์ ๋ํ ํญ์ ์ ํํ์ธ์.
gcloud
๋ค์ ์์์์๋ gcloud ai endpoints deploy-model
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ค์ ์์์์๋ ์ฌ๋ฌ DeployedModel
๋ฆฌ์์ค ๊ฐ์ ํธ๋ํฝ์ ๋ถํ ํ์ง ์๊ณ Model
์ Endpoint
์ ๋ฐฐํฌํฉ๋๋ค.
์๋์ ๋ช ๋ น์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- ENDPOINT_ID: ์๋ํฌ์ธํธ์ ID
- LOCATION_ID: Vertex AI๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์
- MODEL_ID: ๋ฐฐํฌํ ๋ชจ๋ธ์ ID
-
DEPLOYED_MODEL_NAME:
DeployedModel
์ ์ด๋ฆ์ ๋๋ค.DeployedModel
์Model
ํ์ ์ด๋ฆ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. - MIN_REPLICA_COUNT: ์ด ๋ฐฐํฌ์ ์ต์ ๋ ธ๋ ์. ์ถ๋ก ๋ก๋ ์ ํ์์ ๋ฐ๋ผ ๋ ธ๋ ์๋ฅผ ์ต๋ ๋ ธ๋ ์๊น์ง ๋๋ฆฌ๊ฑฐ๋ ์ด ๋ ธ๋ ์๊น์ง ์ค์ผ ์ ์์ต๋๋ค.
-
MAX_REPLICA_COUNT: ์ด ๋ฐฐํฌ์ ์ต๋ ๋
ธ๋ ์.
์ถ๋ก ๋ก๋ ์ ํ์์ ๋ฐ๋ผ ์ด ๋
ธ๋ ์๋ฅผ ๋
ธ๋ ์๊น์ง ๋๋ฆฌ๊ฑฐ๋ ์ต์ ๋
ธ๋ ์๊น์ง ์ค์ผ ์ ์์ต๋๋ค.
--max-replica-count
ํ๋๊ทธ๋ฅผ ์๋ตํ๋ฉด ์ต๋ ๋ ธ๋ ์๊ฐ--min-replica-count
๊ฐ์ผ๋ก ์ค์ ๋ฉ๋๋ค.
gcloud ai endpoints deploy-model ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Linux, macOS ๋๋ Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows(PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows(cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
ํธ๋ํฝ ๋ถํ
์์ ์์์์ --traffic-split=0=100
ํ๋๊ทธ๋ Endpoint
๊ฐ ์์ ํ๋ ์์ธก ํธ๋ํฝ์ 100%๋ฅผ ์ DeployedModel
๋ก ์ ์กํ๋ฉฐ ์์ ID๋ 0
์ผ๋ก ํํ๋ฉ๋๋ค. Endpoint
์ ์ด๋ฏธ ๋ค๋ฅธ DeployedModel
๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ์ DeployedModel
๋ฐ ์ด์ ๋ชจ๋ธ ๊ฐ์ ํธ๋ํฝ์ ๋ถํ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ํธ๋ํฝ์ 20%๋ฅผ ์ DeployedModel
๋ก, 80%๋ฅผ ์ด์ ๋ชจ๋ธ๋ก ์ ์กํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
์๋์ ๋ช ๋ น์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- OLD_DEPLOYED_MODEL_ID: ๊ธฐ์กด
DeployedModel
์ ID
gcloud ai endpoints deploy-model ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Linux, macOS ๋๋ Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows(PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows(cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
๋ชจ๋ธ ๋ฐฐํฌ
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION_ID: Vertex AI๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์
- PROJECT_ID: .
- ENDPOINT_ID: ์๋ํฌ์ธํธ์ ID
- MODEL_ID: ๋ฐฐํฌํ ๋ชจ๋ธ์ ID์ ๋๋ค.
-
DEPLOYED_MODEL_NAME:
DeployedModel
์ ์ด๋ฆ์ ๋๋ค.DeployedModel
์Model
ํ์ ์ด๋ฆ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. - MIN_REPLICA_COUNT: ์ด ๋ฐฐํฌ์ ์ต์ ๋ ธ๋ ์. ์ถ๋ก ๋ก๋ ์ ํ์์ ๋ฐ๋ผ ๋ ธ๋ ์๋ฅผ ์ต๋ ๋ ธ๋ ์๊น์ง ๋๋ฆฌ๊ฑฐ๋ ์ด ๋ ธ๋ ์๊น์ง ์ค์ผ ์ ์์ต๋๋ค.
- MAX_REPLICA_COUNT: ์ด ๋ฐฐํฌ์ ์ต๋ ๋ ธ๋ ์. ์ถ๋ก ๋ก๋ ์ ํ์์ ๋ฐ๋ผ ์ด ๋ ธ๋ ์๋ฅผ ๋ ธ๋ ์๊น์ง ๋๋ฆฌ๊ฑฐ๋ ์ต์ ๋ ธ๋ ์๊น์ง ์ค์ผ ์ ์์ต๋๋ค.
- TRAFFIC_SPLIT_THIS_MODEL: ์ด ์์ ๊ณผ ํจ๊ป ๋ฐฐํฌ๋๋ ๋ชจ๋ธ๋ก ๋ผ์ฐํ ๋ ์ด ์๋ํฌ์ธํธ์ ๋ํ ์์ธก ํธ๋ํฝ ๋น์จ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 100์ ๋๋ค. ๋ชจ๋ ํธ๋ํฝ ๋น์จ์ ํฉ์ 100์ด ๋์ด์ผ ํฉ๋๋ค. ํธ๋ํฝ ๋ถํ ์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
- DEPLOYED_MODEL_ID_N: ์ ํ์ฌํญ. ๋ค๋ฅธ ๋ชจ๋ธ์ด ์ด ์๋ํฌ์ธํธ์ ๋ฐฐํฌ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋น์จ์ ํฉ์ด 100์ด ๋๋๋ก ํธ๋ํฝ ๋ถํ ๋น์จ์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
- TRAFFIC_SPLIT_MODEL_N: ๋ฐฐํฌ๋ ๋ชจ๋ธ ID ํค์ ํธ๋ํฝ ๋ถํ ๋น์จ ๊ฐ
- PROJECT_NUMBER: ํ๋ก์ ํธ์ ์๋์ผ๋ก ์์ฑ๋ ํ๋ก์ ํธ ๋ฒํธ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "deployedModel": { "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "automaticResources": { "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT } }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Vertex AI ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Java ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Vertex AI Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Vertex AI์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Vertex AI ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Node.js ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Vertex AI Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Vertex AI์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
Vertex AI SDK for Python์ ์ค์นํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ Vertex AI SDK for Python ์ค์น๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๋ก ๋ก๊น ์ ๊ธฐ๋ณธ ์ค์ ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
์์ ์ํ ๊ฐ์ ธ์ค๊ธฐ
์ผ๋ถ ์์ฒญ์ ์๋ฃํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฅ๊ธฐ ์คํ ์์ ์ ์์ํฉ๋๋ค. ์ด๋ฌํ ์์ฒญ์ ์์ ์ํ๋ฅผ ๋ณด๊ฑฐ๋ ์์ ์ ์ทจ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค. Vertex AI๋ ์ฅ๊ธฐ ์คํ ์์ ์ ํธ์ถํ๋ ๋์ฐ๋ฏธ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฅ๊ธฐ ์คํ ์์ ๋ค๋ฃจ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฐฐํฌ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ ์ถ๋ก ์ํ
์จ๋ผ์ธ ์ถ๋ก ์ ์ํํ๋ ค๋ฉด ๋ถ์์ ์ํด ํ๋ ์ด์์ ํ ์คํธ ํญ๋ชฉ์ ๋ชจ๋ธ์ ์ ์ถํ๋ฉด ๋ชจ๋ธ์ด ๋ชจ๋ธ์ ๋ชฉํ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. ์ถ๋ก ๊ฒฐ๊ณผ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฒฐ๊ณผ ํด์ ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ ์ถ๋ก ์ ์์ฒญํฉ๋๋ค. ๋ชจ๋ธ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค.
Google Cloud ์ฝ์์ Vertex AI ์น์ ์์ ๋ชจ๋ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ชจ๋ธ ๋ชฉ๋ก์์ ์ถ๋ก ์ ์์ฒญํ ๋ชจ๋ธ์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฐํฌ ๋ฐ ํ ์คํธ ํญ์ ์ ํํฉ๋๋ค.
๋ชจ๋ธ ํ ์คํธ ์น์ ์์ ํ ์คํธ ํญ๋ชฉ์ ์ถ๊ฐํ์ฌ ์ถ๋ก ์ ์์ฒญํฉ๋๋ค.
์ด๋ฏธ์ง ๋ชฉํ์ ๋ํ AutoML ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ์ฌ ์ถ๋ก ์ ์์ฒญํด์ผ ํฉ๋๋ค.
๋ก์ปฌ ํน์ฑ ์ค์๋์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค๋ช ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๋ก ์ด ์๋ฃ๋๋ฉด Vertex AI๊ฐ ์ฝ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
API
Vertex AI API๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ ์ถ๋ก ์ ์์ฒญํฉ๋๋ค. ๋ชจ๋ธ์ ์๋ํฌ์ธํธ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค.
์ผ๊ด ์ถ๋ก ๊ฐ์ ธ์ค๊ธฐ
์ผ๊ด ์ถ๋ก ์์ฒญ์ ์ํํ๋ ค๋ฉด Vertex AI๊ฐ ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ์ ๋ ฅ ์์ค์ ์ถ๋ ฅ ํ์์ ์ง์ ํฉ๋๋ค. AutoML ์ด๋ฏธ์ง ๋ชจ๋ธ ์ ํ์ ์ผ๊ด ์ถ๋ก ์๋ ์ ๋ ฅ JSON Lines ํ์ผ๊ณผ ์ถ๋ ฅ์ ์ ์ฅํ Cloud Storage ๋ฒํท ์ด๋ฆ์ด ํ์ํฉ๋๋ค.
์ ๋ ฅ ๋ฐ์ดํฐ ์๊ตฌ์ฌํญ
์ผ๊ด ์์ฒญ์ ์ ๋ ฅ์ ์ถ๋ก ์ ์ํด ๋ชจ๋ธ์ ๋ณด๋ผ ํญ๋ชฉ์ ์ง์ ํฉ๋๋ค. ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ์ ๊ฒฝ์ฐ JSON Lines ํ์ผ์ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ์ํํ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ์ง์ ํ ๋ค์ JSON Lines ํ์ผ์ Cloud Storage ๋ฒํท์ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ค์ ์ํ์์๋ ์ ๋ ฅ JSON Lines ํ์ผ์ ๋จ์ผ ์ค์ ๋ณด์ฌ์ค๋๋ค.
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
์ผ๊ด ์ถ๋ก ์์ฒญ
์ผ๊ด ์ถ๋ก ์์ฒญ์ ๊ฒฝ์ฐ Google Cloud ์ฝ์ ๋๋ Vertex AI API๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ์ถํ ์ ๋ ฅ ํญ๋ชฉ ์์ ๋ฐ๋ผ ์ผ๊ด ์ถ๋ก ํ์คํฌ๋ฅผ ์๋ฃํ๋ ๋ฐ ๋ค์ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
Google Cloud ์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ์ผ๊ด ์ถ๋ก ์ ์์ฒญํฉ๋๋ค.
Google Cloud ์ฝ์์ Vertex AI ์น์ ์์ ์ผ๊ด ์์ธก ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ์ ์ผ๊ด ์์ธก ์ฐฝ์ ์ด๊ณ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
- ์ผ๊ด ์ถ๋ก ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- ๋ชจ๋ธ ์ด๋ฆ์์ ์ด ์ผ๊ด ์ถ๋ก ์ ์ฌ์ฉํ ๋ชจ๋ธ์ ์ด๋ฆ์ ์ ํํฉ๋๋ค.
- ์์ค ๊ฒฝ๋ก์์ JSON Lines ์ ๋ ฅ ํ์ผ์ด ์๋ Cloud Storage ์์น๋ฅผ ์ง์ ํฉ๋๋ค.
- ๋์ ๊ฒฝ๋ก์์ ์ผ๊ด ์ถ๋ก ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋๋ Cloud Storage ์์น๋ฅผ ์ง์ ํฉ๋๋ค. ์ถ๋ ฅ ํ์์ ๋ชจ๋ธ์ ๋ชฉํ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. ์ด๋ฏธ์ง ๋ชฉํ์ AutoML ๋ชจ๋ธ์ JSON Lines ํ์ผ์ ์ถ๋ ฅํฉ๋๋ค.
API
Vertex AI API๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๊ด ์ถ๋ก ์์ฒญ์ ์ ์กํฉ๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION_ID: ๋ชจ๋ธ์ด ์ ์ฅ๋๊ณ ์ผ๊ด ์ถ๋ก ์์
์ด ์คํ๋๋ ๋ฆฌ์ ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด
us-central1
์ ๋๋ค. - PROJECT_ID:
- BATCH_JOB_NAME: ์ผ๊ด ์์ ์ ํ์ ์ด๋ฆ
- MODEL_ID: ์ถ๋ก ์ ์ํํ๋ ๋ฐ ์ฌ์ฉํ ๋ชจ๋ธ์ ID์ ๋๋ค.
- THRESHOLD_VALUE(์ ํ์ฌํญ): Vertex AI๋ ์ ๋ขฐ๋ ์ ์๊ฐ ์ด ๊ฐ ์ด์์ธ ์ถ๋ก ๋ง ๋ฐํํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์
0.0
์ ๋๋ค. - MAX_PREDICTIONS (์ ํ์ฌํญ): Vertex AI๋ ์ ๋ขฐ๋ ์ ์๊ฐ ๊ฐ์ฅ ๋์ ์์ผ๋ก ์ต๋ ์ด ์์ ์ถ๋ก ์ ๋ฐํํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์
10
์ ๋๋ค. - URI: ์ ๋ ฅ JSON Lines ํ์ผ์ด ์๋ Cloud Storage URI
- BUCKET: Cloud Storage ๋ฒํท
- PROJECT_NUMBER: ํ๋ก์ ํธ์ ์๋์ผ๋ก ์์ฑ๋ ํ๋ก์ ํธ ๋ฒํธ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT/locations/LOCATION/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
curl
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", "modelDisplayName": "MODEL_NAME", "modelObjective": "MODEL_OBJECTIVE" }
์์
state
๊ฐ JOB_STATE_SUCCEEDED
๊ฐ ๋ ๋๊น์ง BATCH_JOB_ID๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๊ด ์์
์ ์ํ๋ฅผ ํด๋งํ ์ ์์ต๋๋ค.
Python
Vertex AI SDK for Python์ ์ค์นํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ Vertex AI SDK for Python ์ค์น๋ฅผ ์ฐธ์กฐํ์ธ์. ์์ธํ ๋ด์ฉ์ Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ผ๊ด ์ถ๋ก ๊ฒฐ๊ณผ ๊ฒ์
Vertex AI๋ ์ง์ ๋ ๋์์ ์ผ๊ด ์ถ๋ก ์ถ๋ ฅ์ ๋ณด๋ ๋๋ค.
์ผ๊ด ์ถ๋ก ์์ ์ด ์๋ฃ๋๋ฉด ์์ฒญ์ ์ง์ ํ Cloud Storage ๋ฒํท์ ์ถ๋ก ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
์ผ๊ด ์ถ๋ก ๊ฒฐ๊ณผ ์์
๋ค์์ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ์ ์ผ๊ด ์ถ๋ก ๊ฒฐ๊ณผ ์์์ ๋๋ค.
{ "instance": {"content": "gs://bucket/image.jpg", "mimeType": "image/jpeg"}, "prediction": { "ids": [1, 2], "displayNames": ["cat", "dog"], "confidences": [0.7, 0.5] } }