import{s as Ht,n as Qt,o as Ft}from"../chunks/scheduler.987d3921.js";import{S as Pt,i as Kt,g as a,s as r,u as d,A as Lt,h as i,f as t,c as s,j as p,v as m,y as h,k as o,o as c,a as n,w as M,d as u,t as w,x as y}from"../chunks/index.ab17fb05.js";import{I as re}from"../chunks/IconCopyLink.4b0dcf5a.js";import{C as _}from"../chunks/CodeBlock.f01f8eea.js";function Dt(dt){let f,ge,Me,be,v,C,ue,W,it,se,mt="Verteiltes Training mit 🤗 Accelerate",Ue,G,Mt='Da die Modelle immer größer werden, hat sich die Parallelität als Strategie zum Trainieren größerer Modelle auf begrenzter Hardware und zur Beschleunigung der Trainingsgeschwindigkeit um mehrere Größenordnungen erwiesen. Bei Hugging Face haben wir die Bibliothek <a href="https://huggingface.co/docs/accelerate" rel="nofollow">🤗 Accelerate</a> entwickelt, um Nutzern zu helfen, ein 🤗 Transformers-Modell auf jeder Art von verteiltem Setup zu trainieren, egal ob es sich um mehrere GPUs auf einer Maschine oder mehrere GPUs auf mehreren Maschinen handelt. In diesem Tutorial lernen Sie, wie Sie Ihre native PyTorch-Trainingsschleife anpassen, um das Training in einer verteilten Umgebung zu ermöglichen.',Ce,J,I,we,X,rt,oe,ut="Einrichtung",Ie,x,wt="Beginnen Sie mit der Installation von 🤗 Accelerate:",ke,S,$e,Y,yt="Dann importieren und erstellen Sie ein <code>Accelerator</code>-Objekt. Der <code>Accelerator</code> wird automatisch Ihre Art der verteilten Einrichtung erkennen und alle notwendigen Komponenten für das Training initialisieren. Sie müssen Ihr Modell nicht explizit auf einem Gerät platzieren.",Ae,N,Be,T,k,ye,E,st,ce,ft="Vorbereiten auf die Beschleunigung",Ze,z,vt="Der nächste Schritt ist die Übergabe aller relevanten Trainingsobjekte an die Methode <code>prepare</code>. Dazu gehören Ihre Trainings- und Evaluierungs-DataLoader, ein Modell und ein Optimierer:",_e,V,We,j,$,fe,R,ot,pe,Jt="Rückwärts",Ge,H,Tt="Die letzte Ergänzung besteht darin, das typische <code>loss.backward()</code> in der Trainingsschleife durch die 🤗 Accelerate-Methode <code>backward</code> zu ersetzen:",Xe,Q,xe,F,jt="Wie Sie im folgenden Code sehen können, müssen Sie nur vier zusätzliche Codezeilen zu Ihrer Trainingsschleife hinzufügen, um verteiltes Training zu ermöglichen!",Se,P,Ye,g,A,ve,K,ct,he,gt="Trainieren",Ne,L,bt="Sobald Sie die entsprechenden Codezeilen hinzugefügt haben, starten Sie Ihr Training in einem Skript oder einem Notebook wie Colaboratory.",Ee,b,B,Je,D,pt,de,Ut="Trainieren mit einem Skript",ze,q,Ct="Wenn Sie Ihr Training mit einem Skript durchführen, führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei zu erstellen und zu speichern:",Ve,O,Re,ee,It="Dann starten Sie Ihr Training mit:",He,te,Qe,U,Z,Te,le,ht,me,kt="Trainieren mit einem Notebook",Fe,ne,$t="🤗 Accelerate kann auch in einem Notebook laufen, wenn Sie planen, die TPUs von Colaboratory zu verwenden. Verpacken Sie den gesamten Code, der für das Training verantwortlich ist, in eine Funktion und übergeben Sie diese an <code>notebook_launcher</code>:",Pe,ae,Ke,ie,At='Weitere Informationen über 🤗 Accelerate und seine umfangreichen Funktionen finden Sie in der <a href="https://huggingface.co/docs/accelerate" rel="nofollow">Dokumentation</a>.',Le,je,De;return W=new re({}),X=new re({}),S=new _({props:{code:"cGlwJTIwaW5zdGFsbCUyMGFjY2VsZXJhdGU=",highlighted:"pip install accelerate"}}),N=new _({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQSUwQWFjY2VsZXJhdG9yJTIwJTNEJTIwQWNjZWxlcmF0b3IoKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator

<span class="hljs-meta">&gt;&gt;&gt; </span>accelerator = Accelerator()`}}),E=new re({}),V=new _({props:{code:"dHJhaW5fZGF0YWxvYWRlciUyQyUyMGV2YWxfZGF0YWxvYWRlciUyQyUyMG1vZGVsJTJDJTIwb3B0aW1pemVyJTIwJTNEJTIwYWNjZWxlcmF0b3IucHJlcGFyZSglMEElMjAlMjAlMjAlMjB0cmFpbl9kYXRhbG9hZGVyJTJDJTIwZXZhbF9kYXRhbG9hZGVyJTJDJTIwbW9kZWwlMkMlMjBvcHRpbWl6ZXIlMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>train_dataloader, eval_dataloader, model, optimizer = accelerator.prepare(
<span class="hljs-meta">... </span>    train_dataloader, eval_dataloader, model, optimizer
<span class="hljs-meta">... </span>)`}}),R=new re({}),Q=new _({props:{code:"Zm9yJTIwZXBvY2glMjBpbiUyMHJhbmdlKG51bV9lcG9jaHMpJTNBJTBBJTIwJTIwJTIwJTIwZm9yJTIwYmF0Y2glMjBpbiUyMHRyYWluX2RhdGFsb2FkZXIlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb3NzJTIwJTNEJTIwb3V0cHV0cy5sb3NzJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYWNjZWxlcmF0b3IuYmFja3dhcmQobG9zcyklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuc3RlcCgpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbHJfc2NoZWR1bGVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9wdGltaXplci56ZXJvX2dyYWQoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByb2dyZXNzX2Jhci51cGRhdGUoMSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><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-meta">... </span>    <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader:
<span class="hljs-meta">... </span>        outputs = model(**batch)
<span class="hljs-meta">... </span>        loss = outputs.loss
<span class="hljs-meta">... </span>        accelerator.backward(loss)

<span class="hljs-meta">... </span>        optimizer.step()
<span class="hljs-meta">... </span>        lr_scheduler.step()
<span class="hljs-meta">... </span>        optimizer.zero_grad()
<span class="hljs-meta">... </span>        progress_bar.update(<span class="hljs-number">1</span>)`}}),P=new _({props:{code:"JTJCJTIwZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQSUyMCUyMGZyb20lMjB0cmFuc2Zvcm1lcnMlMjBpbXBvcnQlMjBBZGFtVyUyQyUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMkMlMjBnZXRfc2NoZWR1bGVyJTBBJTBBJTJCJTIwYWNjZWxlcmF0b3IlMjAlM0QlMjBBY2NlbGVyYXRvcigpJTBBJTBBJTIwJTIwbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50JTJDJTIwbnVtX2xhYmVscyUzRDIpJTBBJTIwJTIwb3B0aW1pemVyJTIwJTNEJTIwQWRhbVcobW9kZWwucGFyYW1ldGVycygpJTJDJTIwbHIlM0QzZS01KSUwQSUwQS0lMjBkZXZpY2UlMjAlM0QlMjB0b3JjaC5kZXZpY2UoJTIyY3VkYSUyMiklMjBpZiUyMHRvcmNoLmN1ZGEuaXNfYXZhaWxhYmxlKCklMjBlbHNlJTIwdG9yY2guZGV2aWNlKCUyMmNwdSUyMiklMEEtJTIwbW9kZWwudG8oZGV2aWNlKSUwQSUwQSUyQiUyMHRyYWluX2RhdGFsb2FkZXIlMkMlMjBldmFsX2RhdGFsb2FkZXIlMkMlMjBtb2RlbCUyQyUyMG9wdGltaXplciUyMCUzRCUyMGFjY2VsZXJhdG9yLnByZXBhcmUoJTBBJTJCJTIwJTIwJTIwJTIwJTIwdHJhaW5fZGF0YWxvYWRlciUyQyUyMGV2YWxfZGF0YWxvYWRlciUyQyUyMG1vZGVsJTJDJTIwb3B0aW1pemVyJTBBJTJCJTIwKSUwQSUwQSUyMCUyMG51bV9lcG9jaHMlMjAlM0QlMjAzJTBBJTIwJTIwbnVtX3RyYWluaW5nX3N0ZXBzJTIwJTNEJTIwbnVtX2Vwb2NocyUyMColMjBsZW4odHJhaW5fZGF0YWxvYWRlciklMEElMjAlMjBscl9zY2hlZHVsZXIlMjAlM0QlMjBnZXRfc2NoZWR1bGVyKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMmxpbmVhciUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMG9wdGltaXplciUzRG9wdGltaXplciUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMG51bV93YXJtdXBfc3RlcHMlM0QwJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwbnVtX3RyYWluaW5nX3N0ZXBzJTNEbnVtX3RyYWluaW5nX3N0ZXBzJTBBJTIwJTIwKSUwQSUwQSUyMCUyMHByb2dyZXNzX2JhciUyMCUzRCUyMHRxZG0ocmFuZ2UobnVtX3RyYWluaW5nX3N0ZXBzKSklMEElMEElMjAlMjBtb2RlbC50cmFpbigpJTBBJTIwJTIwZm9yJTIwZXBvY2glMjBpbiUyMHJhbmdlKG51bV9lcG9jaHMpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwZm9yJTIwYmF0Y2glMjBpbiUyMHRyYWluX2RhdGFsb2FkZXIlM0ElMEEtJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmF0Y2glMjAlM0QlMjAlN0JrJTNBJTIwdi50byhkZXZpY2UpJTIwZm9yJTIwayUyQyUyMHYlMjBpbiUyMGJhdGNoLml0ZW1zKCklN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb3NzJTIwJTNEJTIwb3V0cHV0cy5sb3NzJTBBLSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxvc3MuYmFja3dhcmQoKSUwQSUyQiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjY2VsZXJhdG9yLmJhY2t3YXJkKGxvc3MpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3B0aW1pemVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxyX3NjaGVkdWxlci5zdGVwKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuemVyb19ncmFkKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIudXBkYXRlKDEp",highlighted:`<span class="hljs-addition">+ from accelerate import Accelerator</span>
  from transformers import AdamW, AutoModelForSequenceClassification, get_scheduler

<span class="hljs-addition">+ accelerator = Accelerator()</span>

  model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
  optimizer = AdamW(model.parameters(), lr=3e-5)

<span class="hljs-deletion">- device = torch.device(&quot;cuda&quot;) if torch.cuda.is_available() else torch.device(&quot;cpu&quot;)</span>
<span class="hljs-deletion">- model.to(device)</span>

<span class="hljs-addition">+ train_dataloader, eval_dataloader, model, optimizer = accelerator.prepare(</span>
<span class="hljs-addition">+     train_dataloader, eval_dataloader, model, optimizer</span>
<span class="hljs-addition">+ )</span>

  num_epochs = 3
  num_training_steps = num_epochs * len(train_dataloader)
  lr_scheduler = get_scheduler(
      &quot;linear&quot;,
      optimizer=optimizer,
      num_warmup_steps=0,
      num_training_steps=num_training_steps
  )

  progress_bar = tqdm(range(num_training_steps))

  model.train()
  for epoch in range(num_epochs):
      for batch in train_dataloader:
<span class="hljs-deletion">-         batch = {k: v.to(device) for k, v in batch.items()}</span>
          outputs = model(**batch)
          loss = outputs.loss
<span class="hljs-deletion">-         loss.backward()</span>
<span class="hljs-addition">+         accelerator.backward(loss)</span>

          optimizer.step()
          lr_scheduler.step()
          optimizer.zero_grad()
          progress_bar.update(1)`}}),K=new re({}),D=new re({}),O=new _({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config"}}),te=new _({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluLnB5",highlighted:"accelerate launch train.py"}}),le=new re({}),ae=new _({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBub3RlYm9va19sYXVuY2hlciUwQSUwQW5vdGVib29rX2xhdW5jaGVyKHRyYWluaW5nX2Z1bmN0aW9uKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> notebook_launcher

<span class="hljs-meta">&gt;&gt;&gt; </span>notebook_launcher(training_function)`}}),{c(){f=a("meta"),ge=r(),Me=a("p"),be=r(),v=a("h1"),C=a("a"),ue=a("span"),d(W.$$.fragment),it=r(),se=a("span"),se.textContent=mt,Ue=r(),G=a("p"),G.innerHTML=Mt,Ce=r(),J=a("h2"),I=a("a"),we=a("span"),d(X.$$.fragment),rt=r(),oe=a("span"),oe.textContent=ut,Ie=r(),x=a("p"),x.textContent=wt,ke=r(),d(S.$$.fragment),$e=r(),Y=a("p"),Y.innerHTML=yt,Ae=r(),d(N.$$.fragment),Be=r(),T=a("h2"),k=a("a"),ye=a("span"),d(E.$$.fragment),st=r(),ce=a("span"),ce.textContent=ft,Ze=r(),z=a("p"),z.innerHTML=vt,_e=r(),d(V.$$.fragment),We=r(),j=a("h2"),$=a("a"),fe=a("span"),d(R.$$.fragment),ot=r(),pe=a("span"),pe.textContent=Jt,Ge=r(),H=a("p"),H.innerHTML=Tt,Xe=r(),d(Q.$$.fragment),xe=r(),F=a("p"),F.textContent=jt,Se=r(),d(P.$$.fragment),Ye=r(),g=a("h2"),A=a("a"),ve=a("span"),d(K.$$.fragment),ct=r(),he=a("span"),he.textContent=gt,Ne=r(),L=a("p"),L.textContent=bt,Ee=r(),b=a("h3"),B=a("a"),Je=a("span"),d(D.$$.fragment),pt=r(),de=a("span"),de.textContent=Ut,ze=r(),q=a("p"),q.textContent=Ct,Ve=r(),d(O.$$.fragment),Re=r(),ee=a("p"),ee.textContent=It,He=r(),d(te.$$.fragment),Qe=r(),U=a("h3"),Z=a("a"),Te=a("span"),d(le.$$.fragment),ht=r(),me=a("span"),me.textContent=kt,Fe=r(),ne=a("p"),ne.innerHTML=$t,Pe=r(),d(ae.$$.fragment),Ke=r(),ie=a("p"),ie.innerHTML=At,Le=r(),je=a("p"),this.h()},l(e){const l=Lt("svelte-1phssyn",document.head);f=i(l,"META",{name:!0,content:!0}),l.forEach(t),ge=s(e),Me=i(e,"P",{}),p(Me).forEach(t),be=s(e),v=i(e,"H1",{class:!0});var qe=p(v);C=i(qe,"A",{id:!0,class:!0,href:!0});var Bt=p(C);ue=i(Bt,"SPAN",{});var Zt=p(ue);m(W.$$.fragment,Zt),Zt.forEach(t),Bt.forEach(t),it=s(qe),se=i(qe,"SPAN",{"data-svelte-h":!0}),h(se)!=="svelte-87ym90"&&(se.textContent=mt),qe.forEach(t),Ue=s(e),G=i(e,"P",{"data-svelte-h":!0}),h(G)!=="svelte-1hjc0yq"&&(G.innerHTML=Mt),Ce=s(e),J=i(e,"H2",{class:!0});var Oe=p(J);I=i(Oe,"A",{id:!0,class:!0,href:!0});var _t=p(I);we=i(_t,"SPAN",{});var Wt=p(we);m(X.$$.fragment,Wt),Wt.forEach(t),_t.forEach(t),rt=s(Oe),oe=i(Oe,"SPAN",{"data-svelte-h":!0}),h(oe)!=="svelte-19k0q0t"&&(oe.textContent=ut),Oe.forEach(t),Ie=s(e),x=i(e,"P",{"data-svelte-h":!0}),h(x)!=="svelte-15yrwop"&&(x.textContent=wt),ke=s(e),m(S.$$.fragment,e),$e=s(e),Y=i(e,"P",{"data-svelte-h":!0}),h(Y)!=="svelte-pi5ngu"&&(Y.innerHTML=yt),Ae=s(e),m(N.$$.fragment,e),Be=s(e),T=i(e,"H2",{class:!0});var et=p(T);k=i(et,"A",{id:!0,class:!0,href:!0});var Gt=p(k);ye=i(Gt,"SPAN",{});var Xt=p(ye);m(E.$$.fragment,Xt),Xt.forEach(t),Gt.forEach(t),st=s(et),ce=i(et,"SPAN",{"data-svelte-h":!0}),h(ce)!=="svelte-1lnofnn"&&(ce.textContent=ft),et.forEach(t),Ze=s(e),z=i(e,"P",{"data-svelte-h":!0}),h(z)!=="svelte-1u11dxv"&&(z.innerHTML=vt),_e=s(e),m(V.$$.fragment,e),We=s(e),j=i(e,"H2",{class:!0});var tt=p(j);$=i(tt,"A",{id:!0,class:!0,href:!0});var xt=p($);fe=i(xt,"SPAN",{});var St=p(fe);m(R.$$.fragment,St),St.forEach(t),xt.forEach(t),ot=s(tt),pe=i(tt,"SPAN",{"data-svelte-h":!0}),h(pe)!=="svelte-1ayyq3t"&&(pe.textContent=Jt),tt.forEach(t),Ge=s(e),H=i(e,"P",{"data-svelte-h":!0}),h(H)!=="svelte-18g7sy8"&&(H.innerHTML=Tt),Xe=s(e),m(Q.$$.fragment,e),xe=s(e),F=i(e,"P",{"data-svelte-h":!0}),h(F)!=="svelte-1ghqa33"&&(F.textContent=jt),Se=s(e),m(P.$$.fragment,e),Ye=s(e),g=i(e,"H2",{class:!0});var lt=p(g);A=i(lt,"A",{id:!0,class:!0,href:!0});var Yt=p(A);ve=i(Yt,"SPAN",{});var Nt=p(ve);m(K.$$.fragment,Nt),Nt.forEach(t),Yt.forEach(t),ct=s(lt),he=i(lt,"SPAN",{"data-svelte-h":!0}),h(he)!=="svelte-8fpnam"&&(he.textContent=gt),lt.forEach(t),Ne=s(e),L=i(e,"P",{"data-svelte-h":!0}),h(L)!=="svelte-1jr6frh"&&(L.textContent=bt),Ee=s(e),b=i(e,"H3",{class:!0});var nt=p(b);B=i(nt,"A",{id:!0,class:!0,href:!0});var Et=p(B);Je=i(Et,"SPAN",{});var zt=p(Je);m(D.$$.fragment,zt),zt.forEach(t),Et.forEach(t),pt=s(nt),de=i(nt,"SPAN",{"data-svelte-h":!0}),h(de)!=="svelte-8pezcn"&&(de.textContent=Ut),nt.forEach(t),ze=s(e),q=i(e,"P",{"data-svelte-h":!0}),h(q)!=="svelte-ve4x71"&&(q.textContent=Ct),Ve=s(e),m(O.$$.fragment,e),Re=s(e),ee=i(e,"P",{"data-svelte-h":!0}),h(ee)!=="svelte-17ookzs"&&(ee.textContent=It),He=s(e),m(te.$$.fragment,e),Qe=s(e),U=i(e,"H3",{class:!0});var at=p(U);Z=i(at,"A",{id:!0,class:!0,href:!0});var Vt=p(Z);Te=i(Vt,"SPAN",{});var Rt=p(Te);m(le.$$.fragment,Rt),Rt.forEach(t),Vt.forEach(t),ht=s(at),me=i(at,"SPAN",{"data-svelte-h":!0}),h(me)!=="svelte-1qn779d"&&(me.textContent=kt),at.forEach(t),Fe=s(e),ne=i(e,"P",{"data-svelte-h":!0}),h(ne)!=="svelte-1dq64sh"&&(ne.innerHTML=$t),Pe=s(e),m(ae.$$.fragment,e),Ke=s(e),ie=i(e,"P",{"data-svelte-h":!0}),h(ie)!=="svelte-1t5vokc"&&(ie.innerHTML=At),Le=s(e),je=i(e,"P",{}),p(je).forEach(t),this.h()},h(){o(f,"name","hf:doc:metadata"),o(f,"content",JSON.stringify(qt)),o(C,"id","verteiltes-training-mit-accelerate"),o(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"),o(C,"href","#verteiltes-training-mit-accelerate"),o(v,"class","relative group"),o(I,"id","einrichtung"),o(I,"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"),o(I,"href","#einrichtung"),o(J,"class","relative group"),o(k,"id","vorbereiten-auf-die-beschleunigung"),o(k,"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"),o(k,"href","#vorbereiten-auf-die-beschleunigung"),o(T,"class","relative group"),o($,"id","rckwrts"),o($,"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"),o($,"href","#rckwrts"),o(j,"class","relative group"),o(A,"id","trainieren"),o(A,"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"),o(A,"href","#trainieren"),o(g,"class","relative group"),o(B,"id","trainieren-mit-einem-skript"),o(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"),o(B,"href","#trainieren-mit-einem-skript"),o(b,"class","relative group"),o(Z,"id","trainieren-mit-einem-notebook"),o(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"),o(Z,"href","#trainieren-mit-einem-notebook"),o(U,"class","relative group")},m(e,l){c(document.head,f),n(e,ge,l),n(e,Me,l),n(e,be,l),n(e,v,l),c(v,C),c(C,ue),M(W,ue,null),c(v,it),c(v,se),n(e,Ue,l),n(e,G,l),n(e,Ce,l),n(e,J,l),c(J,I),c(I,we),M(X,we,null),c(J,rt),c(J,oe),n(e,Ie,l),n(e,x,l),n(e,ke,l),M(S,e,l),n(e,$e,l),n(e,Y,l),n(e,Ae,l),M(N,e,l),n(e,Be,l),n(e,T,l),c(T,k),c(k,ye),M(E,ye,null),c(T,st),c(T,ce),n(e,Ze,l),n(e,z,l),n(e,_e,l),M(V,e,l),n(e,We,l),n(e,j,l),c(j,$),c($,fe),M(R,fe,null),c(j,ot),c(j,pe),n(e,Ge,l),n(e,H,l),n(e,Xe,l),M(Q,e,l),n(e,xe,l),n(e,F,l),n(e,Se,l),M(P,e,l),n(e,Ye,l),n(e,g,l),c(g,A),c(A,ve),M(K,ve,null),c(g,ct),c(g,he),n(e,Ne,l),n(e,L,l),n(e,Ee,l),n(e,b,l),c(b,B),c(B,Je),M(D,Je,null),c(b,pt),c(b,de),n(e,ze,l),n(e,q,l),n(e,Ve,l),M(O,e,l),n(e,Re,l),n(e,ee,l),n(e,He,l),M(te,e,l),n(e,Qe,l),n(e,U,l),c(U,Z),c(Z,Te),M(le,Te,null),c(U,ht),c(U,me),n(e,Fe,l),n(e,ne,l),n(e,Pe,l),M(ae,e,l),n(e,Ke,l),n(e,ie,l),n(e,Le,l),n(e,je,l),De=!0},p:Qt,i(e){De||(u(W.$$.fragment,e),u(X.$$.fragment,e),u(S.$$.fragment,e),u(N.$$.fragment,e),u(E.$$.fragment,e),u(V.$$.fragment,e),u(R.$$.fragment,e),u(Q.$$.fragment,e),u(P.$$.fragment,e),u(K.$$.fragment,e),u(D.$$.fragment,e),u(O.$$.fragment,e),u(te.$$.fragment,e),u(le.$$.fragment,e),u(ae.$$.fragment,e),De=!0)},o(e){w(W.$$.fragment,e),w(X.$$.fragment,e),w(S.$$.fragment,e),w(N.$$.fragment,e),w(E.$$.fragment,e),w(V.$$.fragment,e),w(R.$$.fragment,e),w(Q.$$.fragment,e),w(P.$$.fragment,e),w(K.$$.fragment,e),w(D.$$.fragment,e),w(O.$$.fragment,e),w(te.$$.fragment,e),w(le.$$.fragment,e),w(ae.$$.fragment,e),De=!1},d(e){e&&(t(ge),t(Me),t(be),t(v),t(Ue),t(G),t(Ce),t(J),t(Ie),t(x),t(ke),t($e),t(Y),t(Ae),t(Be),t(T),t(Ze),t(z),t(_e),t(We),t(j),t(Ge),t(H),t(Xe),t(xe),t(F),t(Se),t(Ye),t(g),t(Ne),t(L),t(Ee),t(b),t(ze),t(q),t(Ve),t(Re),t(ee),t(He),t(Qe),t(U),t(Fe),t(ne),t(Pe),t(Ke),t(ie),t(Le),t(je)),t(f),y(W),y(X),y(S,e),y(N,e),y(E),y(V,e),y(R),y(Q,e),y(P,e),y(K),y(D),y(O,e),y(te,e),y(le),y(ae,e)}}}const qt={local:"verteiltes-training-mit-accelerate",sections:[{local:"einrichtung",title:"Einrichtung"},{local:"vorbereiten-auf-die-beschleunigung",title:"Vorbereiten auf die Beschleunigung"},{local:"rckwrts",title:"Rückwärts"},{local:"trainieren",sections:[{local:"trainieren-mit-einem-skript",title:"Trainieren mit einem Skript"},{local:"trainieren-mit-einem-notebook",title:"Trainieren mit einem Notebook"}],title:"Trainieren"}],title:"Verteiltes Training mit 🤗 Accelerate"};function Ot(dt){return Ft(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class al extends Pt{constructor(f){super(),Kt(this,f,Ot,Dt,Ht,{})}}export{al as component};
