import{s as G,o as N}from"../chunks/scheduler.37c15a92.js";import{S as B,i as K,g,s as m,r as P,A as O,h as _,f as i,c as f,j as A,u as x,x as I,k as q,y as R,a as o,v as E,d as M,t as U,w as F}from"../chunks/index.2bf4358c.js";import{C as D}from"../chunks/CourseFloatingBanner.15ba07e6.js";import{F as J}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as Q,E as V}from"../chunks/EditOnGithub.8916dc7c.js";function W(c){let t,r='<li>Learned about datasets in the <a href="https://huggingface.co/datasets" rel="nofollow">Hub</a></li> <li>Learned how to load and preprocess datasets</li> <li>Learned how to fine-tune and evaluate a model with Keras</li> <li>Implemented a custom metric</li>';return{c(){t=g("ul"),t.innerHTML=r},l(a){t=_(a,"UL",{"data-svelte-h":!0}),I(t)!=="svelte-1jau6qj"&&(t.innerHTML=r)},m(a,s){o(a,t,s)},d(a){a&&i(t)}}}function X(c){let t,r='<li>Learned about datasets in the <a href="https://huggingface.co/datasets" rel="nofollow">Hub</a></li> <li>Learned how to load and preprocess datasets, including using dynamic padding and collators</li> <li>Implemented your own fine-tuning and evaluation of a model</li> <li>Implemented a lower-level training loop</li> <li>Used 🤗 Accelerate to easily adapt your training loop so it works for multiple GPUs or TPUs</li>';return{c(){t=g("ul"),t.innerHTML=r},l(a){t=_(a,"UL",{"data-svelte-h":!0}),I(t)!=="svelte-et6r9c"&&(t.innerHTML=r)},m(a,s){o(a,t,s)},d(a){a&&i(t)}}}function Y(c){let t,r,a,s,u,k,p,y,d,v,h,S="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:",L,w,$,C,b,T;u=new J({props:{fw:c[0]}}),p=new Q({props:{title:"Fine-tuning, Check!",local:"fine-tuning-check",headingTag:"h1"}}),d=new D({props:{chapter:3,classNames:"absolute z-10 right-0 top-0"}});function j(e,n){return e[0]==="pt"?X:W}let H=j(c),l=H(c);return $=new V({props:{source:"https://github.com/huggingface/course/blob/main/chapters/en/chapter3/5.mdx"}}),{c(){t=g("meta"),r=m(),a=g("p"),s=m(),P(u.$$.fragment),k=m(),P(p.$$.fragment),y=m(),P(d.$$.fragment),v=m(),h=g("p"),h.textContent=S,L=m(),l.c(),w=m(),P($.$$.fragment),C=m(),b=g("p"),this.h()},l(e){const n=O("svelte-u9bgzb",document.head);t=_(n,"META",{name:!0,content:!0}),n.forEach(i),r=f(e),a=_(e,"P",{}),A(a).forEach(i),s=f(e),x(u.$$.fragment,e),k=f(e),x(p.$$.fragment,e),y=f(e),x(d.$$.fragment,e),v=f(e),h=_(e,"P",{"data-svelte-h":!0}),I(h)!=="svelte-t5arek"&&(h.textContent=S),L=f(e),l.l(e),w=f(e),x($.$$.fragment,e),C=f(e),b=_(e,"P",{}),A(b).forEach(i),this.h()},h(){q(t,"name","hf:doc:metadata"),q(t,"content",Z)},m(e,n){R(document.head,t),o(e,r,n),o(e,a,n),o(e,s,n),E(u,e,n),o(e,k,n),E(p,e,n),o(e,y,n),E(d,e,n),o(e,v,n),o(e,h,n),o(e,L,n),l.m(e,n),o(e,w,n),E($,e,n),o(e,C,n),o(e,b,n),T=!0},p(e,[n]){const z={};n&1&&(z.fw=e[0]),u.$set(z),H!==(H=j(e))&&(l.d(1),l=H(e),l&&(l.c(),l.m(w.parentNode,w)))},i(e){T||(M(u.$$.fragment,e),M(p.$$.fragment,e),M(d.$$.fragment,e),M($.$$.fragment,e),T=!0)},o(e){U(u.$$.fragment,e),U(p.$$.fragment,e),U(d.$$.fragment,e),U($.$$.fragment,e),T=!1},d(e){e&&(i(r),i(a),i(s),i(k),i(y),i(v),i(h),i(L),i(w),i(C),i(b)),i(t),F(u,e),F(p,e),F(d,e),l.d(e),F($,e)}}}const Z='{"title":"Fine-tuning, Check!","local":"fine-tuning-check","sections":[],"depth":1}';function ee(c,t,r){let a="pt";return N(()=>{const s=new URLSearchParams(window.location.search);r(0,a=s.get("fw")||"pt")}),[a]}class re extends B{constructor(t){super(),K(this,t,ee,Y,G,{})}}export{re as component};
