import{S as J,i as O,s as Q,e as d,k as b,w as K,t as $,l as V,M as X,c,d as i,m as E,x as W,a as h,h as y,b as A,G as n,g as T,y as H,q as N,o as x,B as q,v as Y}from"../../chunks/vendor-hf-doc-builder.js";import{I as Z}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as ee}from"../../chunks/CourseFloatingBanner-hf-doc-builder.js";import{F as te}from"../../chunks/FrameworkSwitchCourse-hf-doc-builder.js";import"../../chunks/DocNotebookDropdown-hf-doc-builder.js";function ne(U){let t,a,u,r,m,v,p,w,D,_,P,I,f,z;return{c(){t=d("ul"),a=d("li"),u=$("\xDCber Datens\xE4tze im "),r=d("a"),m=$("Hub"),v=b(),p=d("li"),w=$("Wie man Datens\xE4tze l\xE4dt und vorverarbeitet"),D=b(),_=d("li"),P=$("Wie man ein Modell mit Keras fein-tunet und auswertet"),I=b(),f=d("li"),z=$("Eine eigene Metrik implementiert"),this.h()},l(g){t=c(g,"UL",{});var l=h(t);a=c(l,"LI",{});var L=h(a);u=y(L,"\xDCber Datens\xE4tze im "),r=c(L,"A",{href:!0,rel:!0});var k=h(r);m=y(k,"Hub"),k.forEach(i),L.forEach(i),v=E(l),p=c(l,"LI",{});var s=h(p);w=y(s,"Wie man Datens\xE4tze l\xE4dt und vorverarbeitet"),s.forEach(i),D=E(l),_=c(l,"LI",{});var F=h(_);P=y(F,"Wie man ein Modell mit Keras fein-tunet und auswertet"),F.forEach(i),I=E(l),f=c(l,"LI",{});var C=h(f);z=y(C,"Eine eigene Metrik implementiert"),C.forEach(i),l.forEach(i),this.h()},h(){A(r,"href","https://huggingface.co/datasets"),A(r,"rel","nofollow")},m(g,l){T(g,t,l),n(t,a),n(a,u),n(a,r),n(r,m),n(t,v),n(t,p),n(p,w),n(t,D),n(t,_),n(_,P),n(t,I),n(t,f),n(f,z)},d(g){g&&i(t)}}}function ie(U){let t,a,u,r,m,v,p,w,D,_,P,I,f,z,g,l,L;return{c(){t=d("ul"),a=d("li"),u=$("\xDCber Datens\xE4tze im "),r=d("a"),m=$("Hub"),v=b(),p=d("li"),w=$("Wie du Datens\xE4tze l\xE4dst und vorverarbeitest, einschlie\xDFlich der Verwendung von dynamischem Padding und Collators"),D=b(),_=d("li"),P=$("Implementierung des eigenen Fein-tunings und der Evaluierung eines Modells"),I=b(),f=d("li"),z=$("Eine Trainingsschleife auf niedriger Ebene implementiert"),g=b(),l=d("li"),L=$("Mit \u{1F917} Accelerate die Trainingsschleife so anpassen, dass sie f\xFCr mehrere GPUs oder TPUs funktioniert"),this.h()},l(k){t=c(k,"UL",{});var s=h(t);a=c(s,"LI",{});var F=h(a);u=y(F,"\xDCber Datens\xE4tze im "),r=c(F,"A",{href:!0,rel:!0});var C=h(r);m=y(C,"Hub"),C.forEach(i),F.forEach(i),v=E(s),p=c(s,"LI",{});var M=h(p);w=y(M,"Wie du Datens\xE4tze l\xE4dst und vorverarbeitest, einschlie\xDFlich der Verwendung von dynamischem Padding und Collators"),M.forEach(i),D=E(s),_=c(s,"LI",{});var e=h(_);P=y(e,"Implementierung des eigenen Fein-tunings und der Evaluierung eines Modells"),e.forEach(i),I=E(s),f=c(s,"LI",{});var o=h(f);z=y(o,"Eine Trainingsschleife auf niedriger Ebene implementiert"),o.forEach(i),g=E(s),l=c(s,"LI",{});var S=h(l);L=y(S,"Mit \u{1F917} Accelerate die Trainingsschleife so anpassen, dass sie f\xFCr mehrere GPUs oder TPUs funktioniert"),S.forEach(i),s.forEach(i),this.h()},h(){A(r,"href","https://huggingface.co/datasets"),A(r,"rel","nofollow")},m(k,s){T(k,t,s),n(t,a),n(a,u),n(a,r),n(r,m),n(t,v),n(t,p),n(p,w),n(t,D),n(t,_),n(_,P),n(t,I),n(t,f),n(f,z),n(t,g),n(t,l),n(l,L)},d(k){k&&i(t)}}}function re(U){let t,a,u,r,m,v,p,w,D,_,P,I,f,z,g,l,L,k,s;u=new te({props:{fw:U[0]}}),w=new Z({}),f=new ee({props:{chapter:3,classNames:"absolute z-10 right-0 top-0"}});function F(e,o){return e[0]==="pt"?ie:ne}let C=F(U),M=C(U);return{c(){t=d("meta"),a=b(),K(u.$$.fragment),r=b(),m=d("h1"),v=d("a"),p=d("span"),K(w.$$.fragment),D=b(),_=d("span"),P=$("Fein-tunen, Check!"),I=b(),K(f.$$.fragment),z=b(),g=d("p"),l=$("Das hat Spa\xDF gemacht! In den ersten beiden Kapiteln hast du etwas \xFCber Modelle und Tokenizer gelernt, und jetzt wei\xDFt du, wie du sie auf deine eigenen Daten fein-tunen kannst. Rekapitulieren wir, was du in diesem Kapitel gelernt hast:"),L=b(),M.c(),k=V(),this.h()},l(e){const o=X('[data-svelte="svelte-1phssyn"]',document.head);t=c(o,"META",{name:!0,content:!0}),o.forEach(i),a=E(e),W(u.$$.fragment,e),r=E(e),m=c(e,"H1",{class:!0});var S=h(m);v=c(S,"A",{id:!0,class:!0,href:!0});var G=h(v);p=c(G,"SPAN",{});var R=h(p);W(w.$$.fragment,R),R.forEach(i),G.forEach(i),D=E(S),_=c(S,"SPAN",{});var j=h(_);P=y(j,"Fein-tunen, Check!"),j.forEach(i),S.forEach(i),I=E(e),W(f.$$.fragment,e),z=E(e),g=c(e,"P",{});var B=h(g);l=y(B,"Das hat Spa\xDF gemacht! In den ersten beiden Kapiteln hast du etwas \xFCber Modelle und Tokenizer gelernt, und jetzt wei\xDFt du, wie du sie auf deine eigenen Daten fein-tunen kannst. Rekapitulieren wir, was du in diesem Kapitel gelernt hast:"),B.forEach(i),L=E(e),M.l(e),k=V(),this.h()},h(){A(t,"name","hf:doc:metadata"),A(t,"content",JSON.stringify(ae)),A(v,"id","feintunen-check"),A(v,"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"),A(v,"href","#feintunen-check"),A(m,"class","relative group")},m(e,o){n(document.head,t),T(e,a,o),H(u,e,o),T(e,r,o),T(e,m,o),n(m,v),n(v,p),H(w,p,null),n(m,D),n(m,_),n(_,P),T(e,I,o),H(f,e,o),T(e,z,o),T(e,g,o),n(g,l),T(e,L,o),M.m(e,o),T(e,k,o),s=!0},p(e,[o]){const S={};o&1&&(S.fw=e[0]),u.$set(S),C!==(C=F(e))&&(M.d(1),M=C(e),M&&(M.c(),M.m(k.parentNode,k)))},i(e){s||(N(u.$$.fragment,e),N(w.$$.fragment,e),N(f.$$.fragment,e),s=!0)},o(e){x(u.$$.fragment,e),x(w.$$.fragment,e),x(f.$$.fragment,e),s=!1},d(e){i(t),e&&i(a),q(u,e),e&&i(r),e&&i(m),q(w),e&&i(I),q(f,e),e&&i(z),e&&i(g),e&&i(L),M.d(e),e&&i(k)}}}const ae={local:"feintunen-check",title:"Fein-tunen, Check!"};function le(U,t,a){let u="pt";return Y(()=>{const r=new URLSearchParams(window.location.search);a(0,u=r.get("fw")||"pt")}),[u]}class ce extends J{constructor(t){super();O(this,t,le,re,Q,{})}}export{ce as default,ae as metadata};
