Skip to main content

Try in Colab

Hugging Face Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ฒจ๋‹จ NLP ๋ชจ๋ธ(์˜ˆ: BERT)๊ณผ ํ˜ผํ•ฉ ์ •๋ฐ€๋„ ๋ฐ ๊ทธ๋ ˆ์ด๋””์–ธํŠธ ์ฒดํฌํฌ์ธํŠธ์™€ ๊ฐ™์€ ํŠธ๋ ˆ์ด๋‹ ๊ธฐ์ˆ ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. W&B ํ†ตํ•ฉ์€ ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋Œ€ํ™”ํ˜• ์ค‘์•™ ์ง‘์ค‘์‹ ๋Œ€์‹œ๋ณด๋“œ์— ํ’๋ถ€ํ•˜๊ณ  ์œ ์—ฐํ•œ ์‹คํ—˜ ์ถ”์  ๋ฐ ๋ชจ๋ธ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋กœ ์ฐจ์„ธ๋Œ€ ๋กœ๊น… ๊ตฌํ˜„

W&B ๋Œ€ํ™”ํ˜• ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์‹คํ—˜ ๊ฒฐ๊ณผ ํƒ์ƒ‰
์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Google Colab์„ ํ™•์ธํ•ด ๋ณด์„ธ์š”.

์‹œ์ž‘ํ•˜๊ธฐ: Experiments ์ถ”์ 

๊ฐ€์ž…ํ•˜๊ณ  API ํ‚ค ๋งŒ๋“ค๊ธฐ

API ํ‚ค๋Š” ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ๊ฐ€ W&B์— ์ธ์ฆ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์—์„œ API ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณด๋‹ค ๊ฐ„์†Œํ™”๋œ ๋ฐฉ๋ฒ•์„ ์›ํ•˜์‹œ๋ฉด https://wandb.ai/authorize๋กœ ๋ฐ”๋กœ ์ด๋™ํ•˜์—ฌ API ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์‹œ๋œ API ํ‚ค๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ์ž์™€ ๊ฐ™์€ ์•ˆ์ „ํ•œ ์œ„์น˜์— ์ €์žฅํ•˜์„ธ์š”.
  1. ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. User Settings๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ API Keys ์„น์…˜์œผ๋กœ ์Šคํฌ๋กคํ•ฉ๋‹ˆ๋‹ค.
  3. Reveal์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์‹œ๋œ API ํ‚ค๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. API ํ‚ค๋ฅผ ์ˆจ๊ธฐ๋ ค๋ฉด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นฉ๋‹ˆ๋‹ค.

wandb ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ ๋กœ๊ทธ์ธ

wandb ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๊ณ  ๋กœ๊ทธ์ธํ•˜๋Š” ๋ฐฉ๋ฒ•:
  1. WANDB_API_KEY ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ API ํ‚ค๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. wandb ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
W&B๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ€ต์Šคํƒ€ํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์ง€์ •

W&B Project๋Š” ๊ด€๋ จ Runs์—์„œ ๊ธฐ๋ก๋œ ๋ชจ๋“  ์ฐจํŠธ, ๋ฐ์ดํ„ฐ ๋ฐ Models๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ฉด ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋‹จ์ผ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ•œ ๊ณณ์— ๋ณด๊ด€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. Run์„ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด WANDB_PROJECT ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. WandbCallback์€ ์ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ Run์„ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Trainer๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์€ ๊ธฐ๋ณธ์ ์œผ๋กœ huggingface๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

ํŠธ๋ ˆ์ด๋‹ Runs๋ฅผ W&B์— ๋กœ๊น…

Trainer ํŠธ๋ ˆ์ด๋‹ ์ธ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ์ฝ”๋“œ ๋‚ด๋ถ€ ๋˜๋Š” ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‹จ๊ณ„๋Š” W&B๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊น…์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด report_to๋ฅผ "wandb"๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. TrainingArguments์˜ logging_steps ์ธ์ˆ˜๋Š” ํŠธ๋ ˆ์ด๋‹ ์ค‘์— ํŠธ๋ ˆ์ด๋‹ ๋ฉ”ํŠธ๋ฆญ์ด W&B๋กœ ํ‘ธ์‹œ๋˜๋Š” ๋นˆ๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. run_name ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ W&B์—์„œ ํŠธ๋ ˆ์ด๋‹ Run์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋ธ์ด ํŠธ๋ ˆ์ด๋‹ํ•˜๋Š” ๋™์•ˆ ์†์‹ค, ํ‰๊ฐ€ ๋ฉ”ํŠธ๋ฆญ, ๋ชจ๋ธ ํ† ํด๋กœ์ง€ ๋ฐ ๊ทธ๋ ˆ์ด๋””์–ธํŠธ๋ฅผ W&B์— ๋กœ๊น…ํ•ฉ๋‹ˆ๋‹ค.
TensorFlow๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? PyTorch Trainer๋ฅผ TensorFlow TFTrainer๋กœ ๋ฐ”๊พธ๊ธฐ๋งŒ ํ•˜์„ธ์š”.

๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ ์„ค์ •

Artifacts๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ๋Œ€ 100GB์˜ Models ๋ฐ Datasets๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ Weights & Biases Registry๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Registry๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Models๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ํƒ์ƒ‰ํ•˜๊ณ  ํ‰๊ฐ€ํ•˜๊ณ , ์Šคํ…Œ์ด์ง•์„ ์ค€๋น„ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hugging Face ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ Artifacts์— ๋กœ๊น…ํ•˜๋ ค๋ฉด WANDB_LOG_MODEL ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์Œ _์ค‘ ํ•˜๋‚˜_๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • checkpoint: TrainingArguments์—์„œ args.save_steps๋งˆ๋‹ค ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • end: load_best_model_at_end๋„ ์„ค์ •๋œ ๊ฒฝ์šฐ ํŠธ๋ ˆ์ด๋‹์ด ๋๋‚˜๋ฉด ๋ชจ๋ธ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • false: ๋ชจ๋ธ์„ ์—…๋กœ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด์ œ๋ถ€ํ„ฐ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ชจ๋“  Transformers Trainer๋Š” Models๋ฅผ W&B Project์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊น…ํ•˜๋Š” ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋Š” Artifacts UI๋ฅผ ํ†ตํ•ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ „์ฒด ๋ชจ๋ธ ๊ณ„๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค(UI์—์„œ ์˜ˆ์ œ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ ์ฐธ์กฐ).
๊ธฐ๋ณธ์ ์œผ๋กœ WANDB_LOG_MODEL์ด end๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ๋ชจ๋ธ์€ model-{run_id}๋กœ W&B Artifacts์— ์ €์žฅ๋˜๊ณ , WANDB_LOG_MODEL์ด checkpoint๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ checkpoint-{run_id}๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ TrainingArguments์—์„œ run_name์„ ์ „๋‹ฌํ•˜๋ฉด ๋ชจ๋ธ์€ model-{run_name} ๋˜๋Š” checkpoint-{run_name}๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

W&B Registry

์ฒดํฌํฌ์ธํŠธ๋ฅผ Artifacts์— ๋กœ๊น…ํ•œ ํ›„์—๋Š” **Registry**๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๊ณ ์˜ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ํŒ€ ์ „์ฒด์—์„œ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Registry๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…๋ณ„๋กœ ์ตœ๊ณ ์˜ Models๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , Models์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๊ณ , ์ „์ฒด ML ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ถ”์  ๋ฐ ๊ฐ์‚ฌํ•˜๊ณ , ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ Artifact๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด Registry๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํŠธ๋ ˆ์ด๋‹ ์ค‘ ํ‰๊ฐ€ ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”

ํŠธ๋ ˆ์ด๋‹ ๋˜๋Š” ํ‰๊ฐ€ ์ค‘ ๋ชจ๋ธ ์ถœ๋ ฅ์„ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์€ ๋ชจ๋ธ ํŠธ๋ ˆ์ด๋‹ ๋ฐฉ์‹์„ ์‹ค์ œ๋กœ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ข…์ข… ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. Transformers Trainer์˜ ์ฝœ๋ฐฑ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋ธ์˜ ํ…์ŠคํŠธ ์ƒ์„ฑ ์ถœ๋ ฅ ๋˜๋Š” ๊ธฐํƒ€ ์˜ˆ์ธก๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ ์œ ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ W&B Tables์— ๋กœ๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ **์‚ฌ์šฉ์ž ์ง€์ • ๋กœ๊น… ์„น์…˜**์—์„œ ํŠธ๋ ˆ์ด๋‹ ์ค‘ ํ‰๊ฐ€ ์ถœ๋ ฅ์„ ๋กœ๊น…ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ W&B Table์— ๋กœ๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ „์ฒด ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
ํ‰๊ฐ€ ์ถœ๋ ฅ์ด ์žˆ๋Š” W&B Table์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

W&B Run ์ข…๋ฃŒ(๋…ธํŠธ๋ถ ์ „์šฉ)

ํŠธ๋ ˆ์ด๋‹์ด Python ์Šคํฌ๋ฆฝํŠธ์— ์บก์Аํ™”๋œ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด W&B Run์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. Jupyter ๋˜๋Š” Google Colab ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ wandb.finish()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํŠธ๋ ˆ์ด๋‹์ด ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ์‹œ๊ฐํ™”

ํŠธ๋ ˆ์ด๋‹ ๊ฒฐ๊ณผ๋ฅผ ๋กœ๊น…ํ–ˆ์œผ๋ฉด W&B Dashboard์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋™์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์—ฐํ•˜๊ณ  ๋Œ€ํ™”ํ˜• ์‹œ๊ฐํ™”๋ฅผ ํ†ตํ•ด ํ•œ ๋ฒˆ์— ์ˆ˜์‹ญ ๊ฐœ์˜ Runs๋ฅผ ๋น„๊ตํ•˜๊ณ , ํฅ๋ฏธ๋กœ์šด ๋ฐœ๊ฒฌ์„ ํ™•๋Œ€ํ•˜๊ณ , ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ์—์„œ ํ†ต์ฐฐ๋ ฅ์„ ์–ป๋Š” ๊ฒƒ์ด ์‰ฝ์Šต๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ๊ธฐ๋Šฅ ๋ฐ FAQ

์ตœ๊ณ ์˜ ๋ชจ๋ธ์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

TrainingArguments๋ฅผ load_best_model_at_end=True๋กœ Trainer์— ์ „๋‹ฌํ•˜๋ฉด W&B๋Š” ๊ฐ€์žฅ ์„ฑ๋Šฅ์ด ์ข‹์€ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ Artifacts์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ Artifacts๋กœ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ Registry๋กœ ์Šน๊ฒฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Registry์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ML ์ž‘์—…๋ณ„๋กœ ์ตœ๊ณ ์˜ ๋ชจ๋ธ ๋ฒ„์ „์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • Models๋ฅผ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•˜๊ณ  ํŒ€๊ณผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ๋•์…˜์„ ์œ„ํ•ด Models๋ฅผ ์Šคํ…Œ์ด์ง•ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด ๋ถ๋งˆํฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์šด์ŠคํŠธ๋ฆผ CI/CD ํ”„๋กœ์„ธ์Šค๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ๋œ ๋ชจ๋ธ์„ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

WANDB_LOG_MODEL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ W&B Artifacts์— ์ €์žฅํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ํŠธ๋ ˆ์ด๋‹์„ ์œ„ํ•ด ๋˜๋Š” ์ถ”๋ก ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „๊ณผ ๋™์ผํ•œ Hugging Face ์•„ํ‚คํ…์ฒ˜์— ๋‹ค์‹œ ๋กœ๋“œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ฒดํฌํฌ์ธํŠธ์—์„œ ํŠธ๋ ˆ์ด๋‹์„ ์žฌ๊ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

WANDB_LOG_MODEL='checkpoint'๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ model_dir์„ TrainingArguments์˜ model_name_or_path ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  resume_from_checkpoint=True๋ฅผ Trainer์— ์ „๋‹ฌํ•˜์—ฌ ํŠธ๋ ˆ์ด๋‹์„ ์žฌ๊ฐœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋ ˆ์ด๋‹ ์ค‘์— ํ‰๊ฐ€ ์ƒ˜ํ”Œ์„ ๋กœ๊น…ํ•˜๊ณ  ๋ณด๋Š” ๋ฐฉ๋ฒ•

Transformers Trainer๋ฅผ ํ†ตํ•ด W&B์— ๋กœ๊น…ํ•˜๋Š” ๊ฒƒ์€ Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ WandbCallback์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Hugging Face ๋กœ๊น…์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ WandbCallback์„ ์„œ๋ธŒํด๋ž˜์‹ฑํ•˜๊ณ  Trainer ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€์ ์ธ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ์ฝœ๋ฐฑ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ด ์ƒˆ๋กœ์šด ์ฝœ๋ฐฑ์„ HF Trainer์— ์ถ”๊ฐ€ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์ด๋ฉฐ, ์•„๋ž˜์—๋Š” ํ‰๊ฐ€ ์ถœ๋ ฅ์„ W&B Table์— ๋กœ๊น…ํ•˜๋Š” ์ฝ”๋“œ ์™„์„ฑ ์˜ˆ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋ ˆ์ด๋‹ ์ค‘ ํ‰๊ฐ€ ์ƒ˜ํ”Œ ๋ณด๊ธฐ

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋ชจ๋ธ ์˜ˆ์ธก์„ ์‹คํ–‰ํ•˜๊ณ  ํŠธ๋ ˆ์ด๋‹ ์ค‘์— ํ‰๊ฐ€ ์ƒ˜ํ”Œ์„ W&B Table์— ๋กœ๊น…ํ•˜๋„๋ก WandbCallback์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. Trainer ์ฝœ๋ฐฑ์˜ on_evaluate ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  eval_steps์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ† ํฌ๋‚˜์ด์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ ์ถœ๋ ฅ์—์„œ ์˜ˆ์ธก ๋ฐ ๋ ˆ์ด๋ธ”์„ ๋””์ฝ”๋”ฉํ•˜๋Š” decode_predictions ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜ˆ์ธก ๋ฐ ๋ ˆ์ด๋ธ”์—์„œ pandas DataFrame์„ ๋งŒ๋“ค๊ณ  DataFrame์— epoch ์—ด์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ DataFrame์—์„œ wandb.Table์„ ๋งŒ๋“ค๊ณ  wandb์— ๋กœ๊น…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ˆ์ธก์„ freq ์—ํฌํฌ๋งˆ๋‹ค ๋กœ๊น…ํ•˜์—ฌ ๋กœ๊น… ๋นˆ๋„๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ : ์ผ๋ฐ˜์ ์ธ WandbCallback๊ณผ ๋‹ฌ๋ฆฌ ์ด ์‚ฌ์šฉ์ž ์ง€์ • ์ฝœ๋ฐฑ์€ Trainer๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•œ ํ›„์— Trainer์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋ฉฐ Trainer ์ดˆ๊ธฐํ™” ์ค‘์—๋Š” ์ถ”๊ฐ€ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. Trainer ์ธ์Šคํ„ด์Šค๋Š” ์ดˆ๊ธฐํ™” ์ค‘์— ์ฝœ๋ฐฑ์— ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ž์„ธํ•œ ์˜ˆ์ œ๋Š” ์ด colab์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์–ด๋–ค ์ถ”๊ฐ€ W&B ์„ค์ •์ด ์ œ๊ณต๋˜๋‚˜์š”?

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ Trainer๋กœ ๋กœ๊น…๋˜๋Š” ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. W&B ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wandb.init๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Trainer๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” WandbCallback์€ Trainer๊ฐ€ ์ดˆ๊ธฐํ™”๋  ๋•Œ ๋‚ด๋ถ€์ ์œผ๋กœ wandb.init๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Trainer๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์ „์— wandb.init๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ Run์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด W&B Run ๊ตฌ์„ฑ์„ ์™„์ „ํžˆ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. init์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. wandb.init๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฐธ์กฐ ์„ค๋ช…์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ถ”๊ฐ€ ์ž๋ฃŒ

๋‹ค์Œ์€ Transformer ๋ฐ W&B ๊ด€๋ จ ๊ธฐ์‚ฌ 6๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๋„์›€์„ ๋ฐ›๊ฑฐ๋‚˜ ๊ธฐ๋Šฅ ์š”์ฒญ

Hugging Face W&B ํ†ตํ•ฉ์— ๋Œ€ํ•œ ๋ฌธ์ œ, ์งˆ๋ฌธ ๋˜๋Š” ๊ธฐ๋Šฅ ์š”์ฒญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Hugging Face ํฌ๋Ÿผ์˜ ์ด ์Šค๋ ˆ๋“œ์— ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ Hugging Face Transformers GitHub ๋ฆฌํฌ์— ๋ฌธ์ œ๋ฅผ ์—ฌ์œ ๋กญ๊ฒŒ ๊ฒŒ์‹œํ•˜์„ธ์š”.