์ด ํ์ด์ง์์๋ Vertex AI ๊ด๋ฆฌํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปค์คํ ๋ชจ๋ธ์ ํ์ตํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ด๋ฆฌํ ๋ฐ์ดํฐ ์ธํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ค์ ์์น์์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ๋ผ๋ฒจ ๋ฐ ์ฌ๋ฌ ์ฃผ์ ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค.
- ํตํฉ ๋ฐ์ดํฐ ๋ผ๋ฒจ ์ง์ ์ ์ฌ์ฉํ์ฌ ์๋ ๋ผ๋ฒจ๋ง ์์ ์ ์์ฑํฉ๋๋ค.
- ๊ฑฐ๋ฒ๋์ค ๋ฐ ๋ฐ๋ณต ๊ฐ๋ฐ์ ๋ชจ๋ธ ๊ณ๋ณด๋ฅผ ์ถ์ ํฉ๋๋ค.
- ๋์ผํ ๋ฐ์ดํฐ ์ธํธ๋ก AutoML๊ณผ ์ปค์คํ ๋ชจ๋ธ์ ํ์ต์์ผ ๋ชจ๋ธ ์ฑ๋ฅ์ ๋น๊ตํฉ๋๋ค.
- ๋ฐ์ดํฐ ํต๊ณ ๋ฐ ์๊ฐํ๋ฅผ ์์ฑํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ํ์ต, ํ ์คํธ, ๊ฒ์ฆ ์ธํธ๋ก ์๋ ๋ถํ ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
ํ์ต ์ ํ๋ฆฌ์ผ์ด์
์์ ๊ด๋ฆฌํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ํ์ต์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ์ธํธ์ ํ์ต ํ์ดํ๋ผ์ธ์ ๊ฐ์ ๋ฆฌ์ ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ํ Dataset
๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์ ์ ์ด์ฉํด์ผ ํฉ๋๋ค.
ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ ์ธํธ์ ์ก์ธ์ค
์ปค์คํ ํ์ต ํ์ดํ๋ผ์ธ์ ๋ง๋ค ๋ ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ด Vertex AI ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ๋๋ก ์ง์ ํ ์ ์์ต๋๋ค.
๋ฐํ์ ์ Vertex AI๋ ํ์ต ์ปจํ ์ด๋์์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ฌ ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌํฉ๋๋ค.
AIP_DATA_FORMAT
: ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ด๋ ํ์์ ๋๋ค. ๊ฐ๋ฅํ ๊ฐ์jsonl
,csv
, ๋๋bigquery
์ ๋๋ค.AIP_TRAINING_DATA_URI
: ํ์ต ๋ฐ์ดํฐ์ BigQuery URI ๋๋ ํ์ต ๋ฐ์ดํฐ ํ์ผ์ Cloud Storage URI์ ๋๋ค.AIP_VALIDATION_DATA_URI
: ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ดํฐ์ BigQuery URI ๋๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ดํฐ ํ์ผ์ Cloud Storage URI์ ๋๋ค.AIP_TEST_DATA_URI
: ํ ์คํธ ๋ฐ์ดํฐ์ BigQuery URI ๋๋ ํ ์คํธ ๋ฐ์ดํฐ ํ์ผ์ Cloud Storage URI์ ๋๋ค.
๋ฐ์ดํฐ ์ธํธ์ AIP_DATA_FORMAT
์ด jsonl
๋๋ csv
์ด๋ฉด ๋ฐ์ดํฐ URI ๊ฐ์ gs://bucket_name/path/training-*
๊ฐ์ Cloud Storage URI๋ฅผ ์๋ฏธํฉ๋๋ค. ๊ฐ ๋ฐ์ดํฐ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ๋น๊ต์ ์๊ฒ ์ ์งํ๊ธฐ ์ํด Vertex AI๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ๋ฌ ํ์ผ๋ก ๋ถํ ํฉ๋๋ค. ํ์ต, ๊ฒ์ฆ, ๋๋ ํ
์คํธ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ถํ ๋ ์ ์๊ธฐ ๋๋ฌธ์ URI๋ ์์ผ๋ ์นด๋ ํ์์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
AIP_DATA_FORMAT
์ด bigquery
์ด๋ฉด ๋ฐ์ดํฐ URI ๊ฐ์ bq://project.dataset.table
์ ๊ฐ์ BigQuery URI๋ฅผ ๋ํ๋
๋๋ค.
BigQuery ๋ฐ์ดํฐ๋ฅผ ํตํ ํ์ด์ง ์์ธํ ์์๋ณด๊ธฐ
๋ฐ์ดํฐ ์ธํธ ํ์
๋ค์ ์น์ ์์๋ Vertex AI๊ฐ ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ ๋ฌํ ๋ ๋ฐ์ดํฐ ํ์์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ด ๋๋ค.
์ด๋ฏธ์ง ๋ฐ์ดํฐ ์ธํธ
์ด๋ฏธ์ง ๋ฐ์ดํฐ ์ธํธ๋ JSON Line ํ์์ผ๋ก ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ์ ๋ชฉํ์ ๋ํ ํญ์ ์ ํํ์ฌ Vertex AI๊ฐ ๋ฐ์ดํฐ ์ธํธ์ ํ์์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ณด์ธ์.
๋จ์ผ ๋ผ๋ฒจ ๋ถ๋ฅ
Vertex AI๋ ๋จ์ผ ๋ผ๋ฒจ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotation": { "displayName": "LABEL", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
ํ๋ ์ฐธ๊ณ ์ฌํญ:
imageGcsUri
: ์ด ์ด๋ฏธ์ง์ Cloud Storage URI์ ๋๋ค.annotationResourceLabels
: ๋ค์์ ํค-๊ฐ ๋ฌธ์์ด ์์ ํฌํจํฉ๋๋ค. Vertex AI๋ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ ์ธํธ๋ฅผ ์ง์ ํฉ๋๋ค.dataItemResourceLabels
- ๋ค์์ ํค-๊ฐ ๋ฌธ์์ด ์์ ํฌํจํฉ๋๋ค. ํ์ต, ํ ์คํธ, ๊ฒ์ฆ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋จธ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ํฉ๋๋ค.
JSON Line ์์
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
๋ฉํฐ ๋ผ๋ฒจ ๋ถ๋ฅ
Vertex AI๋ ๋ค์ค ๋ผ๋ฒจ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotations": [ { "displayName": "LABEL1", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "flower_type" } }, { "displayName": "LABEL2", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "image_shot_type" } } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
ํ๋ ์ฐธ๊ณ ์ฌํญ:
imageGcsUri
: ์ด ์ด๋ฏธ์ง์ Cloud Storage URI์ ๋๋ค.annotationResourceLabels
: ๋ค์์ ํค-๊ฐ ๋ฌธ์์ด ์์ ํฌํจํฉ๋๋ค. Vertex AI๋ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ ์ธํธ๋ฅผ ์ง์ ํฉ๋๋ค.dataItemResourceLabels
- ๋ค์์ ํค-๊ฐ ๋ฌธ์์ด ์์ ํฌํจํฉ๋๋ค. ํ์ต, ํ ์คํธ, ๊ฒ์ฆ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋จธ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ํฉ๋๋ค.
JSON Line ์์
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
๊ฐ์ฒด ๊ฐ์ง
Vertex AI๋ ๊ฐ์ฒด ๊ฐ์ง ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "imageGcsUri": "gs://bucket/filename.ext", "boundingBoxAnnotations": [ { "displayName": "OBJECT1_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, { "displayName": "OBJECT2_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX" } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "test/train/validation" } }
ํ๋ ์ฐธ๊ณ ์ฌํญ:
imageGcsUri
: ์ด ์ด๋ฏธ์ง์ Cloud Storage URI์ ๋๋ค.annotationResourceLabels
: ๋ค์์ ํค-๊ฐ ๋ฌธ์์ด ์์ ํฌํจํฉ๋๋ค. Vertex AI๋ ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ ์ธํธ๋ฅผ ์ง์ ํฉ๋๋ค.dataItemResourceLabels
- ๋ค์์ ํค-๊ฐ ๋ฌธ์์ด ์์ ํฌํจํฉ๋๋ค. ํ์ต, ํ ์คํธ, ๊ฒ์ฆ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋จธ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ํฉ๋๋ค.
JSON Line ์์
{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
ํ ์ด๋ธ ํ์ ๋ฐ์ดํฐ ์ธํธ
Vertex AI๋ ํ ์ด๋ธ ํ์ ๋ฐ์ดํฐ๋ฅผ CSV ํ์์ผ๋ก ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌํ๊ฑฐ๋ BigQuery ํ ์ด๋ธ ๋๋ ๋ทฐ์ URI๋ก ์ ๋ฌํฉ๋๋ค. ๋ฐ์ดํฐ ์์ค ํ์ ๋ฐ ์๊ตฌ์ฌํญ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฐ์ ธ์ค๊ธฐ ์์ค ์ค๋น๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ฐ์ดํฐ ์ธํธ ์คํค๋ง์ ๋ํ ์์ธํ ๋ด์ฉ์ Google Cloud ์ฝ์์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
ํ ์คํธ ๋ฐ์ดํฐ ์ธํธ
ํ ์คํธ ๋ฐ์ดํฐ ์ธํธ๋ JSON Line ํ์์ผ๋ก ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ์ ๋ชฉํ์ ๋ํ ํญ์ ์ ํํ์ฌ Vertex AI๊ฐ ๋ฐ์ดํฐ ์ธํธ์ ํ์์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ณด์ธ์.
๋จ์ผ ๋ผ๋ฒจ ๋ถ๋ฅ
Vertex AI๋ ๋จ์ผ ๋ผ๋ฒจ ํ ์คํธ ๋ถ๋ฅ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "classificationAnnotation": { "displayName": "label" }, "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "classificationAnnotation": { "displayName": "label2" }, "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
๋ฉํฐ ๋ผ๋ฒจ ๋ถ๋ฅ
Vertex AI๋ ๋ค์ค ๋ผ๋ฒจ ํ ์คํธ ๋ถ๋ฅ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "classificationAnnotations": [{ "displayName": "label1" },{ "displayName": "label2" }], "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "classificationAnnotations": [{ "displayName": "label2" },{ "displayName": "label3" }], "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
ํญ๋ชฉ ์ถ์ถ
Vertex AI๋ ํญ๋ชฉ ์ถ์ถ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "textSegmentAnnotations": [ { "startOffset":number, "endOffset":number, "displayName": "label" }, ... ], "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "textSegmentAnnotations": [ { "startOffset":number, "endOffset":number, "displayName": "label" }, ... ], "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
๊ฐ์ ๋ถ์
Vertex AI๋ ๊ฐ์ ๋ถ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "sentimentAnnotation": { "sentiment": number, "sentimentMax": number }, "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "sentimentAnnotation": { "sentiment": number, "sentimentMax": number }, "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
๋์์ ๋ฐ์ดํฐ ์ธํธ
๋์์ ๋ฐ์ดํฐ ์ธํธ๋ JSON Lines ํ์์ผ๋ก ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ์ ๋ชฉํ์ ๋ํ ํญ์ ์ ํํ์ฌ Vertex AI๊ฐ ๋ฐ์ดํฐ ์ธํธ์ ํ์์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ณด์ธ์.
๋์ ์ธ์
Vertex AI๋ ์์ ์ธ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "videoGcsUri': "gs://bucket/filename.ext", "timeSegments": [{ "startTime": "start_time_of_fully_annotated_segment", "endTime": "end_time_of_segment"}], "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "ml_use": "train|test" } }
์ฐธ๊ณ : ์ฌ๊ธฐ์ ์์
ํ์์คํฌํ๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์๊ฐ ์ธ๊ทธ๋จผํธ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. timeSegmentAnnotations
์ startTime
๋ฐ endTime
์ ๋์ผํ ์ ์์ผ๋ฉฐ ์์
์ ํค ํ๋ ์์ ํด๋นํฉ๋๋ค.
JSON Line ์์
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"ml_use": "test"}} ...
๋ถ๋ฅ
Vertex AI๋ ๋ถ๋ฅ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "videoGcsUri": "gs://bucket/filename.ext", "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
JSON Line ์์ - ๋์์ ๋ถ๋ฅ
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
๊ฐ์ฒด ์ถ์
Vertex AI๋ ๊ฐ์ฒด ์ถ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ค์ ์คํค๋ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ ํ์์ ์ง์ ํฉ๋๋ค. ์คํค๋ง์ ๊ตฌ์กฐ๋ OpenAPI ์คํค๋ง๋ฅผ ๋ฐ๋ฆ ๋๋ค.
gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml
๋ด๋ณด๋ธ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ค์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๋ ์ฑ์ ์ํด ์ค๋ฐ๊ฟ์ ์ฌ์ฉํ์ต๋๋ค.
{ "videoGcsUri": "gs://bucket/filename.ext", "TemporalBoundingBoxAnnotations": [{ "displayName": "LABEL", "xMin": "leftmost_coordinate_of_the_bounding box", "xMax": "rightmost_coordinate_of_the_bounding box", "yMin": "topmost_coordinate_of_the_bounding box", "yMax": "bottommost_coordinate_of_the_bounding box", "timeOffset": "timeframe_object-detected" "instanceId": "instance_of_object "annotationResourceLabels": "resource_labels" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
JSON Line ์์
{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
๋ค์ ๋จ๊ณ
- ํ์ต ํ์ดํ๋ผ์ธ์ ๋ง๋ค์ด ์ปค์คํ ํ์ต์์ ๊ด๋ฆฌํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ