Buckets:
| 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">"glue"</span>, <span class="hljs-string">"mrpc"</span>) | |
| checkpoint = <span class="hljs-string">"bert-base-uncased"</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">"sentence1"</span>], example[<span class="hljs-string">"sentence2"</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">"sentence1"</span>, <span class="hljs-string">"sentence2"</span>, <span class="hljs-string">"idx"</span>]) | |
| tokenized_datasets = tokenized_datasets.rename_column(<span class="hljs-string">"label"</span>, <span class="hljs-string">"labels"</span>) | |
| tokenized_datasets.set_format(<span class="hljs-string">"torch"</span>) | |
| tokenized_datasets[<span class="hljs-string">"train"</span>].column_names`,wrap:!1}}),L=new j({props:{code:"JTVCJTIyYXR0ZW50aW9uX21hc2slMjIlMkMlMjAlMjJpbnB1dF9pZHMlMjIlMkMlMjAlMjJsYWJlbHMlMjIlMkMlMjAlMjJ0b2tlbl90eXBlX2lkcyUyMiU1RA==",highlighted:'[<span class="hljs-string">"attention_mask"</span>, <span class="hljs-string">"input_ids"</span>, <span class="hljs-string">"labels"</span>, <span class="hljs-string">"token_type_ids"</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">"train"</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">"validation"</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">'attention_mask'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]), | |
| <span class="hljs-string">'input_ids'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]), | |
| <span class="hljs-string">'labels'</span>: torch.Size([<span class="hljs-number">8</span>]), | |
| <span class="hljs-string">'token_type_ids'</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=<NllLossBackward>) 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">"linear"</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">"cuda"</span>) <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> torch.device(<span class="hljs-string">"cpu"</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">'cuda'</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">"glue"</span>, <span class="hljs-string">"mrpc"</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">"labels"</span>]) | |
| metric.compute()`,wrap:!1}}),Je=new j({props:{code:"JTdCJ2FjY3VyYWN5JyUzQSUyMDAuODQzMTM3MjU0OTAxOTYwOCUyQyUyMCdmMSclM0ElMjAwLjg5MDc4NDk4MjkzNTE1MzUlN0Q=",highlighted:'{<span class="hljs-string">'accuracy'</span>: <span class="hljs-number">0.8431372549019608</span>, <span class="hljs-string">'f1'</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">"linear"</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">"linear"</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.