import{S as Is,i as Vs,s as Hs,e as i,k as _,w as G,t as r,M as Rs,c,d as t,m as k,x as U,a as p,h as n,b as M,N as Ps,F as s,g as f,y as J,o as A,p as Os,q as y,B as K,v as Gs,n as Ss}from"../../chunks/vendor-1e8b365d.js";import{T as Us}from"../../chunks/Tip-62b14c6e.js";import{I as Js}from"../../chunks/IconCopyLink-483c28ba.js";import{C as pe}from"../../chunks/CodeBlock-e5764662.js";import{D as Bs}from"../../chunks/DocNotebookDropdown-37d928d3.js";import{F as Ks}from"../../chunks/FrameworkSwitchCourse-7f8f0f31.js";function Qs(D){let l,d;return l=new Bs({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section2_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter4/section2_tf.ipynb"}]}}),{c(){G(l.$$.fragment)},l(a){U(l.$$.fragment,a)},m(a,q){J(l,a,q),d=!0},i(a){d||(y(l.$$.fragment,a),d=!0)},o(a){A(l.$$.fragment,a),d=!1},d(a){K(l,a)}}}function Ws(D){let l,d;return l=new Bs({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section2_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter4/section2_pt.ipynb"}]}}),{c(){G(l.$$.fragment)},l(a){U(l.$$.fragment,a)},m(a,q){J(l,a,q),d=!0},i(a){d||(y(l.$$.fragment,a),d=!0)},o(a){A(l.$$.fragment,a),d=!1},d(a){K(l,a)}}}function Xs(D){let l,d,a,q,h,g,N,z,L,P,I,w,v,x,j,C,V,T,E,O;return l=new pe({props:{code:`from transformers import CamembertTokenizer, TFCamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = TFCamembertForMaskedLM.from_pretrained("camembert-base")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CamembertTokenizer, TFCamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)
model = TFCamembertForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`}}),E=new pe({props:{code:`from transformers import AutoTokenizer, TFAutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("camembert-base")
model = TFAutoModelForMaskedLM.from_pretrained("camembert-base")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)
model = TFAutoModelForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`}}),{c(){G(l.$$.fragment),d=_(),a=i("p"),q=r("Cependant, nous recommandons d\u2019utiliser les classes "),h=i("a"),g=i("code"),N=r("TFAuto*"),z=r(" \xE0 la place, car elles sont par conception ind\xE9pendantes de l\u2019architecture. Alors que l\u2019exemple de code pr\xE9c\xE9dent limite les utilisateurs aux "),L=i("em"),P=r("checkpoints"),I=r(" chargeables dans l\u2019architecture CamemBERT, l\u2019utilisation des classes "),w=i("code"),v=r("TFAuto*"),x=r(" facilite le changement de "),j=i("em"),C=r("checkpoint"),V=r(" :"),T=_(),G(E.$$.fragment),this.h()},l(o){U(l.$$.fragment,o),d=k(o),a=c(o,"P",{});var m=p(a);q=n(m,"Cependant, nous recommandons d\u2019utiliser les classes "),h=c(m,"A",{href:!0,rel:!0});var X=p(h);g=c(X,"CODE",{});var Q=p(g);N=n(Q,"TFAuto*"),Q.forEach(t),X.forEach(t),z=n(m," \xE0 la place, car elles sont par conception ind\xE9pendantes de l\u2019architecture. Alors que l\u2019exemple de code pr\xE9c\xE9dent limite les utilisateurs aux "),L=c(m,"EM",{});var S=p(L);P=n(S,"checkpoints"),S.forEach(t),I=n(m," chargeables dans l\u2019architecture CamemBERT, l\u2019utilisation des classes "),w=c(m,"CODE",{});var B=p(w);v=n(B,"TFAuto*"),B.forEach(t),x=n(m," facilite le changement de "),j=c(m,"EM",{});var Y=p(j);C=n(Y,"checkpoint"),Y.forEach(t),V=n(m," :"),m.forEach(t),T=k(o),U(E.$$.fragment,o),this.h()},h(){M(h,"href","https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes"),M(h,"rel","nofollow")},m(o,m){J(l,o,m),f(o,d,m),f(o,a,m),s(a,q),s(a,h),s(h,g),s(g,N),s(a,z),s(a,L),s(L,P),s(a,I),s(a,w),s(w,v),s(a,x),s(a,j),s(j,C),s(a,V),f(o,T,m),J(E,o,m),O=!0},i(o){O||(y(l.$$.fragment,o),y(E.$$.fragment,o),O=!0)},o(o){A(l.$$.fragment,o),A(E.$$.fragment,o),O=!1},d(o){K(l,o),o&&t(d),o&&t(a),o&&t(T),K(E,o)}}}function Ys(D){let l,d,a,q,h,g,N,z,L,P,I,w,v,x,j,C,V,T,E,O;return l=new pe({props:{code:`from transformers import CamembertTokenizer, CamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = CamembertForMaskedLM.from_pretrained("camembert-base")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CamembertTokenizer, CamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)
model = CamembertForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`}}),E=new pe({props:{code:`from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("camembert-base")
model = AutoModelForMaskedLM.from_pretrained("camembert-base")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)
model = AutoModelForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`}}),{c(){G(l.$$.fragment),d=_(),a=i("p"),q=r("Cependant, nous recommandons d\u2019utiliser les classes "),h=i("a"),g=i("code"),N=r("Auto*"),z=r(" \xE0 la place, car elles sont par conception ind\xE9pendantes de l\u2019architecture. Alors que l\u2019exemple de code pr\xE9c\xE9dent limite les utilisateurs aux "),L=i("em"),P=r("checkpoints"),I=r(" chargeables dans l\u2019architecture CamemBERT, l\u2019utilisation des classes "),w=i("code"),v=r("Auto*"),x=r(" facilite le changement de "),j=i("em"),C=r("checkpoint"),V=r(" :"),T=_(),G(E.$$.fragment),this.h()},l(o){U(l.$$.fragment,o),d=k(o),a=c(o,"P",{});var m=p(a);q=n(m,"Cependant, nous recommandons d\u2019utiliser les classes "),h=c(m,"A",{href:!0,rel:!0});var X=p(h);g=c(X,"CODE",{});var Q=p(g);N=n(Q,"Auto*"),Q.forEach(t),X.forEach(t),z=n(m," \xE0 la place, car elles sont par conception ind\xE9pendantes de l\u2019architecture. Alors que l\u2019exemple de code pr\xE9c\xE9dent limite les utilisateurs aux "),L=c(m,"EM",{});var S=p(L);P=n(S,"checkpoints"),S.forEach(t),I=n(m," chargeables dans l\u2019architecture CamemBERT, l\u2019utilisation des classes "),w=c(m,"CODE",{});var B=p(w);v=n(B,"Auto*"),B.forEach(t),x=n(m," facilite le changement de "),j=c(m,"EM",{});var Y=p(j);C=n(Y,"checkpoint"),Y.forEach(t),V=n(m," :"),m.forEach(t),T=k(o),U(E.$$.fragment,o),this.h()},h(){M(h,"href","https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes"),M(h,"rel","nofollow")},m(o,m){J(l,o,m),f(o,d,m),f(o,a,m),s(a,q),s(a,h),s(h,g),s(g,N),s(a,z),s(a,L),s(L,P),s(a,I),s(a,w),s(w,v),s(a,x),s(a,j),s(j,C),s(a,V),f(o,T,m),J(E,o,m),O=!0},i(o){O||(y(l.$$.fragment,o),y(E.$$.fragment,o),O=!0)},o(o){A(l.$$.fragment,o),A(E.$$.fragment,o),O=!1},d(o){K(l,o),o&&t(d),o&&t(a),o&&t(T),K(E,o)}}}function Zs(D){let l;return{c(){l=r("Lorsque vous utilisez un mod\xE8le pr\xE9-entra\xEEn\xE9, assurez-vous de v\xE9rifier comment il a \xE9t\xE9 entra\xEEn\xE9, sur quels jeux de donn\xE9es, ses limites et ses biais. Toutes ces informations doivent \xEAtre indiqu\xE9es dans sa carte.")},l(d){l=n(d,"Lorsque vous utilisez un mod\xE8le pr\xE9-entra\xEEn\xE9, assurez-vous de v\xE9rifier comment il a \xE9t\xE9 entra\xEEn\xE9, sur quels jeux de donn\xE9es, ses limites et ses biais. Toutes ces informations doivent \xEAtre indiqu\xE9es dans sa carte.")},m(d,a){f(d,l,a)},d(d){d&&t(l)}}}function et(D){let l,d,a,q,h,g,N,z,L,P,I,w,v,x,j,C,V,T,E,O,o,m,X,Q,S,B,Y,we,F,Pe,ue,Oe,Se,de,Be,Ie,fe,Ve,He,he,Re,Ge,Ce,se,ze,te,Le,b,Ue,be,Je,Ke,_e,Qe,We,ke,Xe,Ye,ge,Ze,es,$e,ss,ts,ve,as,rs,xe,ns,os,Ee,ls,is,qe,cs,ms,Te,ae,re,fs,Ae,Z,ps,je,us,ds,ye,H,R,ie,ee,Fe;a=new Ks({props:{fw:D[0]}}),z=new Js({});const hs=[Ws,Qs],ne=[];function bs(e,u){return e[0]==="pt"?0:1}v=bs(D),x=ne[v]=hs[v](D),se=new pe({props:{code:`from transformers import pipeline

camembert_fill_mask = pipeline("fill-mask", model="camembert-base")
results = camembert_fill_mask("Le camembert est <mask> :)")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

camembert_fill_mask = pipeline(<span class="hljs-string">&quot;fill-mask&quot;</span>, model=<span class="hljs-string">&quot;camembert-base&quot;</span>)
results = camembert_fill_mask(<span class="hljs-string">&quot;Le camembert est &lt;mask&gt; :)&quot;</span>)`}}),te=new pe({props:{code:`[
  {'sequence': 'Le camembert est d\xE9licieux :)', 'score': 0.49091005325317383, 'token': 7200, 'token_str': 'd\xE9licieux'}, 
  {'sequence': 'Le camembert est excellent :)', 'score': 0.1055697426199913, 'token': 2183, 'token_str': 'excellent'}, 
  {'sequence': 'Le camembert est succulent :)', 'score': 0.03453313186764717, 'token': 26202, 'token_str': 'succulent'}, 
  {'sequence': 'Le camembert est meilleur :)', 'score': 0.0330314114689827, 'token': 528, 'token_str': 'meilleur'}, 
  {'sequence': 'Le camembert est parfait :)', 'score': 0.03007650189101696, 'token': 1654, 'token_str': 'parfait'}
]`,highlighted:`[
  {<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est d\xE9licieux :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.49091005325317383</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">7200</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;d\xE9licieux&#x27;</span>}, 
  {<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est excellent :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.1055697426199913</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">2183</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;excellent&#x27;</span>}, 
  {<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est succulent :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.03453313186764717</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">26202</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;succulent&#x27;</span>}, 
  {<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est meilleur :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.0330314114689827</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">528</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;meilleur&#x27;</span>}, 
  {<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est parfait :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.03007650189101696</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">1654</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;parfait&#x27;</span>}
]`}});const _s=[Ys,Xs],oe=[];function ks(e,u){return e[0]==="pt"?0:1}return H=ks(D),R=oe[H]=_s[H](D),ee=new Us({props:{$$slots:{default:[Zs]},$$scope:{ctx:D}}}),{c(){l=i("meta"),d=_(),G(a.$$.fragment),q=_(),h=i("h1"),g=i("a"),N=i("span"),G(z.$$.fragment),L=_(),P=i("span"),I=r("Utilisation de mod\xE8les pr\xE9-entra\xEEn\xE9s"),w=_(),x.c(),j=_(),C=i("p"),V=r("Le "),T=i("em"),E=r("Hub"),O=r(" simplifie la s\xE9lection du mod\xE8le appropri\xE9, de sorte que son utilisation dans toute biblioth\xE8que en aval peut se faire en quelques lignes de code. Voyons comment utiliser concr\xE8tement l\u2019un de ces mod\xE8les et comment contribuer \xE0 la communaut\xE9."),o=_(),m=i("p"),X=r("Supposons que nous recherchions un mod\xE8le bas\xE9 sur le fran\xE7ais, capable de remplir des masques."),Q=_(),S=i("div"),B=i("img"),we=_(),F=i("p"),Pe=r("Nous choisissons le "),ue=i("em"),Oe=r("checkpoint"),Se=_(),de=i("code"),Be=r("camembert-base"),Ie=r(" pour essayer. L\u2019identifiant "),fe=i("code"),Ve=r("camembert-base"),He=r(" est tout ce dont nous avons besoin pour commencer \xE0 utiliser le mod\xE8le ! Comme vous l\u2019avez vu dans les chapitres pr\xE9c\xE9dents, nous pouvons l\u2019instancier en utilisant la fonction "),he=i("code"),Re=r("pipeline()"),Ge=r(" :"),Ce=_(),G(se.$$.fragment),ze=_(),G(te.$$.fragment),Le=_(),b=i("p"),Ue=r("Comme vous pouvez le constater, le chargement d\u2019un mod\xE8le dans un pipeline est extr\xEAmement simple. La seule chose \xE0 laquelle vous devez faire attention est que le "),be=i("em"),Je=r("checkpoint"),Ke=r(" choisi soit adapt\xE9 \xE0 la t\xE2che pour laquelle il va \xEAtre utilis\xE9. Par exemple, ici nous chargeons le "),_e=i("em"),Qe=r("checkpoint"),We=_(),ke=i("code"),Xe=r("camembert-base"),Ye=r(" dans le pipeline "),ge=i("code"),Ze=r("fill-mask"),es=r(", ce qui est tout \xE0 fait correct. Mais si nous chargeions ce "),$e=i("em"),ss=r("checkpoint"),ts=r(" dans le pipeline "),ve=i("code"),as=r("text-classification"),rs=r(", les r\xE9sultats n\u2019auraient aucun sens car la t\xEAte de "),xe=i("code"),ns=r("camembert-base"),os=r(" n\u2019est pas adapt\xE9e \xE0 cette t\xE2che ! Nous recommandons d\u2019utiliser le s\xE9lecteur de t\xE2che dans l\u2019interface du "),Ee=i("em"),ls=r("Hub"),is=r(" afin de s\xE9lectionner les "),qe=i("em"),cs=r("checkpoints"),ms=r(" appropri\xE9s :"),Te=_(),ae=i("div"),re=i("img"),Ae=_(),Z=i("p"),ps=r("Vous pouvez \xE9galement instancier le "),je=i("em"),us=r("checkpoint"),ds=r(" en utilisant directement l\u2019architecture du mod\xE8le :"),ye=_(),R.c(),ie=_(),G(ee.$$.fragment),this.h()},l(e){const u=Rs('[data-svelte="svelte-1phssyn"]',document.head);l=c(u,"META",{name:!0,content:!0}),u.forEach(t),d=k(e),U(a.$$.fragment,e),q=k(e),h=c(e,"H1",{class:!0});var le=p(h);g=c(le,"A",{id:!0,class:!0,href:!0});var ce=p(g);N=c(ce,"SPAN",{});var me=p(N);U(z.$$.fragment,me),me.forEach(t),ce.forEach(t),L=k(le),P=c(le,"SPAN",{});var Me=p(P);I=n(Me,"Utilisation de mod\xE8les pr\xE9-entra\xEEn\xE9s"),Me.forEach(t),le.forEach(t),w=k(e),x.l(e),j=k(e),C=c(e,"P",{});var De=p(C);V=n(De,"Le "),T=c(De,"EM",{});var gs=p(T);E=n(gs,"Hub"),gs.forEach(t),O=n(De," simplifie la s\xE9lection du mod\xE8le appropri\xE9, de sorte que son utilisation dans toute biblioth\xE8que en aval peut se faire en quelques lignes de code. Voyons comment utiliser concr\xE8tement l\u2019un de ces mod\xE8les et comment contribuer \xE0 la communaut\xE9."),De.forEach(t),o=k(e),m=c(e,"P",{});var $s=p(m);X=n($s,"Supposons que nous recherchions un mod\xE8le bas\xE9 sur le fran\xE7ais, capable de remplir des masques."),$s.forEach(t),Q=k(e),S=c(e,"DIV",{class:!0});var vs=p(S);B=c(vs,"IMG",{src:!0,alt:!0,width:!0}),vs.forEach(t),we=k(e),F=c(e,"P",{});var W=p(F);Pe=n(W,"Nous choisissons le "),ue=c(W,"EM",{});var xs=p(ue);Oe=n(xs,"checkpoint"),xs.forEach(t),Se=k(W),de=c(W,"CODE",{});var Es=p(de);Be=n(Es,"camembert-base"),Es.forEach(t),Ie=n(W," pour essayer. L\u2019identifiant "),fe=c(W,"CODE",{});var qs=p(fe);Ve=n(qs,"camembert-base"),qs.forEach(t),He=n(W," est tout ce dont nous avons besoin pour commencer \xE0 utiliser le mod\xE8le ! Comme vous l\u2019avez vu dans les chapitres pr\xE9c\xE9dents, nous pouvons l\u2019instancier en utilisant la fonction "),he=c(W,"CODE",{});var js=p(he);Re=n(js,"pipeline()"),js.forEach(t),Ge=n(W," :"),W.forEach(t),Ce=k(e),U(se.$$.fragment,e),ze=k(e),U(te.$$.fragment,e),Le=k(e),b=c(e,"P",{});var $=p(b);Ue=n($,"Comme vous pouvez le constater, le chargement d\u2019un mod\xE8le dans un pipeline est extr\xEAmement simple. La seule chose \xE0 laquelle vous devez faire attention est que le "),be=c($,"EM",{});var Ms=p(be);Je=n(Ms,"checkpoint"),Ms.forEach(t),Ke=n($," choisi soit adapt\xE9 \xE0 la t\xE2che pour laquelle il va \xEAtre utilis\xE9. Par exemple, ici nous chargeons le "),_e=c($,"EM",{});var ws=p(_e);Qe=n(ws,"checkpoint"),ws.forEach(t),We=k($),ke=c($,"CODE",{});var Cs=p(ke);Xe=n(Cs,"camembert-base"),Cs.forEach(t),Ye=n($," dans le pipeline "),ge=c($,"CODE",{});var zs=p(ge);Ze=n(zs,"fill-mask"),zs.forEach(t),es=n($,", ce qui est tout \xE0 fait correct. Mais si nous chargeions ce "),$e=c($,"EM",{});var Ls=p($e);ss=n(Ls,"checkpoint"),Ls.forEach(t),ts=n($," dans le pipeline "),ve=c($,"CODE",{});var Ts=p(ve);as=n(Ts,"text-classification"),Ts.forEach(t),rs=n($,", les r\xE9sultats n\u2019auraient aucun sens car la t\xEAte de "),xe=c($,"CODE",{});var As=p(xe);ns=n(As,"camembert-base"),As.forEach(t),os=n($," n\u2019est pas adapt\xE9e \xE0 cette t\xE2che ! Nous recommandons d\u2019utiliser le s\xE9lecteur de t\xE2che dans l\u2019interface du "),Ee=c($,"EM",{});var ys=p(Ee);ls=n(ys,"Hub"),ys.forEach(t),is=n($," afin de s\xE9lectionner les "),qe=c($,"EM",{});var Fs=p(qe);cs=n(Fs,"checkpoints"),Fs.forEach(t),ms=n($," appropri\xE9s :"),$.forEach(t),Te=k(e),ae=c(e,"DIV",{class:!0});var Ds=p(ae);re=c(Ds,"IMG",{src:!0,alt:!0,width:!0}),Ds.forEach(t),Ae=k(e),Z=c(e,"P",{});var Ne=p(Z);ps=n(Ne,"Vous pouvez \xE9galement instancier le "),je=c(Ne,"EM",{});var Ns=p(je);us=n(Ns,"checkpoint"),Ns.forEach(t),ds=n(Ne," en utilisant directement l\u2019architecture du mod\xE8le :"),Ne.forEach(t),ye=k(e),R.l(e),ie=k(e),U(ee.$$.fragment,e),this.h()},h(){M(l,"name","hf:doc:metadata"),M(l,"content",JSON.stringify(st)),M(g,"id","utilisation-de-modles-prentrans"),M(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"),M(g,"href","#utilisation-de-modles-prentrans"),M(h,"class","relative group"),Ps(B.src,Y="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/camembert.gif")||M(B,"src",Y),M(B,"alt","Selecting the Camembert model."),M(B,"width","80%"),M(S,"class","flex justify-center"),Ps(re.src,fs="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/tasks.png")||M(re,"src",fs),M(re,"alt","The task selector on the web interface."),M(re,"width","80%"),M(ae,"class","flex justify-center")},m(e,u){s(document.head,l),f(e,d,u),J(a,e,u),f(e,q,u),f(e,h,u),s(h,g),s(g,N),J(z,N,null),s(h,L),s(h,P),s(P,I),f(e,w,u),ne[v].m(e,u),f(e,j,u),f(e,C,u),s(C,V),s(C,T),s(T,E),s(C,O),f(e,o,u),f(e,m,u),s(m,X),f(e,Q,u),f(e,S,u),s(S,B),f(e,we,u),f(e,F,u),s(F,Pe),s(F,ue),s(ue,Oe),s(F,Se),s(F,de),s(de,Be),s(F,Ie),s(F,fe),s(fe,Ve),s(F,He),s(F,he),s(he,Re),s(F,Ge),f(e,Ce,u),J(se,e,u),f(e,ze,u),J(te,e,u),f(e,Le,u),f(e,b,u),s(b,Ue),s(b,be),s(be,Je),s(b,Ke),s(b,_e),s(_e,Qe),s(b,We),s(b,ke),s(ke,Xe),s(b,Ye),s(b,ge),s(ge,Ze),s(b,es),s(b,$e),s($e,ss),s(b,ts),s(b,ve),s(ve,as),s(b,rs),s(b,xe),s(xe,ns),s(b,os),s(b,Ee),s(Ee,ls),s(b,is),s(b,qe),s(qe,cs),s(b,ms),f(e,Te,u),f(e,ae,u),s(ae,re),f(e,Ae,u),f(e,Z,u),s(Z,ps),s(Z,je),s(je,us),s(Z,ds),f(e,ye,u),oe[H].m(e,u),f(e,ie,u),J(ee,e,u),Fe=!0},p(e,[u]){const le={};u&1&&(le.fw=e[0]),a.$set(le);let ce=v;v=bs(e),v!==ce&&(Ss(),A(ne[ce],1,1,()=>{ne[ce]=null}),Os(),x=ne[v],x||(x=ne[v]=hs[v](e),x.c()),y(x,1),x.m(j.parentNode,j));let me=H;H=ks(e),H!==me&&(Ss(),A(oe[me],1,1,()=>{oe[me]=null}),Os(),R=oe[H],R||(R=oe[H]=_s[H](e),R.c()),y(R,1),R.m(ie.parentNode,ie));const Me={};u&2&&(Me.$$scope={dirty:u,ctx:e}),ee.$set(Me)},i(e){Fe||(y(a.$$.fragment,e),y(z.$$.fragment,e),y(x),y(se.$$.fragment,e),y(te.$$.fragment,e),y(R),y(ee.$$.fragment,e),Fe=!0)},o(e){A(a.$$.fragment,e),A(z.$$.fragment,e),A(x),A(se.$$.fragment,e),A(te.$$.fragment,e),A(R),A(ee.$$.fragment,e),Fe=!1},d(e){t(l),e&&t(d),K(a,e),e&&t(q),e&&t(h),K(z),e&&t(w),ne[v].d(e),e&&t(j),e&&t(C),e&&t(o),e&&t(m),e&&t(Q),e&&t(S),e&&t(we),e&&t(F),e&&t(Ce),K(se,e),e&&t(ze),K(te,e),e&&t(Le),e&&t(b),e&&t(Te),e&&t(ae),e&&t(Ae),e&&t(Z),e&&t(ye),oe[H].d(e),e&&t(ie),K(ee,e)}}}const st={local:"utilisation-de-modles-prentrans",title:"Utilisation de mod\xE8les pr\xE9-entra\xEEn\xE9s"};function tt(D,l,d){let a="pt";return Gs(()=>{const q=new URLSearchParams(window.location.search);d(0,a=q.get("fw")||"pt")}),[a]}class ct extends Is{constructor(l){super();Vs(this,l,tt,et,Hs,{})}}export{ct as default,st as metadata};
