TabNet์˜ ํ…Œ์ด๋ธ” ํ˜•์‹ ์›Œํฌํ”Œ๋กœ

์ด ๋ฌธ์„œ์—์„œ๋Š” TabNet ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๊ตฌ์„ฑ์š”์†Œ์šฉ ํ…Œ์ด๋ธ” ํ˜•์‹ ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. TabNet์œผ๋กœ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์€ TabNet์„ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ ํ•™์Šต์„ ์ฐธ์กฐํ•˜์„ธ์š”.

TabNet์€ ์ˆœ์ฐจ์  ์ฃผ์˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ฒฐ์ • ๋‹จ๊ณ„์—์„œ ์ถ”๋ก ํ•  ํŠน์„ฑ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•™์Šต ์šฉ๋Ÿ‰์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์— ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ํ•ด์„ ๊ฐ€๋Šฅ์„ฑ๊ณผ ํ•™์Šต ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ด์ 

  • ๋ฐ์ดํ„ฐ ์„ธํŠธ ํฌ๊ธฐ, ์ถ”๋ก  ์œ ํ˜•, ํ•™์Šต ์˜ˆ์‚ฐ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒ€์ƒ‰ ๊ณต๊ฐ„์„ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Vertex AI์™€ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•™์Šต๋œ ๋ชจ๋ธ์€ Vertex AI ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ผ๊ด„ ์ถ”๋ก ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์˜จ๋ผ์ธ ์ถ”๋ก ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ์„ ์ฆ‰์‹œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ ์œ ํ•œ ๋ชจ๋ธ ํ•ด์„ ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜์‚ฌ ๊ฒฐ์ •์— ์‚ฌ์šฉ๋œ TabNet ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • GPU ํ•™์Šต์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Vertex AI Pipelines์˜ TabNet

TabNet์šฉ ํ…Œ์ด๋ธ” ํ˜•์‹ ์›Œํฌํ”Œ๋กœ๋Š” Vertex AI Pipelines์˜ ๊ด€๋ฆฌํ˜• ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค.

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

TabNet์šฉ ํ…Œ์ด๋ธ” ํ˜•์‹ ์›Œํฌํ”Œ๋กœ์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • HyperparameterTuningJob์€ ๋ชจ๋ธ ํ•™์Šต์— ์‚ฌ์šฉํ•  ์ตœ์ ์˜ ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’ ์ง‘ํ•ฉ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • CustomJob์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋ธ ํ•™์Šต์— ์‚ฌ์šฉํ•  ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ์ง€์ •ํ•˜๊ณ  ํ•™์Šต ๋ฆฌ์†Œ์Šค์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TabNet CustomJob ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๊ตฌ์„ฑ์š”์†Œ ๊ฐœ์š”

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋Š” TabNet CustomJob ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

TabNet CustomJob ํŒŒ์ดํ”„๋ผ์ธ 

ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. feature-transform-engine: ํŠน์„ฑ ์ถ”์ถœ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Feature Transform Engine์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. split-Materialized-data: ๊ตฌ์ฒดํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šต ์„ธํŠธ, ํ‰๊ฐ€ ์„ธํŠธ, ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

    ์ž…๋ ฅ:

    • ๊ตฌ์ฒดํ™”๋œ ๋ฐ์ดํ„ฐ materialized_data

    ์ถœ๋ ฅ:

    • ๊ตฌ์ฒดํ™”๋œ ํ•™์Šต ๋ถ„ํ•  materialized_train_split
    • ๊ตฌ์ฒดํ™”๋œ ํ‰๊ฐ€ ๋ถ„ํ•  materialized_eval_split
    • ๊ตฌ์ฒดํ™”๋œ ํ…Œ์ŠคํŠธ ์„ธํŠธ materialized_test_split
  3. tabnet-trainer: ๋ชจ๋ธ ํ•™์Šต ์‹คํ–‰.

    ์ž…๋ ฅ:

    • ์ธ์Šคํ„ด์Šค ๊ธฐ์ค€ instance_baseline
    • ํ•™์Šต ์Šคํ‚ค๋งˆ training_schema
    • ์ถœ๋ ฅ ๋ณ€ํ™˜ transform_output
    • ๊ตฌ์ฒดํ™”๋œ ํ•™์Šต ๋ถ„ํ•  materialized_train_split
    • ๊ตฌ์ฒดํ™”๋œ ํ‰๊ฐ€ ๋ถ„ํ•  materialized_eval_split
    • ๊ตฌ์ฒดํ™”๋œ ํ…Œ์ŠคํŠธ ์„ธํŠธ materialized_test_split

    ์ถœ๋ ฅ:

    • ์ตœ์ข… ๋ชจ๋ธ
  4. automl-tabular-infra-validator: ์˜ˆ์ธก ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ํ•™์Šต๋œ ๋ชจ๋ธ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  5. model-upload: ์‚ฌ์šฉ์ž์˜ Cloud Storage ๋ฒ„ํ‚ท์˜ ๋ชจ๋ธ์„ Vertex AI ๋ชจ๋ธ๋กœ Vertex AI์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  6. condition-run-evaluation-2: ์„ ํƒ์‚ฌํ•ญ. ํ…Œ์ŠคํŠธ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ฐ€ ์ธก์ •ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. run_evaluation์ด true๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

TabNet HyperparameterTuningJob ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๊ตฌ์„ฑ์š”์†Œ ๊ฐœ์š”

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ TabNet HyperparameterTuningJob ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค

TabNet HyperparameterTuningJob ํŒŒ์ดํ”„๋ผ์ธ 

  1. feature-transform-engine: ํŠน์„ฑ ์ถ”์ถœ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Feature Transform Engine์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. split-Materialized-data: ๊ตฌ์ฒดํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šต ์„ธํŠธ, ํ‰๊ฐ€ ์„ธํŠธ, ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

    ์ž…๋ ฅ:

    • ๊ตฌ์ฒดํ™”๋œ ๋ฐ์ดํ„ฐ materialized_data

    ์ถœ๋ ฅ:

    • ๊ตฌ์ฒดํ™”๋œ ํ•™์Šต ๋ถ„ํ•  materialized_train_split
    • ๊ตฌ์ฒดํ™”๋œ ํ‰๊ฐ€ ๋ถ„ํ•  materialized_eval_split
    • ๊ตฌ์ฒดํ™”๋œ ํ…Œ์ŠคํŠธ ์„ธํŠธ materialized_test_split
  3. get-tabnet-study-spec-parameters: ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์—ฐ๊ตฌ ์‚ฌ์–‘์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ study_spec_parameters_override ๊ฐ’์„ ์ œ๊ณตํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ตฌ ์‚ฌ์–‘ ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    ์ž…๋ ฅ:

    • ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ(max_trial_count, prediction_type)
    • ๋ฐ์ดํ„ฐ ์„ธํŠธ ํ†ต๊ณ„ dataset_stats
    • ์—ฐ๊ตฌ ์‚ฌ์–‘ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ํƒ์  ์žฌ์ •์˜ study_spec_parameters_override

    ์ถœ๋ ฅ:

    • ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ์กฐ์ • ์ž‘์—…์˜ ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ๋ฒ”์œ„์˜ ์ตœ์ข… ๋ชฉ๋ก
  4. tabnet-hyperparameter-tuning-job: ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ • ์‹œ๋„๋ฅผ 1ํšŒ ์ด์ƒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์ž…๋ ฅ:

    • ์ธ์Šคํ„ด์Šค ๊ธฐ์ค€ instance_baseline
    • ํ•™์Šต ์Šคํ‚ค๋งˆ training_schema
    • ์ถœ๋ ฅ ๋ณ€ํ™˜ transform_output
    • ๊ตฌ์ฒดํ™”๋œ ํ•™์Šต ๋ถ„ํ•  materialized_train_split
    • ๊ตฌ์ฒดํ™”๋œ ํ‰๊ฐ€ ๋ถ„ํ•  materialized_eval_split
    • ๊ตฌ์ฒดํ™”๋œ ํ…Œ์ŠคํŠธ ์„ธํŠธ materialized_test_split
    • ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ์กฐ์ • ์ž‘์—…์˜ ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•ด๋‹น ๋ฒ”์œ„์˜ ๋ชฉ๋ก
  5. get-best-hyperparameter-tuning-job-trial: ์ด์ „ ๋‹จ๊ณ„์˜ ์ตœ๊ณ  ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ • ์ž‘์—… ์‹œ๋„์—์„œ ๋ชจ๋ธ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ์ถœ๋ ฅ:

    • ์ตœ์ข… ๋ชจ๋ธ
  6. automl-tabular-infra-validator: ์˜ˆ์ธก ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ํ•™์Šต๋œ ๋ชจ๋ธ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  7. model-upload: ์‚ฌ์šฉ์ž์˜ Cloud Storage ๋ฒ„ํ‚ท์˜ ๋ชจ๋ธ์„ Vertex AI ๋ชจ๋ธ๋กœ Vertex AI์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  8. condition-run-evaluation-2: ์„ ํƒ์‚ฌํ•ญ. ํ…Œ์ŠคํŠธ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ฐ€ ์ธก์ •ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. run_evaluation์ด true๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

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