import{S as Ap,i as Ep,s as dp,e as a,k as i,w as T,t as r,M as vp,c as M,d as t,m as J,a as p,x as w,h as o,b as U,G as s,g as n,y as f,q as y,o as m,B as I,v as hp}from"../chunks/vendor-hf-doc-builder.js";import{T as _p}from"../chunks/Tip-hf-doc-builder.js";import{I as Vt}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as A}from"../chunks/CodeBlock-hf-doc-builder.js";function Qp(Wt){let j,L;return{c(){j=a("p"),L=r("\uC5EC\uB7EC \uC2E4\uD5D8\uC744 \uC2E4\uD589\uD560 \uACC4\uD68D\uC774\uB77C\uBA74, \uC2E4\uD5D8 \uAC04\uC5D0 \uBA54\uBAA8\uB9AC\uB97C \uC81C\uB300\uB85C \uBE44\uC6B0\uAE30 \uC704\uD574\uC11C Python \uCEE4\uB110\uC744 \uC2E4\uD5D8 \uC0AC\uC774\uB9C8\uB2E4 \uC7AC\uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4.")},l(C){j=M(C,"P",{});var c=p(j);L=o(c,"\uC5EC\uB7EC \uC2E4\uD5D8\uC744 \uC2E4\uD589\uD560 \uACC4\uD68D\uC774\uB77C\uBA74, \uC2E4\uD5D8 \uAC04\uC5D0 \uBA54\uBAA8\uB9AC\uB97C \uC81C\uB300\uB85C \uBE44\uC6B0\uAE30 \uC704\uD574\uC11C Python \uCEE4\uB110\uC744 \uC2E4\uD5D8 \uC0AC\uC774\uB9C8\uB2E4 \uC7AC\uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4."),c.forEach(t)},m(C,c){n(C,j,c),s(j,L)},d(C){C&&t(j)}}}function Rp(Wt){let j,L,C,c,Fl,X,pe,Yl,ne,Zt,Il,re,gt,jl,oe,Dt,F,Xt,v,Ol,ie,Je,ql,Ue,Te,Ft,G,we,xl,fe,ye,Yt,Y,Ot,b,me,Hl,Ie,je,qt,O,xt,ul,ue,Ht,q,Kt,Cl,Ce,ls,x,ts,cl,ce,ss,h,z,Kl,H,Se,lt,Ae,es,$,Ee,tt,de,ve,as,K,Ms,P,he,st,_e,Qe,ps,ll,ns,tl,rs,Sl,Re,os,sl,is,k,Js,_,B,et,el,Le,at,Ge,Us,al,Mt,be,ze,Ts,Ml,ws,pl,fs,Al,$e,ys,Q,N,pt,nl,Pe,nt,ke,ms,El,Be,Is,E,rl,rt,ot,Ne,Ve,ol,We,it,Ze,ge,De,il,Jt,Ut,Xe,Fe,Jl,Ye,Tt,Oe,qe,xe,Ul,wt,ft,He,Ke,Tl,la,yt,ta,sa,js,dl,ea,us,V,aa,wl,Ma,pa,Cs,R,W,mt,fl,na,It,ra,cs,vl,oa,Ss,u,jt,ia,Ja,ut,Ua,Ta,Ct,wa,fa,ct,ya,ma,St,Ia,ja,At,ua,As,hl,Ca,Es,_l,ca,ds,Ql,Et,Sa,vs,Z,dt,Aa,Ea,vt,da,hs,Rl,ht,va,_s,d,_t,ha,_a,Ll,yl,Qa,Ra,La,Qt,Ga,Qs,Gl,Rt,ba,Rs,bl,Lt,za,Ls,zl,Gt,$a,Gs,$l,bt,Pa,bs,Pl,ka,zs,kl,zt,Ba,$s,Bl,Na,Ps,Nl,$t,Va,ks,Vl,Wa,Bs,Wl,g,Pt,Za,ga,kt,Da,Xa,Ns,Zl,Fa,Vs,D,Ya,gl,Oa,qa,Ws;return X=new Vt({}),F=new A({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRyYW5zZm9ybWVycyUyMGRhdGFzZXRzJTIwYWNjZWxlcmF0ZSUyMG52aWRpYS1tbC1weTM=",highlighted:"pip install transformers datasets accelerate nvidia-ml-py3"}}),Y=new A({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwRGF0YXNldCUwQSUwQSUwQXNlcV9sZW4lMkMlMjBkYXRhc2V0X3NpemUlMjAlM0QlMjA1MTIlMkMlMjA1MTIlMEFkdW1teV9kYXRhJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyaW5wdXRfaWRzJTIyJTNBJTIwbnAucmFuZG9tLnJhbmRpbnQoMTAwJTJDJTIwMzAwMDAlMkMlMjAoZGF0YXNldF9zaXplJTJDJTIwc2VxX2xlbikpJTJDJTBBJTIwJTIwJTIwJTIwJTIybGFiZWxzJTIyJTNBJTIwbnAucmFuZG9tLnJhbmRpbnQoMCUyQyUyMDElMkMlMjAoZGF0YXNldF9zaXplKSklMkMlMEElN0QlMEFkcyUyMCUzRCUyMERhdGFzZXQuZnJvbV9kaWN0KGR1bW15X2RhdGEpJTBBZHMuc2V0X2Zvcm1hdCglMjJwdCUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> Dataset


<span class="hljs-meta">&gt;&gt;&gt; </span>seq_len, dataset_size = <span class="hljs-number">512</span>, <span class="hljs-number">512</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>dummy_data = {
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;input_ids&quot;</span>: np.random.randint(<span class="hljs-number">100</span>, <span class="hljs-number">30000</span>, (dataset_size, seq_len)),
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;labels&quot;</span>: np.random.randint(<span class="hljs-number">0</span>, <span class="hljs-number">1</span>, (dataset_size)),
<span class="hljs-meta">... </span>}
<span class="hljs-meta">&gt;&gt;&gt; </span>ds = Dataset.from_dict(dummy_data)
<span class="hljs-meta">&gt;&gt;&gt; </span>ds.set_format(<span class="hljs-string">&quot;pt&quot;</span>)`}}),O=new A({props:{code:"ZnJvbSUyMHB5bnZtbCUyMGltcG9ydCUyMColMEElMEElMEFkZWYlMjBwcmludF9ncHVfdXRpbGl6YXRpb24oKSUzQSUwQSUyMCUyMCUyMCUyMG52bWxJbml0KCklMEElMjAlMjAlMjAlMjBoYW5kbGUlMjAlM0QlMjBudm1sRGV2aWNlR2V0SGFuZGxlQnlJbmRleCgwKSUwQSUyMCUyMCUyMCUyMGluZm8lMjAlM0QlMjBudm1sRGV2aWNlR2V0TWVtb3J5SW5mbyhoYW5kbGUpJTBBJTIwJTIwJTIwJTIwcHJpbnQoZiUyMkdQVSUyMG1lbW9yeSUyMG9jY3VwaWVkJTNBJTIwJTdCaW5mby51c2VkJTJGJTJGMTAyNCoqMiU3RCUyME1CLiUyMiklMEElMEElMEFkZWYlMjBwcmludF9zdW1tYXJ5KHJlc3VsdCklM0ElMEElMjAlMjAlMjAlMjBwcmludChmJTIyVGltZSUzQSUyMCU3QnJlc3VsdC5tZXRyaWNzJTVCJ3RyYWluX3J1bnRpbWUnJTVEJTNBLjJmJTdEJTIyKSUwQSUyMCUyMCUyMCUyMHByaW50KGYlMjJTYW1wbGVzJTJGc2Vjb25kJTNBJTIwJTdCcmVzdWx0Lm1ldHJpY3MlNUIndHJhaW5fc2FtcGxlc19wZXJfc2Vjb25kJyU1RCUzQS4yZiU3RCUyMiklMEElMjAlMjAlMjAlMjBwcmludF9ncHVfdXRpbGl6YXRpb24oKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> pynvml <span class="hljs-keyword">import</span> *


<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">print_gpu_utilization</span>():
<span class="hljs-meta">... </span>    nvmlInit()
<span class="hljs-meta">... </span>    handle = nvmlDeviceGetHandleByIndex(<span class="hljs-number">0</span>)
<span class="hljs-meta">... </span>    info = nvmlDeviceGetMemoryInfo(handle)
<span class="hljs-meta">... </span>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;GPU memory occupied: <span class="hljs-subst">{info.used//<span class="hljs-number">1024</span>**<span class="hljs-number">2</span>}</span> MB.&quot;</span>)


<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">print_summary</span>(<span class="hljs-params">result</span>):
<span class="hljs-meta">... </span>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Time: <span class="hljs-subst">{result.metrics[<span class="hljs-string">&#x27;train_runtime&#x27;</span>]:<span class="hljs-number">.2</span>f}</span>&quot;</span>)
<span class="hljs-meta">... </span>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Samples/second: <span class="hljs-subst">{result.metrics[<span class="hljs-string">&#x27;train_samples_per_second&#x27;</span>]:<span class="hljs-number">.2</span>f}</span>&quot;</span>)
<span class="hljs-meta">... </span>    print_gpu_utilization()`}}),q=new A({props:{code:"cHJpbnRfZ3B1X3V0aWxpemF0aW9uKCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>print_gpu_utilization()
GPU memory occupied: <span class="hljs-number">0</span> MB.`}}),x=new A({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEElMEF0b3JjaC5vbmVzKCgxJTJDJTIwMSkpLnRvKCUyMmN1ZGElMjIpJTBBcHJpbnRfZ3B1X3V0aWxpemF0aW9uKCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch


<span class="hljs-meta">&gt;&gt;&gt; </span>torch.ones((<span class="hljs-number">1</span>, <span class="hljs-number">1</span>)).to(<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>print_gpu_utilization()
GPU memory occupied: <span class="hljs-number">1343</span> MB.`}}),H=new Vt({}),K=new A({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEElMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKCUyMmJlcnQtbGFyZ2UtdW5jYXNlZCUyMikudG8oJTIyY3VkYSUyMiklMEFwcmludF9ncHVfdXRpbGl6YXRpb24oKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification


<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;bert-large-uncased&quot;</span>).to(<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>print_gpu_utilization()
GPU memory occupied: <span class="hljs-number">2631</span> MB.`}}),ll=new A({props:{code:"bnZpZGlhLXNtaQ==",highlighted:"nvidia-smi"}}),tl=new A({props:{code:"VHVlJTIwSmFuJTIwMTElMjAwOCUzQTU4JTNBMDUlMjAyMDIyJTBBJTJCLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lMkIlMEElN0MlMjBOVklESUEtU01JJTIwNDYwLjkxLjAzJTIwJTIwJTIwJTIwRHJpdmVyJTIwVmVyc2lvbiUzQSUyMDQ2MC45MS4wMyUyMCUyMCUyMCUyMENVREElMjBWZXJzaW9uJTNBJTIwMTEuMiUyMCUyMCUyMCUyMCUyMCU3QyUwQSU3Qy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lMkItLS0tLS0tLS0tLS0tLS0tLS0tLS0tJTJCLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSUyQiUwQSU3QyUyMEdQVSUyMCUyME5hbWUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBQZXJzaXN0ZW5jZS1NJTdDJTIwQnVzLUlkJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlzcC5BJTIwJTdDJTIwVm9sYXRpbGUlMjBVbmNvcnIuJTIwRUNDJTIwJTdDJTBBJTdDJTIwRmFuJTIwJTIwVGVtcCUyMCUyMFBlcmYlMjAlMjBQd3IlM0FVc2FnZSUyRkNhcCU3QyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME1lbW9yeS1Vc2FnZSUyMCU3QyUyMEdQVS1VdGlsJTIwJTIwQ29tcHV0ZSUyME0uJTIwJTdDJTBBJTdDJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTUlHJTIwTS4lMjAlN0MlMEElN0MlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlMkIlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlMkIlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlM0QlN0MlMEElN0MlMjAlMjAlMjAwJTIwJTIwVGVzbGElMjBWMTAwLVNYTTIuLi4lMjAlMjBPbiUyMCUyMCUyMCU3QyUyMDAwMDAwMDAwJTNBMDAlM0EwNC4wJTIwT2ZmJTIwJTdDJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMCUyMCU3QyUwQSU3QyUyME4lMkZBJTIwJTIwJTIwMzdDJTIwJTIwJTIwJTIwUDAlMjAlMjAlMjAlMjAzOVclMjAlMkYlMjAzMDBXJTIwJTdDJTIwJTIwJTIwMjYzMU1pQiUyMCUyRiUyMDE2MTYwTWlCJTIwJTdDJTIwJTIwJTIwJTIwJTIwJTIwMCUyNSUyMCUyMCUyMCUyMCUyMCUyMERlZmF1bHQlMjAlN0MlMEElN0MlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBOJTJGQSUyMCU3QyUwQSUyQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lMkItLS0tLS0tLS0tLS0tLS0tLS0tLS0tJTJCLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSUyQiUwQSUwQSUyQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJTJCJTBBJTdDJTIwUHJvY2Vzc2VzJTNBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTBBJTdDJTIwJTIwR1BVJTIwJTIwJTIwR0klMjAlMjAlMjBDSSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMFBJRCUyMCUyMCUyMFR5cGUlMjAlMjAlMjBQcm9jZXNzJTIwbmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMEdQVSUyME1lbW9yeSUyMCU3QyUwQSU3QyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMElEJTIwJTIwJTIwSUQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBVc2FnZSUyMCUyMCUyMCUyMCUyMCUyMCU3QyUwQSU3QyUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCUzRCU3QyUwQSU3QyUyMCUyMCUyMCUyMDAlMjAlMjAlMjBOJTJGQSUyMCUyME4lMkZBJTIwJTIwJTIwJTIwJTIwJTIwMzcyMSUyMCUyMCUyMCUyMCUyMCUyMEMlMjAlMjAlMjAuLi5udnMlMkZjb2RlcGFycm90JTJGYmluJTJGcHl0aG9uJTIwJTIwJTIwJTIwJTIwMjYyOU1pQiUyMCU3QyUwQSUyQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJTJC",highlighted:`Tue Jan 11 08:58:05 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM2...  On   | 00000000:00:04.0 Off |                    0 |
| N/A   37C    P0    39W / 300W |   2631MiB / 16160MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      3721      C   ...nvs/codeparrot/bin/python     2629MiB |
+-----------------------------------------------------------------------------+`}}),sl=new A({props:{code:"ZGVmYXVsdF9hcmdzJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyb3V0cHV0X2RpciUyMiUzQSUyMCUyMnRtcCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMmV2YWx1YXRpb25fc3RyYXRlZ3klMjIlM0ElMjAlMjJzdGVwcyUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMm51bV90cmFpbl9lcG9jaHMlMjIlM0ElMjAxJTJDJTBBJTIwJTIwJTIwJTIwJTIybG9nX2xldmVsJTIyJTNBJTIwJTIyZXJyb3IlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJyZXBvcnRfdG8lMjIlM0ElMjAlMjJub25lJTIyJTJDJTBBJTdE",highlighted:`default_args = {
    <span class="hljs-string">&quot;output_dir&quot;</span>: <span class="hljs-string">&quot;tmp&quot;</span>,
    <span class="hljs-string">&quot;evaluation_strategy&quot;</span>: <span class="hljs-string">&quot;steps&quot;</span>,
    <span class="hljs-string">&quot;num_train_epochs&quot;</span>: <span class="hljs-number">1</span>,
    <span class="hljs-string">&quot;log_level&quot;</span>: <span class="hljs-string">&quot;error&quot;</span>,
    <span class="hljs-string">&quot;report_to&quot;</span>: <span class="hljs-string">&quot;none&quot;</span>,
}`}}),k=new _p({props:{$$slots:{default:[Qp]},$$scope:{ctx:Wt}}}),el=new Vt({}),Ml=new A({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRyYWluaW5nQXJndW1lbnRzJTJDJTIwVHJhaW5lciUyQyUyMGxvZ2dpbmclMEElMEFsb2dnaW5nLnNldF92ZXJib3NpdHlfZXJyb3IoKSUwQSUwQSUwQXRyYWluaW5nX2FyZ3MlMjAlM0QlMjBUcmFpbmluZ0FyZ3VtZW50cyhwZXJfZGV2aWNlX3RyYWluX2JhdGNoX3NpemUlM0Q0JTJDJTIwKipkZWZhdWx0X2FyZ3MpJTBBdHJhaW5lciUyMCUzRCUyMFRyYWluZXIobW9kZWwlM0Rtb2RlbCUyQyUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTIwdHJhaW5fZGF0YXNldCUzRGRzKSUwQXJlc3VsdCUyMCUzRCUyMHRyYWluZXIudHJhaW4oKSUwQXByaW50X3N1bW1hcnkocmVzdWx0KQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TrainingArguments, Trainer, logging

<span class="hljs-meta">&gt;&gt;&gt; </span>logging.set_verbosity_error()


<span class="hljs-meta">&gt;&gt;&gt; </span>training_args = TrainingArguments(per_device_train_batch_size=<span class="hljs-number">4</span>, **default_args)
<span class="hljs-meta">&gt;&gt;&gt; </span>trainer = Trainer(model=model, args=training_args, train_dataset=ds)
<span class="hljs-meta">&gt;&gt;&gt; </span>result = trainer.train()
<span class="hljs-meta">&gt;&gt;&gt; </span>print_summary(result)`}}),pl=new A({props:{code:"VGltZSUzQSUyMDU3LjgyJTBBU2FtcGxlcyUyRnNlY29uZCUzQSUyMDguODYlMEFHUFUlMjBtZW1vcnklMjBvY2N1cGllZCUzQSUyMDE0OTQ5JTIwTUIu",highlighted:`<span class="hljs-keyword">Time:</span> 57.82
Samples/second: 8.86
GPU memory occupied: 14949 MB.`}}),nl=new Vt({}),fl=new Vt({}),{c(){j=a("meta"),L=i(),C=a("h1"),c=a("a"),Fl=a("span"),T(X.$$.fragment),pe=i(),Yl=a("span"),ne=r("\uBAA8\uB378 \uD559\uC2B5 \uD574\uBD80\uD558\uAE30"),Zt=i(),Il=a("p"),re=r("\uBAA8\uB378 \uD6C8\uB828 \uC18D\uB3C4\uC640 \uBA54\uBAA8\uB9AC \uD65C\uC6A9\uC758 \uD6A8\uC728\uC131\uC744 \uD5A5\uC0C1\uC2DC\uD0A4\uAE30 \uC704\uD574 \uC801\uC6A9\uD560 \uC218 \uC788\uB294 \uC131\uB2A5 \uCD5C\uC801\uD654 \uAE30\uC220\uC744 \uC774\uD574\uD558\uB824\uBA74 GPU\uAC00 \uD6C8\uB828 \uC911\uC5D0 \uC5B4\uB5BB\uAC8C \uD65C\uC6A9\uB418\uB294\uC9C0, \uADF8\uB9AC\uACE0 \uC218\uD589\uB418\uB294 \uC5F0\uC0B0\uC5D0 \uB530\uB77C \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uC5B4\uB5BB\uAC8C \uBCC0\uD558\uB294\uC9C0\uC5D0 \uC775\uC219\uD574\uC838\uC57C \uD569\uB2C8\uB2E4."),gt=i(),jl=a("p"),oe=r("\uBA3C\uC800 GPU \uD65C\uC6A9\uACFC \uBAA8\uB378 \uD6C8\uB828 \uC2E4\uD589\uC5D0 \uB300\uD55C \uC608\uC2DC\uB97C \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4. \uB370\uBAA8\uB97C \uC704\uD574 \uBA87\uBA87 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uC124\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4:"),Dt=i(),T(F.$$.fragment),Xt=i(),v=a("p"),Ol=a("code"),ie=r("nvidia-ml-py3"),Je=r(" \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB294 Python \uB0B4\uBD80\uC5D0\uC11C \uBAA8\uB378\uC758 \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\uB7C9\uC744 \uBAA8\uB2C8\uD130\uB9C1\uD560 \uC218 \uC788\uAC8C \uD574\uC90D\uB2C8\uB2E4. \uD130\uBBF8\uB110\uC758 "),ql=a("code"),Ue=r("nvidia-smi"),Te=r(" \uBA85\uB839\uC5B4\uC5D0 \uC775\uC219\uD560 \uC218 \uC788\uB294\uB370, \uC774 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB294 Python\uC5D0\uC11C \uC9C1\uC811 \uB3D9\uC77C\uD55C \uC815\uBCF4\uC5D0 \uC811\uADFC\uD560 \uC218 \uC788\uAC8C \uD574\uC90D\uB2C8\uB2E4."),Ft=i(),G=a("p"),we=r(`\uADF8 \uB2E4\uC74C, 100\uACFC 30000 \uC0AC\uC774\uC758 \uBB34\uC791\uC704 \uD1A0\uD070 ID\uC640 \uBD84\uB958\uAE30\uB97C \uC704\uD55C \uC774\uC9C4 \uB808\uC774\uBE14\uC778 \uB354\uBBF8 \uB370\uC774\uD130\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.
\uAE38\uC774\uAC00 \uAC01\uAC01 512\uC778 \uCD1D 512\uAC1C\uC758 \uC2DC\uD000\uC2A4\uB97C \uAC00\uC838\uC640 PyTorch \uD615\uC2DD\uC758 `),xl=a("code"),fe=r("Dataset"),ye=r("\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4."),Yt=i(),T(Y.$$.fragment),Ot=i(),b=a("p"),me=r("GPU \uD65C\uC6A9 \uBC0F "),Hl=a("code"),Ie=r("Trainer"),je=r("\uB85C \uC2E4\uD589\uD55C \uD6C8\uB828 \uACFC\uC815\uC5D0 \uB300\uD55C \uC694\uC57D \uD1B5\uACC4\uB97C \uCD9C\uB825\uD558\uAE30 \uC704\uD574 \uB450 \uAC1C\uC758 \uB3C4\uC6B0\uBBF8 \uD568\uC218\uB97C \uC815\uC758\uD558\uACA0\uC2B5\uB2C8\uB2E4:"),qt=i(),T(O.$$.fragment),xt=i(),ul=a("p"),ue=r("\uC2DC\uC791\uD560 \uB54C GPU \uBA54\uBAA8\uB9AC\uAC00 \uBE44\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778\uD574 \uBD05\uC2DC\uB2E4:"),Ht=i(),T(q.$$.fragment),Kt=i(),Cl=a("p"),Ce=r("\uC88B\uC2B5\uB2C8\uB2E4. \uBAA8\uB378\uC744 \uB85C\uB4DC\uD558\uAE30 \uC804\uC5D0\uB294 \uC608\uC0C1\uB300\uB85C GPU \uBA54\uBAA8\uB9AC\uAC00 \uC810\uC720\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uADF8\uB807\uC9C0 \uC54A\uB2E4\uBA74 \uC0AC\uC6A9\uC790\uC758 \uAE30\uAE30\uC5D0\uC11C GPU \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD558\uB294 \uBAA8\uB4E0 \uD504\uB85C\uC138\uC2A4\uB97C \uC911\uB2E8\uD574\uC57C \uD569\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uC0AC\uC6A9\uC790\uB294 \uBAA8\uB4E0 \uC5EC\uC720 GPU \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD560 \uC218\uB294 \uC5C6\uC2B5\uB2C8\uB2E4. \uBAA8\uB378\uC774 GPU\uC5D0 \uB85C\uB4DC\uB420 \uB54C \uCEE4\uB110\uB3C4 \uB85C\uB4DC\uB418\uBBC0\uB85C 1-2GB\uC758 \uBA54\uBAA8\uB9AC\uB97C \uCC28\uC9C0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC5BC\uB9C8\uB098 \uB418\uB294\uC9C0 \uD655\uC778\uD558\uAE30 \uC704\uD574 GPU\uC5D0 \uC791\uC740 \uD150\uC11C\uB97C \uB85C\uB4DC\uD558\uC5EC \uCEE4\uB110\uC774 \uB85C\uB4DC\uB418\uB3C4\uB85D \uD2B8\uB9AC\uAC70\uD569\uB2C8\uB2E4."),ls=i(),T(x.$$.fragment),ts=i(),cl=a("p"),ce=r("\uCEE4\uB110\uB9CC\uC73C\uB85C\uB3C4 GPU \uBA54\uBAA8\uB9AC\uC758 1.3GB\uB97C \uCC28\uC9C0\uD569\uB2C8\uB2E4. \uC774\uC81C \uBAA8\uB378\uC774 \uC5BC\uB9C8\uB098 \uB9CE\uC740 \uACF5\uAC04\uC744 \uC0AC\uC6A9\uD558\uB294\uC9C0 \uD655\uC778\uD574 \uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),ss=i(),h=a("h2"),z=a("a"),Kl=a("span"),T(H.$$.fragment),Se=i(),lt=a("span"),Ae=r("\uBAA8\uB378 \uB85C\uB4DC"),es=i(),$=a("p"),Ee=r("\uC6B0\uC120, "),tt=a("code"),de=r("bert-large-uncased"),ve=r(" \uBAA8\uB378\uC744 \uB85C\uB4DC\uD569\uB2C8\uB2E4. \uBAA8\uB378\uC758 \uAC00\uC911\uCE58\uB97C \uC9C1\uC811 GPU\uC5D0 \uB85C\uB4DC\uD574\uC11C \uAC00\uC911\uCE58\uB9CC\uC774 \uC5BC\uB9C8\uB098 \uB9CE\uC740 \uACF5\uAC04\uC744 \uCC28\uC9C0\uD558\uB294\uC9C0 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),as=i(),T(K.$$.fragment),Ms=i(),P=a("p"),he=r("\uBAA8\uB378\uC758 \uAC00\uC911\uCE58\uB9CC\uC73C\uB85C\uB3C4 GPU \uBA54\uBAA8\uB9AC\uB97C 1.3 GB \uCC28\uC9C0\uD558\uB294 \uAC83\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC815\uD655\uD55C \uC22B\uC790\uB294 \uC0AC\uC6A9\uD558\uB294 GPU\uC5D0 \uB530\uB77C \uB2E4\uB985\uB2C8\uB2E4. \uCD5C\uC2E0 GPU\uC5D0\uC11C\uB294 \uBAA8\uB378 \uC0AC\uC6A9 \uC18D\uB3C4\uB97C \uB192\uC774\uB294 \uCD5C\uC801\uD654\uB41C \uBC29\uC2DD\uC73C\uB85C \uAC00\uC911\uCE58\uAC00 \uB85C\uB4DC\uB418\uBBC0\uB85C, \uBAA8\uB378\uC774 \uB354 \uB9CE\uC740 \uACF5\uAC04\uC744 \uCC28\uC9C0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774\uC81C "),st=a("code"),_e=r("nvidia-smi"),Qe=r(" CLI\uC640 \uB3D9\uC77C\uD55C \uACB0\uACFC\uB97C \uC5BB\uB294\uC9C0 \uBE60\uB974\uAC8C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),ps=i(),T(ll.$$.fragment),ns=i(),T(tl.$$.fragment),rs=i(),Sl=a("p"),Re=r("\uC774\uC804\uACFC \uB3D9\uC77C\uD55C \uC22B\uC790\uAC00 \uCD9C\uB825\uB418\uACE0 16GB \uBA54\uBAA8\uB9AC\uB97C \uAC00\uC9C4 V100 GPU\uB97C \uC0AC\uC6A9\uD558\uACE0 \uC788\uB2E4\uB294 \uAC83\uB3C4 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uADF8\uB7EC\uBBC0\uB85C \uC774\uC81C \uBAA8\uB378 \uD6C8\uB828\uC744 \uC2DC\uC791\uD558\uC5EC GPU \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\uB7C9\uC774 \uC5B4\uB5BB\uAC8C \uB2EC\uB77C\uC9C0\uB294\uC9C0 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC6B0\uC120 \uBA87\uBA87 \uD45C\uC900 \uD6C8\uB828 \uC778\uC218\uB97C \uC124\uC815\uD569\uB2C8\uB2E4:"),os=i(),T(sl.$$.fragment),is=i(),T(k.$$.fragment),Js=i(),_=a("h2"),B=a("a"),et=a("span"),T(el.$$.fragment),Le=i(),at=a("span"),Ge=r("\uAE30\uBCF8 \uD6C8\uB828\uC5D0\uC11C\uC758 \uBA54\uBAA8\uB9AC \uD65C\uC6A9"),Us=i(),al=a("p"),Mt=a("code"),be=r("Trainer"),ze=r("\uB97C \uC0AC\uC6A9\uD558\uC5EC, GPU \uC131\uB2A5 \uCD5C\uC801\uD654 \uAE30\uC220\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uACE0 \uBC30\uCE58 \uD06C\uAE30\uAC00 4\uC778 \uBAA8\uB378\uC744 \uD6C8\uB828\uC2DC\uD0A4\uACA0\uC2B5\uB2C8\uB2E4:"),Ts=i(),T(Ml.$$.fragment),ws=i(),T(pl.$$.fragment),fs=i(),Al=a("p"),$e=r("\uC6B0\uB9AC\uB294 \uBE44\uAD50\uC801 \uC791\uC740 \uBC30\uCE58 \uD06C\uAE30\uB85C\uB3C4 \uC804\uCCB4 GPU \uBA54\uBAA8\uB9AC\uB97C \uAC70\uC758 \uB2E4 \uCC28\uC9C0\uD558\uB294 \uAC83\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uBC30\uCE58 \uD06C\uAE30\uAC00 \uD074\uC218\uB85D \uBAA8\uB378 \uC218\uB834 \uC18D\uB3C4\uAC00 \uBE68\uB77C\uC9C0\uACE0 \uCD5C\uC885 \uC131\uB2A5\uC774 \uD5A5\uC0C1\uB418\uB294 \uACBD\uC6B0\uAC00 \uB9CE\uC2B5\uB2C8\uB2E4. \uADF8\uB798\uC11C \uC774\uC0C1\uC801\uC73C\uB85C\uB294 GPU \uC81C\uD55C\uC774 \uC544\uB2CC \uC6B0\uB9AC \uBAA8\uB378\uC758 \uC694\uAD6C\uC0AC\uD56D\uC5D0 \uB9DE\uAC8C \uBC30\uCE58 \uD06C\uAE30\uB97C \uC870\uC815\uD558\uB824\uACE0 \uD569\uB2C8\uB2E4. \uD765\uBBF8\uB86D\uAC8C\uB3C4 \uC6B0\uB9AC\uB294 \uBAA8\uB378\uC758 \uD06C\uAE30\uBCF4\uB2E4 \uD6E8\uC52C \uB354 \uB9CE\uC740 \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC65C \uC774\uB7F0 \uD604\uC0C1\uC774 \uBC1C\uC0DD\uD558\uB294\uC9C0 \uC870\uAE08 \uB354 \uC798 \uC774\uD574\uD558\uAE30 \uC704\uD574 \uBAA8\uB378\uC758 \uC5F0\uC0B0\uACFC \uBA54\uBAA8\uB9AC \uC694\uAD6C \uC0AC\uD56D\uC744 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),ys=i(),Q=a("h2"),N=a("a"),pt=a("span"),T(nl.$$.fragment),Pe=i(),nt=a("span"),ke=r("\uBAA8\uB378\uC758 \uC5F0\uC0B0 \uD574\uBD80\uD558\uAE30"),ms=i(),El=a("p"),Be=r("\uD2B8\uB79C\uC2A4\uD3EC\uBA38 \uC544\uD0A4\uD14D\uCC98\uC5D0\uB294 \uC5F0\uC0B0 \uAC15\uB3C4(compute-intensity)\uC5D0 \uB530\uB77C \uADF8\uB8F9\uD654\uB41C 3\uAC00\uC9C0 \uC8FC\uC694 \uC5F0\uC0B0 \uADF8\uB8F9\uC774 \uC788\uC2B5\uB2C8\uB2E4."),Is=i(),E=a("ol"),rl=a("li"),rt=a("p"),ot=a("strong"),Ne=r("\uD150\uC11C \uCD95\uC57D(Tensor Contractions)"),Ve=i(),ol=a("p"),We=r("\uC120\uD615 \uB808\uC774\uC5B4\uC640 \uBA40\uD2F0\uD5E4\uB4DC \uC5B4\uD150\uC158\uC758 \uAD6C\uC131 \uC694\uC18C\uB294 \uBAA8\uB450 "),it=a("strong"),Ze=r("\uD589\uB82C-\uD589\uB82C \uACF1\uC148(matrix-matrix multiplications)"),ge=r("\uC744 \uC77C\uAD04\uC801\uC73C\uB85C \uCC98\uB9AC\uD569\uB2C8\uB2E4. \uC774 \uC5F0\uC0B0\uC740 \uD2B8\uB79C\uC2A4\uD3EC\uBA38 \uD6C8\uB828\uC5D0\uC11C \uAC00\uC7A5 \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uB192\uC740 \uBD80\uBD84\uC785\uB2C8\uB2E4."),De=i(),il=a("li"),Jt=a("p"),Ut=a("strong"),Xe=r("\uD1B5\uACC4 \uC815\uADDC\uD654(Statistical Normalizations)"),Fe=i(),Jl=a("p"),Ye=r("\uC18C\uD504\uD2B8\uB9E5\uC2A4\uC640 \uB808\uC774\uC5B4 \uC815\uADDC\uD654\uB294 \uD150\uC11C \uCD95\uC57D\uBCF4\uB2E4 \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uB0AE\uC2B5\uB2C8\uB2E4. \uD558\uB098 \uC774\uC0C1\uC758 "),Tt=a("strong"),Oe=r("\uAC10\uC18C \uC5F0\uC0B0(reduction operations)"),qe=r("\uC744 \uD3EC\uD568\uD558\uBA70, \uADF8 \uACB0\uACFC\uB294 map\uC744 \uD1B5\uD574 \uC801\uC6A9\uB429\uB2C8\uB2E4."),xe=i(),Ul=a("li"),wt=a("p"),ft=a("strong"),He=r("\uC6D0\uC18C\uBCC4 \uC5F0\uC0B0\uC790(Element-wise Operators)"),Ke=i(),Tl=a("p"),la=r("\uADF8 \uC678 \uC5F0\uC0B0\uC790\uB4E4, "),yt=a("strong"),ta=r("\uD3B8\uD5A5(biases), \uB4DC\uB86D\uC544\uC6C3(dropout), \uD65C\uC131\uD654 \uD568\uC218(activations), \uC794\uCC28 \uC5F0\uACB0(residual connections)"),sa=r("\uC774 \uC5EC\uAE30\uC5D0 \uD574\uB2F9\uD569\uB2C8\uB2E4. \uC774 \uC5F0\uC0B0\uB4E4\uC740 \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uAC00\uC7A5 \uB0AE\uC2B5\uB2C8\uB2E4."),js=i(),dl=a("p"),ea=r("\uC774\uB7EC\uD55C \uC9C0\uC2DD\uC740 \uC131\uB2A5 \uBCD1\uBAA9 \uD604\uC0C1\uC744 \uBD84\uC11D\uD560 \uB54C \uB3C4\uC6C0\uC774 \uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),us=i(),V=a("p"),aa=r("\uC774 \uB0B4\uC6A9\uC740 "),wl=a("a"),Ma=r("Data Movement Is All You Need: A Case Study on Optimizing Transformers 2020"),pa=r("\uC744 \uCC38\uACE0\uD558\uC600\uC2B5\uB2C8\uB2E4."),Cs=i(),R=a("h2"),W=a("a"),mt=a("span"),T(fl.$$.fragment),na=i(),It=a("span"),ra=r("\uBAA8\uB378\uC758 \uBA54\uBAA8\uB9AC \uAD6C\uC870"),cs=i(),vl=a("p"),oa=r("\uBAA8\uB378\uC744 \uD6C8\uB828\uC2DC\uD0A4\uB294 \uB370\uB294 \uB2E8\uC21C\uD788 GPU\uC5D0 \uBAA8\uB378\uC744 \uC62C\uB9AC\uB294 \uAC83\uBCF4\uB2E4 \uD6E8\uC52C \uB354 \uB9CE\uC740 \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD55C\uB2E4\uB294 \uAC83\uC744 \uBCF4\uC558\uC2B5\uB2C8\uB2E4. \uC774\uB294 \uD6C8\uB828 \uC911 GPU \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD558\uB294 \uB9CE\uC740 \uAD6C\uC131 \uC694\uC18C\uAC00 \uC788\uAE30 \uB54C\uBB38\uC785\uB2C8\uB2E4. GPU \uBA54\uBAA8\uB9AC\uC758 \uAD6C\uC131 \uC694\uC18C\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4:"),Ss=i(),u=a("ol"),jt=a("li"),ia=r("\uBAA8\uB378 \uAC00\uC911\uCE58"),Ja=i(),ut=a("li"),Ua=r("\uC635\uD2F0\uB9C8\uC774\uC800 \uC0C1\uD0DC"),Ta=i(),Ct=a("li"),wa=r("\uADF8\uB77C\uB514\uC5B8\uD2B8"),fa=i(),ct=a("li"),ya=r("\uADF8\uB77C\uB514\uC5B8\uD2B8 \uACC4\uC0B0\uC744 \uC704\uD574 \uC800\uC7A5\uB41C \uC21C\uBC29\uD5A5 \uD65C\uC131\uD654"),ma=i(),St=a("li"),Ia=r("\uC784\uC2DC \uBC84\uD37C"),ja=i(),At=a("li"),ua=r("\uAE30\uB2A5\uBCC4 \uBA54\uBAA8\uB9AC"),As=i(),hl=a("p"),Ca=r("AdamW\uB97C \uC0AC\uC6A9\uD558\uC5EC \uD63C\uD569 \uC815\uBC00\uB3C4\uB85C \uD6C8\uB828\uB41C \uC77C\uBC18\uC801\uC778 \uBAA8\uB378\uC740 \uBAA8\uB378 \uD30C\uB77C\uBBF8\uD130\uB2F9 18 \uBC14\uC774\uD2B8\uC640 \uD65C\uC131\uD654 \uBA54\uBAA8\uB9AC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uCD94\uB860 \uB2E8\uACC4\uC5D0\uC11C\uB294 \uC635\uD2F0\uB9C8\uC774\uC800\uC640 \uADF8\uB77C\uB514\uC5B8\uD2B8\uAC00 \uD544\uC694\uD558\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC774\uB4E4\uC740 \uC81C\uC678\uD569\uB2C8\uB2E4. \uB530\uB77C\uC11C \uD63C\uD569 \uC815\uBC00\uB3C4 \uCD94\uB860\uC758 \uACBD\uC6B0 \uBAA8\uB378 \uB9E4\uAC1C\uBCC0\uC218\uB2F9 6 \uBC14\uC774\uD2B8\uC640 \uD65C\uC131\uD654 \uBA54\uBAA8\uB9AC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."),Es=i(),_l=a("p"),ca=r("\uC790\uC138\uD788 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),ds=i(),Ql=a("p"),Et=a("strong"),Sa=r("\uBAA8\uB378 \uAC00\uC911\uCE58:"),vs=i(),Z=a("ul"),dt=a("li"),Aa=r("fp32 \uD6C8\uB828\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 4 \uBC14\uC774\uD2B8"),Ea=i(),vt=a("li"),da=r("\uD63C\uD569 \uC815\uBC00\uB3C4 \uD6C8\uB828\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 6 \uBC14\uC774\uD2B8 (\uBA54\uBAA8\uB9AC\uC5D0 fp32\uC640 fp16 \uB450 \uAC00\uC9C0 \uBAA8\uB378\uC744 \uC720\uC9C0)"),hs=i(),Rl=a("p"),ht=a("strong"),va=r("\uC635\uD2F0\uB9C8\uC774\uC800 \uC0C1\uD0DC:"),_s=i(),d=a("ul"),_t=a("li"),ha=r("\uC77C\uBC18 AdamW\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 8 \uBC14\uC774\uD2B8 (2\uAC00\uC9C0 \uC0C1\uD0DC \uC720\uC9C0)"),_a=i(),Ll=a("li"),yl=a("a"),Qa=r("bitsandbytes"),Ra=r("\uC640 \uAC19\uC740 8\uBE44\uD2B8 AdamW \uC635\uD2F0\uB9C8\uC774\uC800\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 2 \uBC14\uC774\uD2B8"),La=i(),Qt=a("li"),Ga=r("Momentum\uC744 \uAC00\uC9C4 SGD\uC640 \uAC19\uC740 \uC635\uD2F0\uB9C8\uC774\uC800\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 4 \uBC14\uC774\uD2B8 (\uD558\uB098\uC758 \uC0C1\uD0DC\uB9CC \uC720\uC9C0)"),Qs=i(),Gl=a("p"),Rt=a("strong"),ba=r("\uADF8\uB77C\uB514\uC5B8\uD2B8"),Rs=i(),bl=a("ul"),Lt=a("li"),za=r("fp32 \uB610\uB294 \uD63C\uD569 \uC815\uBC00\uB3C4 \uD6C8\uB828\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 4 \uBC14\uC774\uD2B8 (\uADF8\uB77C\uB514\uC5B8\uD2B8\uB294 \uD56D\uC0C1 fp32\uC73C\uB85C \uC720\uC9C0\uB429\uB2C8\uB2E4.)"),Ls=i(),zl=a("p"),Gt=a("strong"),$a=r("\uC21C\uBC29\uD5A5 \uD65C\uC131\uD654"),Gs=i(),$l=a("ul"),bt=a("li"),Pa=r("\uD06C\uAE30\uB294 \uC5EC\uB7EC \uC694\uC778\uC5D0 \uB530\uB77C \uB2EC\uB77C\uC9C0\uBA70, \uC8FC\uC694 \uC694\uC778\uC740 \uC2DC\uD000\uC2A4 \uAE38\uC774, \uC740\uB2C9 \uC0C1\uD0DC\uC758 \uD06C\uAE30 \uBC0F \uBC30\uCE58 \uD06C\uAE30\uC785\uB2C8\uB2E4."),bs=i(),Pl=a("p"),ka=r("\uC21C\uBC29\uD5A5 \uBC0F \uC5ED\uBC29\uD5A5 \uD568\uC218\uC5D0\uC11C \uC804\uB2EC \uBC0F \uBC18\uD658\uB418\uB294 \uC785\uB825\uACFC \uCD9C\uB825\uC774 \uC788\uC73C\uBA70, \uADF8\uB77C\uB514\uC5B8\uD2B8 \uACC4\uC0B0\uC744 \uC704\uD574 \uC800\uC7A5\uB41C \uC21C\uBC29\uD5A5 \uD65C\uC131\uD654\uAC00 \uC788\uC2B5\uB2C8\uB2E4."),zs=i(),kl=a("p"),zt=a("strong"),Ba=r("\uC784\uC2DC \uBA54\uBAA8\uB9AC"),$s=i(),Bl=a("p"),Na=r("\uB354\uBD88\uC5B4 \uBAA8\uB4E0 \uC885\uB958\uC758 \uC784\uC2DC \uBCC0\uC218\uB294 \uC5F0\uC0B0\uC774 \uC644\uB8CC\uB418\uBA74 \uACE7\uBC14\uB85C \uD574\uC81C\uB418\uC9C0\uB9CC, \uADF8 \uC21C\uAC04\uC5D0\uB294 \uCD94\uAC00 \uBA54\uBAA8\uB9AC\uAC00 \uD544\uC694\uD560 \uC218 \uC788\uACE0 OOM\uC744 \uC720\uBC1C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB530\uB77C\uC11C \uCF54\uB529\uD560 \uB54C \uC774\uB7EC\uD55C \uC784\uC2DC \uBCC0\uC218\uC5D0 \uB300\uD574 \uC804\uB7B5\uC801\uC73C\uB85C \uC0DD\uAC01\uD558\uACE0 \uB54C\uB85C\uB294 \uB354 \uC774\uC0C1 \uD544\uC694 \uC5C6\uB294 \uC784\uC2DC \uBCC0\uC218\uB97C \uC989\uC2DC \uBA85\uC2DC\uC801\uC73C\uB85C \uBA54\uBAA8\uB9AC\uC5D0\uC11C \uC81C\uAC70\uD558\uB294 \uAC83\uC774 \uC911\uC694\uD569\uB2C8\uB2E4."),Ps=i(),Nl=a("p"),$t=a("strong"),Va=r("\uAE30\uB2A5\uBCC4 \uBA54\uBAA8\uB9AC"),ks=i(),Vl=a("p"),Wa=r("\uADF8\uB7F0 \uB2E4\uC74C, \uC18C\uD504\uD2B8\uC6E8\uC5B4\uC5D0\uB294 \uD2B9\uBCC4\uD55C \uBA54\uBAA8\uB9AC \uC694\uAD6C \uC0AC\uD56D\uC774 \uC788\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uBE54 \uAC80\uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD14D\uC2A4\uD2B8\uB97C \uC0DD\uC131\uD560 \uB54C \uC18C\uD504\uD2B8\uC6E8\uC5B4\uB294 \uC785\uB825\uACFC \uCD9C\uB825 \uC0AC\uBCF8\uC744 \uC5EC\uB7EC \uAC1C \uC720\uC9C0\uD574\uC57C \uD569\uB2C8\uB2E4."),Bs=i(),Wl=a("p"),g=a("strong"),Pt=a("code"),Za=r("forward"),ga=r(" vs "),kt=a("code"),Da=r("backward"),Xa=r(" \uC2E4\uD589 \uC18D\uB3C4"),Ns=i(),Zl=a("p"),Fa=r("\uD569\uC131\uACF1\uACFC \uC120\uD615 \uB808\uC774\uC5B4\uC758 \uACBD\uC6B0 \uC21C\uBC29\uD5A5\uC5D0 \uBE44\uD574 \uC5ED\uBC29\uD5A5\uC5D0\uC11C\uB294 2\uBC30\uC758 \uD50C\uB86D\uC2A4\uAC00 \uD544\uC694\uD558\uBBC0\uB85C \uC77C\uBC18\uC801\uC73C\uB85C 2\uBC30 \uC815\uB3C4 \uB290\uB9AC\uAC8C \uBCC0\uD658\uB429\uB2C8\uB2E4(\uC5ED\uBC29\uD5A5\uC758 \uACBD\uC6B0 \uC0AC\uC774\uC988\uAC00 \uBD80\uC790\uC5F0\uC2A4\uB7FD\uAE30 \uB54C\uBB38\uC5D0, \uB54C\uB85C\uB294 \uB354\uC6B1 \uB290\uB9B4 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4). \uD65C\uC131\uD654\uB294 \uC77C\uBC18\uC801\uC73C\uB85C \uB300\uC5ED\uD3ED\uC774 \uC81C\uD55C\uB418\uC5B4 \uC788\uC73C\uBA70, \uC77C\uBC18\uC801\uC73C\uB85C \uC21C\uBC29\uD5A5\uBCF4\uB2E4 \uC5ED\uBC29\uD5A5\uC5D0\uC11C \uB354 \uB9CE\uC740 \uB370\uC774\uD130\uB97C \uC77D\uC5B4\uC57C \uD569\uB2C8\uB2E4. (\uC608\uB97C \uB4E4\uC5B4, \uC21C\uBC29\uD5A5 \uD65C\uC131\uD654 \uC2DC \uD55C \uBC88 \uC529 \uC77D\uACE0 \uC4F0\uC9C0\uB9CC, \uC5ED\uBC29\uD5A5 \uD65C\uC131\uD654\uC5D0\uC11C\uB294 \uC21C\uBC29\uD5A5 gradOutput\uACFC \uCD9C\uB825\uC5D0 \uB300\uD574 \uCD1D \uB450 \uBC88 \uC77D\uACE0 gradInput\uC5D0 \uB300\uD574 \uD55C \uBC88 \uC501\uB2C8\uB2E4.)"),Vs=i(),D=a("p"),Ya=r(`\uBCF4\uB2E4\uC2DC\uD53C, GPU \uBA54\uBAA8\uB9AC\uB97C \uC808\uC57D\uD558\uAC70\uB098 \uC791\uC5C5 \uC18D\uB3C4\uB97C \uB192\uC77C \uC218 \uC788\uB294 \uBA87 \uAC00\uC9C0 \uBC29\uBC95\uC774 \uC788\uC2B5\uB2C8\uB2E4.
\uC774\uC81C GPU \uD65C\uC6A9\uACFC \uACC4\uC0B0 \uC18D\uB3C4\uC5D0 \uC601\uD5A5\uC744 \uC8FC\uB294 \uAC83\uC774 \uBB34\uC5C7\uC778\uC9C0\uB97C \uC774\uD574\uD588\uC73C\uBBC0\uB85C, `),gl=a("a"),Oa=r("Methods and tools for efficient training on a single GPU"),qa=r(" \uBB38\uC11C \uD398\uC774\uC9C0\uB97C \uCC38\uC870\uD558\uC5EC \uC131\uB2A5 \uCD5C\uC801\uD654 \uAE30\uBC95\uC5D0 \uB300\uD574 \uC54C\uC544\uBCF4\uC138\uC694."),this.h()},l(l){const e=vp('[data-svelte="svelte-1phssyn"]',document.head);j=M(e,"META",{name:!0,content:!0}),e.forEach(t),L=J(l),C=M(l,"H1",{class:!0});var ml=p(C);c=M(ml,"A",{id:!0,class:!0,href:!0});var Ka=p(c);Fl=M(Ka,"SPAN",{});var lM=p(Fl);w(X.$$.fragment,lM),lM.forEach(t),Ka.forEach(t),pe=J(ml),Yl=M(ml,"SPAN",{});var tM=p(Yl);ne=o(tM,"\uBAA8\uB378 \uD559\uC2B5 \uD574\uBD80\uD558\uAE30"),tM.forEach(t),ml.forEach(t),Zt=J(l),Il=M(l,"P",{});var sM=p(Il);re=o(sM,"\uBAA8\uB378 \uD6C8\uB828 \uC18D\uB3C4\uC640 \uBA54\uBAA8\uB9AC \uD65C\uC6A9\uC758 \uD6A8\uC728\uC131\uC744 \uD5A5\uC0C1\uC2DC\uD0A4\uAE30 \uC704\uD574 \uC801\uC6A9\uD560 \uC218 \uC788\uB294 \uC131\uB2A5 \uCD5C\uC801\uD654 \uAE30\uC220\uC744 \uC774\uD574\uD558\uB824\uBA74 GPU\uAC00 \uD6C8\uB828 \uC911\uC5D0 \uC5B4\uB5BB\uAC8C \uD65C\uC6A9\uB418\uB294\uC9C0, \uADF8\uB9AC\uACE0 \uC218\uD589\uB418\uB294 \uC5F0\uC0B0\uC5D0 \uB530\uB77C \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uC5B4\uB5BB\uAC8C \uBCC0\uD558\uB294\uC9C0\uC5D0 \uC775\uC219\uD574\uC838\uC57C \uD569\uB2C8\uB2E4."),sM.forEach(t),gt=J(l),jl=M(l,"P",{});var eM=p(jl);oe=o(eM,"\uBA3C\uC800 GPU \uD65C\uC6A9\uACFC \uBAA8\uB378 \uD6C8\uB828 \uC2E4\uD589\uC5D0 \uB300\uD55C \uC608\uC2DC\uB97C \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4. \uB370\uBAA8\uB97C \uC704\uD574 \uBA87\uBA87 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uC124\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4:"),eM.forEach(t),Dt=J(l),w(F.$$.fragment,l),Xt=J(l),v=M(l,"P",{});var Bt=p(v);Ol=M(Bt,"CODE",{});var aM=p(Ol);ie=o(aM,"nvidia-ml-py3"),aM.forEach(t),Je=o(Bt," \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB294 Python \uB0B4\uBD80\uC5D0\uC11C \uBAA8\uB378\uC758 \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\uB7C9\uC744 \uBAA8\uB2C8\uD130\uB9C1\uD560 \uC218 \uC788\uAC8C \uD574\uC90D\uB2C8\uB2E4. \uD130\uBBF8\uB110\uC758 "),ql=M(Bt,"CODE",{});var MM=p(ql);Ue=o(MM,"nvidia-smi"),MM.forEach(t),Te=o(Bt," \uBA85\uB839\uC5B4\uC5D0 \uC775\uC219\uD560 \uC218 \uC788\uB294\uB370, \uC774 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB294 Python\uC5D0\uC11C \uC9C1\uC811 \uB3D9\uC77C\uD55C \uC815\uBCF4\uC5D0 \uC811\uADFC\uD560 \uC218 \uC788\uAC8C \uD574\uC90D\uB2C8\uB2E4."),Bt.forEach(t),Ft=J(l),G=M(l,"P",{});var Zs=p(G);we=o(Zs,`\uADF8 \uB2E4\uC74C, 100\uACFC 30000 \uC0AC\uC774\uC758 \uBB34\uC791\uC704 \uD1A0\uD070 ID\uC640 \uBD84\uB958\uAE30\uB97C \uC704\uD55C \uC774\uC9C4 \uB808\uC774\uBE14\uC778 \uB354\uBBF8 \uB370\uC774\uD130\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.
\uAE38\uC774\uAC00 \uAC01\uAC01 512\uC778 \uCD1D 512\uAC1C\uC758 \uC2DC\uD000\uC2A4\uB97C \uAC00\uC838\uC640 PyTorch \uD615\uC2DD\uC758 `),xl=M(Zs,"CODE",{});var pM=p(xl);fe=o(pM,"Dataset"),pM.forEach(t),ye=o(Zs,"\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4."),Zs.forEach(t),Yt=J(l),w(Y.$$.fragment,l),Ot=J(l),b=M(l,"P",{});var gs=p(b);me=o(gs,"GPU \uD65C\uC6A9 \uBC0F "),Hl=M(gs,"CODE",{});var nM=p(Hl);Ie=o(nM,"Trainer"),nM.forEach(t),je=o(gs,"\uB85C \uC2E4\uD589\uD55C \uD6C8\uB828 \uACFC\uC815\uC5D0 \uB300\uD55C \uC694\uC57D \uD1B5\uACC4\uB97C \uCD9C\uB825\uD558\uAE30 \uC704\uD574 \uB450 \uAC1C\uC758 \uB3C4\uC6B0\uBBF8 \uD568\uC218\uB97C \uC815\uC758\uD558\uACA0\uC2B5\uB2C8\uB2E4:"),gs.forEach(t),qt=J(l),w(O.$$.fragment,l),xt=J(l),ul=M(l,"P",{});var rM=p(ul);ue=o(rM,"\uC2DC\uC791\uD560 \uB54C GPU \uBA54\uBAA8\uB9AC\uAC00 \uBE44\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778\uD574 \uBD05\uC2DC\uB2E4:"),rM.forEach(t),Ht=J(l),w(q.$$.fragment,l),Kt=J(l),Cl=M(l,"P",{});var oM=p(Cl);Ce=o(oM,"\uC88B\uC2B5\uB2C8\uB2E4. \uBAA8\uB378\uC744 \uB85C\uB4DC\uD558\uAE30 \uC804\uC5D0\uB294 \uC608\uC0C1\uB300\uB85C GPU \uBA54\uBAA8\uB9AC\uAC00 \uC810\uC720\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uADF8\uB807\uC9C0 \uC54A\uB2E4\uBA74 \uC0AC\uC6A9\uC790\uC758 \uAE30\uAE30\uC5D0\uC11C GPU \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD558\uB294 \uBAA8\uB4E0 \uD504\uB85C\uC138\uC2A4\uB97C \uC911\uB2E8\uD574\uC57C \uD569\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uC0AC\uC6A9\uC790\uB294 \uBAA8\uB4E0 \uC5EC\uC720 GPU \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD560 \uC218\uB294 \uC5C6\uC2B5\uB2C8\uB2E4. \uBAA8\uB378\uC774 GPU\uC5D0 \uB85C\uB4DC\uB420 \uB54C \uCEE4\uB110\uB3C4 \uB85C\uB4DC\uB418\uBBC0\uB85C 1-2GB\uC758 \uBA54\uBAA8\uB9AC\uB97C \uCC28\uC9C0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC5BC\uB9C8\uB098 \uB418\uB294\uC9C0 \uD655\uC778\uD558\uAE30 \uC704\uD574 GPU\uC5D0 \uC791\uC740 \uD150\uC11C\uB97C \uB85C\uB4DC\uD558\uC5EC \uCEE4\uB110\uC774 \uB85C\uB4DC\uB418\uB3C4\uB85D \uD2B8\uB9AC\uAC70\uD569\uB2C8\uB2E4."),oM.forEach(t),ls=J(l),w(x.$$.fragment,l),ts=J(l),cl=M(l,"P",{});var iM=p(cl);ce=o(iM,"\uCEE4\uB110\uB9CC\uC73C\uB85C\uB3C4 GPU \uBA54\uBAA8\uB9AC\uC758 1.3GB\uB97C \uCC28\uC9C0\uD569\uB2C8\uB2E4. \uC774\uC81C \uBAA8\uB378\uC774 \uC5BC\uB9C8\uB098 \uB9CE\uC740 \uACF5\uAC04\uC744 \uC0AC\uC6A9\uD558\uB294\uC9C0 \uD655\uC778\uD574 \uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),iM.forEach(t),ss=J(l),h=M(l,"H2",{class:!0});var Ds=p(h);z=M(Ds,"A",{id:!0,class:!0,href:!0});var JM=p(z);Kl=M(JM,"SPAN",{});var UM=p(Kl);w(H.$$.fragment,UM),UM.forEach(t),JM.forEach(t),Se=J(Ds),lt=M(Ds,"SPAN",{});var TM=p(lt);Ae=o(TM,"\uBAA8\uB378 \uB85C\uB4DC"),TM.forEach(t),Ds.forEach(t),es=J(l),$=M(l,"P",{});var Xs=p($);Ee=o(Xs,"\uC6B0\uC120, "),tt=M(Xs,"CODE",{});var wM=p(tt);de=o(wM,"bert-large-uncased"),wM.forEach(t),ve=o(Xs," \uBAA8\uB378\uC744 \uB85C\uB4DC\uD569\uB2C8\uB2E4. \uBAA8\uB378\uC758 \uAC00\uC911\uCE58\uB97C \uC9C1\uC811 GPU\uC5D0 \uB85C\uB4DC\uD574\uC11C \uAC00\uC911\uCE58\uB9CC\uC774 \uC5BC\uB9C8\uB098 \uB9CE\uC740 \uACF5\uAC04\uC744 \uCC28\uC9C0\uD558\uB294\uC9C0 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Xs.forEach(t),as=J(l),w(K.$$.fragment,l),Ms=J(l),P=M(l,"P",{});var Fs=p(P);he=o(Fs,"\uBAA8\uB378\uC758 \uAC00\uC911\uCE58\uB9CC\uC73C\uB85C\uB3C4 GPU \uBA54\uBAA8\uB9AC\uB97C 1.3 GB \uCC28\uC9C0\uD558\uB294 \uAC83\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC815\uD655\uD55C \uC22B\uC790\uB294 \uC0AC\uC6A9\uD558\uB294 GPU\uC5D0 \uB530\uB77C \uB2E4\uB985\uB2C8\uB2E4. \uCD5C\uC2E0 GPU\uC5D0\uC11C\uB294 \uBAA8\uB378 \uC0AC\uC6A9 \uC18D\uB3C4\uB97C \uB192\uC774\uB294 \uCD5C\uC801\uD654\uB41C \uBC29\uC2DD\uC73C\uB85C \uAC00\uC911\uCE58\uAC00 \uB85C\uB4DC\uB418\uBBC0\uB85C, \uBAA8\uB378\uC774 \uB354 \uB9CE\uC740 \uACF5\uAC04\uC744 \uCC28\uC9C0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774\uC81C "),st=M(Fs,"CODE",{});var fM=p(st);_e=o(fM,"nvidia-smi"),fM.forEach(t),Qe=o(Fs," CLI\uC640 \uB3D9\uC77C\uD55C \uACB0\uACFC\uB97C \uC5BB\uB294\uC9C0 \uBE60\uB974\uAC8C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),Fs.forEach(t),ps=J(l),w(ll.$$.fragment,l),ns=J(l),w(tl.$$.fragment,l),rs=J(l),Sl=M(l,"P",{});var yM=p(Sl);Re=o(yM,"\uC774\uC804\uACFC \uB3D9\uC77C\uD55C \uC22B\uC790\uAC00 \uCD9C\uB825\uB418\uACE0 16GB \uBA54\uBAA8\uB9AC\uB97C \uAC00\uC9C4 V100 GPU\uB97C \uC0AC\uC6A9\uD558\uACE0 \uC788\uB2E4\uB294 \uAC83\uB3C4 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uADF8\uB7EC\uBBC0\uB85C \uC774\uC81C \uBAA8\uB378 \uD6C8\uB828\uC744 \uC2DC\uC791\uD558\uC5EC GPU \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\uB7C9\uC774 \uC5B4\uB5BB\uAC8C \uB2EC\uB77C\uC9C0\uB294\uC9C0 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC6B0\uC120 \uBA87\uBA87 \uD45C\uC900 \uD6C8\uB828 \uC778\uC218\uB97C \uC124\uC815\uD569\uB2C8\uB2E4:"),yM.forEach(t),os=J(l),w(sl.$$.fragment,l),is=J(l),w(k.$$.fragment,l),Js=J(l),_=M(l,"H2",{class:!0});var Ys=p(_);B=M(Ys,"A",{id:!0,class:!0,href:!0});var mM=p(B);et=M(mM,"SPAN",{});var IM=p(et);w(el.$$.fragment,IM),IM.forEach(t),mM.forEach(t),Le=J(Ys),at=M(Ys,"SPAN",{});var jM=p(at);Ge=o(jM,"\uAE30\uBCF8 \uD6C8\uB828\uC5D0\uC11C\uC758 \uBA54\uBAA8\uB9AC \uD65C\uC6A9"),jM.forEach(t),Ys.forEach(t),Us=J(l),al=M(l,"P",{});var xa=p(al);Mt=M(xa,"CODE",{});var uM=p(Mt);be=o(uM,"Trainer"),uM.forEach(t),ze=o(xa,"\uB97C \uC0AC\uC6A9\uD558\uC5EC, GPU \uC131\uB2A5 \uCD5C\uC801\uD654 \uAE30\uC220\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uACE0 \uBC30\uCE58 \uD06C\uAE30\uAC00 4\uC778 \uBAA8\uB378\uC744 \uD6C8\uB828\uC2DC\uD0A4\uACA0\uC2B5\uB2C8\uB2E4:"),xa.forEach(t),Ts=J(l),w(Ml.$$.fragment,l),ws=J(l),w(pl.$$.fragment,l),fs=J(l),Al=M(l,"P",{});var CM=p(Al);$e=o(CM,"\uC6B0\uB9AC\uB294 \uBE44\uAD50\uC801 \uC791\uC740 \uBC30\uCE58 \uD06C\uAE30\uB85C\uB3C4 \uC804\uCCB4 GPU \uBA54\uBAA8\uB9AC\uB97C \uAC70\uC758 \uB2E4 \uCC28\uC9C0\uD558\uB294 \uAC83\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uBC30\uCE58 \uD06C\uAE30\uAC00 \uD074\uC218\uB85D \uBAA8\uB378 \uC218\uB834 \uC18D\uB3C4\uAC00 \uBE68\uB77C\uC9C0\uACE0 \uCD5C\uC885 \uC131\uB2A5\uC774 \uD5A5\uC0C1\uB418\uB294 \uACBD\uC6B0\uAC00 \uB9CE\uC2B5\uB2C8\uB2E4. \uADF8\uB798\uC11C \uC774\uC0C1\uC801\uC73C\uB85C\uB294 GPU \uC81C\uD55C\uC774 \uC544\uB2CC \uC6B0\uB9AC \uBAA8\uB378\uC758 \uC694\uAD6C\uC0AC\uD56D\uC5D0 \uB9DE\uAC8C \uBC30\uCE58 \uD06C\uAE30\uB97C \uC870\uC815\uD558\uB824\uACE0 \uD569\uB2C8\uB2E4. \uD765\uBBF8\uB86D\uAC8C\uB3C4 \uC6B0\uB9AC\uB294 \uBAA8\uB378\uC758 \uD06C\uAE30\uBCF4\uB2E4 \uD6E8\uC52C \uB354 \uB9CE\uC740 \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC65C \uC774\uB7F0 \uD604\uC0C1\uC774 \uBC1C\uC0DD\uD558\uB294\uC9C0 \uC870\uAE08 \uB354 \uC798 \uC774\uD574\uD558\uAE30 \uC704\uD574 \uBAA8\uB378\uC758 \uC5F0\uC0B0\uACFC \uBA54\uBAA8\uB9AC \uC694\uAD6C \uC0AC\uD56D\uC744 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),CM.forEach(t),ys=J(l),Q=M(l,"H2",{class:!0});var Os=p(Q);N=M(Os,"A",{id:!0,class:!0,href:!0});var cM=p(N);pt=M(cM,"SPAN",{});var SM=p(pt);w(nl.$$.fragment,SM),SM.forEach(t),cM.forEach(t),Pe=J(Os),nt=M(Os,"SPAN",{});var AM=p(nt);ke=o(AM,"\uBAA8\uB378\uC758 \uC5F0\uC0B0 \uD574\uBD80\uD558\uAE30"),AM.forEach(t),Os.forEach(t),ms=J(l),El=M(l,"P",{});var EM=p(El);Be=o(EM,"\uD2B8\uB79C\uC2A4\uD3EC\uBA38 \uC544\uD0A4\uD14D\uCC98\uC5D0\uB294 \uC5F0\uC0B0 \uAC15\uB3C4(compute-intensity)\uC5D0 \uB530\uB77C \uADF8\uB8F9\uD654\uB41C 3\uAC00\uC9C0 \uC8FC\uC694 \uC5F0\uC0B0 \uADF8\uB8F9\uC774 \uC788\uC2B5\uB2C8\uB2E4."),EM.forEach(t),Is=J(l),E=M(l,"OL",{});var Dl=p(E);rl=M(Dl,"LI",{});var qs=p(rl);rt=M(qs,"P",{});var dM=p(rt);ot=M(dM,"STRONG",{});var vM=p(ot);Ne=o(vM,"\uD150\uC11C \uCD95\uC57D(Tensor Contractions)"),vM.forEach(t),dM.forEach(t),Ve=J(qs),ol=M(qs,"P",{});var xs=p(ol);We=o(xs,"\uC120\uD615 \uB808\uC774\uC5B4\uC640 \uBA40\uD2F0\uD5E4\uB4DC \uC5B4\uD150\uC158\uC758 \uAD6C\uC131 \uC694\uC18C\uB294 \uBAA8\uB450 "),it=M(xs,"STRONG",{});var hM=p(it);Ze=o(hM,"\uD589\uB82C-\uD589\uB82C \uACF1\uC148(matrix-matrix multiplications)"),hM.forEach(t),ge=o(xs,"\uC744 \uC77C\uAD04\uC801\uC73C\uB85C \uCC98\uB9AC\uD569\uB2C8\uB2E4. \uC774 \uC5F0\uC0B0\uC740 \uD2B8\uB79C\uC2A4\uD3EC\uBA38 \uD6C8\uB828\uC5D0\uC11C \uAC00\uC7A5 \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uB192\uC740 \uBD80\uBD84\uC785\uB2C8\uB2E4."),xs.forEach(t),qs.forEach(t),De=J(Dl),il=M(Dl,"LI",{});var Hs=p(il);Jt=M(Hs,"P",{});var _M=p(Jt);Ut=M(_M,"STRONG",{});var QM=p(Ut);Xe=o(QM,"\uD1B5\uACC4 \uC815\uADDC\uD654(Statistical Normalizations)"),QM.forEach(t),_M.forEach(t),Fe=J(Hs),Jl=M(Hs,"P",{});var Ks=p(Jl);Ye=o(Ks,"\uC18C\uD504\uD2B8\uB9E5\uC2A4\uC640 \uB808\uC774\uC5B4 \uC815\uADDC\uD654\uB294 \uD150\uC11C \uCD95\uC57D\uBCF4\uB2E4 \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uB0AE\uC2B5\uB2C8\uB2E4. \uD558\uB098 \uC774\uC0C1\uC758 "),Tt=M(Ks,"STRONG",{});var RM=p(Tt);Oe=o(RM,"\uAC10\uC18C \uC5F0\uC0B0(reduction operations)"),RM.forEach(t),qe=o(Ks,"\uC744 \uD3EC\uD568\uD558\uBA70, \uADF8 \uACB0\uACFC\uB294 map\uC744 \uD1B5\uD574 \uC801\uC6A9\uB429\uB2C8\uB2E4."),Ks.forEach(t),Hs.forEach(t),xe=J(Dl),Ul=M(Dl,"LI",{});var le=p(Ul);wt=M(le,"P",{});var LM=p(wt);ft=M(LM,"STRONG",{});var GM=p(ft);He=o(GM,"\uC6D0\uC18C\uBCC4 \uC5F0\uC0B0\uC790(Element-wise Operators)"),GM.forEach(t),LM.forEach(t),Ke=J(le),Tl=M(le,"P",{});var te=p(Tl);la=o(te,"\uADF8 \uC678 \uC5F0\uC0B0\uC790\uB4E4, "),yt=M(te,"STRONG",{});var bM=p(yt);ta=o(bM,"\uD3B8\uD5A5(biases), \uB4DC\uB86D\uC544\uC6C3(dropout), \uD65C\uC131\uD654 \uD568\uC218(activations), \uC794\uCC28 \uC5F0\uACB0(residual connections)"),bM.forEach(t),sa=o(te,"\uC774 \uC5EC\uAE30\uC5D0 \uD574\uB2F9\uD569\uB2C8\uB2E4. \uC774 \uC5F0\uC0B0\uB4E4\uC740 \uC5F0\uC0B0 \uAC15\uB3C4\uAC00 \uAC00\uC7A5 \uB0AE\uC2B5\uB2C8\uB2E4."),te.forEach(t),le.forEach(t),Dl.forEach(t),js=J(l),dl=M(l,"P",{});var zM=p(dl);ea=o(zM,"\uC774\uB7EC\uD55C \uC9C0\uC2DD\uC740 \uC131\uB2A5 \uBCD1\uBAA9 \uD604\uC0C1\uC744 \uBD84\uC11D\uD560 \uB54C \uB3C4\uC6C0\uC774 \uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),zM.forEach(t),us=J(l),V=M(l,"P",{});var se=p(V);aa=o(se,"\uC774 \uB0B4\uC6A9\uC740 "),wl=M(se,"A",{href:!0,rel:!0});var $M=p(wl);Ma=o($M,"Data Movement Is All You Need: A Case Study on Optimizing Transformers 2020"),$M.forEach(t),pa=o(se,"\uC744 \uCC38\uACE0\uD558\uC600\uC2B5\uB2C8\uB2E4."),se.forEach(t),Cs=J(l),R=M(l,"H2",{class:!0});var ee=p(R);W=M(ee,"A",{id:!0,class:!0,href:!0});var PM=p(W);mt=M(PM,"SPAN",{});var kM=p(mt);w(fl.$$.fragment,kM),kM.forEach(t),PM.forEach(t),na=J(ee),It=M(ee,"SPAN",{});var BM=p(It);ra=o(BM,"\uBAA8\uB378\uC758 \uBA54\uBAA8\uB9AC \uAD6C\uC870"),BM.forEach(t),ee.forEach(t),cs=J(l),vl=M(l,"P",{});var NM=p(vl);oa=o(NM,"\uBAA8\uB378\uC744 \uD6C8\uB828\uC2DC\uD0A4\uB294 \uB370\uB294 \uB2E8\uC21C\uD788 GPU\uC5D0 \uBAA8\uB378\uC744 \uC62C\uB9AC\uB294 \uAC83\uBCF4\uB2E4 \uD6E8\uC52C \uB354 \uB9CE\uC740 \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD55C\uB2E4\uB294 \uAC83\uC744 \uBCF4\uC558\uC2B5\uB2C8\uB2E4. \uC774\uB294 \uD6C8\uB828 \uC911 GPU \uBA54\uBAA8\uB9AC\uB97C \uC0AC\uC6A9\uD558\uB294 \uB9CE\uC740 \uAD6C\uC131 \uC694\uC18C\uAC00 \uC788\uAE30 \uB54C\uBB38\uC785\uB2C8\uB2E4. GPU \uBA54\uBAA8\uB9AC\uC758 \uAD6C\uC131 \uC694\uC18C\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4:"),NM.forEach(t),Ss=J(l),u=M(l,"OL",{});var S=p(u);jt=M(S,"LI",{});var VM=p(jt);ia=o(VM,"\uBAA8\uB378 \uAC00\uC911\uCE58"),VM.forEach(t),Ja=J(S),ut=M(S,"LI",{});var WM=p(ut);Ua=o(WM,"\uC635\uD2F0\uB9C8\uC774\uC800 \uC0C1\uD0DC"),WM.forEach(t),Ta=J(S),Ct=M(S,"LI",{});var ZM=p(Ct);wa=o(ZM,"\uADF8\uB77C\uB514\uC5B8\uD2B8"),ZM.forEach(t),fa=J(S),ct=M(S,"LI",{});var gM=p(ct);ya=o(gM,"\uADF8\uB77C\uB514\uC5B8\uD2B8 \uACC4\uC0B0\uC744 \uC704\uD574 \uC800\uC7A5\uB41C \uC21C\uBC29\uD5A5 \uD65C\uC131\uD654"),gM.forEach(t),ma=J(S),St=M(S,"LI",{});var DM=p(St);Ia=o(DM,"\uC784\uC2DC \uBC84\uD37C"),DM.forEach(t),ja=J(S),At=M(S,"LI",{});var XM=p(At);ua=o(XM,"\uAE30\uB2A5\uBCC4 \uBA54\uBAA8\uB9AC"),XM.forEach(t),S.forEach(t),As=J(l),hl=M(l,"P",{});var FM=p(hl);Ca=o(FM,"AdamW\uB97C \uC0AC\uC6A9\uD558\uC5EC \uD63C\uD569 \uC815\uBC00\uB3C4\uB85C \uD6C8\uB828\uB41C \uC77C\uBC18\uC801\uC778 \uBAA8\uB378\uC740 \uBAA8\uB378 \uD30C\uB77C\uBBF8\uD130\uB2F9 18 \uBC14\uC774\uD2B8\uC640 \uD65C\uC131\uD654 \uBA54\uBAA8\uB9AC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uCD94\uB860 \uB2E8\uACC4\uC5D0\uC11C\uB294 \uC635\uD2F0\uB9C8\uC774\uC800\uC640 \uADF8\uB77C\uB514\uC5B8\uD2B8\uAC00 \uD544\uC694\uD558\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC774\uB4E4\uC740 \uC81C\uC678\uD569\uB2C8\uB2E4. \uB530\uB77C\uC11C \uD63C\uD569 \uC815\uBC00\uB3C4 \uCD94\uB860\uC758 \uACBD\uC6B0 \uBAA8\uB378 \uB9E4\uAC1C\uBCC0\uC218\uB2F9 6 \uBC14\uC774\uD2B8\uC640 \uD65C\uC131\uD654 \uBA54\uBAA8\uB9AC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."),FM.forEach(t),Es=J(l),_l=M(l,"P",{});var YM=p(_l);ca=o(YM,"\uC790\uC138\uD788 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),YM.forEach(t),ds=J(l),Ql=M(l,"P",{});var OM=p(Ql);Et=M(OM,"STRONG",{});var qM=p(Et);Sa=o(qM,"\uBAA8\uB378 \uAC00\uC911\uCE58:"),qM.forEach(t),OM.forEach(t),vs=J(l),Z=M(l,"UL",{});var ae=p(Z);dt=M(ae,"LI",{});var xM=p(dt);Aa=o(xM,"fp32 \uD6C8\uB828\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 4 \uBC14\uC774\uD2B8"),xM.forEach(t),Ea=J(ae),vt=M(ae,"LI",{});var HM=p(vt);da=o(HM,"\uD63C\uD569 \uC815\uBC00\uB3C4 \uD6C8\uB828\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 6 \uBC14\uC774\uD2B8 (\uBA54\uBAA8\uB9AC\uC5D0 fp32\uC640 fp16 \uB450 \uAC00\uC9C0 \uBAA8\uB378\uC744 \uC720\uC9C0)"),HM.forEach(t),ae.forEach(t),hs=J(l),Rl=M(l,"P",{});var KM=p(Rl);ht=M(KM,"STRONG",{});var lp=p(ht);va=o(lp,"\uC635\uD2F0\uB9C8\uC774\uC800 \uC0C1\uD0DC:"),lp.forEach(t),KM.forEach(t),_s=J(l),d=M(l,"UL",{});var Xl=p(d);_t=M(Xl,"LI",{});var tp=p(_t);ha=o(tp,"\uC77C\uBC18 AdamW\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 8 \uBC14\uC774\uD2B8 (2\uAC00\uC9C0 \uC0C1\uD0DC \uC720\uC9C0)"),tp.forEach(t),_a=J(Xl),Ll=M(Xl,"LI",{});var Ha=p(Ll);yl=M(Ha,"A",{href:!0,rel:!0});var sp=p(yl);Qa=o(sp,"bitsandbytes"),sp.forEach(t),Ra=o(Ha,"\uC640 \uAC19\uC740 8\uBE44\uD2B8 AdamW \uC635\uD2F0\uB9C8\uC774\uC800\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 2 \uBC14\uC774\uD2B8"),Ha.forEach(t),La=J(Xl),Qt=M(Xl,"LI",{});var ep=p(Qt);Ga=o(ep,"Momentum\uC744 \uAC00\uC9C4 SGD\uC640 \uAC19\uC740 \uC635\uD2F0\uB9C8\uC774\uC800\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 4 \uBC14\uC774\uD2B8 (\uD558\uB098\uC758 \uC0C1\uD0DC\uB9CC \uC720\uC9C0)"),ep.forEach(t),Xl.forEach(t),Qs=J(l),Gl=M(l,"P",{});var ap=p(Gl);Rt=M(ap,"STRONG",{});var Mp=p(Rt);ba=o(Mp,"\uADF8\uB77C\uB514\uC5B8\uD2B8"),Mp.forEach(t),ap.forEach(t),Rs=J(l),bl=M(l,"UL",{});var pp=p(bl);Lt=M(pp,"LI",{});var np=p(Lt);za=o(np,"fp32 \uB610\uB294 \uD63C\uD569 \uC815\uBC00\uB3C4 \uD6C8\uB828\uC758 \uACBD\uC6B0 \uB9E4\uAC1C \uBCC0\uC218 \uC218 * 4 \uBC14\uC774\uD2B8 (\uADF8\uB77C\uB514\uC5B8\uD2B8\uB294 \uD56D\uC0C1 fp32\uC73C\uB85C \uC720\uC9C0\uB429\uB2C8\uB2E4.)"),np.forEach(t),pp.forEach(t),Ls=J(l),zl=M(l,"P",{});var rp=p(zl);Gt=M(rp,"STRONG",{});var op=p(Gt);$a=o(op,"\uC21C\uBC29\uD5A5 \uD65C\uC131\uD654"),op.forEach(t),rp.forEach(t),Gs=J(l),$l=M(l,"UL",{});var ip=p($l);bt=M(ip,"LI",{});var Jp=p(bt);Pa=o(Jp,"\uD06C\uAE30\uB294 \uC5EC\uB7EC \uC694\uC778\uC5D0 \uB530\uB77C \uB2EC\uB77C\uC9C0\uBA70, \uC8FC\uC694 \uC694\uC778\uC740 \uC2DC\uD000\uC2A4 \uAE38\uC774, \uC740\uB2C9 \uC0C1\uD0DC\uC758 \uD06C\uAE30 \uBC0F \uBC30\uCE58 \uD06C\uAE30\uC785\uB2C8\uB2E4."),Jp.forEach(t),ip.forEach(t),bs=J(l),Pl=M(l,"P",{});var Up=p(Pl);ka=o(Up,"\uC21C\uBC29\uD5A5 \uBC0F \uC5ED\uBC29\uD5A5 \uD568\uC218\uC5D0\uC11C \uC804\uB2EC \uBC0F \uBC18\uD658\uB418\uB294 \uC785\uB825\uACFC \uCD9C\uB825\uC774 \uC788\uC73C\uBA70, \uADF8\uB77C\uB514\uC5B8\uD2B8 \uACC4\uC0B0\uC744 \uC704\uD574 \uC800\uC7A5\uB41C \uC21C\uBC29\uD5A5 \uD65C\uC131\uD654\uAC00 \uC788\uC2B5\uB2C8\uB2E4."),Up.forEach(t),zs=J(l),kl=M(l,"P",{});var Tp=p(kl);zt=M(Tp,"STRONG",{});var wp=p(zt);Ba=o(wp,"\uC784\uC2DC \uBA54\uBAA8\uB9AC"),wp.forEach(t),Tp.forEach(t),$s=J(l),Bl=M(l,"P",{});var fp=p(Bl);Na=o(fp,"\uB354\uBD88\uC5B4 \uBAA8\uB4E0 \uC885\uB958\uC758 \uC784\uC2DC \uBCC0\uC218\uB294 \uC5F0\uC0B0\uC774 \uC644\uB8CC\uB418\uBA74 \uACE7\uBC14\uB85C \uD574\uC81C\uB418\uC9C0\uB9CC, \uADF8 \uC21C\uAC04\uC5D0\uB294 \uCD94\uAC00 \uBA54\uBAA8\uB9AC\uAC00 \uD544\uC694\uD560 \uC218 \uC788\uACE0 OOM\uC744 \uC720\uBC1C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB530\uB77C\uC11C \uCF54\uB529\uD560 \uB54C \uC774\uB7EC\uD55C \uC784\uC2DC \uBCC0\uC218\uC5D0 \uB300\uD574 \uC804\uB7B5\uC801\uC73C\uB85C \uC0DD\uAC01\uD558\uACE0 \uB54C\uB85C\uB294 \uB354 \uC774\uC0C1 \uD544\uC694 \uC5C6\uB294 \uC784\uC2DC \uBCC0\uC218\uB97C \uC989\uC2DC \uBA85\uC2DC\uC801\uC73C\uB85C \uBA54\uBAA8\uB9AC\uC5D0\uC11C \uC81C\uAC70\uD558\uB294 \uAC83\uC774 \uC911\uC694\uD569\uB2C8\uB2E4."),fp.forEach(t),Ps=J(l),Nl=M(l,"P",{});var yp=p(Nl);$t=M(yp,"STRONG",{});var mp=p($t);Va=o(mp,"\uAE30\uB2A5\uBCC4 \uBA54\uBAA8\uB9AC"),mp.forEach(t),yp.forEach(t),ks=J(l),Vl=M(l,"P",{});var Ip=p(Vl);Wa=o(Ip,"\uADF8\uB7F0 \uB2E4\uC74C, \uC18C\uD504\uD2B8\uC6E8\uC5B4\uC5D0\uB294 \uD2B9\uBCC4\uD55C \uBA54\uBAA8\uB9AC \uC694\uAD6C \uC0AC\uD56D\uC774 \uC788\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uBE54 \uAC80\uC0C9\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD14D\uC2A4\uD2B8\uB97C \uC0DD\uC131\uD560 \uB54C \uC18C\uD504\uD2B8\uC6E8\uC5B4\uB294 \uC785\uB825\uACFC \uCD9C\uB825 \uC0AC\uBCF8\uC744 \uC5EC\uB7EC \uAC1C \uC720\uC9C0\uD574\uC57C \uD569\uB2C8\uB2E4."),Ip.forEach(t),Bs=J(l),Wl=M(l,"P",{});var jp=p(Wl);g=M(jp,"STRONG",{});var Nt=p(g);Pt=M(Nt,"CODE",{});var up=p(Pt);Za=o(up,"forward"),up.forEach(t),ga=o(Nt," vs "),kt=M(Nt,"CODE",{});var Cp=p(kt);Da=o(Cp,"backward"),Cp.forEach(t),Xa=o(Nt," \uC2E4\uD589 \uC18D\uB3C4"),Nt.forEach(t),jp.forEach(t),Ns=J(l),Zl=M(l,"P",{});var cp=p(Zl);Fa=o(cp,"\uD569\uC131\uACF1\uACFC \uC120\uD615 \uB808\uC774\uC5B4\uC758 \uACBD\uC6B0 \uC21C\uBC29\uD5A5\uC5D0 \uBE44\uD574 \uC5ED\uBC29\uD5A5\uC5D0\uC11C\uB294 2\uBC30\uC758 \uD50C\uB86D\uC2A4\uAC00 \uD544\uC694\uD558\uBBC0\uB85C \uC77C\uBC18\uC801\uC73C\uB85C 2\uBC30 \uC815\uB3C4 \uB290\uB9AC\uAC8C \uBCC0\uD658\uB429\uB2C8\uB2E4(\uC5ED\uBC29\uD5A5\uC758 \uACBD\uC6B0 \uC0AC\uC774\uC988\uAC00 \uBD80\uC790\uC5F0\uC2A4\uB7FD\uAE30 \uB54C\uBB38\uC5D0, \uB54C\uB85C\uB294 \uB354\uC6B1 \uB290\uB9B4 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4). \uD65C\uC131\uD654\uB294 \uC77C\uBC18\uC801\uC73C\uB85C \uB300\uC5ED\uD3ED\uC774 \uC81C\uD55C\uB418\uC5B4 \uC788\uC73C\uBA70, \uC77C\uBC18\uC801\uC73C\uB85C \uC21C\uBC29\uD5A5\uBCF4\uB2E4 \uC5ED\uBC29\uD5A5\uC5D0\uC11C \uB354 \uB9CE\uC740 \uB370\uC774\uD130\uB97C \uC77D\uC5B4\uC57C \uD569\uB2C8\uB2E4. (\uC608\uB97C \uB4E4\uC5B4, \uC21C\uBC29\uD5A5 \uD65C\uC131\uD654 \uC2DC \uD55C \uBC88 \uC529 \uC77D\uACE0 \uC4F0\uC9C0\uB9CC, \uC5ED\uBC29\uD5A5 \uD65C\uC131\uD654\uC5D0\uC11C\uB294 \uC21C\uBC29\uD5A5 gradOutput\uACFC \uCD9C\uB825\uC5D0 \uB300\uD574 \uCD1D \uB450 \uBC88 \uC77D\uACE0 gradInput\uC5D0 \uB300\uD574 \uD55C \uBC88 \uC501\uB2C8\uB2E4.)"),cp.forEach(t),Vs=J(l),D=M(l,"P",{});var Me=p(D);Ya=o(Me,`\uBCF4\uB2E4\uC2DC\uD53C, GPU \uBA54\uBAA8\uB9AC\uB97C \uC808\uC57D\uD558\uAC70\uB098 \uC791\uC5C5 \uC18D\uB3C4\uB97C \uB192\uC77C \uC218 \uC788\uB294 \uBA87 \uAC00\uC9C0 \uBC29\uBC95\uC774 \uC788\uC2B5\uB2C8\uB2E4.
\uC774\uC81C GPU \uD65C\uC6A9\uACFC \uACC4\uC0B0 \uC18D\uB3C4\uC5D0 \uC601\uD5A5\uC744 \uC8FC\uB294 \uAC83\uC774 \uBB34\uC5C7\uC778\uC9C0\uB97C \uC774\uD574\uD588\uC73C\uBBC0\uB85C, `),gl=M(Me,"A",{href:!0});var Sp=p(gl);Oa=o(Sp,"Methods and tools for efficient training on a single GPU"),Sp.forEach(t),qa=o(Me," \uBB38\uC11C \uD398\uC774\uC9C0\uB97C \uCC38\uC870\uD558\uC5EC \uC131\uB2A5 \uCD5C\uC801\uD654 \uAE30\uBC95\uC5D0 \uB300\uD574 \uC54C\uC544\uBCF4\uC138\uC694."),Me.forEach(t),this.h()},h(){U(j,"name","hf:doc:metadata"),U(j,"content",JSON.stringify(Lp)),U(c,"id","model-training-anatomy"),U(c,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(c,"href","#model-training-anatomy"),U(C,"class","relative group"),U(z,"id","load-model"),U(z,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(z,"href","#load-model"),U(h,"class","relative group"),U(B,"id","memory-utilization-at-vanilla-training"),U(B,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(B,"href","#memory-utilization-at-vanilla-training"),U(_,"class","relative group"),U(N,"id","anatomy-of-models-operations"),U(N,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(N,"href","#anatomy-of-models-operations"),U(Q,"class","relative group"),U(wl,"href","https://arxiv.org/abs/2007.00072"),U(wl,"rel","nofollow"),U(W,"id","anatomy-of-models-memory"),U(W,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),U(W,"href","#anatomy-of-models-memory"),U(R,"class","relative group"),U(yl,"href","https://github.com/TimDettmers/bitsandbytes"),U(yl,"rel","nofollow"),U(gl,"href","perf_train_gpu_one")},m(l,e){s(document.head,j),n(l,L,e),n(l,C,e),s(C,c),s(c,Fl),f(X,Fl,null),s(C,pe),s(C,Yl),s(Yl,ne),n(l,Zt,e),n(l,Il,e),s(Il,re),n(l,gt,e),n(l,jl,e),s(jl,oe),n(l,Dt,e),f(F,l,e),n(l,Xt,e),n(l,v,e),s(v,Ol),s(Ol,ie),s(v,Je),s(v,ql),s(ql,Ue),s(v,Te),n(l,Ft,e),n(l,G,e),s(G,we),s(G,xl),s(xl,fe),s(G,ye),n(l,Yt,e),f(Y,l,e),n(l,Ot,e),n(l,b,e),s(b,me),s(b,Hl),s(Hl,Ie),s(b,je),n(l,qt,e),f(O,l,e),n(l,xt,e),n(l,ul,e),s(ul,ue),n(l,Ht,e),f(q,l,e),n(l,Kt,e),n(l,Cl,e),s(Cl,Ce),n(l,ls,e),f(x,l,e),n(l,ts,e),n(l,cl,e),s(cl,ce),n(l,ss,e),n(l,h,e),s(h,z),s(z,Kl),f(H,Kl,null),s(h,Se),s(h,lt),s(lt,Ae),n(l,es,e),n(l,$,e),s($,Ee),s($,tt),s(tt,de),s($,ve),n(l,as,e),f(K,l,e),n(l,Ms,e),n(l,P,e),s(P,he),s(P,st),s(st,_e),s(P,Qe),n(l,ps,e),f(ll,l,e),n(l,ns,e),f(tl,l,e),n(l,rs,e),n(l,Sl,e),s(Sl,Re),n(l,os,e),f(sl,l,e),n(l,is,e),f(k,l,e),n(l,Js,e),n(l,_,e),s(_,B),s(B,et),f(el,et,null),s(_,Le),s(_,at),s(at,Ge),n(l,Us,e),n(l,al,e),s(al,Mt),s(Mt,be),s(al,ze),n(l,Ts,e),f(Ml,l,e),n(l,ws,e),f(pl,l,e),n(l,fs,e),n(l,Al,e),s(Al,$e),n(l,ys,e),n(l,Q,e),s(Q,N),s(N,pt),f(nl,pt,null),s(Q,Pe),s(Q,nt),s(nt,ke),n(l,ms,e),n(l,El,e),s(El,Be),n(l,Is,e),n(l,E,e),s(E,rl),s(rl,rt),s(rt,ot),s(ot,Ne),s(rl,Ve),s(rl,ol),s(ol,We),s(ol,it),s(it,Ze),s(ol,ge),s(E,De),s(E,il),s(il,Jt),s(Jt,Ut),s(Ut,Xe),s(il,Fe),s(il,Jl),s(Jl,Ye),s(Jl,Tt),s(Tt,Oe),s(Jl,qe),s(E,xe),s(E,Ul),s(Ul,wt),s(wt,ft),s(ft,He),s(Ul,Ke),s(Ul,Tl),s(Tl,la),s(Tl,yt),s(yt,ta),s(Tl,sa),n(l,js,e),n(l,dl,e),s(dl,ea),n(l,us,e),n(l,V,e),s(V,aa),s(V,wl),s(wl,Ma),s(V,pa),n(l,Cs,e),n(l,R,e),s(R,W),s(W,mt),f(fl,mt,null),s(R,na),s(R,It),s(It,ra),n(l,cs,e),n(l,vl,e),s(vl,oa),n(l,Ss,e),n(l,u,e),s(u,jt),s(jt,ia),s(u,Ja),s(u,ut),s(ut,Ua),s(u,Ta),s(u,Ct),s(Ct,wa),s(u,fa),s(u,ct),s(ct,ya),s(u,ma),s(u,St),s(St,Ia),s(u,ja),s(u,At),s(At,ua),n(l,As,e),n(l,hl,e),s(hl,Ca),n(l,Es,e),n(l,_l,e),s(_l,ca),n(l,ds,e),n(l,Ql,e),s(Ql,Et),s(Et,Sa),n(l,vs,e),n(l,Z,e),s(Z,dt),s(dt,Aa),s(Z,Ea),s(Z,vt),s(vt,da),n(l,hs,e),n(l,Rl,e),s(Rl,ht),s(ht,va),n(l,_s,e),n(l,d,e),s(d,_t),s(_t,ha),s(d,_a),s(d,Ll),s(Ll,yl),s(yl,Qa),s(Ll,Ra),s(d,La),s(d,Qt),s(Qt,Ga),n(l,Qs,e),n(l,Gl,e),s(Gl,Rt),s(Rt,ba),n(l,Rs,e),n(l,bl,e),s(bl,Lt),s(Lt,za),n(l,Ls,e),n(l,zl,e),s(zl,Gt),s(Gt,$a),n(l,Gs,e),n(l,$l,e),s($l,bt),s(bt,Pa),n(l,bs,e),n(l,Pl,e),s(Pl,ka),n(l,zs,e),n(l,kl,e),s(kl,zt),s(zt,Ba),n(l,$s,e),n(l,Bl,e),s(Bl,Na),n(l,Ps,e),n(l,Nl,e),s(Nl,$t),s($t,Va),n(l,ks,e),n(l,Vl,e),s(Vl,Wa),n(l,Bs,e),n(l,Wl,e),s(Wl,g),s(g,Pt),s(Pt,Za),s(g,ga),s(g,kt),s(kt,Da),s(g,Xa),n(l,Ns,e),n(l,Zl,e),s(Zl,Fa),n(l,Vs,e),n(l,D,e),s(D,Ya),s(D,gl),s(gl,Oa),s(D,qa),Ws=!0},p(l,[e]){const ml={};e&2&&(ml.$$scope={dirty:e,ctx:l}),k.$set(ml)},i(l){Ws||(y(X.$$.fragment,l),y(F.$$.fragment,l),y(Y.$$.fragment,l),y(O.$$.fragment,l),y(q.$$.fragment,l),y(x.$$.fragment,l),y(H.$$.fragment,l),y(K.$$.fragment,l),y(ll.$$.fragment,l),y(tl.$$.fragment,l),y(sl.$$.fragment,l),y(k.$$.fragment,l),y(el.$$.fragment,l),y(Ml.$$.fragment,l),y(pl.$$.fragment,l),y(nl.$$.fragment,l),y(fl.$$.fragment,l),Ws=!0)},o(l){m(X.$$.fragment,l),m(F.$$.fragment,l),m(Y.$$.fragment,l),m(O.$$.fragment,l),m(q.$$.fragment,l),m(x.$$.fragment,l),m(H.$$.fragment,l),m(K.$$.fragment,l),m(ll.$$.fragment,l),m(tl.$$.fragment,l),m(sl.$$.fragment,l),m(k.$$.fragment,l),m(el.$$.fragment,l),m(Ml.$$.fragment,l),m(pl.$$.fragment,l),m(nl.$$.fragment,l),m(fl.$$.fragment,l),Ws=!1},d(l){t(j),l&&t(L),l&&t(C),I(X),l&&t(Zt),l&&t(Il),l&&t(gt),l&&t(jl),l&&t(Dt),I(F,l),l&&t(Xt),l&&t(v),l&&t(Ft),l&&t(G),l&&t(Yt),I(Y,l),l&&t(Ot),l&&t(b),l&&t(qt),I(O,l),l&&t(xt),l&&t(ul),l&&t(Ht),I(q,l),l&&t(Kt),l&&t(Cl),l&&t(ls),I(x,l),l&&t(ts),l&&t(cl),l&&t(ss),l&&t(h),I(H),l&&t(es),l&&t($),l&&t(as),I(K,l),l&&t(Ms),l&&t(P),l&&t(ps),I(ll,l),l&&t(ns),I(tl,l),l&&t(rs),l&&t(Sl),l&&t(os),I(sl,l),l&&t(is),I(k,l),l&&t(Js),l&&t(_),I(el),l&&t(Us),l&&t(al),l&&t(Ts),I(Ml,l),l&&t(ws),I(pl,l),l&&t(fs),l&&t(Al),l&&t(ys),l&&t(Q),I(nl),l&&t(ms),l&&t(El),l&&t(Is),l&&t(E),l&&t(js),l&&t(dl),l&&t(us),l&&t(V),l&&t(Cs),l&&t(R),I(fl),l&&t(cs),l&&t(vl),l&&t(Ss),l&&t(u),l&&t(As),l&&t(hl),l&&t(Es),l&&t(_l),l&&t(ds),l&&t(Ql),l&&t(vs),l&&t(Z),l&&t(hs),l&&t(Rl),l&&t(_s),l&&t(d),l&&t(Qs),l&&t(Gl),l&&t(Rs),l&&t(bl),l&&t(Ls),l&&t(zl),l&&t(Gs),l&&t($l),l&&t(bs),l&&t(Pl),l&&t(zs),l&&t(kl),l&&t($s),l&&t(Bl),l&&t(Ps),l&&t(Nl),l&&t(ks),l&&t(Vl),l&&t(Bs),l&&t(Wl),l&&t(Ns),l&&t(Zl),l&&t(Vs),l&&t(D)}}}const Lp={local:"model-training-anatomy",sections:[{local:"load-model",title:"\uBAA8\uB378 \uB85C\uB4DC "},{local:"memory-utilization-at-vanilla-training",title:"\uAE30\uBCF8 \uD6C8\uB828\uC5D0\uC11C\uC758 \uBA54\uBAA8\uB9AC \uD65C\uC6A9 "},{local:"anatomy-of-models-operations",title:"\uBAA8\uB378\uC758 \uC5F0\uC0B0 \uD574\uBD80\uD558\uAE30 "},{local:"anatomy-of-models-memory",title:"\uBAA8\uB378\uC758 \uBA54\uBAA8\uB9AC \uAD6C\uC870 "}],title:"\uBAA8\uB378 \uD559\uC2B5 \uD574\uBD80\uD558\uAE30 "};function Gp(Wt){return hp(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class kp extends Ap{constructor(j){super();Ep(this,j,Gp,Rp,dp,{})}}export{kp as default,Lp as metadata};
