var Nt=Object.defineProperty,Tt=Object.defineProperties;var Wt=Object.getOwnPropertyDescriptors;var wt=Object.getOwnPropertySymbols;var Kt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable;var vt=(p,n,i)=>n in p?Nt(p,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):p[n]=i,Xe=(p,n)=>{for(var i in n||(n={}))Kt.call(n,i)&&vt(p,i,n[i]);if(wt)for(var i of wt(n))Bt.call(n,i)&&vt(p,i,n[i]);return p},Je=(p,n)=>Tt(p,Wt(n));import{D as Ct,S as xt,i as St,s as At,e as s,k as _,Y as Dt,l as Ye,c as l,a as d,m as k,Z as yt,d as e,b as u,g as b,G as t,Q as Mt,t as z,h as x,j as Ft,_ as Vt,L as bt,K as qt,$ as Ht,v as Pt,a0 as $t,a1 as Lt,w as C,M as It,x as F,y as V,o as K,p as Ot,q as B,B as q,n as Rt}from"../../chunks/vendor-hf-doc-builder.js";import{I as Ee}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{F as Zt}from"../../chunks/FrameworkSwitchCourse-hf-doc-builder.js";const et=Ct({});function _t(p,n,i){const o=p.slice();return o[11]=n[i],o[13]=i,o}function kt(p){let n,i,o=p[11].correct?"Correct!":"Incorrect.",c,w,g,M=p[11].explain+"",S;return{c(){n=s("div"),i=s("span"),c=z(o),w=_(),g=new Dt,this.h()},l(A){n=l(A,"DIV",{class:!0});var y=d(n);i=l(y,"SPAN",{class:!0});var N=d(i);c=x(N,o),N.forEach(e),w=k(y),g=yt(y),y.forEach(e),this.h()},h(){u(i,"class","font-bold"),g.a=null,u(n,"class",S="alert alert-"+(p[11].correct?"success":"error")+" mt-1 mb-2.5 leading-normal")},m(A,y){b(A,n,y),t(n,i),t(i,c),t(n,w),g.m(M,n)},p(A,y){y&1&&o!==(o=A[11].correct?"Correct!":"Incorrect.")&&Ft(c,o),y&1&&M!==(M=A[11].explain+"")&&g.p(M),y&1&&S!==(S="alert alert-"+(A[11].correct?"success":"error")+" mt-1 mb-2.5 leading-normal")&&u(n,"class",S)},d(A){A&&e(n)}}}function Et(p){let n,i,o,c,w,g=p[11].text+"",M,S=p[4]&&p[4].includes(p[13]),A,y,N,v=S&&kt(p);return{c(){n=s("label"),i=s("input"),c=_(),w=new Dt,M=_(),v&&v.c(),A=Ye(),this.h()},l(m){n=l(m,"LABEL",{class:!0});var h=d(n);i=l(h,"INPUT",{autocomplete:!0,class:!0,name:!0,type:!0}),c=k(h),w=yt(h),h.forEach(e),M=k(m),v&&v.l(m),A=Ye(),this.h()},h(){u(i,"autocomplete","off"),u(i,"class","form-input -mt-1.5 mr-2"),u(i,"name","choice"),u(i,"type","checkbox"),i.__value=o=p[13],i.value=i.__value,p[7][0].push(i),w.a=null,u(n,"class","block")},m(m,h){b(m,n,h),t(n,i),i.checked=~p[3].indexOf(i.__value),t(n,c),w.m(g,n),b(m,M,h),v&&v.m(m,h),b(m,A,h),y||(N=Mt(i,"change",p[6]),y=!0)},p(m,h){h&8&&(i.checked=~m[3].indexOf(i.__value)),h&1&&g!==(g=m[11].text+"")&&w.p(g),h&16&&(S=m[4]&&m[4].includes(m[13])),S?v?v.p(m,h):(v=kt(m),v.c(),v.m(A.parentNode,A)):v&&(v.d(1),v=null)},d(m){m&&e(n),p[7][0].splice(p[7][0].indexOf(i),1),m&&e(M),v&&v.d(m),m&&e(A),y=!1,N()}}}function zt(p){let n;function i(w,g){return w[1]?jt:w[2]?Ut:Gt}let o=i(p),c=o(p);return{c(){n=s("div"),c.c(),this.h()},l(w){n=l(w,"DIV",{class:!0});var g=d(n);c.l(g),g.forEach(e),this.h()},h(){u(n,"class","font-semibold leading-snug")},m(w,g){b(w,n,g),c.m(n,null)},p(w,g){o!==(o=i(w))&&(c.d(1),c=o(w),c&&(c.c(),c.m(n,null)))},d(w){w&&e(n),c.d()}}}function Gt(p){let n,i;return{c(){n=s("span"),i=z("You got all the answers!"),this.h()},l(o){n=l(o,"SPAN",{class:!0});var c=d(n);i=x(c,"You got all the answers!"),c.forEach(e),this.h()},h(){u(n,"class","text-green-900 dark:text-green-200")},m(o,c){b(o,n,c),t(n,i)},d(o){o&&e(n)}}}function Ut(p){let n,i;return{c(){n=s("span"),i=z("You didn't select all the correct answers, there's more!"),this.h()},l(o){n=l(o,"SPAN",{class:!0});var c=d(n);i=x(c,"You didn't select all the correct answers, there's more!"),c.forEach(e),this.h()},h(){u(n,"class","text-red-900 dark:text-red-200")},m(o,c){b(o,n,c),t(n,i)},d(o){o&&e(n)}}}function jt(p){let n,i;return{c(){n=s("span"),i=z("Looks like at least one of your answers is wrong, try again!"),this.h()},l(o){n=l(o,"SPAN",{class:!0});var c=d(n);i=x(c,"Looks like at least one of your answers is wrong, try again!"),c.forEach(e),this.h()},h(){u(n,"class","text-red-900 dark:text-red-200")},m(o,c){b(o,n,c),t(n,i)},d(o){o&&e(n)}}}function Qt(p){let n,i,o,c,w,g,M,S,A,y,N=p[0],v=[];for(let h=0;h<N.length;h+=1)v[h]=Et(_t(p,N,h));let m=p[4].length&&zt(p);return{c(){n=s("div"),i=s("form");for(let h=0;h<v.length;h+=1)v[h].c();o=_(),c=s("div"),w=s("button"),g=z("Submit"),S=_(),m&&m.c(),this.h()},l(h){n=l(h,"DIV",{});var E=d(n);i=l(E,"FORM",{});var $=d(i);for(let Y=0;Y<v.length;Y+=1)v[Y].l($);o=k($),c=l($,"DIV",{class:!0});var W=d(c);w=l(W,"BUTTON",{class:!0,type:!0});var O=d(w);g=x(O,"Submit"),O.forEach(e),S=k(W),m&&m.l(W),W.forEach(e),$.forEach(e),E.forEach(e),this.h()},h(){u(w,"class","btn px-4 mr-4"),u(w,"type","submit"),w.disabled=M=!p[3].length,u(c,"class","flex flex-row items-center mt-3")},m(h,E){b(h,n,E),t(n,i);for(let $=0;$<v.length;$+=1)v[$].m(i,null);t(i,o),t(i,c),t(c,w),t(w,g),t(c,S),m&&m.m(c,null),A||(y=Mt(i,"submit",Vt(p[8])),A=!0)},p(h,[E]){if(E&25){N=h[0];let $;for($=0;$<N.length;$+=1){const W=_t(h,N,$);v[$]?v[$].p(W,E):(v[$]=Et(W),v[$].c(),v[$].m(i,o))}for(;$<v.length;$+=1)v[$].d(1);v.length=N.length}E&8&&M!==(M=!h[3].length)&&(w.disabled=M),h[4].length?m?m.p(h,E):(m=zt(h),m.c(),m.m(c,null)):m&&(m.d(1),m=null)},i:bt,o:bt,d(h){h&&e(n),qt(v,h),m&&m.d(),A=!1,y()}}}function Yt(p="_"){return`${p}${Math.random().toString(36).substr(2,9)}`}function Xt(p,n,i){let o;Ht(p,et,h=>i(9,o=h));let{choices:c}=n;const w=Yt();let g=!1,M=!1,S=[],A=[];Pt(()=>{$t(et,o=Je(Xe({},o),{[w]:{correct:!1}}),o)});function y(){i(1,g=!1),i(2,M=!1);for(let E=0;E<c.length;E++){const $=c[E];$.correct&&!S.includes(E)?i(2,M=!0):!$.correct&&S.includes(E)&&i(1,g=!0)}if(i(4,A=S),$t(et,o=Je(Xe({},o),{[w]:{correct:!M&&!g}}),o),Object.values(o).every(({correct:E})=>E)){const E=new Event("ChapterComplete");window.dispatchEvent(E)}}const N=[[]];function v(){S=Lt(N[0],this.__value,this.checked),i(3,S)}const m=()=>y();return p.$$set=h=>{"choices"in h&&i(0,c=h.choices)},[c,g,M,S,A,y,v,N,m]}class ze extends xt{constructor(n){super();St(this,n,Xt,Qt,At,{choices:0})}}function Jt(p){let n,i,o,c,w,g,M,S,A,y,N,v,m,h,E,$,W,O,Y,fe,le,X,$e,U,j,ge,L,Q,oe,R,ae,H,de,Z,te,ve,ne,me,re;return c=new Ee({}),E=new ze({props:{choices:[{text:"Nichts, aber du bekommst eine Warnung.",explain:"Du bekommst eine Warnung, aber das ist noch nicht alles!"},{text:"Der Kopf des vorher trainierten Modells wird verworfen und stattdessen ein neuer Kopf eingef\xFCgt, der f\xFCr die Aufgabe geeignet ist.",explain:"correct. Wenn wir zum Beispiel <code>TFAutoModelForSequenceClassification</code> mit <code>bert-base-uncased</code> verwendet haben, bekamen wir beim Instanziieren des Modells Warnungen. Der trainierte Kopf wird nicht f\xFCr die Sequenzklassifizierung verwendet, also wird er verworfen und ein neuer Kopf mit zuf\xE4lligen Gewichten instanziiert.",correct:!0},{text:"Der Kopf des vorher trainierten Modells wird verworfen.",explain:"Es muss etwas anderes passieren. Versuch es noch einmal!"},{text:"Nichts, da das Modell noch f\xFCr die andere Aufgabe fein-tunen kann.",explain:"Der Kopf des trainierten Modells wurde nicht f\xFCr die L\xF6sung dieser Aufgabe trainiert, also sollten wir den Kopf verwerfen!"}]}}),fe=new Ee({}),Q=new ze({props:{choices:[{text:"Die Modelle funktionieren sofort auf einem TPU.",explain:"Fast! Es sind einige kleine zus\xE4tzliche \xC4nderungen erforderlich. Zum Beispiel musst du alles in einem <code>TPUStrategy</code>-Bereich ausf\xFChren, einschlie\xDFlich der Initialisierung des Modells."},{text:"Du kannst bestehende Methoden wie <code>compile()</code>, <code>fit()&lt;c/ode> und &lt;code>predict()</code> nutzen.",erkl\u00E4ren:"Richtig! Wenn du erst einmal die Daten hast, erfordert das Training mit ihnen nur noch wenig Arbeit.",correct:!0},{text:"Du lernst sowohl Keras als auch Transformer kennen.",explain:"Korrekt, aber wir suchen nach etwas anderem :)",correct:!0},{text:"Du kannst ganz einfach Metriken f\xFCr den Datensatz berechnen.",explain:"Keras hilft uns beim Training und der Auswertung des Modells, nicht bei der Berechnung von datensatzbezogenen Metriken."}]}}),de=new Ee({}),me=new ze({props:{choices:[{text:"Indem du wir eine Unterklasse von <code>tf.keras.metrics.Metric</code> erstellen.",explain:"Gro\xDFartig!",correct:!0},{text:"Durch Verwendung der funktionalen Keras-API.",explain:"Versuch es noch einmal!"},{text:"Durch die Verwendung einer Callable mit der Signatur <code>metric_fn(y_true, y_pred)</code>.",explain:"Korrekt!",correct:!0},{text:"Indem du es googelst.",explain:"Das ist nicht die Antwort, nach der wir suchen, aber es sollte dir helfen, sie zu finden.",correct:!0}]}}),{c(){n=s("h3"),i=s("a"),o=s("span"),C(c.$$.fragment),w=_(),g=s("span"),M=z("4. Was passiert, wenn du eine der Klassen "),S=s("code"),A=z("TFAutoModelForXxx"),y=z(" mit einem vortrainierten Sprachmodell (z. B. "),N=s("code"),v=z("bert-base-uncased"),m=z(") instanziierst, das einer anderen Aufgabe entspricht als der, f\xFCr die es trainiert wurde?"),h=_(),C(E.$$.fragment),$=_(),W=s("h3"),O=s("a"),Y=s("span"),C(fe.$$.fragment),le=_(),X=s("span"),$e=z("5. Die Tensorflow Modelle von "),U=s("code"),j=z("transformers"),ge=z(" sind bereits Keras Modelle. Welchen Vorteil bietet das?"),L=_(),C(Q.$$.fragment),oe=_(),R=s("h3"),ae=s("a"),H=s("span"),C(de.$$.fragment),Z=_(),te=s("span"),ve=z("6. Wie kannst du deine eigene benutzerdefinierte Metrik definieren?"),ne=_(),C(me.$$.fragment),this.h()},l(f){n=l(f,"H3",{class:!0});var T=d(n);i=l(T,"A",{id:!0,class:!0,href:!0});var xe=d(i);o=l(xe,"SPAN",{});var ce=d(o);F(c.$$.fragment,ce),ce.forEach(e),xe.forEach(e),w=k(T),g=l(T,"SPAN",{});var G=d(g);M=x(G,"4. Was passiert, wenn du eine der Klassen "),S=l(G,"CODE",{});var _e=d(S);A=x(_e,"TFAutoModelForXxx"),_e.forEach(e),y=x(G," mit einem vortrainierten Sprachmodell (z. B. "),N=l(G,"CODE",{});var we=d(N);v=x(we,"bert-base-uncased"),we.forEach(e),m=x(G,") instanziierst, das einer anderen Aufgabe entspricht als der, f\xFCr die es trainiert wurde?"),G.forEach(e),T.forEach(e),h=k(f),F(E.$$.fragment,f),$=k(f),W=l(f,"H3",{class:!0});var be=d(W);O=l(be,"A",{id:!0,class:!0,href:!0});var ue=d(O);Y=l(ue,"SPAN",{});var Se=d(Y);F(fe.$$.fragment,Se),Se.forEach(e),ue.forEach(e),le=k(be),X=l(be,"SPAN",{});var J=d(X);$e=x(J,"5. Die Tensorflow Modelle von "),U=l(J,"CODE",{});var ee=d(U);j=x(ee,"transformers"),ee.forEach(e),ge=x(J," sind bereits Keras Modelle. Welchen Vorteil bietet das?"),J.forEach(e),be.forEach(e),L=k(f),F(Q.$$.fragment,f),oe=k(f),R=l(f,"H3",{class:!0});var pe=d(R);ae=l(pe,"A",{id:!0,class:!0,href:!0});var I=d(ae);H=l(I,"SPAN",{});var ie=d(H);F(de.$$.fragment,ie),ie.forEach(e),I.forEach(e),Z=k(pe),te=l(pe,"SPAN",{});var se=d(te);ve=x(se,"6. Wie kannst du deine eigene benutzerdefinierte Metrik definieren?"),se.forEach(e),pe.forEach(e),ne=k(f),F(me.$$.fragment,f),this.h()},h(){u(i,"id","4.-was-passiert,-wenn-du-eine-der-klassen-<code>tfautomodelforxxx</code>-mit-einem-vortrainierten-sprachmodell-(z.-b.-<code>bert-base-uncased</code>)-instanziierst,-das-einer-anderen-aufgabe-entspricht-als-der,-f\xFCr-die-es-trainiert-wurde?"),u(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"),u(i,"href","#4.-was-passiert,-wenn-du-eine-der-klassen-<code>tfautomodelforxxx</code>-mit-einem-vortrainierten-sprachmodell-(z.-b.-<code>bert-base-uncased</code>)-instanziierst,-das-einer-anderen-aufgabe-entspricht-als-der,-f\xFCr-die-es-trainiert-wurde?"),u(n,"class","relative group"),u(O,"id","5.-die-tensorflow-modelle-von-<code>transformers</code>-sind-bereits-keras-modelle.-welchen-vorteil-bietet-das?"),u(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"),u(O,"href","#5.-die-tensorflow-modelle-von-<code>transformers</code>-sind-bereits-keras-modelle.-welchen-vorteil-bietet-das?"),u(W,"class","relative group"),u(ae,"id","6.-wie-kannst-du-deine-eigene-benutzerdefinierte-metrik-definieren?"),u(ae,"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(ae,"href","#6.-wie-kannst-du-deine-eigene-benutzerdefinierte-metrik-definieren?"),u(R,"class","relative group")},m(f,T){b(f,n,T),t(n,i),t(i,o),V(c,o,null),t(n,w),t(n,g),t(g,M),t(g,S),t(S,A),t(g,y),t(g,N),t(N,v),t(g,m),b(f,h,T),V(E,f,T),b(f,$,T),b(f,W,T),t(W,O),t(O,Y),V(fe,Y,null),t(W,le),t(W,X),t(X,$e),t(X,U),t(U,j),t(X,ge),b(f,L,T),V(Q,f,T),b(f,oe,T),b(f,R,T),t(R,ae),t(ae,H),V(de,H,null),t(R,Z),t(R,te),t(te,ve),b(f,ne,T),V(me,f,T),re=!0},i(f){re||(B(c.$$.fragment,f),B(E.$$.fragment,f),B(fe.$$.fragment,f),B(Q.$$.fragment,f),B(de.$$.fragment,f),B(me.$$.fragment,f),re=!0)},o(f){K(c.$$.fragment,f),K(E.$$.fragment,f),K(fe.$$.fragment,f),K(Q.$$.fragment,f),K(de.$$.fragment,f),K(me.$$.fragment,f),re=!1},d(f){f&&e(n),q(c),f&&e(h),q(E,f),f&&e($),f&&e(W),q(fe),f&&e(L),q(Q,f),f&&e(oe),f&&e(R),q(de),f&&e(ne),q(me,f)}}}function en(p){let n,i,o,c,w,g,M,S,A,y,N,v,m,h,E,$,W,O,Y,fe,le,X,$e,U,j,ge,L,Q,oe,R,ae,H,de,Z,te,ve,ne,me,re,f,T,xe,ce,G,_e,we,be,ue,Se,J,ee,pe,I,ie,se,Te,We,Ae,He,a,D,ke,he,De,Ke,ye,Me,Be,Le,Ne,Pe,Ce;return c=new Ee({}),v=new ze({props:{choices:[{text:"Die Ergebnisse der Funktion werden im Cache zwischengespeichert, sodass es keine Zeit kostet, wenn wir den Code erneut ausf\xFChren.",explain:"Das ist tats\xE4chlich einer der tollen Vorteile dieser Methode! Es ist aber nicht der einzige...",correct:!0},{text:"Sie kann Multiprocessing anwenden, um schneller zu sein, als die Funktion auf jedes Element des Datensatzes anzuwenden.",explain:"Das ist ein nettes Feature dieser Methode, aber es ist nicht das einzige!",correct:!0},{text:"Es wird nicht der gesamte Datensatz in den Speicher geladen, sondern die Ergebnisse werden gespeichert, sobald ein Element verarbeitet wurde.",explain:"Das ist ein Vorteil dieser Methode. Es gibt aber noch andere!",correct:!0}]}}),W=new Ee({}),X=new ze({props:{choices:[{text:"Das ist, wenn du die Eingaben f\xFCr jeden Batch auf die maximale L\xE4nge des gesamten Datensatzes auff\xFCllst.",explain:"Bei der Erstellung des Batches wird zwar aufgef\xFCllt, aber nicht auf die maximale L\xE4nge des gesamten Datensatzes."},{text:"Wenn du deine Eingaben bei der Erstellung des Batches auf die maximale L\xE4nge der S\xE4tze in diesem Batch auff\xFCllst.",explain:"Das ist richtig! Der 'dynamische' Teil kommt daher, dass die Gr\xF6\xDFe jedes Batches zum Zeitpunkt der Erstellung festgelegt wird und alle deine Batches daher unterschiedliche Formen haben k\xF6nnen.",correct:!0},{text:"Das ist, wenn du deine Eingaben so auff\xFCllst, dass jeder Satz die gleiche Anzahl von Token hat wie der vorherige im Datensatz.",explain:"Das ist nicht richtig, au\xDFerdem macht es keinen Sinn, sich die Reihenfolge im Datensatz anzusehen, da wir ihn beim Training mischen."}]}}),L=new Ee({}),H=new ze({props:{choices:[{text:"Sie stellt sicher, dass alle Sequenzen im Datensatz die gleiche L\xE4nge haben.",explain:"Eine collate Funktion befasst sich mit der Bearbeitung einzelner Batches, nicht des gesamten Datensatzes. Au\xDFerdem geht es hier um allgemeine Funktionen zum Sortieren, nicht um <code>DataCollatorWithPadding</code> im Speziellen."},{text:"Er stellt alle Proben in einem Batch zusammen.",explain:"Richtig! Du kannst die collate Funktion als Argument eines <code>DataLoaders</code> \xFCbergeben. Wir haben die Funktion <code>DataCollatorWithPadding</code> verwendet, die alle Elemente in einem Batch auff\xFCllt, damit sie die gleiche L\xE4nge haben.",correct:!0},{text:"Es wird der gesamte Datensatz vorverarbeitet.",explain:"Das w\xE4re eine Vorverarbeitungsfunktion, keine Zusammenfassungsfunktion wie <code>collate</code>."},{text:"Sie schneidet die Sequenzen im Datensatz ab.",explain:"Eine collate Funktion behandelt einzelne Batches, nicht den gesamten Datensatz. Wenn du am Abschneiden interessiert bist, kannst du das <code>truncate</code> Argument von dem <code>tokenizer</code> verwenden."}]}}),ne=new Ee({}),ue=new ze({props:{choices:[{text:"Nichts, aber du bekommst eine Warnung.",explain:"Du bekommst eine Warnung, aber das ist noch nicht alles!"},{text:"Der Kopf des vorher trainierten Modells wird verworfen und stattdessen ein neuer Kopf eingef\xFCgt, der f\xFCr die Aufgabe geeignet ist.",explain:"Korrekt. Wenn wir zum Beispiel <code>AutoModelForSequenceClassification</code> mit <code>bert-base-uncased</code> verwendet haben, bekamen wir beim Instanziieren des Modells Warnungen. Der trainierte Kopf wird nicht f\xFCr die Sequenzklassifizierung verwendet, also wird er verworfen und ein neuer Kopf mit zuf\xE4lliger Gewichtung wird instanziiert.",correct:!0},{text:"Der Kopf des vorher trainierten Modells wird verworfen.",explain:"Es muss etwas anderes passieren. Versuch es noch einmal!"},{text:"Nichts, da das Modell noch f\xFCr die andere Aufgabe fein-tunen kann.",explain:"Der Kopf des trainierten Modells wurde nicht f\xFCr die L\xF6sung dieser Aufgabe trainiert, also sollte der Kopf verworfen werden!"}]}}),I=new Ee({}),D=new ze({props:{choices:[{text:"Sie enth\xE4lt alle Hyperparameter, die f\xFCr das Training und die Auswertung mit dem <code>Trainer</code> verwendet werden.",explain:"Richtig!",correct:!0},{text:"Hier wird die Gr\xF6\xDFe des Modells angegeben.",explain:"Die Gr\xF6\xDFe des Modells wird durch die Konfiguration des Modells festgelegt, nicht durch die Klasse <code>TrainingArguments</code>."},{text:"Sie enth\xE4lt nur die Hyperparameter, die f\xFCr die Auswertung verwendet werden.",explain:"In unserem Beispiel haben wir angegeben, wo das Modell und seine Kontrollpunkte gespeichert werden sollen. Versuche es noch einmal!"},{text:"Er enth\xE4lt nur die Hyperparameter, die f\xFCr das Training verwendet werden.",explain:"In unserem Beispiel haben wir auch eine <code>Auswertungsstrategie</code> verwendet, was sich auf die Auswertung auswirkt. Versuche es noch einmal!"}]}}),ye=new Ee({}),Pe=new ze({props:{choices:[{text:"Sie bietet Zugang zu schnelleren Modellen.",explain:"Nein, die \u{1F917} Accelerate Bibliothek stellt keine Modelle zur Verf\xFCgung."},{text:"Sie bietet eine High-Level-API, damit ich keine eigene Trainingsschleife implementieren muss.",explain:"Das haben wir mit <code>Trainer</code> gemacht, nicht mit der \u{1F917} Accelerate Bibliothek. Versuch es noch einmal!"},{text:"Damit funktionieren unsere Trainingsschleifen bei verteilten Strategien.",explain:"Richtig! Mit \u{1F917} Accelerate funktionieren deine Trainingsschleifen f\xFCr mehrere verteilte GPUs und TPUs.",correct:!0},{Text:"Es bietet mehr Funktionen zur Optimierung.",explain:"Nein, die \u{1F917} Accelerate Bibliothek stellt keine Optimierungsfunktionen zur Verf\xFCgung."}]}}),{c(){n=s("h3"),i=s("a"),o=s("span"),C(c.$$.fragment),w=_(),g=s("span"),M=z("4. Was sind die Vorteile der Methode "),S=s("code"),A=z("Dataset.map()"),y=z("?"),N=_(),C(v.$$.fragment),m=_(),h=s("h3"),E=s("a"),$=s("span"),C(W.$$.fragment),O=_(),Y=s("span"),fe=z("5. Was bedeutet dynamisches Padding?"),le=_(),C(X.$$.fragment),$e=_(),U=s("h3"),j=s("a"),ge=s("span"),C(L.$$.fragment),Q=_(),oe=s("span"),R=z("6. Welchen Zweck hat die Funktion collate?"),ae=_(),C(H.$$.fragment),de=_(),Z=s("h3"),te=s("a"),ve=s("span"),C(ne.$$.fragment),me=_(),re=s("span"),f=z("7. Was passiert, wenn du eine der Klassen "),T=s("code"),xe=z("AutoModelForXxx"),ce=z(" mit einem vortrainierten Sprachmodell (z. B. "),G=s("code"),_e=z("bert-base-uncased"),we=z(") instanziierst, das einer anderen Aufgabe entspricht als der, f\xFCr die es trainiert wurde?"),be=_(),C(ue.$$.fragment),Se=_(),J=s("h3"),ee=s("a"),pe=s("span"),C(I.$$.fragment),ie=_(),se=s("span"),Te=z("8. Was ist der Zweck von "),We=s("code"),Ae=z("TrainingArguments"),He=z("?"),a=_(),C(D.$$.fragment),ke=_(),he=s("h3"),De=s("a"),Ke=s("span"),C(ye.$$.fragment),Me=_(),Be=s("span"),Le=z("9. Warum solltest du die \u{1F917} Accelerate Bibliothek benutzen?"),Ne=_(),C(Pe.$$.fragment),this.h()},l(r){n=l(r,"H3",{class:!0});var P=d(n);i=l(P,"A",{id:!0,class:!0,href:!0});var Oe=d(i);o=l(Oe,"SPAN",{});var Fe=d(o);F(c.$$.fragment,Fe),Fe.forEach(e),Oe.forEach(e),w=k(P),g=l(P,"SPAN",{});var Ve=d(g);M=x(Ve,"4. Was sind die Vorteile der Methode "),S=l(Ve,"CODE",{});var Re=d(S);A=x(Re,"Dataset.map()"),Re.forEach(e),y=x(Ve,"?"),Ve.forEach(e),P.forEach(e),N=k(r),F(v.$$.fragment,r),m=k(r),h=l(r,"H3",{class:!0});var qe=d(h);E=l(qe,"A",{id:!0,class:!0,href:!0});var tt=d(E);$=l(tt,"SPAN",{});var nt=d($);F(W.$$.fragment,nt),nt.forEach(e),tt.forEach(e),O=k(qe),Y=l(qe,"SPAN",{});var rt=d(Y);fe=x(rt,"5. Was bedeutet dynamisches Padding?"),rt.forEach(e),qe.forEach(e),le=k(r),F(X.$$.fragment,r),$e=k(r),U=l(r,"H3",{class:!0});var Ze=d(U);j=l(Ze,"A",{id:!0,class:!0,href:!0});var it=d(j);ge=l(it,"SPAN",{});var at=d(ge);F(L.$$.fragment,at),at.forEach(e),it.forEach(e),Q=k(Ze),oe=l(Ze,"SPAN",{});var st=d(oe);R=x(st,"6. Welchen Zweck hat die Funktion collate?"),st.forEach(e),Ze.forEach(e),ae=k(r),F(H.$$.fragment,r),de=k(r),Z=l(r,"H3",{class:!0});var Ge=d(Z);te=l(Ge,"A",{id:!0,class:!0,href:!0});var lt=d(te);ve=l(lt,"SPAN",{});var ot=d(ve);F(ne.$$.fragment,ot),ot.forEach(e),lt.forEach(e),me=k(Ge),re=l(Ge,"SPAN",{});var Ie=d(re);f=x(Ie,"7. Was passiert, wenn du eine der Klassen "),T=l(Ie,"CODE",{});var dt=d(T);xe=x(dt,"AutoModelForXxx"),dt.forEach(e),ce=x(Ie," mit einem vortrainierten Sprachmodell (z. B. "),G=l(Ie,"CODE",{});var ct=d(G);_e=x(ct,"bert-base-uncased"),ct.forEach(e),we=x(Ie,") instanziierst, das einer anderen Aufgabe entspricht als der, f\xFCr die es trainiert wurde?"),Ie.forEach(e),Ge.forEach(e),be=k(r),F(ue.$$.fragment,r),Se=k(r),J=l(r,"H3",{class:!0});var Ue=d(J);ee=l(Ue,"A",{id:!0,class:!0,href:!0});var ut=d(ee);pe=l(ut,"SPAN",{});var ht=d(pe);F(I.$$.fragment,ht),ht.forEach(e),ut.forEach(e),ie=k(Ue),se=l(Ue,"SPAN",{});var je=d(se);Te=x(je,"8. Was ist der Zweck von "),We=l(je,"CODE",{});var ft=d(We);Ae=x(ft,"TrainingArguments"),ft.forEach(e),He=x(je,"?"),je.forEach(e),Ue.forEach(e),a=k(r),F(D.$$.fragment,r),ke=k(r),he=l(r,"H3",{class:!0});var Qe=d(he);De=l(Qe,"A",{id:!0,class:!0,href:!0});var mt=d(De);Ke=l(mt,"SPAN",{});var pt=d(Ke);F(ye.$$.fragment,pt),pt.forEach(e),mt.forEach(e),Me=k(Qe),Be=l(Qe,"SPAN",{});var gt=d(Be);Le=x(gt,"9. Warum solltest du die \u{1F917} Accelerate Bibliothek benutzen?"),gt.forEach(e),Qe.forEach(e),Ne=k(r),F(Pe.$$.fragment,r),this.h()},h(){u(i,"id","4.-was-sind-die-vorteile-der-methode-<code>dataset.map()</code>?"),u(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"),u(i,"href","#4.-was-sind-die-vorteile-der-methode-<code>dataset.map()</code>?"),u(n,"class","relative group"),u(E,"id","5.-was-bedeutet-dynamisches-padding?"),u(E,"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(E,"href","#5.-was-bedeutet-dynamisches-padding?"),u(h,"class","relative group"),u(j,"id","6.-welchen-zweck-hat-die-funktion-collate?"),u(j,"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(j,"href","#6.-welchen-zweck-hat-die-funktion-collate?"),u(U,"class","relative group"),u(te,"id","7.-was-passiert,-wenn-du-eine-der-klassen-<code>automodelforxxx</code>-mit-einem-vortrainierten-sprachmodell-(z.-b.-<code>bert-base-uncased</code>)-instanziierst,-das-einer-anderen-aufgabe-entspricht-als-der,-f\xFCr-die-es-trainiert-wurde?"),u(te,"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(te,"href","#7.-was-passiert,-wenn-du-eine-der-klassen-<code>automodelforxxx</code>-mit-einem-vortrainierten-sprachmodell-(z.-b.-<code>bert-base-uncased</code>)-instanziierst,-das-einer-anderen-aufgabe-entspricht-als-der,-f\xFCr-die-es-trainiert-wurde?"),u(Z,"class","relative group"),u(ee,"id","8.-was-ist-der-zweck-von-<code>trainingarguments</code>?"),u(ee,"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(ee,"href","#8.-was-ist-der-zweck-von-<code>trainingarguments</code>?"),u(J,"class","relative group"),u(De,"id","9.-warum-solltest-du-die-\u{1F917}-accelerate-bibliothek-benutzen?"),u(De,"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(De,"href","#9.-warum-solltest-du-die-\u{1F917}-accelerate-bibliothek-benutzen?"),u(he,"class","relative group")},m(r,P){b(r,n,P),t(n,i),t(i,o),V(c,o,null),t(n,w),t(n,g),t(g,M),t(g,S),t(S,A),t(g,y),b(r,N,P),V(v,r,P),b(r,m,P),b(r,h,P),t(h,E),t(E,$),V(W,$,null),t(h,O),t(h,Y),t(Y,fe),b(r,le,P),V(X,r,P),b(r,$e,P),b(r,U,P),t(U,j),t(j,ge),V(L,ge,null),t(U,Q),t(U,oe),t(oe,R),b(r,ae,P),V(H,r,P),b(r,de,P),b(r,Z,P),t(Z,te),t(te,ve),V(ne,ve,null),t(Z,me),t(Z,re),t(re,f),t(re,T),t(T,xe),t(re,ce),t(re,G),t(G,_e),t(re,we),b(r,be,P),V(ue,r,P),b(r,Se,P),b(r,J,P),t(J,ee),t(ee,pe),V(I,pe,null),t(J,ie),t(J,se),t(se,Te),t(se,We),t(We,Ae),t(se,He),b(r,a,P),V(D,r,P),b(r,ke,P),b(r,he,P),t(he,De),t(De,Ke),V(ye,Ke,null),t(he,Me),t(he,Be),t(Be,Le),b(r,Ne,P),V(Pe,r,P),Ce=!0},i(r){Ce||(B(c.$$.fragment,r),B(v.$$.fragment,r),B(W.$$.fragment,r),B(X.$$.fragment,r),B(L.$$.fragment,r),B(H.$$.fragment,r),B(ne.$$.fragment,r),B(ue.$$.fragment,r),B(I.$$.fragment,r),B(D.$$.fragment,r),B(ye.$$.fragment,r),B(Pe.$$.fragment,r),Ce=!0)},o(r){K(c.$$.fragment,r),K(v.$$.fragment,r),K(W.$$.fragment,r),K(X.$$.fragment,r),K(L.$$.fragment,r),K(H.$$.fragment,r),K(ne.$$.fragment,r),K(ue.$$.fragment,r),K(I.$$.fragment,r),K(D.$$.fragment,r),K(ye.$$.fragment,r),K(Pe.$$.fragment,r),Ce=!1},d(r){r&&e(n),q(c),r&&e(N),q(v,r),r&&e(m),r&&e(h),q(W),r&&e(le),q(X,r),r&&e($e),r&&e(U),q(L),r&&e(ae),q(H,r),r&&e(de),r&&e(Z),q(ne),r&&e(be),q(ue,r),r&&e(Se),r&&e(J),q(I),r&&e(a),q(D,r),r&&e(ke),r&&e(he),q(ye),r&&e(Ne),q(Pe,r)}}}function tn(p){let n,i,o,c,w,g,M,S,A,y,N,v,m,h,E,$,W,O,Y,fe,le,X,$e,U,j,ge,L,Q,oe,R,ae,H,de,Z,te,ve,ne,me,re,f,T,xe,ce,G,_e,we,be,ue,Se,J,ee,pe,I,ie,se,Te;o=new Zt({props:{fw:p[0]}}),S=new Ee({}),j=new ze({props:{choices:[{text:"Joy (Freude)",explain:"Versuch es noch einmal - diese Emotion ist in diesem Datensatz vorhanden!"},{text:"Love (Liebe)",explain:"Versuch es noch einmal - diese Emotion ist in diesem Datensatz vorhanden!"},{text:"Confusion (Verwirrung)",explain:"Richtig! Verwirrung geh\xF6rt nicht zu den sechs Grundemotionen.",correct:!0},{Text:"Surprise (\xDCberraschung)",explain:"\xDCberraschung! Probier eine andere!"}]}}),R=new Ee({}),T=new ze({props:{choices:[{text:"Sentiment classification (Sentiment-Klassifizierung)",explain:"Das ist richtig! Das erkennst du an den Tags.",correct:!0},{text:"Machine translation (Maschinelle \xDCbersetzung)",explain:"Das war's noch nicht - sieh dir noch einmal die <a href='https://huggingface.co/datasets/ar_sarcasm'>Datensatzkarte</a> an!"},{text:"Named entity recognition (Eigennamenerkennung )",explain:"Das war's noch nicht - schau dir noch mal die <a href='https://huggingface.co/datasets/ar_sarcasm'>Datensatzkarte</a> an!"},{text:"Question answering (Fragenbeantwortung)",explain:"Leider wurde diese Frage nicht richtig beantwortet. Versuche es noch einmal!"}]}}),we=new Ee({}),ee=new ze({props:{choices:[{text:"Satztoken_1 [SEP] Satztoken_2",explain:"Ein <code>[SEP]</code> spezielles Token wird ben\xF6tigt, um die beiden S\xE4tze zu trennen, aber das ist nicht das Einzige!"},{text:"[CLS] Satztoken_1 Satztoken_2",explain:"Ein <code>[CLS]</code> spezielles Token ist am Anfang erforderlich, aber das ist nicht das Einzige!"},{text:"[CLS] Satztoken_1 [SEP] Satztoken_2 [SEP]",explain:"Das ist richtig!",correct:!0},{text:"[CLS] Satztoken_1 [SEP] Satztoken_2",explain:"Ein <code>[CLS]</code> spezielles Token wird am Anfang ben\xF6tigt, sowie ein <code>[SEP]</code> spezielles Token, um die beiden S\xE4tze zu trennen, aber das ist noch nicht alles!"}]}});const We=[en,Jt],Ae=[];function He(a,D){return a[0]==="pt"?0:1}return I=He(p),ie=Ae[I]=We[I](p),{c(){n=s("meta"),i=_(),C(o.$$.fragment),c=_(),w=s("h1"),g=s("a"),M=s("span"),C(S.$$.fragment),A=_(),y=s("span"),N=z("Quiz am Ende des Kapitels"),v=_(),m=s("p"),h=z("Teste, was du in diesem Kapitel gelernt hast!"),E=_(),$=s("h3"),W=z("1. Der Datensatz "),O=s("code"),Y=z("emotion"),fe=z(" enth\xE4lt Twitter-Nachrichten, die mit Emotionen gelabelt sind. Suche im "),le=s("a"),X=z("Hub"),$e=z(" nach dem Datensatz und lies die Datensatzkarte. Welche der folgenden Emotionen geh\xF6rt nicht zu den grundlegenden Emotionen?"),U=_(),C(j.$$.fragment),ge=_(),L=s("h3"),Q=s("a"),oe=s("span"),C(R.$$.fragment),ae=_(),H=s("span"),de=z("2. Suche im "),Z=s("a"),te=z("Hub"),ve=z(" nach dem Datensatz "),ne=s("code"),me=z("ar_sarcasm"),re=z(". Welche Aufgabe unterst\xFCtzt er?"),f=_(),C(T.$$.fragment),xe=_(),ce=s("h3"),G=s("a"),_e=s("span"),C(we.$$.fragment),be=_(),ue=s("span"),Se=z("3. Wie erwartet das BERT Modell, dass ein Satzpaar verarbeitet wird?"),J=_(),C(ee.$$.fragment),pe=_(),ie.c(),se=Ye(),this.h()},l(a){const D=It('[data-svelte="svelte-1phssyn"]',document.head);n=l(D,"META",{name:!0,content:!0}),D.forEach(e),i=k(a),F(o.$$.fragment,a),c=k(a),w=l(a,"H1",{class:!0});var ke=d(w);g=l(ke,"A",{id:!0,class:!0,href:!0});var he=d(g);M=l(he,"SPAN",{});var De=d(M);F(S.$$.fragment,De),De.forEach(e),he.forEach(e),A=k(ke),y=l(ke,"SPAN",{});var Ke=d(y);N=x(Ke,"Quiz am Ende des Kapitels"),Ke.forEach(e),ke.forEach(e),v=k(a),m=l(a,"P",{});var ye=d(m);h=x(ye,"Teste, was du in diesem Kapitel gelernt hast!"),ye.forEach(e),E=k(a),$=l(a,"H3",{});var Me=d($);W=x(Me,"1. Der Datensatz "),O=l(Me,"CODE",{});var Be=d(O);Y=x(Be,"emotion"),Be.forEach(e),fe=x(Me," enth\xE4lt Twitter-Nachrichten, die mit Emotionen gelabelt sind. Suche im "),le=l(Me,"A",{href:!0,rel:!0});var Le=d(le);X=x(Le,"Hub"),Le.forEach(e),$e=x(Me," nach dem Datensatz und lies die Datensatzkarte. Welche der folgenden Emotionen geh\xF6rt nicht zu den grundlegenden Emotionen?"),Me.forEach(e),U=k(a),F(j.$$.fragment,a),ge=k(a),L=l(a,"H3",{class:!0});var Ne=d(L);Q=l(Ne,"A",{id:!0,class:!0,href:!0});var Pe=d(Q);oe=l(Pe,"SPAN",{});var Ce=d(oe);F(R.$$.fragment,Ce),Ce.forEach(e),Pe.forEach(e),ae=k(Ne),H=l(Ne,"SPAN",{});var r=d(H);de=x(r,"2. Suche im "),Z=l(r,"A",{href:!0,rel:!0});var P=d(Z);te=x(P,"Hub"),P.forEach(e),ve=x(r," nach dem Datensatz "),ne=l(r,"CODE",{});var Oe=d(ne);me=x(Oe,"ar_sarcasm"),Oe.forEach(e),re=x(r,". Welche Aufgabe unterst\xFCtzt er?"),r.forEach(e),Ne.forEach(e),f=k(a),F(T.$$.fragment,a),xe=k(a),ce=l(a,"H3",{class:!0});var Fe=d(ce);G=l(Fe,"A",{id:!0,class:!0,href:!0});var Ve=d(G);_e=l(Ve,"SPAN",{});var Re=d(_e);F(we.$$.fragment,Re),Re.forEach(e),Ve.forEach(e),be=k(Fe),ue=l(Fe,"SPAN",{});var qe=d(ue);Se=x(qe,"3. Wie erwartet das BERT Modell, dass ein Satzpaar verarbeitet wird?"),qe.forEach(e),Fe.forEach(e),J=k(a),F(ee.$$.fragment,a),pe=k(a),ie.l(a),se=Ye(),this.h()},h(){u(n,"name","hf:doc:metadata"),u(n,"content",JSON.stringify(nn)),u(g,"id","quiz-am-ende-des-kapitels"),u(g,"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(g,"href","#quiz-am-ende-des-kapitels"),u(w,"class","relative group"),u(le,"href","https://huggingface.co/datasets"),u(le,"rel","nofollow"),u(Q,"id","2.-suche-im-hub-nach-dem-datensatz-<code>ar_sarcasm</code>.-welche-aufgabe-unterst\xFCtzt-er?"),u(Q,"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(Q,"href","#2.-suche-im-hub-nach-dem-datensatz-<code>ar_sarcasm</code>.-welche-aufgabe-unterst\xFCtzt-er?"),u(Z,"href","https://huggingface.co/datasets"),u(Z,"rel","nofollow"),u(L,"class","relative group"),u(G,"id","3.-wie-erwartet-das-bert-modell,-dass-ein-satzpaar-verarbeitet-wird?"),u(G,"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(G,"href","#3.-wie-erwartet-das-bert-modell,-dass-ein-satzpaar-verarbeitet-wird?"),u(ce,"class","relative group")},m(a,D){t(document.head,n),b(a,i,D),V(o,a,D),b(a,c,D),b(a,w,D),t(w,g),t(g,M),V(S,M,null),t(w,A),t(w,y),t(y,N),b(a,v,D),b(a,m,D),t(m,h),b(a,E,D),b(a,$,D),t($,W),t($,O),t(O,Y),t($,fe),t($,le),t(le,X),t($,$e),b(a,U,D),V(j,a,D),b(a,ge,D),b(a,L,D),t(L,Q),t(Q,oe),V(R,oe,null),t(L,ae),t(L,H),t(H,de),t(H,Z),t(Z,te),t(H,ve),t(H,ne),t(ne,me),t(H,re),b(a,f,D),V(T,a,D),b(a,xe,D),b(a,ce,D),t(ce,G),t(G,_e),V(we,_e,null),t(ce,be),t(ce,ue),t(ue,Se),b(a,J,D),V(ee,a,D),b(a,pe,D),Ae[I].m(a,D),b(a,se,D),Te=!0},p(a,[D]){const ke={};D&1&&(ke.fw=a[0]),o.$set(ke);let he=I;I=He(a),I!==he&&(Rt(),K(Ae[he],1,1,()=>{Ae[he]=null}),Ot(),ie=Ae[I],ie||(ie=Ae[I]=We[I](a),ie.c()),B(ie,1),ie.m(se.parentNode,se))},i(a){Te||(B(o.$$.fragment,a),B(S.$$.fragment,a),B(j.$$.fragment,a),B(R.$$.fragment,a),B(T.$$.fragment,a),B(we.$$.fragment,a),B(ee.$$.fragment,a),B(ie),Te=!0)},o(a){K(o.$$.fragment,a),K(S.$$.fragment,a),K(j.$$.fragment,a),K(R.$$.fragment,a),K(T.$$.fragment,a),K(we.$$.fragment,a),K(ee.$$.fragment,a),K(ie),Te=!1},d(a){e(n),a&&e(i),q(o,a),a&&e(c),a&&e(w),q(S),a&&e(v),a&&e(m),a&&e(E),a&&e($),a&&e(U),q(j,a),a&&e(ge),a&&e(L),q(R),a&&e(f),q(T,a),a&&e(xe),a&&e(ce),q(we),a&&e(J),q(ee,a),a&&e(pe),Ae[I].d(a),a&&e(se)}}}const nn={local:"quiz-am-ende-des-kapitels",title:"Quiz am Ende des Kapitels"};function rn(p,n,i){let o="pt";return Pt(()=>{const c=new URLSearchParams(window.location.search);i(0,o=c.get("fw")||"pt")}),[o]}class dn extends xt{constructor(n){super();St(this,n,rn,tn,At,{})}}export{dn as default,nn as metadata};
