import{S as Q,i as V,s as W,e as f,k as g,w as q,t as k,l as D,M as X,c as d,d as o,m as L,x as z,a as h,h as b,b as H,G as a,g as F,y as G,q as M,o as B,B as K,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";function ae(x){let t,r,c,n,m,_,p,y,A,w,C,E,u,I;return{c(){t=f("ul"),r=f("li"),c=k("Learned about datasets in the "),n=f("a"),m=k("Hub"),_=g(),p=f("li"),y=k("Learned how to load and preprocess datasets"),A=g(),w=f("li"),C=k("Learned how to fine-tune and evaluate a model with Keras"),E=g(),u=f("li"),I=k("Implemented a custom metric"),this.h()},l(v){t=d(v,"UL",{});var l=h(t);r=d(l,"LI",{});var P=h(r);c=b(P,"Learned about datasets in the "),n=d(P,"A",{href:!0,rel:!0});var $=h(n);m=b($,"Hub"),$.forEach(o),P.forEach(o),_=L(l),p=d(l,"LI",{});var s=h(p);y=b(s,"Learned how to load and preprocess datasets"),s.forEach(o),A=L(l),w=d(l,"LI",{});var N=h(w);C=b(N,"Learned how to fine-tune and evaluate a model with Keras"),N.forEach(o),E=L(l),u=d(l,"LI",{});var S=h(u);I=b(S,"Implemented a custom metric"),S.forEach(o),l.forEach(o),this.h()},h(){H(n,"href","https://huggingface.co/datasets"),H(n,"rel","nofollow")},m(v,l){F(v,t,l),a(t,r),a(r,c),a(r,n),a(n,m),a(t,_),a(t,p),a(p,y),a(t,A),a(t,w),a(w,C),a(t,E),a(t,u),a(u,I)},d(v){v&&o(t)}}}function oe(x){let t,r,c,n,m,_,p,y,A,w,C,E,u,I,v,l,P;return{c(){t=f("ul"),r=f("li"),c=k("Learned about datasets in the "),n=f("a"),m=k("Hub"),_=g(),p=f("li"),y=k("Learned how to load and preprocess datasets, including using dynamic padding and collators"),A=g(),w=f("li"),C=k("Implemented your own fine-tuning and evaluation of a model"),E=g(),u=f("li"),I=k("Implemented a lower-level training loop"),v=g(),l=f("li"),P=k("Used \u{1F917} Accelerate to easily adapt your training loop so it works for multiple GPUs or TPUs"),this.h()},l($){t=d($,"UL",{});var s=h(t);r=d(s,"LI",{});var N=h(r);c=b(N,"Learned about datasets in the "),n=d(N,"A",{href:!0,rel:!0});var S=h(n);m=b(S,"Hub"),S.forEach(o),N.forEach(o),_=L(s),p=d(s,"LI",{});var U=h(p);y=b(U,"Learned how to load and preprocess datasets, including using dynamic padding and collators"),U.forEach(o),A=L(s),w=d(s,"LI",{});var e=h(w);C=b(e,"Implemented your own fine-tuning and evaluation of a model"),e.forEach(o),E=L(s),u=d(s,"LI",{});var i=h(u);I=b(i,"Implemented a lower-level training loop"),i.forEach(o),v=L(s),l=d(s,"LI",{});var T=h(l);P=b(T,"Used \u{1F917} Accelerate to easily adapt your training loop so it works for multiple GPUs or TPUs"),T.forEach(o),s.forEach(o),this.h()},h(){H(n,"href","https://huggingface.co/datasets"),H(n,"rel","nofollow")},m($,s){F($,t,s),a(t,r),a(r,c),a(r,n),a(n,m),a(t,_),a(t,p),a(p,y),a(t,A),a(t,w),a(w,C),a(t,E),a(t,u),a(u,I),a(t,v),a(t,l),a(l,P)},d($){$&&o(t)}}}function ne(x){let t,r,c,n,m,_,p,y,A,w,C,E,u,I,v,l,P,$,s;c=new te({props:{fw:x[0]}}),y=new Z({}),u=new ee({props:{chapter:3,classNames:"absolute z-10 right-0 top-0"}});function N(e,i){return e[0]==="pt"?oe:ae}let S=N(x),U=S(x);return{c(){t=f("meta"),r=g(),q(c.$$.fragment),n=g(),m=f("h1"),_=f("a"),p=f("span"),q(y.$$.fragment),A=g(),w=f("span"),C=k("Fine-tuning, Check!"),E=g(),q(u.$$.fragment),I=g(),v=f("p"),l=k("That was fun! In the first two chapters you learned about models and tokenizers, and now you know how to fine-tune them for your own data. To recap, in this chapter you:"),P=g(),U.c(),$=D(),this.h()},l(e){const i=X('[data-svelte="svelte-1phssyn"]',document.head);t=d(i,"META",{name:!0,content:!0}),i.forEach(o),r=L(e),z(c.$$.fragment,e),n=L(e),m=d(e,"H1",{class:!0});var T=h(m);_=d(T,"A",{id:!0,class:!0,href:!0});var J=h(_);p=d(J,"SPAN",{});var O=h(p);z(y.$$.fragment,O),O.forEach(o),J.forEach(o),A=L(T),w=d(T,"SPAN",{});var R=h(w);C=b(R,"Fine-tuning, Check!"),R.forEach(o),T.forEach(o),E=L(e),z(u.$$.fragment,e),I=L(e),v=d(e,"P",{});var j=h(v);l=b(j,"That was fun! In the first two chapters you learned about models and tokenizers, and now you know how to fine-tune them for your own data. To recap, in this chapter you:"),j.forEach(o),P=L(e),U.l(e),$=D(),this.h()},h(){H(t,"name","hf:doc:metadata"),H(t,"content",JSON.stringify(re)),H(_,"id","finetuning-check"),H(_,"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"),H(_,"href","#finetuning-check"),H(m,"class","relative group")},m(e,i){a(document.head,t),F(e,r,i),G(c,e,i),F(e,n,i),F(e,m,i),a(m,_),a(_,p),G(y,p,null),a(m,A),a(m,w),a(w,C),F(e,E,i),G(u,e,i),F(e,I,i),F(e,v,i),a(v,l),F(e,P,i),U.m(e,i),F(e,$,i),s=!0},p(e,[i]){const T={};i&1&&(T.fw=e[0]),c.$set(T),S!==(S=N(e))&&(U.d(1),U=S(e),U&&(U.c(),U.m($.parentNode,$)))},i(e){s||(M(c.$$.fragment,e),M(y.$$.fragment,e),M(u.$$.fragment,e),s=!0)},o(e){B(c.$$.fragment,e),B(y.$$.fragment,e),B(u.$$.fragment,e),s=!1},d(e){o(t),e&&o(r),K(c,e),e&&o(n),e&&o(m),K(y),e&&o(E),K(u,e),e&&o(I),e&&o(v),e&&o(P),U.d(e),e&&o($)}}}const re={local:"finetuning-check",title:"Fine-tuning, Check!"};function le(x,t,r){let c="pt";return Y(()=>{const n=new URLSearchParams(window.location.search);r(0,c=n.get("fw")||"pt")}),[c]}class fe extends Q{constructor(t){super();V(this,t,le,ne,W,{})}}export{fe as default,re as metadata};
