Buckets:

rtrm's picture
download
raw
62 kB
import{s as Ys,o as Hs,n as A}from"../chunks/scheduler.37c15a92.js";import{S as zs,i as Ns,g as $,s as a,r,A as Fs,h as u,f as l,c as n,j as Rs,u as i,x as d,k as As,y as Es,a as s,v as m,d as o,t as c,w as M,m as Qs,n as Ls}from"../chunks/index.2bf4358c.js";import{T as Z}from"../chunks/Tip.363c041f.js";import{Y as Vs}from"../chunks/Youtube.1e50a667.js";import{C as j}from"../chunks/CodeBlock.4e987730.js";import{C as Ss}from"../chunks/CourseFloatingBanner.9ff4c771.js";import{Q as ot}from"../chunks/Question.668688bc.js";import{H as C,E as qs}from"../chunks/getInferenceSnippets.80a69898.js";function Ps(h){let p,w='๐Ÿ—๏ธ <strong>์ฒ˜์Œ๋ถ€ํ„ฐ ํ›ˆ๋ จํ•˜๊ธฐ</strong>: ์ด ์„น์…˜์€ ์ด์ „ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. PyTorch ํ›ˆ๋ จ ๋ฃจํ”„์™€ ๋ชจ๋ฒ” ์‚ฌ๋ก€์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ๊ฐ€์ด๋“œ๋Š” <a href="https://huggingface.co/docs/transformers/main/en/training#train-in-native-pytorch" rel="nofollow">๐Ÿค— Transformers ํ›ˆ๋ จ ๋ฌธ์„œ</a>์™€ <a href="https://huggingface.co/learn/cookbook/en/fine_tuning_code_llm_on_single_gpu#model" rel="nofollow">์ปค์Šคํ…€ ํ›ˆ๋ จ ์ฟก๋ถ</a>์„ ํ™•์ธํ•˜์„ธ์š”.';return{c(){p=$("p"),p.innerHTML=w},l(f){p=u(f,"P",{"data-svelte-h":!0}),d(p)!=="svelte-3cst5z"&&(p.innerHTML=w)},m(f,y){s(f,p,y)},p:A,d(f){f&&l(p)}}}function Ks(h){let p,w="๐Ÿ’ก <strong>์ตœ์‹  ์ตœ์ ํ™” ํŒ</strong>: ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋‹ค์Œ์„ ์‹œ๋„ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",f,y,U="<li><strong>๊ฐ€์ค‘์น˜ ๊ฐ์†Œ๊ฐ€ ์žˆ๋Š” AdamW</strong>: <code>AdamW(model.parameters(), lr=5e-5, weight_decay=0.01)</code></li> <li><strong>8๋น„ํŠธ Adam</strong>: ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ ์ธ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด <code>bitsandbytes</code> ์‚ฌ์šฉ</li> <li><strong>๋‹ค์–‘ํ•œ ํ•™์Šต๋ฅ </strong>: ๋Œ€ํ˜• ๋ชจ๋ธ์—์„œ๋Š” ๋” ๋‚ฎ์€ ํ•™์Šต๋ฅ (1e-5 ~ 3e-5)์ด ์ข…์ข… ๋” ์ž˜ ์ž‘๋™</li>",J,T,_='๐Ÿš€ <strong>์ตœ์ ํ™” ๋ฆฌ์†Œ์Šค</strong>: ์˜ตํ‹ฐ๋งˆ์ด์ €์™€ ํ›ˆ๋ จ ์ „๋žต์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด <a href="https://huggingface.co/docs/transformers/main/en/performance#optimizer" rel="nofollow">๐Ÿค— Transformers ์ตœ์ ํ™” ๊ฐ€์ด๋“œ</a>๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.';return{c(){p=$("p"),p.innerHTML=w,f=a(),y=$("ul"),y.innerHTML=U,J=a(),T=$("p"),T.innerHTML=_},l(b){p=u(b,"P",{"data-svelte-h":!0}),d(p)!=="svelte-qa0e6e"&&(p.innerHTML=w),f=n(b),y=u(b,"UL",{"data-svelte-h":!0}),d(y)!=="svelte-1wgrtip"&&(y.innerHTML=U),J=n(b),T=u(b,"P",{"data-svelte-h":!0}),d(T)!=="svelte-fc48c7"&&(T.innerHTML=_)},m(b,g){s(b,p,g),s(b,f,g),s(b,y,g),s(b,J,g),s(b,T,g)},p:A,d(b){b&&(l(p),l(f),l(y),l(J),l(T))}}}function Ds(h){let p,w="๐Ÿ’ก <strong>์ตœ์‹  ํ›ˆ๋ จ ์ตœ์ ํ™”</strong>: ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ๊ณ ๋ คํ•˜์„ธ์š”.",f,y,U="<li><strong>๊ทธ๋ž˜๋””์–ธํŠธ ํด๋ฆฌํ•‘</strong>: <code>optimizer.step()</code> ์ „์— <code>torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)</code> ์ถ”๊ฐ€</li> <li><strong>ํ˜ผํ•ฉ ์ •๋ฐ€๋„</strong>: ๋” ๋น ๋ฅธ ํ›ˆ๋ จ์„ ์œ„ํ•ด <code>torch.cuda.amp.autocast()</code>์™€ <code>GradScaler</code> ์‚ฌ์šฉ</li> <li><strong>๊ทธ๋ž˜๋””์–ธํŠธ ๋ˆ„์ </strong>: ์—ฌ๋Ÿฌ ๋ฐฐ์น˜์— ๊ฑธ์ณ ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ๋ˆ„์ ํ•˜์—ฌ ๋” ํฐ ๋ฐฐ์น˜ ํฌ๊ธฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜</li> <li><strong>์ฒดํฌํฌ์ธํŒ…</strong>: ํ›ˆ๋ จ์ด ์ค‘๋‹จ๋  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ ์ €์žฅ</li>",J,T,_='๐Ÿ”ง <strong>๊ตฌํ˜„ ๊ฐ€์ด๋“œ</strong>: ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”์˜ ์ž์„ธํ•œ ์˜ˆ์ œ๋Š” <a href="https://huggingface.co/docs/transformers/main/en/perf_train_gpu_one" rel="nofollow">๐Ÿค— Transformers ํšจ์œจ์ ์ธ ํ›ˆ๋ จ ๊ฐ€์ด๋“œ</a>์™€ <a href="https://huggingface.co/docs/transformers/main/en/optimizers" rel="nofollow">๋‹ค์–‘ํ•œ ์˜ตํ‹ฐ๋งˆ์ด์ €</a>๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.';return{c(){p=$("p"),p.innerHTML=w,f=a(),y=$("ul"),y.innerHTML=U,J=a(),T=$("p"),T.innerHTML=_},l(b){p=u(b,"P",{"data-svelte-h":!0}),d(p)!=="svelte-11sgwl6"&&(p.innerHTML=w),f=n(b),y=u(b,"UL",{"data-svelte-h":!0}),d(y)!=="svelte-k3m4er"&&(y.innerHTML=U),J=n(b),T=u(b,"P",{"data-svelte-h":!0}),d(T)!=="svelte-8gft36"&&(T.innerHTML=_)},m(b,g){s(b,p,g),s(b,f,g),s(b,y,g),s(b,J,g),s(b,T,g)},p:A,d(b){b&&(l(p),l(f),l(y),l(J),l(T))}}}function Os(h){let p,w='๐Ÿ“Š <strong>ํ‰๊ฐ€ ๋ชจ๋ฒ” ์‚ฌ๋ก€</strong>: ๋” ์ •๊ตํ•œ ํ‰๊ฐ€ ์ „๋žต๊ณผ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•ด์„œ๋Š” <a href="https://huggingface.co/docs/evaluate/" rel="nofollow">๐Ÿค— Evaluate ๋ฌธ์„œ</a>์™€ <a href="https://github.com/huggingface/evaluation-guidebook" rel="nofollow">ํ‰๊ฐ€ ์‹ค๋ฌด ๊ฐ€์ด๋“œ</a>๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”.';return{c(){p=$("p"),p.innerHTML=w},l(f){p=u(f,"P",{"data-svelte-h":!0}),d(p)!=="svelte-12fj1ch"&&(p.innerHTML=w)},m(f,y){s(f,p,y)},p:A,d(f){f&&l(p)}}}function ea(h){let p,w="โœ๏ธ <strong>์ง์ ‘ ํ•ด๋ณด์„ธ์š”!</strong> ์ด์ „ ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ SST-2 ๋ฐ์ดํ„ฐ์…‹์—์„œ ๋ชจ๋ธ์„ ๋ฏธ์„ธ ์กฐ์ •ํ•ด ๋ณด์„ธ์š”.";return{c(){p=$("p"),p.innerHTML=w},l(f){p=u(f,"P",{"data-svelte-h":!0}),d(p)!=="svelte-1ptkvh2"&&(p.innerHTML=w)},m(f,y){s(f,p,y)},p:A,d(f){f&&l(p)}}}function ta(h){let p,w='โšก <strong>Accelerate ์‹ฌํ™”</strong>: ๋ถ„์‚ฐ ํ›ˆ๋ จ, ํ˜ผํ•ฉ ์ •๋ฐ€๋„, ํ•˜๋“œ์›จ์–ด ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ์„ <a href="https://huggingface.co/docs/accelerate/" rel="nofollow">๐Ÿค— Accelerate ๋ฌธ์„œ</a>์—์„œ ์•Œ์•„๋ณด๊ณ  <a href="https://huggingface.co/docs/transformers/main/en/accelerate" rel="nofollow">transformers ๋ฌธ์„œ</a>์—์„œ ์‹ค์šฉ์ ์ธ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”.';return{c(){p=$("p"),p.innerHTML=w},l(f){p=u(f,"P",{"data-svelte-h":!0}),d(p)!=="svelte-1kzd8th"&&(p.innerHTML=w)},m(f,y){s(f,p,y)},p:A,d(f){f&&l(p)}}}function la(h){let p;return{c(){p=Qs('โš ๏ธ Cloud TPU๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์†๋„ ํ–ฅ์ƒ์˜ ์ด์ ์„ ์–ป์œผ๋ ค๋ฉด ํ† ํฌ๋‚˜์ด์ €์˜ `padding="max_length"` ๋ฐ `max_length` ์ธ์ˆ˜๋กœ ์ƒ˜ํ”Œ์„ ๊ณ ์ • ๊ธธ์ด๋กœ ํŒจ๋”ฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.')},l(w){p=Ls(w,'โš ๏ธ Cloud TPU๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์†๋„ ํ–ฅ์ƒ์˜ ์ด์ ์„ ์–ป์œผ๋ ค๋ฉด ํ† ํฌ๋‚˜์ด์ €์˜ `padding="max_length"` ๋ฐ `max_length` ์ธ์ˆ˜๋กœ ์ƒ˜ํ”Œ์„ ๊ณ ์ • ๊ธธ์ด๋กœ ํŒจ๋”ฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.')},m(w,f){s(w,p,f)},d(w){w&&l(p)}}}function sa(h){let p,w='๐ŸŒ <strong>๋ถ„์‚ฐ ํ›ˆ๋ จ</strong>: ๋‹ค์ค‘ GPU ๋ฐ ๋‹ค์ค‘ ๋…ธ๋“œ ํ›ˆ๋ จ์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ๋‚ด์šฉ์€ <a href="https://huggingface.co/docs/transformers/main/en/perf_train_gpu_many" rel="nofollow">๐Ÿค— Transformers ๋ถ„์‚ฐ ํ›ˆ๋ จ ๊ฐ€์ด๋“œ</a>์™€ <a href="https://huggingface.co/docs/transformers/main/en/accelerate" rel="nofollow">ํ›ˆ๋ จ ํ™•์žฅ ์ฟก๋ถ</a>์„ ํ™•์ธํ•˜์„ธ์š”.';return{c(){p=$("p"),p.innerHTML=w},l(f){p=u(f,"P",{"data-svelte-h":!0}),d(p)!=="svelte-kxykmq"&&(p.innerHTML=w)},m(f,y){s(f,p,y)},p:A,d(f){f&&l(p)}}}function aa(h){let p,w="๐Ÿ’ก <strong>ํ•ต์‹ฌ ์š”์ :</strong>",f,y,U="<li>์ˆ˜๋™ ํ›ˆ๋ จ ๋ฃจํ”„๋Š” ์™„์ „ํ•œ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ์ ์ ˆํ•œ ์ˆœ์„œ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: ์ˆœ์ „ํŒŒ โ†’ ์—ญ์ „ํŒŒ โ†’ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋‹จ๊ณ„ โ†’ ์Šค์ผ€์ค„๋Ÿฌ ๋‹จ๊ณ„ โ†’ ๊ทธ๋ž˜๋””์–ธํŠธ ์ดˆ๊ธฐํ™”</li> <li>๊ฐ€์ค‘์น˜ ๊ฐ์†Œ๊ฐ€ ์žˆ๋Š” AdamW๋Š” ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์— ๊ถŒ์žฅ๋˜๋Š” ์˜ตํ‹ฐ๋งˆ์ด์ €์ž…๋‹ˆ๋‹ค.</li> <li>์˜ฌ๋ฐ”๋ฅธ ๋™์ž‘๊ณผ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ํ‰๊ฐ€ ์ค‘์—๋Š” ํ•ญ์ƒ <code>model.eval()</code>๊ณผ <code>torch.no_grad()</code>๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.</li> <li>๐Ÿค— Accelerate๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ๋งŒ์œผ๋กœ ๋ถ„์‚ฐ ํ›ˆ๋ จ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.</li> <li>์žฅ์น˜ ๊ด€๋ฆฌ(GPU/CPU๋กœ ํ…์„œ ์ด๋™)๋Š” PyTorch ์—ฐ์‚ฐ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.</li> <li>ํ˜ผํ•ฉ ์ •๋ฐ€๋„, ๊ทธ๋ž˜๋””์–ธํŠธ ๋ˆ„์ , ๊ทธ๋ž˜๋””์–ธํŠธ ํด๋ฆฌํ•‘๊ณผ ๊ฐ™์€ ์ตœ์‹  ๊ธฐ๋ฒ•์€ ํ›ˆ๋ จ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.</li>";return{c(){p=$("p"),p.innerHTML=w,f=a(),y=$("ul"),y.innerHTML=U},l(J){p=u(J,"P",{"data-svelte-h":!0}),d(p)!=="svelte-3aouuq"&&(p.innerHTML=w),f=n(J),y=u(J,"UL",{"data-svelte-h":!0}),d(y)!=="svelte-8sb4xv"&&(y.innerHTML=U)},m(J,T){s(J,p,T),s(J,f,T),s(J,y,T)},p:A,d(J){J&&(l(p),l(f),l(y))}}}function na(h){let p,w,f,y,U,J,T,_,b,g,V,Ll="์ด์ œ <code>Trainer</code> ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ตœ์‹  PyTorch ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ํ™œ์šฉํ•ด ์ฒ˜์Œ๋ถ€ํ„ฐ ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ด์ „ ์„น์…˜๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„น์…˜ 2์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ด์€ ๊ฐ„๋‹จํ•œ ์š”์•ฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.",Mt,k,ft,Y,$t,H,ut,z,Sl="์‹ค์ œ๋กœ ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๋ฐฐ์น˜๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋กœ๋”์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋กœ๋”๋ฅผ ์ •์˜ํ•˜๊ธฐ ์ „์— <code>tokenized_datasets</code>์— ์•ฝ๊ฐ„์˜ ํ›„์ฒ˜๋ฆฌ๋ฅผ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” <code>Trainer</code>๊ฐ€ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ๋˜ ์ž‘์—…๋“ค์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.",dt,N,ql="<li>๋ชจ๋ธ์ด ์˜ˆ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ์ปฌ๋Ÿผ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค(<code>sentence1</code> ๋ฐ <code>sentence2</code> ์ปฌ๋Ÿผ ๋“ฑ).</li> <li><code>label</code> ์ปฌ๋Ÿผ์„ <code>labels</code>๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋ธ์ด ์ธ์ˆ˜ ์ด๋ฆ„์„ <code>labels</code>๋กœ ์˜ˆ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค).</li> <li>๋ฐ์ดํ„ฐ์…‹ ํ˜•์‹์„ ์„ค์ •ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ ๋Œ€์‹  PyTorch ํ…์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.</li>",yt,F,Pl="<code>tokenized_datasets</code>์—๋Š” ์ด๋Ÿฌํ•œ ๊ฐ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.",bt,E,wt,Q,Kl="๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒฐ๊ณผ์— ์šฐ๋ฆฌ ๋ชจ๋ธ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ด๋งŒ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",Tt,L,Jt,S,Dl="์ด์ œ ์ด ์ž‘์—…๋“ค์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋‹ˆ ๋ฐ์ดํ„ฐ๋กœ๋”๋ฅผ ์ •์˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.",jt,q,ht,P,Ol="๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์น˜๋ฅผ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.",Ut,K,gt,D,Ct,O,es="ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋กœ๋”์— ๋Œ€ํ•ด <code>shuffle=True</code>๋ฅผ ์„ค์ •ํ–ˆ๊ณ , ๋ฐฐ์น˜ ๋‚ด์—์„œ ์ตœ๋Œ€ ๊ธธ์ด๊นŒ์ง€ ํŒจ๋”ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ๊ฒฐ๊ณผ์™€ ์•ฝ๊ฐ„ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",_t,ee,ts="์ด์ œ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋ฅผ ์™„์ „ํžˆ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค(๋ชจ๋“  ML ์‹ค๋ฌด์ž๋“ค์—๊ฒŒ๋Š” ๋งŒ์กฑ์Šค๋Ÿฝ์ง€๋งŒ ๋‹ฌ์„ฑํ•˜๊ธฐ ์–ด๋ ค์šด ๋ชฉํ‘œ์ฃ !). ๋‹ค์Œ์œผ๋กœ ๋ชจ๋ธ์„ ์ค€๋น„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „ ์„น์…˜๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋ธ์„ ์ธ์Šคํ„ด์Šคํ™”ํ•ฉ๋‹ˆ๋‹ค.",Zt,te,kt,le,ls="ํ›ˆ๋ จ ์ค‘์— ๋ชจ๋“  ๊ฒƒ์ด ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ๋ฐฐ์น˜๋ฅผ ์ด ๋ชจ๋ธ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.",vt,se,Gt,ae,Bt,ne,ss="๋ชจ๋“  ๐Ÿค— Transformers ๋ชจ๋ธ์€ <code>labels</code>๊ฐ€ ์ œ๊ณต๋  ๋•Œ ์†์‹ค์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋กœ์ง“๋„ ์–ป์Šต๋‹ˆ๋‹ค(๋ฐฐ์น˜์˜ ๊ฐ ์ž…๋ ฅ์— ๋Œ€ํ•ด 2๊ฐœ์”ฉ, ๋”ฐ๋ผ์„œ 8 x 2 ํฌ๊ธฐ์˜ ํ…์„œ).",It,pe,as='ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ์ž‘์„ฑํ•  ์ค€๋น„๊ฐ€ ๊ฑฐ์˜ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์˜ตํ‹ฐ๋งˆ์ด์ €์™€ ํ•™์Šต๋ฅ  ์Šค์ผ€์ค„๋Ÿฌ ๋‘ ๊ฐ€์ง€๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. <code>Trainer</code>๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋˜ ์ž‘์—…์„ ์ง์ ‘ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, ๋™์ผํ•œ ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. <code>Trainer</code>์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” <code>AdamW</code>๋กœ, ์ด๋Š” Adam๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ ์ •๊ทœํ™”์— ๋ณ€ํ˜•์„ ์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Ilya Loshchilov์™€ Frank Hutter์˜ <a href="https://arxiv.org/abs/1711.05101" rel="nofollow">โ€œDecoupled Weight Decay Regularizationโ€</a>๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.',Wt,re,xt,v,Xt,ie,ns="๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•™์Šต๋ฅ  ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ตœ๋Œ€๊ฐ’(5e-5)์—์„œ 0๊นŒ์ง€์˜ ์„ ํ˜•์ ์œผ๋กœ ๊ฐ์†Œํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ •์˜ํ•˜๋ ค๋ฉด ์ˆ˜ํ–‰ํ•  ํ›ˆ๋ จ ๋‹จ๊ณ„ ์ˆ˜๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ, ์ด๋Š” ์‹คํ–‰ํ•˜๋ ค๋Š” ์—ํฌํฌ ์ˆ˜์— ํ›ˆ๋ จ ๋ฐฐ์น˜ ์ˆ˜(ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋กœ๋”์˜ ๊ธธ์ด)๋ฅผ ๊ณฑํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. <code>Trainer</code>๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 3 ์—ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด๋ฅผ ๋”ฐ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.",Rt,me,At,oe,Vt,ce,Yt,Me,ps="๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ ๊ฐ€์ง€ ๋” ๊ณ ๋ คํ•  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. GPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด GPU๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋ถ„์ด๋ฉด ๋๋‚  ํ•™์Šต์ด CPU์—์„œ๋Š” ๋ช‡ ์‹œ๊ฐ„์”ฉ ๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ชจ๋ธ๊ณผ ๋ฐฐ์น˜๋ฅผ ์˜ฌ๋ ค๋†“์„ <code>device</code>๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.",Ht,fe,zt,$e,Nt,ue,rs="์ด์ œ ํ›ˆ๋ จํ•  ์ค€๋น„๊ฐ€ ๋ชจ๋‘ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค! ํ›ˆ๋ จ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก <code>tqdm</code> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์„ ์ถ”๊ฐ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.",Ft,de,Et,G,Qt,ye,is="๋ณด์‹œ๋‹ค์‹œํ”ผ ํ›ˆ๋ จ ๋ฃจํ”„์˜ ํ•ต์‹ฌ ๊ตฌ์กฐ๋Š” ์†Œ๊ฐœ ๋ถ€๋ถ„์—์„œ ๋ดค๋˜ ๊ฒƒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ ์ƒํƒœ๋กœ๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ „ํ˜€ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ‰๊ฐ€ ๊ธฐ๋Šฅ์„ ์š”์ฒญํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ‰๊ฐ€ ๋ฃจํ”„๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",Lt,be,St,we,ms="์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๐Ÿค— Evaluate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. <code>metric.compute()</code> ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ฉ”ํŠธ๋ฆญ์—๋Š” ๋˜ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. <code>add_batch()</code> ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ˆ์ธก ๋ฃจํ”„๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐฐ์น˜๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ˆ„์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐฐ์น˜๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„์— <code>metric.compute()</code>๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‰๊ฐ€ ๋ฃจํ”„์—์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.",qt,B,Pt,Te,Kt,Je,Dt,je,os="๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋ธ ํ—ค๋“œ ์ดˆ๊ธฐํ™”์™€ ๋ฐ์ดํ„ฐ ์…”ํ”Œ๋ง์˜ ๋žœ๋ค ์š”์†Œ๋กœ ์ธํ•ด ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ฒฐ๊ณผ๋Š” ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋น„์Šทํ•œ ๋ฒ”์œ„ ๋‚ด์—์„œ ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.",Ot,I,el,he,tl,Ue,ll,ge,cs='์•ž์„œ ์ •์˜ํ•œ ํ›ˆ๋ จ ๋ฃจํ”„๋Š” ๋‹จ์ผ CPU ๋˜๋Š” GPU์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ <a href="https://github.com/huggingface/accelerate" rel="nofollow">๐Ÿค— Accelerate</a> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์กฐ์ •๋งŒ์œผ๋กœ ์—ฌ๋Ÿฌ GPU ๋˜๋Š” TPU์—์„œ ๋ถ„์‚ฐ ํ›ˆ๋ จ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿค— Accelerate๋Š” ๋ถ„์‚ฐ ํ›ˆ๋ จ, ํ˜ผํ•ฉ ์ •๋ฐ€๋„, ์žฅ์น˜ ๋ฐฐ์น˜์˜ ๋ณต์žก์„ฑ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ›ˆ๋ จ ๋ฐ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ๋กœ๋” ์ƒ์„ฑ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ˆ˜๋™ ํ›ˆ๋ จ ๋ฃจํ”„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.',sl,W,al,Ce,nl,_e,Ms="์ถ”๊ฐ€ํ•  ์ฒซ ๋ฒˆ์งธ ์ค„์€ import ์ค„์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„์€ ํ™˜๊ฒฝ์„ ์‚ดํŽด๋ณด๊ณ  ์ ์ ˆํ•œ ๋ถ„์‚ฐ ์„ค์ •์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” <code>Accelerator</code> ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿค— Accelerate๋Š” ์žฅ์น˜ ๋ฐฐ์น˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๋ชจ๋ธ์„ ์žฅ์น˜์— ์˜ฌ๋ฆฌ๋Š” ์ค„์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” ์›ํ•œ๋‹ค๋ฉด <code>device</code> ๋Œ€์‹  <code>accelerator.device</code>๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).",pl,Ze,fs="๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฃผ์š” ์ž‘์—…์€ ๋ฐ์ดํ„ฐ๋กœ๋”, ๋ชจ๋ธ, ์˜ตํ‹ฐ๋งˆ์ด์ €๋ฅผ <code>accelerator.prepare()</code>์— ๋ณด๋‚ด๋Š” ์ค„์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ๊ฐ์ฒด๋“ค์„ ์ ์ ˆํ•œ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฐ์‹ธ ๋ถ„์‚ฐ ํ•™์Šต์ด ์˜๋„๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋‚˜๋จธ์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋ฐฐ์น˜๋ฅผ <code>device</code>์— ์˜ฌ๋ฆฌ๋Š” ์ค„์„ ์ œ๊ฑฐํ•˜๊ณ (ํ˜น์€ ๋ฐฐ์น˜๋ฅผ device์— ์˜ฌ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด accelerator.device๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.) <code>loss.backward()</code>๋ฅผ <code>accelerator.backward(loss)</code>๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.",rl,x,il,ke,$s="์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด, ๐Ÿค— Accelerate๋ฅผ ์‚ฌ์šฉํ•œ ์ „์ฒด ํ›ˆ๋ จ ๋ฃจํ”„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.",ml,ve,ol,Ge,us="์ด ์ฝ”๋“œ๋ฅผ <code>train.py</code> ์Šคํฌ๋ฆฝํŠธ์— ๋„ฃ์œผ๋ฉด ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์‹œ๋„ํ•ด ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”.",cl,Be,Ml,Ie,ds="์œ„ ๋ช…๋ น์–ด๋Š” ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์„ ํ†ตํ•ด ์„ค์ • ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์ด ํŒŒ์ผ์€ ๋‹ค์Œ ๋ช…๋ น์–ด์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.",fl,We,$l,xe,ys="์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ถ„์‚ฐ ํ›ˆ๋ จ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",ul,Xe,bs="๋…ธํŠธ๋ถ์—์„œ ์ด๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด(์˜ˆ: Colab์—์„œ TPU๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด) ์ฝ”๋“œ๋ฅผ <code>training_function()</code>์— ๋ถ™์—ฌ๋„ฃ๊ณ  ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ๋งˆ์ง€๋ง‰ ์…€์„ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.",dl,Re,yl,Ae,ws='<a href="https://github.com/huggingface/accelerate/tree/main/examples" rel="nofollow">๐Ÿค— Accelerate ๋ฆฌํฌ์ง€ํ† ๋ฆฌ</a>์—์„œ ๋” ๋งŽ์€ ์˜ˆ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.',bl,X,wl,Ve,Tl,Ye,Ts="์ด์ œ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ›ˆ๋ จ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์œผ๋ฏ€๋กœ ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€์‚ฌํ•ญ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.",Jl,He,Js="<strong>๋ชจ๋ธ ํ‰๊ฐ€</strong>: ๋ชจ๋ธ์€ ์ •ํ™•๋„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ญ์ƒ ์—ฌ๋Ÿฌ ๋ฉ”ํŠธ๋ฆญ์œผ๋กœ ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํฌ๊ด„์ ์ธ ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด ๐Ÿค— Evaluate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.",jl,ze,js="<strong>ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹</strong>: ์ฒด๊ณ„์ ์ธ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด Optuna ๋˜๋Š” Ray Tune๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜์„ธ์š”.",hl,Ne,hs="<strong>๋ชจ๋ธ ๋ชจ๋‹ˆํ„ฐ๋ง</strong>: ํ›ˆ๋ จ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ›ˆ๋ จ ๋ฉ”ํŠธ๋ฆญ, ํ•™์Šต ๊ณก์„ , ๊ฒ€์ฆ ์„ฑ๋Šฅ์„ ์ถ”์ ํ•˜์„ธ์š”.",Ul,Fe,Us="<strong>๋ชจ๋ธ ๊ณต์œ </strong>: ํ›ˆ๋ จ์ด ์™„๋ฃŒ๋˜๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Hugging Face Hub์—์„œ ๋ชจ๋ธ์„ ๊ณต์œ ํ•˜์„ธ์š”.",gl,Ee,gs="<strong>ํšจ์œจ์„ฑ</strong>: ๋Œ€ํ˜• ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ๊ทธ๋ž˜๋””์–ธํŠธ ์ฒดํฌํฌ์ธํŒ…, ํšจ์œจ์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฏธ์„ธ ์กฐ์ •(LoRA, AdaLoRA), ์–‘์žํ™” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ๊ณ ๋ คํ•˜์„ธ์š”.",Cl,Qe,Cs="์ด๊ฒƒ์œผ๋กœ ์ปค์Šคํ…€ ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•œ ๋ฏธ์„ธ ์กฐ์ •์— ๋Œ€ํ•œ ์‹ฌํ™” ๊ณผ์ •์„ ๋งˆ์นฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐฐ์šด ๊ธฐ์ˆ ๋“ค์€ ํ›ˆ๋ จ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ <code>Trainer</code> API๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ๋Š” ์ปค์Šคํ…€ ํ›ˆ๋ จ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•  ๋•Œ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.",_l,Le,Zl,Se,_s="์ปค์Šคํ…€ ํ›ˆ๋ จ ๋ฃจํ”„์™€ ๊ณ ๊ธ‰ ํ›ˆ๋ จ ๊ธฐ๋ฒ•์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”.",kl,qe,vl,Pe,Gl,Ke,Bl,De,Il,Oe,Wl,et,xl,tt,Xl,lt,Rl,st,Al,at,Vl,nt,Yl,pt,Hl,rt,zl,it,Nl,R,Fl,mt,El,ct,Ql;return U=new C({props:{title:"์ฒ˜์Œ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•˜๋Š” ํ›ˆ๋ จ ๋ฃจํ”„",local:"a-full-training-loop",headingTag:"h1"}}),T=new Ss({props:{chapter:3,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter3/section4.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter3/section4.ipynb"}]}}),b=new Vs({props:{id:"Dh9CL8fyG80"}}),k=new Z({props:{$$slots:{default:[Ps]},$$scope:{ctx:h}}}),Y=new j({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBEYXRhQ29sbGF0b3JXaXRoUGFkZGluZyUwQSUwQXJhd19kYXRhc2V0cyUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJnbHVlJTIyJTJDJTIwJTIybXJwYyUyMiklMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyYmVydC1iYXNlLXVuY2FzZWQlMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQSUwQSUwQWRlZiUyMHRva2VuaXplX2Z1bmN0aW9uKGV4YW1wbGUpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwdG9rZW5pemVyKGV4YW1wbGUlNUIlMjJzZW50ZW5jZTElMjIlNUQlMkMlMjBleGFtcGxlJTVCJTIyc2VudGVuY2UyJTIyJTVEJTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUpJTBBJTBBJTBBdG9rZW5pemVkX2RhdGFzZXRzJTIwJTNEJTIwcmF3X2RhdGFzZXRzLm1hcCh0b2tlbml6ZV9mdW5jdGlvbiUyQyUyMGJhdGNoZWQlM0RUcnVlKSUwQWRhdGFfY29sbGF0b3IlMjAlM0QlMjBEYXRhQ29sbGF0b3JXaXRoUGFkZGluZyh0b2tlbml6ZXIlM0R0b2tlbml6ZXIp",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, DataCollatorWithPadding
raw_datasets = load_dataset(<span class="hljs-string">&quot;glue&quot;</span>, <span class="hljs-string">&quot;mrpc&quot;</span>)
checkpoint = <span class="hljs-string">&quot;bert-base-uncased&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">tokenize_function</span>(<span class="hljs-params">example</span>):
<span class="hljs-keyword">return</span> tokenizer(example[<span class="hljs-string">&quot;sentence1&quot;</span>], example[<span class="hljs-string">&quot;sentence2&quot;</span>], truncation=<span class="hljs-literal">True</span>)
tokenized_datasets = raw_datasets.<span class="hljs-built_in">map</span>(tokenize_function, batched=<span class="hljs-literal">True</span>)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)`,wrap:!1}}),H=new C({props:{title:"ํ›ˆ๋ จ ์ค€๋น„",local:"prepare-for-training",headingTag:"h3"}}),E=new j({props:{code:"dG9rZW5pemVkX2RhdGFzZXRzJTIwJTNEJTIwdG9rZW5pemVkX2RhdGFzZXRzLnJlbW92ZV9jb2x1bW5zKCU1QiUyMnNlbnRlbmNlMSUyMiUyQyUyMCUyMnNlbnRlbmNlMiUyMiUyQyUyMCUyMmlkeCUyMiU1RCklMEF0b2tlbml6ZWRfZGF0YXNldHMlMjAlM0QlMjB0b2tlbml6ZWRfZGF0YXNldHMucmVuYW1lX2NvbHVtbiglMjJsYWJlbCUyMiUyQyUyMCUyMmxhYmVscyUyMiklMEF0b2tlbml6ZWRfZGF0YXNldHMuc2V0X2Zvcm1hdCglMjJ0b3JjaCUyMiklMEF0b2tlbml6ZWRfZGF0YXNldHMlNUIlMjJ0cmFpbiUyMiU1RC5jb2x1bW5fbmFtZXM=",highlighted:`tokenized_datasets = tokenized_datasets.remove_columns([<span class="hljs-string">&quot;sentence1&quot;</span>, <span class="hljs-string">&quot;sentence2&quot;</span>, <span class="hljs-string">&quot;idx&quot;</span>])
tokenized_datasets = tokenized_datasets.rename_column(<span class="hljs-string">&quot;label&quot;</span>, <span class="hljs-string">&quot;labels&quot;</span>)
tokenized_datasets.set_format(<span class="hljs-string">&quot;torch&quot;</span>)
tokenized_datasets[<span class="hljs-string">&quot;train&quot;</span>].column_names`,wrap:!1}}),L=new j({props:{code:"JTVCJTIyYXR0ZW50aW9uX21hc2slMjIlMkMlMjAlMjJpbnB1dF9pZHMlMjIlMkMlMjAlMjJsYWJlbHMlMjIlMkMlMjAlMjJ0b2tlbl90eXBlX2lkcyUyMiU1RA==",highlighted:'[<span class="hljs-string">&quot;attention_mask&quot;</span>, <span class="hljs-string">&quot;input_ids&quot;</span>, <span class="hljs-string">&quot;labels&quot;</span>, <span class="hljs-string">&quot;token_type_ids&quot;</span>]',wrap:!1}}),q=new j({props:{code:"ZnJvbSUyMHRvcmNoLnV0aWxzLmRhdGElMjBpbXBvcnQlMjBEYXRhTG9hZGVyJTBBJTBBdHJhaW5fZGF0YWxvYWRlciUyMCUzRCUyMERhdGFMb2FkZXIoJTBBJTIwJTIwJTIwJTIwdG9rZW5pemVkX2RhdGFzZXRzJTVCJTIydHJhaW4lMjIlNUQlMkMlMjBzaHVmZmxlJTNEVHJ1ZSUyQyUyMGJhdGNoX3NpemUlM0Q4JTJDJTIwY29sbGF0ZV9mbiUzRGRhdGFfY29sbGF0b3IlMEEpJTBBZXZhbF9kYXRhbG9hZGVyJTIwJTNEJTIwRGF0YUxvYWRlciglMEElMjAlMjAlMjAlMjB0b2tlbml6ZWRfZGF0YXNldHMlNUIlMjJ2YWxpZGF0aW9uJTIyJTVEJTJDJTIwYmF0Y2hfc2l6ZSUzRDglMkMlMjBjb2xsYXRlX2ZuJTNEZGF0YV9jb2xsYXRvciUwQSk=",highlighted:`<span class="hljs-keyword">from</span> torch.utils.data <span class="hljs-keyword">import</span> DataLoader
train_dataloader = DataLoader(
tokenized_datasets[<span class="hljs-string">&quot;train&quot;</span>], shuffle=<span class="hljs-literal">True</span>, batch_size=<span class="hljs-number">8</span>, collate_fn=data_collator
)
eval_dataloader = DataLoader(
tokenized_datasets[<span class="hljs-string">&quot;validation&quot;</span>], batch_size=<span class="hljs-number">8</span>, collate_fn=data_collator
)`,wrap:!1}}),K=new j({props:{code:"Zm9yJTIwYmF0Y2glMjBpbiUyMHRyYWluX2RhdGFsb2FkZXIlM0ElMEElMjAlMjAlMjAlMjBicmVhayUwQSU3QmslM0ElMjB2LnNoYXBlJTIwZm9yJTIwayUyQyUyMHYlMjBpbiUyMGJhdGNoLml0ZW1zKCklN0Q=",highlighted:`<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader:
<span class="hljs-keyword">break</span>
{k: v.shape <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}`,wrap:!1}}),D=new j({props:{code:"JTdCJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRvcmNoLlNpemUoJTVCOCUyQyUyMDY1JTVEKSUyQyUwQSUyMCdpbnB1dF9pZHMnJTNBJTIwdG9yY2guU2l6ZSglNUI4JTJDJTIwNjUlNUQpJTJDJTBBJTIwJ2xhYmVscyclM0ElMjB0b3JjaC5TaXplKCU1QjglNUQpJTJDJTBBJTIwJ3Rva2VuX3R5cGVfaWRzJyUzQSUyMHRvcmNoLlNpemUoJTVCOCUyQyUyMDY1JTVEKSU3RA==",highlighted:`{<span class="hljs-string">&#x27;attention_mask&#x27;</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]),
<span class="hljs-string">&#x27;input_ids&#x27;</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]),
<span class="hljs-string">&#x27;labels&#x27;</span>: torch.Size([<span class="hljs-number">8</span>]),
<span class="hljs-string">&#x27;token_type_ids&#x27;</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>])}`,wrap:!1}}),te=new j({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQlMkMlMjBudW1fbGFiZWxzJTNEMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)`,wrap:!1}}),se=new j({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqYmF0Y2gpJTBBcHJpbnQob3V0cHV0cy5sb3NzJTJDJTIwb3V0cHV0cy5sb2dpdHMuc2hhcGUp",highlighted:`outputs = model(**batch)
<span class="hljs-built_in">print</span>(outputs.loss, outputs.logits.shape)`,wrap:!1}}),ae=new j({props:{code:"dGVuc29yKDAuNTQ0MSUyQyUyMGdyYWRfZm4lM0QlM0NObGxMb3NzQmFja3dhcmQlM0UpJTIwdG9yY2guU2l6ZSglNUI4JTJDJTIwMiU1RCk=",highlighted:'tensor(<span class="hljs-number">0.5441</span>, grad_fn=&lt;NllLossBackward&gt;) torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">2</span>])',wrap:!1}}),re=new j({props:{code:"ZnJvbSUyMHRvcmNoLm9wdGltJTIwaW1wb3J0JTIwQWRhbVclMEElMEFvcHRpbWl6ZXIlMjAlM0QlMjBBZGFtVyhtb2RlbC5wYXJhbWV0ZXJzKCklMkMlMjBsciUzRDVlLTUp",highlighted:`<span class="hljs-keyword">from</span> torch.optim <span class="hljs-keyword">import</span> AdamW
optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">5e-5</span>)`,wrap:!1}}),v=new Z({props:{$$slots:{default:[Ks]},$$scope:{ctx:h}}}),me=new j({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMGdldF9zY2hlZHVsZXIlMEElMEFudW1fZXBvY2hzJTIwJTNEJTIwMyUwQW51bV90cmFpbmluZ19zdGVwcyUyMCUzRCUyMG51bV9lcG9jaHMlMjAqJTIwbGVuKHRyYWluX2RhdGFsb2FkZXIpJTBBbHJfc2NoZWR1bGVyJTIwJTNEJTIwZ2V0X3NjaGVkdWxlciglMEElMjAlMjAlMjAlMjAlMjJsaW5lYXIlMjIlMkMlMEElMjAlMjAlMjAlMjBvcHRpbWl6ZXIlM0RvcHRpbWl6ZXIlMkMlMEElMjAlMjAlMjAlMjBudW1fd2FybXVwX3N0ZXBzJTNEMCUyQyUwQSUyMCUyMCUyMCUyMG51bV90cmFpbmluZ19zdGVwcyUzRG51bV90cmFpbmluZ19zdGVwcyUyQyUwQSklMEFwcmludChudW1fdHJhaW5pbmdfc3RlcHMp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> get_scheduler
num_epochs = <span class="hljs-number">3</span>
num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dataloader)
lr_scheduler = get_scheduler(
<span class="hljs-string">&quot;linear&quot;</span>,
optimizer=optimizer,
num_warmup_steps=<span class="hljs-number">0</span>,
num_training_steps=num_training_steps,
)
<span class="hljs-built_in">print</span>(num_training_steps)`,wrap:!1}}),oe=new j({props:{code:"MTM3Nw==",highlighted:'<span class="hljs-number">1377</span>',wrap:!1}}),ce=new C({props:{title:"ํ›ˆ๋ จ ๋ฃจํ”„",local:"the-training-loop",headingTag:"h3"}}),fe=new j({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFkZXZpY2UlMjAlM0QlMjB0b3JjaC5kZXZpY2UoJTIyY3VkYSUyMiklMjBpZiUyMHRvcmNoLmN1ZGEuaXNfYXZhaWxhYmxlKCklMjBlbHNlJTIwdG9yY2guZGV2aWNlKCUyMmNwdSUyMiklMEFtb2RlbC50byhkZXZpY2UpJTBBZGV2aWNl",highlighted:`<span class="hljs-keyword">import</span> torch
device = torch.device(<span class="hljs-string">&quot;cuda&quot;</span>) <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> torch.device(<span class="hljs-string">&quot;cpu&quot;</span>)
model.to(device)
device`,wrap:!1}}),$e=new j({props:{code:"ZGV2aWNlKHR5cGUlM0QnY3VkYScp",highlighted:'device(<span class="hljs-built_in">type</span>=<span class="hljs-string">&#x27;cuda&#x27;</span>)',wrap:!1}}),de=new j({props:{code:"ZnJvbSUyMHRxZG0uYXV0byUyMGltcG9ydCUyMHRxZG0lMEElMEFwcm9ncmVzc19iYXIlMjAlM0QlMjB0cWRtKHJhbmdlKG51bV90cmFpbmluZ19zdGVwcykpJTBBJTBBbW9kZWwudHJhaW4oKSUwQWZvciUyMGVwb2NoJTIwaW4lMjByYW5nZShudW1fZXBvY2hzKSUzQSUwQSUyMCUyMCUyMCUyMGZvciUyMGJhdGNoJTIwaW4lMjB0cmFpbl9kYXRhbG9hZGVyJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmF0Y2glMjAlM0QlMjAlN0JrJTNBJTIwdi50byhkZXZpY2UpJTIwZm9yJTIwayUyQyUyMHYlMjBpbiUyMGJhdGNoLml0ZW1zKCklN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb3NzJTIwJTNEJTIwb3V0cHV0cy5sb3NzJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9zcy5iYWNrd2FyZCgpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3B0aW1pemVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxyX3NjaGVkdWxlci5zdGVwKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuemVyb19ncmFkKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIudXBkYXRlKDEp",highlighted:`<span class="hljs-keyword">from</span> tqdm.auto <span class="hljs-keyword">import</span> tqdm
progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps))
model.train()
<span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs):
<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader:
batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}
outputs = model(**batch)
loss = outputs.loss
loss.backward()
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
progress_bar.update(<span class="hljs-number">1</span>)`,wrap:!1}}),G=new Z({props:{$$slots:{default:[Ds]},$$scope:{ctx:h}}}),be=new C({props:{title:"ํ‰๊ฐ€ ๋ฃจํ”„",local:"the-evaluation-loop",headingTag:"h3"}}),B=new Z({props:{$$slots:{default:[Os]},$$scope:{ctx:h}}}),Te=new j({props:{code:"aW1wb3J0JTIwZXZhbHVhdGUlMEElMEFtZXRyaWMlMjAlM0QlMjBldmFsdWF0ZS5sb2FkKCUyMmdsdWUlMjIlMkMlMjAlMjJtcnBjJTIyKSUwQW1vZGVsLmV2YWwoKSUwQWZvciUyMGJhdGNoJTIwaW4lMjBldmFsX2RhdGFsb2FkZXIlM0ElMEElMjAlMjAlMjAlMjBiYXRjaCUyMCUzRCUyMCU3QmslM0ElMjB2LnRvKGRldmljZSklMjBmb3IlMjBrJTJDJTIwdiUyMGluJTIwYmF0Y2guaXRlbXMoKSU3RCUwQSUyMCUyMCUyMCUyMHdpdGglMjB0b3JjaC5ub19ncmFkKCklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMEElMjAlMjAlMjAlMjBsb2dpdHMlMjAlM0QlMjBvdXRwdXRzLmxvZ2l0cyUwQSUyMCUyMCUyMCUyMHByZWRpY3Rpb25zJTIwJTNEJTIwdG9yY2guYXJnbWF4KGxvZ2l0cyUyQyUyMGRpbSUzRC0xKSUwQSUyMCUyMCUyMCUyMG1ldHJpYy5hZGRfYmF0Y2gocHJlZGljdGlvbnMlM0RwcmVkaWN0aW9ucyUyQyUyMHJlZmVyZW5jZXMlM0RiYXRjaCU1QiUyMmxhYmVscyUyMiU1RCklMEElMEFtZXRyaWMuY29tcHV0ZSgp",highlighted:`<span class="hljs-keyword">import</span> evaluate
metric = evaluate.load(<span class="hljs-string">&quot;glue&quot;</span>, <span class="hljs-string">&quot;mrpc&quot;</span>)
model.<span class="hljs-built_in">eval</span>()
<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> eval_dataloader:
batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}
<span class="hljs-keyword">with</span> torch.no_grad():
outputs = model(**batch)
logits = outputs.logits
predictions = torch.argmax(logits, dim=-<span class="hljs-number">1</span>)
metric.add_batch(predictions=predictions, references=batch[<span class="hljs-string">&quot;labels&quot;</span>])
metric.compute()`,wrap:!1}}),Je=new j({props:{code:"JTdCJ2FjY3VyYWN5JyUzQSUyMDAuODQzMTM3MjU0OTAxOTYwOCUyQyUyMCdmMSclM0ElMjAwLjg5MDc4NDk4MjkzNTE1MzUlN0Q=",highlighted:'{<span class="hljs-string">&#x27;accuracy&#x27;</span>: <span class="hljs-number">0.8431372549019608</span>, <span class="hljs-string">&#x27;f1&#x27;</span>: <span class="hljs-number">0.8907849829351535</span>}',wrap:!1}}),I=new Z({props:{$$slots:{default:[ea]},$$scope:{ctx:h}}}),he=new C({props:{title:"๐Ÿค— Accelerate๋กœ ํ›ˆ๋ จ ๋ฃจํ”„ ๊ฐ•ํ™”ํ•˜๊ธฐ",local:"supercharge-your-training-loop-with-accelerate",headingTag:"h3"}}),Ue=new Vs({props:{id:"s7dy8QRgjJ0"}}),W=new Z({props:{$$slots:{default:[ta]},$$scope:{ctx:h}}}),Ce=new j({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjB0b3JjaC5vcHRpbSUyMGltcG9ydCUyMEFkYW1XJTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMkMlMjBnZXRfc2NoZWR1bGVyJTBBJTBBYWNjZWxlcmF0b3IlMjAlM0QlMjBBY2NlbGVyYXRvcigpJTBBJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50JTJDJTIwbnVtX2xhYmVscyUzRDIpJTBBb3B0aW1pemVyJTIwJTNEJTIwQWRhbVcobW9kZWwucGFyYW1ldGVycygpJTJDJTIwbHIlM0QzZS01KSUwQSUwQXRyYWluX2RsJTJDJTIwZXZhbF9kbCUyQyUyMG1vZGVsJTJDJTIwb3B0aW1pemVyJTIwJTNEJTIwYWNjZWxlcmF0b3IucHJlcGFyZSglMEElMjAlMjAlMjAlMjB0cmFpbl9kYXRhbG9hZGVyJTJDJTIwZXZhbF9kYXRhbG9hZGVyJTJDJTIwbW9kZWwlMkMlMjBvcHRpbWl6ZXIlMEEpJTBBJTBBbnVtX2Vwb2NocyUyMCUzRCUyMDMlMEFudW1fdHJhaW5pbmdfc3RlcHMlMjAlM0QlMjBudW1fZXBvY2hzJTIwKiUyMGxlbih0cmFpbl9kbCklMEFscl9zY2hlZHVsZXIlMjAlM0QlMjBnZXRfc2NoZWR1bGVyKCUwQSUyMCUyMCUyMCUyMCUyMmxpbmVhciUyMiUyQyUwQSUyMCUyMCUyMCUyMG9wdGltaXplciUzRG9wdGltaXplciUyQyUwQSUyMCUyMCUyMCUyMG51bV93YXJtdXBfc3RlcHMlM0QwJTJDJTBBJTIwJTIwJTIwJTIwbnVtX3RyYWluaW5nX3N0ZXBzJTNEbnVtX3RyYWluaW5nX3N0ZXBzJTJDJTBBKSUwQSUwQXByb2dyZXNzX2JhciUyMCUzRCUyMHRxZG0ocmFuZ2UobnVtX3RyYWluaW5nX3N0ZXBzKSklMEElMEFtb2RlbC50cmFpbigpJTBBZm9yJTIwZXBvY2glMjBpbiUyMHJhbmdlKG51bV9lcG9jaHMpJTNBJTBBJTIwJTIwJTIwJTIwZm9yJTIwYmF0Y2glMjBpbiUyMHRyYWluX2RsJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqYmF0Y2gpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9zcyUyMCUzRCUyMG91dHB1dHMubG9zcyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjY2VsZXJhdG9yLmJhY2t3YXJkKGxvc3MpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3B0aW1pemVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxyX3NjaGVkdWxlci5zdGVwKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuemVyb19ncmFkKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIudXBkYXRlKDEp",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator
<span class="hljs-keyword">from</span> torch.optim <span class="hljs-keyword">import</span> AdamW
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification, get_scheduler
accelerator = Accelerator()
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)
optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">3e-5</span>)
train_dl, eval_dl, model, optimizer = accelerator.prepare(
train_dataloader, eval_dataloader, model, optimizer
)
num_epochs = <span class="hljs-number">3</span>
num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dl)
lr_scheduler = get_scheduler(
<span class="hljs-string">&quot;linear&quot;</span>,
optimizer=optimizer,
num_warmup_steps=<span class="hljs-number">0</span>,
num_training_steps=num_training_steps,
)
progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps))
model.train()
<span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs):
<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dl:
outputs = model(**batch)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
progress_bar.update(<span class="hljs-number">1</span>)`,wrap:!1}}),x=new Z({props:{$$slots:{default:[la]},$$scope:{ctx:h}}}),ve=new j({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjB0b3JjaC5vcHRpbSUyMGltcG9ydCUyMEFkYW1XJTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMkMlMjBnZXRfc2NoZWR1bGVyJTBBJTBBYWNjZWxlcmF0b3IlMjAlM0QlMjBBY2NlbGVyYXRvcigpJTBBJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50JTJDJTIwbnVtX2xhYmVscyUzRDIpJTBBb3B0aW1pemVyJTIwJTNEJTIwQWRhbVcobW9kZWwucGFyYW1ldGVycygpJTJDJTIwbHIlM0QzZS01KSUwQSUwQXRyYWluX2RsJTJDJTIwZXZhbF9kbCUyQyUyMG1vZGVsJTJDJTIwb3B0aW1pemVyJTIwJTNEJTIwYWNjZWxlcmF0b3IucHJlcGFyZSglMEElMjAlMjAlMjAlMjB0cmFpbl9kYXRhbG9hZGVyJTJDJTIwZXZhbF9kYXRhbG9hZGVyJTJDJTIwbW9kZWwlMkMlMjBvcHRpbWl6ZXIlMEEpJTBBJTBBbnVtX2Vwb2NocyUyMCUzRCUyMDMlMEFudW1fdHJhaW5pbmdfc3RlcHMlMjAlM0QlMjBudW1fZXBvY2hzJTIwKiUyMGxlbih0cmFpbl9kbCklMEFscl9zY2hlZHVsZXIlMjAlM0QlMjBnZXRfc2NoZWR1bGVyKCUwQSUyMCUyMCUyMCUyMCUyMmxpbmVhciUyMiUyQyUwQSUyMCUyMCUyMCUyMG9wdGltaXplciUzRG9wdGltaXplciUyQyUwQSUyMCUyMCUyMCUyMG51bV93YXJtdXBfc3RlcHMlM0QwJTJDJTBBJTIwJTIwJTIwJTIwbnVtX3RyYWluaW5nX3N0ZXBzJTNEbnVtX3RyYWluaW5nX3N0ZXBzJTJDJTBBKSUwQSUwQXByb2dyZXNzX2JhciUyMCUzRCUyMHRxZG0ocmFuZ2UobnVtX3RyYWluaW5nX3N0ZXBzKSklMEElMEFtb2RlbC50cmFpbigpJTBBZm9yJTIwZXBvY2glMjBpbiUyMHJhbmdlKG51bV9lcG9jaHMpJTNBJTBBJTIwJTIwJTIwJTIwZm9yJTIwYmF0Y2glMjBpbiUyMHRyYWluX2RsJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqYmF0Y2gpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9zcyUyMCUzRCUyMG91dHB1dHMubG9zcyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjY2VsZXJhdG9yLmJhY2t3YXJkKGxvc3MpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3B0aW1pemVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxyX3NjaGVkdWxlci5zdGVwKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuemVyb19ncmFkKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIudXBkYXRlKDEp",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator
<span class="hljs-keyword">from</span> torch.optim <span class="hljs-keyword">import</span> AdamW
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification, get_scheduler
accelerator = Accelerator()
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)
optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">3e-5</span>)
train_dl, eval_dl, model, optimizer = accelerator.prepare(
train_dataloader, eval_dataloader, model, optimizer
)
num_epochs = <span class="hljs-number">3</span>
num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dl)
lr_scheduler = get_scheduler(
<span class="hljs-string">&quot;linear&quot;</span>,
optimizer=optimizer,
num_warmup_steps=<span class="hljs-number">0</span>,
num_training_steps=num_training_steps,
)
progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps))
model.train()
<span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs):
<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dl:
outputs = model(**batch)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
progress_bar.update(<span class="hljs-number">1</span>)`,wrap:!1}}),Be=new j({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config",wrap:!1}}),We=new j({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluLnB5",highlighted:'accelerate <span class="hljs-built_in">launch</span> train.py',wrap:!1}}),Re=new j({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBub3RlYm9va19sYXVuY2hlciUwQSUwQW5vdGVib29rX2xhdW5jaGVyKHRyYWluaW5nX2Z1bmN0aW9uKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> notebook_launcher
notebook_launcher(training_function)`,wrap:!1}}),X=new Z({props:{$$slots:{default:[sa]},$$scope:{ctx:h}}}),Ve=new C({props:{title:"๋‹ค์Œ ๋‹จ๊ณ„์™€ ๋ชจ๋ฒ” ์‚ฌ๋ก€",local:"next-steps-and-best-practices",headingTag:"h3"}}),Le=new C({props:{title:"์„น์…˜ ํ€ด์ฆˆ",local:"section-quiz",headingTag:"h2"}}),qe=new C({props:{title:"1. Adam๊ณผ AdamW ์˜ตํ‹ฐ๋งˆ์ด์ €์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?",local:"1-adam๊ณผ-adamw-์˜ตํ‹ฐ๋งˆ์ด์ €์˜-์ฃผ์š”-์ฐจ์ด์ ์€-๋ฌด์—‡์ธ๊ฐ€์š”",headingTag:"h3"}}),Pe=new ot({props:{choices:[{text:"AdamW๋Š” ๋‹ค๋ฅธ ํ•™์Šต๋ฅ  ์Šค์ผ€์ค„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.",explain:"ํ•™์Šต๋ฅ  ์Šค์ผ€์ค„๋ง์€ ์˜ตํ‹ฐ๋งˆ์ด์ € ์„ ํƒ๊ณผ ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค."},{text:"AdamW๋Š” ๋ถ„๋ฆฌ๋œ ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ ์ •๊ทœํ™”๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! AdamW๋Š” ๊ฐ€์ค‘์น˜ ๊ฐ์†Œ๋ฅผ ๊ทธ๋ž˜๋””์–ธํŠธ ๊ธฐ๋ฐ˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—…๋ฐ์ดํŠธ์™€ ๋ถ„๋ฆฌํ•˜์—ฌ ๋” ๋‚˜์€ ์ •๊ทœํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.",correct:!0},{text:"AdamW๋Š” ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.",explain:"AdamW๋Š” ํŠธ๋žœ์Šคํฌ๋จธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."},{text:"AdamW๋Š” Adam๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.",explain:"๋‘ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋ชจ๋‘ ๋น„์Šทํ•œ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค."}]}}),Ke=new C({props:{title:"2. ํ›ˆ๋ จ ๋ฃจํ”„์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์—ฐ์‚ฐ ์ˆœ์„œ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?",local:"2-ํ›ˆ๋ จ-๋ฃจํ”„์—์„œ-์˜ฌ๋ฐ”๋ฅธ-์—ฐ์‚ฐ-์ˆœ์„œ๋Š”-๋ฌด์—‡์ธ๊ฐ€์š”",headingTag:"h3"}}),De=new ot({props:{choices:[{text:"์ˆœ์ „ํŒŒ โ†’ ์—ญ์ „ํŒŒ โ†’ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋‹จ๊ณ„ โ†’ ๊ทธ๋ž˜๋””์–ธํŠธ ์ดˆ๊ธฐํ™”",explain:"๋น„์Šทํ•˜์ง€๋งŒ, ์ด์ „ ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ๋ˆ„์ ๋˜์ง€ ์•Š๋„๋ก ๋‹ค์Œ ์ˆœ์ „ํŒŒ ์ „์— ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."},{text:"์ˆœ์ „ํŒŒ โ†’ ์—ญ์ „ํŒŒ โ†’ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋‹จ๊ณ„ โ†’ ์Šค์ผ€์ค„๋Ÿฌ ๋‹จ๊ณ„ โ†’ ๊ทธ๋ž˜๋””์–ธํŠธ ์ดˆ๊ธฐํ™”",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค: ์†์‹ค ๊ณ„์‚ฐ, ๊ทธ๋ž˜๋””์–ธํŠธ ๊ณ„์‚ฐ, ๋งค๊ฐœ๋ณ€์ˆ˜ ์—…๋ฐ์ดํŠธ, ํ•™์Šต๋ฅ  ์—…๋ฐ์ดํŠธ, ๊ทธ๋ž˜๋””์–ธํŠธ ์ดˆ๊ธฐํ™”.",correct:!0},{text:"๊ทธ๋ž˜๋””์–ธํŠธ ์ดˆ๊ธฐํ™” โ†’ ์ˆœ์ „ํŒŒ โ†’ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋‹จ๊ณ„ โ†’ ์—ญ์ „ํŒŒ",explain:"์†์‹ค๋กœ๋ถ€ํ„ฐ ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด ์—ญ์ „ํŒŒ๊ฐ€ ์ˆœ์ „ํŒŒ ๋‹ค์Œ์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค."},{text:"์ˆœ์ „ํŒŒ โ†’ ๊ทธ๋ž˜๋””์–ธํŠธ ์ดˆ๊ธฐํ™” โ†’ ์—ญ์ „ํŒŒ โ†’ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋‹จ๊ณ„",explain:"์—ญ์ „ํŒŒ ์ „์— ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ๋ฐฉ๊ธˆ ๊ณ„์‚ฐํ•œ ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค."}]}}),Oe=new C({props:{title:"3. ๐Ÿค— Accelerate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ฃผ๋กœ ๋ฌด์—‡์„ ๋„์™€์ฃผ๋‚˜์š”?",local:"3--accelerate-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š”-์ฃผ๋กœ-๋ฌด์—‡์„-๋„์™€์ฃผ๋‚˜์š”",headingTag:"h3"}}),et=new ot({props:{choices:[{text:"์ˆœ์ „ํŒŒ๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ๋ชจ๋ธ ํ›ˆ๋ จ์„ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.",explain:"Accelerate๋Š” ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ์ž์ฒด๋ฅผ ์ตœ์ ํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."},{text:"์ตœ์ ์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.",explain:"Accelerate๋Š” ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."},{text:"์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ์œผ๋กœ ์—ฌ๋Ÿฌ GPU/TPU์—์„œ ๋ถ„์‚ฐ ํ›ˆ๋ จ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! Accelerate๋Š” ๋ถ„์‚ฐ ํ›ˆ๋ จ ๋ณต์žก์„ฑ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋‹จ์ผ ๋˜๋Š” ๋‹ค์ค‘ ์žฅ์น˜์—์„œ ์›ํ™œํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.",correct:!0},{text:"๋ชจ๋ธ์„ TensorFlow์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.",explain:"Accelerate๋Š” PyTorch ๋‚ด์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„ ๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."}]}}),tt=new C({props:{title:"4. ํ›ˆ๋ จ ๋ฃจํ”„์—์„œ ๋ฐฐ์น˜๋ฅผ ์žฅ์น˜๋กœ ์ด๋™ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?",local:"4-ํ›ˆ๋ จ-๋ฃจํ”„์—์„œ-๋ฐฐ์น˜๋ฅผ-์žฅ์น˜๋กœ-์ด๋™ํ•˜๋Š”-์ด์œ ๋Š”-๋ฌด์—‡์ธ๊ฐ€์š”",headingTag:"h3"}}),lt=new ot({props:{choices:[{text:"ํ›ˆ๋ จ์„ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.",explain:"์†๋„์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฃผ๋œ ์ด์œ ๋Š” ํ˜ธํ™˜์„ฑ์ž…๋‹ˆ๋‹ค."},{text:"๋ชจ๋ธ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋™์ผํ•œ ์žฅ์น˜(CPU/GPU)์— ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! PyTorch๋Š” ์—ฐ์‚ฐ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ํ…์„œ๊ฐ€ ๋™์ผํ•œ ์žฅ์น˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",correct:!0},{text:"๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.",explain:"์žฅ์น˜๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค."},{text:"DataLoader์—์„œ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.",explain:"DataLoader๋Š” ํŠน์ • ์žฅ์น˜ ๋ฐฐ์น˜๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."}]}}),st=new C({props:{title:"5. ํ‰๊ฐ€ ์ „์— model.eval() ์€ ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?",local:"5-ํ‰๊ฐ€-์ „์—-modeleval-์€-๋ฌด์—‡์„-ํ•˜๋‚˜์š”",headingTag:"h3"}}),at=new ot({props:{choices:[{text:"๋ชจ๋ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ณ ์ •ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.",explain:"model.eval()์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ณ ์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค - ๊ทธ๊ฒƒ์€ requires_grad=False๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค."},{text:"๋“œ๋กญ์•„์›ƒ ๋ฐ ๋ฐฐ์น˜ ์ •๊ทœํ™”์™€ ๊ฐ™์€ ๋ ˆ์ด์–ด์˜ ๋™์ž‘์„ ์ถ”๋ก ์šฉ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! eval() ๋ชจ๋“œ๋Š” ๋“œ๋กญ์•„์›ƒ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ํ˜„์žฌ ๋ฐฐ์น˜์—์„œ ๊ณ„์‚ฐํ•˜๋Š” ๋Œ€์‹  ๋ฐฐ์น˜ ์ •๊ทœํ™”์— ์‹คํ–‰ ํ†ต๊ณ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.",correct:!0},{text:"ํ‰๊ฐ€ ๋ฉ”ํŠธ๋ฆญ์„ ์œ„ํ•œ ๊ทธ๋ž˜๋””์–ธํŠธ ๊ณ„์‚ฐ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.",explain:"์‹ค์ œ๋กœ๋Š” ํ‰๊ฐ€ ์ค‘์— ๊ทธ๋ž˜๋””์–ธํŠธ ๊ณ„์‚ฐ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ torch.no_grad()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค."},{text:"ํ‰๊ฐ€ ๋ฉ”ํŠธ๋ฆญ์„ ์ž๋™์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.",explain:"model.eval()์€ ๋ ˆ์ด์–ด ๋™์ž‘๋งŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค - ๋ฉ”ํŠธ๋ฆญ ๊ณ„์‚ฐ์€ ๋ณ„๋„๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."}]}}),nt=new C({props:{title:"6. ํ‰๊ฐ€ ์ค‘ torch.no_grad() ์˜ ๋ชฉ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?",local:"6-ํ‰๊ฐ€-์ค‘-torchnograd-์˜-๋ชฉ์ ์€-๋ฌด์—‡์ธ๊ฐ€์š”",headingTag:"h3"}}),pt=new ot({props:{choices:[{text:"๋ชจ๋ธ์ด ์˜ˆ์ธก์„ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.",explain:"torch.no_grad()๋Š” ์˜ˆ์ธก์„ ๋ฐฉ์ง€ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ž˜๋””์–ธํŠธ ๊ณ„์‚ฐ๋งŒ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค."},{text:"๊ทธ๋ž˜๋””์–ธํŠธ ์ถ”์ ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๊ณ  ๊ณ„์‚ฐ์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค.",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! ํ‰๊ฐ€์—๋Š” ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ณ„์‚ฐ๋Ÿ‰์„ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.",correct:!0},{text:"๋ชจ๋ธ์˜ ํ‰๊ฐ€ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.",explain:"ํ‰๊ฐ€ ๋ชจ๋“œ๋Š” torch.no_grad()๊ฐ€ ์•„๋‹Œ model.eval()๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค."},{text:"์‹คํ–‰ ๊ฐ„ ์ผ๊ด€๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.",explain:"๊ฒฐ๊ณผ๋ฅผ ๋™์ผํ•˜๊ฒŒ ์žฌํ˜„ํ•˜๋ ค๋ฉด torch.no_grad()๊ฐ€ ์•„๋‹ˆ๋ผ ๋žœ๋ค ์‹œ๋“œ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."}]}}),rt=new C({props:{title:"7. ํ›ˆ๋ จ ๋ฃจํ”„์—์„œ ๐Ÿค— Accelerate๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌด์—‡์ด ๋ณ€๊ฒฝ๋˜๋‚˜์š”?",local:"7-ํ›ˆ๋ จ-๋ฃจํ”„์—์„œ--accelerate๋ฅผ-์‚ฌ์šฉํ• -๋•Œ-๋ฌด์—‡์ด-๋ณ€๊ฒฝ๋˜๋‚˜์š”",headingTag:"h3"}}),it=new ot({props:{choices:[{text:"์ „์ฒด ํ›ˆ๋ จ ๋ฃจํ”„๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",explain:"Accelerate๋Š” ๊ธฐ์กด PyTorch ์ฝ”๋“œ์— ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."},{text:"accelerator.prepare()๋กœ ์ฃผ์š” ๊ฐ์ฒด๋ฅผ ๋ž˜ํ•‘ํ•˜๊ณ  loss.backward() ๋Œ€์‹  accelerator.backward()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.",explain:"์ •๋‹ต์ž…๋‹ˆ๋‹ค! ์ด๊ฒƒ๋“ค์ด ์ฃผ์š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค - ๊ฐ์ฒด๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์ ์ ˆํ•œ ๋ถ„์‚ฐ ํ›ˆ๋ จ์„ ์œ„ํ•ด accelerator.backward()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.",correct:!0},{text:"์ฝ”๋“œ์—์„œ GPU ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",explain:"Accelerate๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค."},{text:"๋‹ค๋ฅธ ์˜ตํ‹ฐ๋งˆ์ด์ €์™€ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",explain:"Accelerate์—์„œ ๋™์ผํ•œ ์˜ตํ‹ฐ๋งˆ์ด์ €์™€ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."}]}}),R=new Z({props:{$$slots:{default:[aa]},$$scope:{ctx:h}}}),mt=new qs({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ko/chapter3/4.mdx"}}),{c(){p=$("meta"),w=a(),f=$("p"),y=a(),r(U.$$.fragment),J=a(),r(T.$$.fragment),_=a(),r(b.$$.fragment),g=a(),V=$("p"),V.innerHTML=Ll,Mt=a(),r(k.$$.fragment),ft=a(),r(Y.$$.fragment),$t=a(),r(H.$$.fragment),ut=a(),z=$("p"),z.innerHTML=Sl,dt=a(),N=$("ul"),N.innerHTML=ql,yt=a(),F=$("p"),F.innerHTML=Pl,bt=a(),r(E.$$.fragment),wt=a(),Q=$("p"),Q.textContent=Kl,Tt=a(),r(L.$$.fragment),Jt=a(),S=$("p"),S.textContent=Dl,jt=a(),r(q.$$.fragment),ht=a(),P=$("p"),P.textContent=Ol,Ut=a(),r(K.$$.fragment),gt=a(),r(D.$$.fragment),Ct=a(),O=$("p"),O.innerHTML=es,_t=a(),ee=$("p"),ee.textContent=ts,Zt=a(),r(te.$$.fragment),kt=a(),le=$("p"),le.textContent=ls,vt=a(),r(se.$$.fragment),Gt=a(),r(ae.$$.fragment),Bt=a(),ne=$("p"),ne.innerHTML=ss,It=a(),pe=$("p"),pe.innerHTML=as,Wt=a(),r(re.$$.fragment),xt=a(),r(v.$$.fragment),Xt=a(),ie=$("p"),ie.innerHTML=ns,Rt=a(),r(me.$$.fragment),At=a(),r(oe.$$.fragment),Vt=a(),r(ce.$$.fragment),Yt=a(),Me=$("p"),Me.innerHTML=ps,Ht=a(),r(fe.$$.fragment),zt=a(),r($e.$$.fragment),Nt=a(),ue=$("p"),ue.innerHTML=rs,Ft=a(),r(de.$$.fragment),Et=a(),r(G.$$.fragment),Qt=a(),ye=$("p"),ye.textContent=is,Lt=a(),r(be.$$.fragment),St=a(),we=$("p"),we.innerHTML=ms,qt=a(),r(B.$$.fragment),Pt=a(),r(Te.$$.fragment),Kt=a(),r(Je.$$.fragment),Dt=a(),je=$("p"),je.textContent=os,Ot=a(),r(I.$$.fragment),el=a(),r(he.$$.fragment),tl=a(),r(Ue.$$.fragment),ll=a(),ge=$("p"),ge.innerHTML=cs,sl=a(),r(W.$$.fragment),al=a(),r(Ce.$$.fragment),nl=a(),_e=$("p"),_e.innerHTML=Ms,pl=a(),Ze=$("p"),Ze.innerHTML=fs,rl=a(),r(x.$$.fragment),il=a(),ke=$("p"),ke.textContent=$s,ml=a(),r(ve.$$.fragment),ol=a(),Ge=$("p"),Ge.innerHTML=us,cl=a(),r(Be.$$.fragment),Ml=a(),Ie=$("p"),Ie.textContent=ds,fl=a(),r(We.$$.fragment),$l=a(),xe=$("p"),xe.textContent=ys,ul=a(),Xe=$("p"),Xe.innerHTML=bs,dl=a(),r(Re.$$.fragment),yl=a(),Ae=$("p"),Ae.innerHTML=ws,bl=a(),r(X.$$.fragment),wl=a(),r(Ve.$$.fragment),Tl=a(),Ye=$("p"),Ye.textContent=Ts,Jl=a(),He=$("p"),He.innerHTML=Js,jl=a(),ze=$("p"),ze.innerHTML=js,hl=a(),Ne=$("p"),Ne.innerHTML=hs,Ul=a(),Fe=$("p"),Fe.innerHTML=Us,gl=a(),Ee=$("p"),Ee.innerHTML=gs,Cl=a(),Qe=$("p"),Qe.innerHTML=Cs,_l=a(),r(Le.$$.fragment),Zl=a(),Se=$("p"),Se.textContent=_s,kl=a(),r(qe.$$.fragment),vl=a(),r(Pe.$$.fragment),Gl=a(),r(Ke.$$.fragment),Bl=a(),r(De.$$.fragment),Il=a(),r(Oe.$$.fragment),Wl=a(),r(et.$$.fragment),xl=a(),r(tt.$$.fragment),Xl=a(),r(lt.$$.fragment),Rl=a(),r(st.$$.fragment),Al=a(),r(at.$$.fragment),Vl=a(),r(nt.$$.fragment),Yl=a(),r(pt.$$.fragment),Hl=a(),r(rt.$$.fragment),zl=a(),r(it.$$.fragment),Nl=a(),r(R.$$.fragment),Fl=a(),r(mt.$$.fragment),El=a(),ct=$("p"),this.h()},l(e){const t=Fs("svelte-u9bgzb",document.head);p=u(t,"META",{name:!0,content:!0}),t.forEach(l),w=n(e),f=u(e,"P",{}),Rs(f).forEach(l),y=n(e),i(U.$$.fragment,e),J=n(e),i(T.$$.fragment,e),_=n(e),i(b.$$.fragment,e),g=n(e),V=u(e,"P",{"data-svelte-h":!0}),d(V)!=="svelte-147ubkh"&&(V.innerHTML=Ll),Mt=n(e),i(k.$$.fragment,e),ft=n(e),i(Y.$$.fragment,e),$t=n(e),i(H.$$.fragment,e),ut=n(e),z=u(e,"P",{"data-svelte-h":!0}),d(z)!=="svelte-1rabmk1"&&(z.innerHTML=Sl),dt=n(e),N=u(e,"UL",{"data-svelte-h":!0}),d(N)!=="svelte-1omicw3"&&(N.innerHTML=ql),yt=n(e),F=u(e,"P",{"data-svelte-h":!0}),d(F)!=="svelte-153nlsq"&&(F.innerHTML=Pl),bt=n(e),i(E.$$.fragment,e),wt=n(e),Q=u(e,"P",{"data-svelte-h":!0}),d(Q)!=="svelte-rs1tsj"&&(Q.textContent=Kl),Tt=n(e),i(L.$$.fragment,e),Jt=n(e),S=u(e,"P",{"data-svelte-h":!0}),d(S)!=="svelte-14gj2r6"&&(S.textContent=Dl),jt=n(e),i(q.$$.fragment,e),ht=n(e),P=u(e,"P",{"data-svelte-h":!0}),d(P)!=="svelte-1eog8g8"&&(P.textContent=Ol),Ut=n(e),i(K.$$.fragment,e),gt=n(e),i(D.$$.fragment,e),Ct=n(e),O=u(e,"P",{"data-svelte-h":!0}),d(O)!=="svelte-1d0twml"&&(O.innerHTML=es),_t=n(e),ee=u(e,"P",{"data-svelte-h":!0}),d(ee)!=="svelte-4san5o"&&(ee.textContent=ts),Zt=n(e),i(te.$$.fragment,e),kt=n(e),le=u(e,"P",{"data-svelte-h":!0}),d(le)!=="svelte-1i4j61x"&&(le.textContent=ls),vt=n(e),i(se.$$.fragment,e),Gt=n(e),i(ae.$$.fragment,e),Bt=n(e),ne=u(e,"P",{"data-svelte-h":!0}),d(ne)!=="svelte-2yodeu"&&(ne.innerHTML=ss),It=n(e),pe=u(e,"P",{"data-svelte-h":!0}),d(pe)!=="svelte-pv1xxc"&&(pe.innerHTML=as),Wt=n(e),i(re.$$.fragment,e),xt=n(e),i(v.$$.fragment,e),Xt=n(e),ie=u(e,"P",{"data-svelte-h":!0}),d(ie)!=="svelte-blf4os"&&(ie.innerHTML=ns),Rt=n(e),i(me.$$.fragment,e),At=n(e),i(oe.$$.fragment,e),Vt=n(e),i(ce.$$.fragment,e),Yt=n(e),Me=u(e,"P",{"data-svelte-h":!0}),d(Me)!=="svelte-6xylu9"&&(Me.innerHTML=ps),Ht=n(e),i(fe.$$.fragment,e),zt=n(e),i($e.$$.fragment,e),Nt=n(e),ue=u(e,"P",{"data-svelte-h":!0}),d(ue)!=="svelte-5e29jc"&&(ue.innerHTML=rs),Ft=n(e),i(de.$$.fragment,e),Et=n(e),i(G.$$.fragment,e),Qt=n(e),ye=u(e,"P",{"data-svelte-h":!0}),d(ye)!=="svelte-1pnr8o2"&&(ye.textContent=is),Lt=n(e),i(be.$$.fragment,e),St=n(e),we=u(e,"P",{"data-svelte-h":!0}),d(we)!=="svelte-s2lee2"&&(we.innerHTML=ms),qt=n(e),i(B.$$.fragment,e),Pt=n(e),i(Te.$$.fragment,e),Kt=n(e),i(Je.$$.fragment,e),Dt=n(e),je=u(e,"P",{"data-svelte-h":!0}),d(je)!=="svelte-rmjrvs"&&(je.textContent=os),Ot=n(e),i(I.$$.fragment,e),el=n(e),i(he.$$.fragment,e),tl=n(e),i(Ue.$$.fragment,e),ll=n(e),ge=u(e,"P",{"data-svelte-h":!0}),d(ge)!=="svelte-1s0odnf"&&(ge.innerHTML=cs),sl=n(e),i(W.$$.fragment,e),al=n(e),i(Ce.$$.fragment,e),nl=n(e),_e=u(e,"P",{"data-svelte-h":!0}),d(_e)!=="svelte-1huvn8t"&&(_e.innerHTML=Ms),pl=n(e),Ze=u(e,"P",{"data-svelte-h":!0}),d(Ze)!=="svelte-3cfk4f"&&(Ze.innerHTML=fs),rl=n(e),i(x.$$.fragment,e),il=n(e),ke=u(e,"P",{"data-svelte-h":!0}),d(ke)!=="svelte-1qv3f40"&&(ke.textContent=$s),ml=n(e),i(ve.$$.fragment,e),ol=n(e),Ge=u(e,"P",{"data-svelte-h":!0}),d(Ge)!=="svelte-jr9qgn"&&(Ge.innerHTML=us),cl=n(e),i(Be.$$.fragment,e),Ml=n(e),Ie=u(e,"P",{"data-svelte-h":!0}),d(Ie)!=="svelte-jm3eld"&&(Ie.textContent=ds),fl=n(e),i(We.$$.fragment,e),$l=n(e),xe=u(e,"P",{"data-svelte-h":!0}),d(xe)!=="svelte-11s4mhl"&&(xe.textContent=ys),ul=n(e),Xe=u(e,"P",{"data-svelte-h":!0}),d(Xe)!=="svelte-1ylpqe4"&&(Xe.innerHTML=bs),dl=n(e),i(Re.$$.fragment,e),yl=n(e),Ae=u(e,"P",{"data-svelte-h":!0}),d(Ae)!=="svelte-8g86cz"&&(Ae.innerHTML=ws),bl=n(e),i(X.$$.fragment,e),wl=n(e),i(Ve.$$.fragment,e),Tl=n(e),Ye=u(e,"P",{"data-svelte-h":!0}),d(Ye)!=="svelte-thtzv"&&(Ye.textContent=Ts),Jl=n(e),He=u(e,"P",{"data-svelte-h":!0}),d(He)!=="svelte-1b9dbq4"&&(He.innerHTML=Js),jl=n(e),ze=u(e,"P",{"data-svelte-h":!0}),d(ze)!=="svelte-1m2wfmp"&&(ze.innerHTML=js),hl=n(e),Ne=u(e,"P",{"data-svelte-h":!0}),d(Ne)!=="svelte-5fb5sg"&&(Ne.innerHTML=hs),Ul=n(e),Fe=u(e,"P",{"data-svelte-h":!0}),d(Fe)!=="svelte-at21ge"&&(Fe.innerHTML=Us),gl=n(e),Ee=u(e,"P",{"data-svelte-h":!0}),d(Ee)!=="svelte-14rimi0"&&(Ee.innerHTML=gs),Cl=n(e),Qe=u(e,"P",{"data-svelte-h":!0}),d(Qe)!=="svelte-wik8os"&&(Qe.innerHTML=Cs),_l=n(e),i(Le.$$.fragment,e),Zl=n(e),Se=u(e,"P",{"data-svelte-h":!0}),d(Se)!=="svelte-18x3shq"&&(Se.textContent=_s),kl=n(e),i(qe.$$.fragment,e),vl=n(e),i(Pe.$$.fragment,e),Gl=n(e),i(Ke.$$.fragment,e),Bl=n(e),i(De.$$.fragment,e),Il=n(e),i(Oe.$$.fragment,e),Wl=n(e),i(et.$$.fragment,e),xl=n(e),i(tt.$$.fragment,e),Xl=n(e),i(lt.$$.fragment,e),Rl=n(e),i(st.$$.fragment,e),Al=n(e),i(at.$$.fragment,e),Vl=n(e),i(nt.$$.fragment,e),Yl=n(e),i(pt.$$.fragment,e),Hl=n(e),i(rt.$$.fragment,e),zl=n(e),i(it.$$.fragment,e),Nl=n(e),i(R.$$.fragment,e),Fl=n(e),i(mt.$$.fragment,e),El=n(e),ct=u(e,"P",{}),Rs(ct).forEach(l),this.h()},h(){As(p,"name","hf:doc:metadata"),As(p,"content",pa)},m(e,t){Es(document.head,p),s(e,w,t),s(e,f,t),s(e,y,t),m(U,e,t),s(e,J,t),m(T,e,t),s(e,_,t),m(b,e,t),s(e,g,t),s(e,V,t),s(e,Mt,t),m(k,e,t),s(e,ft,t),m(Y,e,t),s(e,$t,t),m(H,e,t),s(e,ut,t),s(e,z,t),s(e,dt,t),s(e,N,t),s(e,yt,t),s(e,F,t),s(e,bt,t),m(E,e,t),s(e,wt,t),s(e,Q,t),s(e,Tt,t),m(L,e,t),s(e,Jt,t),s(e,S,t),s(e,jt,t),m(q,e,t),s(e,ht,t),s(e,P,t),s(e,Ut,t),m(K,e,t),s(e,gt,t),m(D,e,t),s(e,Ct,t),s(e,O,t),s(e,_t,t),s(e,ee,t),s(e,Zt,t),m(te,e,t),s(e,kt,t),s(e,le,t),s(e,vt,t),m(se,e,t),s(e,Gt,t),m(ae,e,t),s(e,Bt,t),s(e,ne,t),s(e,It,t),s(e,pe,t),s(e,Wt,t),m(re,e,t),s(e,xt,t),m(v,e,t),s(e,Xt,t),s(e,ie,t),s(e,Rt,t),m(me,e,t),s(e,At,t),m(oe,e,t),s(e,Vt,t),m(ce,e,t),s(e,Yt,t),s(e,Me,t),s(e,Ht,t),m(fe,e,t),s(e,zt,t),m($e,e,t),s(e,Nt,t),s(e,ue,t),s(e,Ft,t),m(de,e,t),s(e,Et,t),m(G,e,t),s(e,Qt,t),s(e,ye,t),s(e,Lt,t),m(be,e,t),s(e,St,t),s(e,we,t),s(e,qt,t),m(B,e,t),s(e,Pt,t),m(Te,e,t),s(e,Kt,t),m(Je,e,t),s(e,Dt,t),s(e,je,t),s(e,Ot,t),m(I,e,t),s(e,el,t),m(he,e,t),s(e,tl,t),m(Ue,e,t),s(e,ll,t),s(e,ge,t),s(e,sl,t),m(W,e,t),s(e,al,t),m(Ce,e,t),s(e,nl,t),s(e,_e,t),s(e,pl,t),s(e,Ze,t),s(e,rl,t),m(x,e,t),s(e,il,t),s(e,ke,t),s(e,ml,t),m(ve,e,t),s(e,ol,t),s(e,Ge,t),s(e,cl,t),m(Be,e,t),s(e,Ml,t),s(e,Ie,t),s(e,fl,t),m(We,e,t),s(e,$l,t),s(e,xe,t),s(e,ul,t),s(e,Xe,t),s(e,dl,t),m(Re,e,t),s(e,yl,t),s(e,Ae,t),s(e,bl,t),m(X,e,t),s(e,wl,t),m(Ve,e,t),s(e,Tl,t),s(e,Ye,t),s(e,Jl,t),s(e,He,t),s(e,jl,t),s(e,ze,t),s(e,hl,t),s(e,Ne,t),s(e,Ul,t),s(e,Fe,t),s(e,gl,t),s(e,Ee,t),s(e,Cl,t),s(e,Qe,t),s(e,_l,t),m(Le,e,t),s(e,Zl,t),s(e,Se,t),s(e,kl,t),m(qe,e,t),s(e,vl,t),m(Pe,e,t),s(e,Gl,t),m(Ke,e,t),s(e,Bl,t),m(De,e,t),s(e,Il,t),m(Oe,e,t),s(e,Wl,t),m(et,e,t),s(e,xl,t),m(tt,e,t),s(e,Xl,t),m(lt,e,t),s(e,Rl,t),m(st,e,t),s(e,Al,t),m(at,e,t),s(e,Vl,t),m(nt,e,t),s(e,Yl,t),m(pt,e,t),s(e,Hl,t),m(rt,e,t),s(e,zl,t),m(it,e,t),s(e,Nl,t),m(R,e,t),s(e,Fl,t),m(mt,e,t),s(e,El,t),s(e,ct,t),Ql=!0},p(e,[t]){const Zs={};t&2&&(Zs.$$scope={dirty:t,ctx:e}),k.$set(Zs);const ks={};t&2&&(ks.$$scope={dirty:t,ctx:e}),v.$set(ks);const vs={};t&2&&(vs.$$scope={dirty:t,ctx:e}),G.$set(vs);const Gs={};t&2&&(Gs.$$scope={dirty:t,ctx:e}),B.$set(Gs);const Bs={};t&2&&(Bs.$$scope={dirty:t,ctx:e}),I.$set(Bs);const Is={};t&2&&(Is.$$scope={dirty:t,ctx:e}),W.$set(Is);const Ws={};t&2&&(Ws.$$scope={dirty:t,ctx:e}),x.$set(Ws);const xs={};t&2&&(xs.$$scope={dirty:t,ctx:e}),X.$set(xs);const Xs={};t&2&&(Xs.$$scope={dirty:t,ctx:e}),R.$set(Xs)},i(e){Ql||(o(U.$$.fragment,e),o(T.$$.fragment,e),o(b.$$.fragment,e),o(k.$$.fragment,e),o(Y.$$.fragment,e),o(H.$$.fragment,e),o(E.$$.fragment,e),o(L.$$.fragment,e),o(q.$$.fragment,e),o(K.$$.fragment,e),o(D.$$.fragment,e),o(te.$$.fragment,e),o(se.$$.fragment,e),o(ae.$$.fragment,e),o(re.$$.fragment,e),o(v.$$.fragment,e),o(me.$$.fragment,e),o(oe.$$.fragment,e),o(ce.$$.fragment,e),o(fe.$$.fragment,e),o($e.$$.fragment,e),o(de.$$.fragment,e),o(G.$$.fragment,e),o(be.$$.fragment,e),o(B.$$.fragment,e),o(Te.$$.fragment,e),o(Je.$$.fragment,e),o(I.$$.fragment,e),o(he.$$.fragment,e),o(Ue.$$.fragment,e),o(W.$$.fragment,e),o(Ce.$$.fragment,e),o(x.$$.fragment,e),o(ve.$$.fragment,e),o(Be.$$.fragment,e),o(We.$$.fragment,e),o(Re.$$.fragment,e),o(X.$$.fragment,e),o(Ve.$$.fragment,e),o(Le.$$.fragment,e),o(qe.$$.fragment,e),o(Pe.$$.fragment,e),o(Ke.$$.fragment,e),o(De.$$.fragment,e),o(Oe.$$.fragment,e),o(et.$$.fragment,e),o(tt.$$.fragment,e),o(lt.$$.fragment,e),o(st.$$.fragment,e),o(at.$$.fragment,e),o(nt.$$.fragment,e),o(pt.$$.fragment,e),o(rt.$$.fragment,e),o(it.$$.fragment,e),o(R.$$.fragment,e),o(mt.$$.fragment,e),Ql=!0)},o(e){c(U.$$.fragment,e),c(T.$$.fragment,e),c(b.$$.fragment,e),c(k.$$.fragment,e),c(Y.$$.fragment,e),c(H.$$.fragment,e),c(E.$$.fragment,e),c(L.$$.fragment,e),c(q.$$.fragment,e),c(K.$$.fragment,e),c(D.$$.fragment,e),c(te.$$.fragment,e),c(se.$$.fragment,e),c(ae.$$.fragment,e),c(re.$$.fragment,e),c(v.$$.fragment,e),c(me.$$.fragment,e),c(oe.$$.fragment,e),c(ce.$$.fragment,e),c(fe.$$.fragment,e),c($e.$$.fragment,e),c(de.$$.fragment,e),c(G.$$.fragment,e),c(be.$$.fragment,e),c(B.$$.fragment,e),c(Te.$$.fragment,e),c(Je.$$.fragment,e),c(I.$$.fragment,e),c(he.$$.fragment,e),c(Ue.$$.fragment,e),c(W.$$.fragment,e),c(Ce.$$.fragment,e),c(x.$$.fragment,e),c(ve.$$.fragment,e),c(Be.$$.fragment,e),c(We.$$.fragment,e),c(Re.$$.fragment,e),c(X.$$.fragment,e),c(Ve.$$.fragment,e),c(Le.$$.fragment,e),c(qe.$$.fragment,e),c(Pe.$$.fragment,e),c(Ke.$$.fragment,e),c(De.$$.fragment,e),c(Oe.$$.fragment,e),c(et.$$.fragment,e),c(tt.$$.fragment,e),c(lt.$$.fragment,e),c(st.$$.fragment,e),c(at.$$.fragment,e),c(nt.$$.fragment,e),c(pt.$$.fragment,e),c(rt.$$.fragment,e),c(it.$$.fragment,e),c(R.$$.fragment,e),c(mt.$$.fragment,e),Ql=!1},d(e){e&&(l(w),l(f),l(y),l(J),l(_),l(g),l(V),l(Mt),l(ft),l($t),l(ut),l(z),l(dt),l(N),l(yt),l(F),l(bt),l(wt),l(Q),l(Tt),l(Jt),l(S),l(jt),l(ht),l(P),l(Ut),l(gt),l(Ct),l(O),l(_t),l(ee),l(Zt),l(kt),l(le),l(vt),l(Gt),l(Bt),l(ne),l(It),l(pe),l(Wt),l(xt),l(Xt),l(ie),l(Rt),l(At),l(Vt),l(Yt),l(Me),l(Ht),l(zt),l(Nt),l(ue),l(Ft),l(Et),l(Qt),l(ye),l(Lt),l(St),l(we),l(qt),l(Pt),l(Kt),l(Dt),l(je),l(Ot),l(el),l(tl),l(ll),l(ge),l(sl),l(al),l(nl),l(_e),l(pl),l(Ze),l(rl),l(il),l(ke),l(ml),l(ol),l(Ge),l(cl),l(Ml),l(Ie),l(fl),l($l),l(xe),l(ul),l(Xe),l(dl),l(yl),l(Ae),l(bl),l(wl),l(Tl),l(Ye),l(Jl),l(He),l(jl),l(ze),l(hl),l(Ne),l(Ul),l(Fe),l(gl),l(Ee),l(Cl),l(Qe),l(_l),l(Zl),l(Se),l(kl),l(vl),l(Gl),l(Bl),l(Il),l(Wl),l(xl),l(Xl),l(Rl),l(Al),l(Vl),l(Yl),l(Hl),l(zl),l(Nl),l(Fl),l(El),l(ct)),l(p),M(U,e),M(T,e),M(b,e),M(k,e),M(Y,e),M(H,e),M(E,e),M(L,e),M(q,e),M(K,e),M(D,e),M(te,e),M(se,e),M(ae,e),M(re,e),M(v,e),M(me,e),M(oe,e),M(ce,e),M(fe,e),M($e,e),M(de,e),M(G,e),M(be,e),M(B,e),M(Te,e),M(Je,e),M(I,e),M(he,e),M(Ue,e),M(W,e),M(Ce,e),M(x,e),M(ve,e),M(Be,e),M(We,e),M(Re,e),M(X,e),M(Ve,e),M(Le,e),M(qe,e),M(Pe,e),M(Ke,e),M(De,e),M(Oe,e),M(et,e),M(tt,e),M(lt,e),M(st,e),M(at,e),M(nt,e),M(pt,e),M(rt,e),M(it,e),M(R,e),M(mt,e)}}}const pa='{"title":"์ฒ˜์Œ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•˜๋Š” ํ›ˆ๋ จ ๋ฃจํ”„","local":"a-full-training-loop","sections":[{"title":"ํ›ˆ๋ จ ์ค€๋น„","local":"prepare-for-training","sections":[],"depth":3},{"title":"ํ›ˆ๋ จ ๋ฃจํ”„","local":"the-training-loop","sections":[],"depth":3},{"title":"ํ‰๊ฐ€ ๋ฃจํ”„","local":"the-evaluation-loop","sections":[],"depth":3},{"title":"๐Ÿค— Accelerate๋กœ ํ›ˆ๋ จ ๋ฃจํ”„ ๊ฐ•ํ™”ํ•˜๊ธฐ","local":"supercharge-your-training-loop-with-accelerate","sections":[],"depth":3},{"title":"๋‹ค์Œ ๋‹จ๊ณ„์™€ ๋ชจ๋ฒ” ์‚ฌ๋ก€","local":"next-steps-and-best-practices","sections":[],"depth":3},{"title":"์„น์…˜ ํ€ด์ฆˆ","local":"section-quiz","sections":[{"title":"1. Adam๊ณผ AdamW ์˜ตํ‹ฐ๋งˆ์ด์ €์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?","local":"1-adam๊ณผ-adamw-์˜ตํ‹ฐ๋งˆ์ด์ €์˜-์ฃผ์š”-์ฐจ์ด์ ์€-๋ฌด์—‡์ธ๊ฐ€์š”","sections":[],"depth":3},{"title":"2. ํ›ˆ๋ จ ๋ฃจํ”„์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์—ฐ์‚ฐ ์ˆœ์„œ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?","local":"2-ํ›ˆ๋ จ-๋ฃจํ”„์—์„œ-์˜ฌ๋ฐ”๋ฅธ-์—ฐ์‚ฐ-์ˆœ์„œ๋Š”-๋ฌด์—‡์ธ๊ฐ€์š”","sections":[],"depth":3},{"title":"3. ๐Ÿค— Accelerate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ฃผ๋กœ ๋ฌด์—‡์„ ๋„์™€์ฃผ๋‚˜์š”?","local":"3--accelerate-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š”-์ฃผ๋กœ-๋ฌด์—‡์„-๋„์™€์ฃผ๋‚˜์š”","sections":[],"depth":3},{"title":"4. ํ›ˆ๋ จ ๋ฃจํ”„์—์„œ ๋ฐฐ์น˜๋ฅผ ์žฅ์น˜๋กœ ์ด๋™ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?","local":"4-ํ›ˆ๋ จ-๋ฃจํ”„์—์„œ-๋ฐฐ์น˜๋ฅผ-์žฅ์น˜๋กœ-์ด๋™ํ•˜๋Š”-์ด์œ ๋Š”-๋ฌด์—‡์ธ๊ฐ€์š”","sections":[],"depth":3},{"title":"5. ํ‰๊ฐ€ ์ „์— model.eval() ์€ ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?","local":"5-ํ‰๊ฐ€-์ „์—-modeleval-์€-๋ฌด์—‡์„-ํ•˜๋‚˜์š”","sections":[],"depth":3},{"title":"6. ํ‰๊ฐ€ ์ค‘ torch.no_grad() ์˜ ๋ชฉ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?","local":"6-ํ‰๊ฐ€-์ค‘-torchnograd-์˜-๋ชฉ์ ์€-๋ฌด์—‡์ธ๊ฐ€์š”","sections":[],"depth":3},{"title":"7. ํ›ˆ๋ จ ๋ฃจํ”„์—์„œ ๐Ÿค— Accelerate๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌด์—‡์ด ๋ณ€๊ฒฝ๋˜๋‚˜์š”?","local":"7-ํ›ˆ๋ จ-๋ฃจํ”„์—์„œ--accelerate๋ฅผ-์‚ฌ์šฉํ• -๋•Œ-๋ฌด์—‡์ด-๋ณ€๊ฒฝ๋˜๋‚˜์š”","sections":[],"depth":3}],"depth":2}],"depth":1}';function ra(h){return Hs(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class da extends zs{constructor(p){super(),Ns(this,p,ra,na,Ys,{})}}export{da as component};

Xet Storage Details

Size:
62 kB
ยท
Xet hash:
948b664cb4b91671801e773035b10980ed53f747ec79d5ab1a942c89b7717039

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.