import{s as K,o as O}from"../chunks/scheduler.cc52f4b9.js";import{S as R,i as D,e as d,s as o,c as C,h as I,a as b,d as i,b as f,f as q,g as k,j as N,k as B,l as J,m as l,n as v,t as y,o as L,p as T}from"../chunks/index.9480bb2b.js";import{C as Q,H as V,E as W}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.009dc98d.js";import{C as X}from"../chunks/CourseFloatingBanner.6488bde3.js";import{F as Y}from"../chunks/FrameworkSwitchCourse.42d12053.js";function Z(u){let e,r='<li>了解了 <a href="https://huggingface.co/datasets" rel="nofollow">Hub</a> 中的数据集</li> <li>学习了如何加载和预处理数据集</li> <li>学习了如何使用 Keras 微调和评估模型</li> <li>实现了自定义指标</li>';return{c(){e=d("ul"),e.innerHTML=r},l(a){e=b(a,"UL",{"data-svelte-h":!0}),N(e)!=="svelte-edl2mn"&&(e.innerHTML=r)},m(a,s){l(a,e,s)},d(a){a&&i(e)}}}function tt(u){let e,r='<li>了解了 <a href="https://huggingface.co/datasets" rel="nofollow">Hub</a> 中的数据集</li> <li>学习了如何加载和预处理数据集，包括使用动态填充和数据整理器</li> <li>实现你自己的模型微调和评估</li> <li>实现了一个较为底层的训练循环</li> <li>使用 🤗 Accelerate 轻松调整你的训练循环，使其适用于多个 GPU 或 TPU</li>';return{c(){e=d("ul"),e.innerHTML=r},l(a){e=b(a,"UL",{"data-svelte-h":!0}),N(e)!=="svelte-xm2ptu"&&(e.innerHTML=r)},m(a,s){l(a,e,s)},d(a){a&&i(e)}}}function et(u){let e,r,a,s,p,H,c,M,$,P,_,z,h,A="这是非常令人高兴的！在前两章中，你了解了模型和 Tokenizer，现在你知道如何针对你自己的数据对它们进行微调。回顾一下，在本章中，你：",E,w,g,S,x,U;p=new Y({props:{fw:u[0]}}),c=new Q({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),$=new V({props:{title:"微调，检查！",local:"微调，检查!",headingTag:"h1"}}),_=new X({props:{chapter:3,classNames:"absolute z-10 right-0 top-0"}});function G(t,n){return t[0]==="pt"?tt:Z}let F=G(u),m=F(u);return g=new W({props:{source:"https://github.com/huggingface/course/blob/main/chapters/zh-CN/chapter3/5.mdx"}}),{c(){e=d("meta"),r=o(),a=d("p"),s=o(),C(p.$$.fragment),H=o(),C(c.$$.fragment),M=o(),C($.$$.fragment),P=o(),C(_.$$.fragment),z=o(),h=d("p"),h.textContent=A,E=o(),m.c(),w=o(),C(g.$$.fragment),S=o(),x=d("p"),this.h()},l(t){const n=I("svelte-u9bgzb",document.head);e=b(n,"META",{name:!0,content:!0}),n.forEach(i),r=f(t),a=b(t,"P",{}),q(a).forEach(i),s=f(t),k(p.$$.fragment,t),H=f(t),k(c.$$.fragment,t),M=f(t),k($.$$.fragment,t),P=f(t),k(_.$$.fragment,t),z=f(t),h=b(t,"P",{"data-svelte-h":!0}),N(h)!=="svelte-1507izk"&&(h.textContent=A),E=f(t),m.l(t),w=f(t),k(g.$$.fragment,t),S=f(t),x=b(t,"P",{}),q(x).forEach(i),this.h()},h(){B(e,"name","hf:doc:metadata"),B(e,"content",nt)},m(t,n){J(document.head,e),l(t,r,n),l(t,a,n),l(t,s,n),v(p,t,n),l(t,H,n),v(c,t,n),l(t,M,n),v($,t,n),l(t,P,n),v(_,t,n),l(t,z,n),l(t,h,n),l(t,E,n),m.m(t,n),l(t,w,n),v(g,t,n),l(t,S,n),l(t,x,n),U=!0},p(t,[n]){const j={};n&1&&(j.fw=t[0]),p.$set(j),F!==(F=G(t))&&(m.d(1),m=F(t),m&&(m.c(),m.m(w.parentNode,w)))},i(t){U||(y(p.$$.fragment,t),y(c.$$.fragment,t),y($.$$.fragment,t),y(_.$$.fragment,t),y(g.$$.fragment,t),U=!0)},o(t){L(p.$$.fragment,t),L(c.$$.fragment,t),L($.$$.fragment,t),L(_.$$.fragment,t),L(g.$$.fragment,t),U=!1},d(t){t&&(i(r),i(a),i(s),i(H),i(M),i(P),i(z),i(h),i(E),i(w),i(S),i(x)),i(e),T(p,t),T(c,t),T($,t),T(_,t),m.d(t),T(g,t)}}}const nt='{"title":"微调，检查！","local":"微调，检查!","sections":[],"depth":1}';function at(u,e,r){let a="pt";return O(()=>{const s=new URLSearchParams(window.location.search);r(0,a=s.get("fw")||"pt")}),[a]}class ot extends R{constructor(e){super(),D(this,e,at,et,K,{})}}export{ot as component};
