import{S as Sg,i as Tg,s as Fg,e as l,k as p,w,t as s,l as Lg,M as Ig,c as i,d as o,m as f,x as P,a as n,h as r,b as v,N as rt,G as t,g as u,y as M,o as b,p as It,q as E,B as C,v as Ng,n as Nt}from"../../chunks/vendor-hf-doc-builder.js";import{T as Og}from"../../chunks/Tip-hf-doc-builder.js";import{Y as av}from"../../chunks/Youtube-hf-doc-builder.js";import{I as ko}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as N}from"../../chunks/CodeBlock-hf-doc-builder.js";import{C as xg}from"../../chunks/CourseFloatingBanner-hf-doc-builder.js";import{F as Hg}from"../../chunks/FrameworkSwitchCourse-hf-doc-builder.js";function Gg(S){let d,m;return d=new xg({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_tf.ipynb"},{label:"Fran\xE7ais",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_tf.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_tf.ipynb"},{label:"Fran\xE7ais",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_tf.ipynb"}]}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function Rg(S){let d,m;return d=new xg({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_pt.ipynb"},{label:"Fran\xE7ais",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_pt.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_pt.ipynb"},{label:"Fran\xE7ais",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_pt.ipynb"}]}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function Ug(S){let d,m;return d=new av({props:{id:"pUh5cGmNV8Y"}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function Vg(S){let d,m;return d=new av({props:{id:"Zh0FfmVrKX0"}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function Bg(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G,g,A,O,U,Y,V,Z,Q,X,pe,Te,se,fe,Fe,re,ee,ae,qe,K,Ie,ue,Ne,ce,ze;return z=new N({props:{code:`from transformers import PushToHubCallback

callback = PushToHubCallback(
    "bert-finetuned-mrpc", save_strategy="epoch", tokenizer=tokenizer
)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PushToHubCallback

callback = PushToHubCallback(
    <span class="hljs-string">&quot;bert-finetuned-mrpc&quot;</span>, save_strategy=<span class="hljs-string">&quot;epoch&quot;</span>, tokenizer=tokenizer
)`}}),{c(){d=l("p"),m=s("Si vous utilisez Keras pour entra\xEEner votre mod\xE8le, le moyen le plus simple de le t\xE9l\xE9charger sur le "),c=l("em"),_=s("Hub"),$=s(" est de passer un "),j=l("code"),I=s("PushToHubCallback"),y=s(" lorsque vous appelez "),T=l("code"),F=s("model.fit()"),q=s(" :"),h=p(),w(z.$$.fragment),L=p(),k=l("p"),D=s("Ensuite, vous devez ajouter "),G=l("code"),g=s("callbacks=[callback]"),A=s(" dans votre appel \xE0 "),O=l("code"),U=s("model.fit()"),Y=s(". Le "),V=l("em"),Z=s("callback"),Q=s(" t\xE9l\xE9chargera alors votre mod\xE8le vers le "),X=l("em"),pe=s("Hub"),Te=s(" \xE0 chaque fois qu\u2019il sera sauvegard\xE9 (ici \xE0 chaque \xE9poque) dans un d\xE9p\xF4t dans votre espace de noms. Ce d\xE9p\xF4t sera nomm\xE9 comme le r\xE9pertoire de sortie que vous avez choisi (ici "),se=l("code"),fe=s("bert-finetuned-mrpc"),Fe=s(") mais vous pouvez choisir un nom diff\xE9rent avec "),re=l("code"),ee=s('hub_model_id = "a_different_name"'),ae=s("."),qe=p(),K=l("p"),Ie=s("Pour t\xE9l\xE9charger votre mod\xE8le dans une organisation dont vous \xEAtes membre, passez-le simplement avec "),ue=l("code"),Ne=s('hub_model_id = "my_organization/my_repo_name"'),ce=s(".")},l(H){d=i(H,"P",{});var B=n(d);m=r(B,"Si vous utilisez Keras pour entra\xEEner votre mod\xE8le, le moyen le plus simple de le t\xE9l\xE9charger sur le "),c=i(B,"EM",{});var Pe=n(c);_=r(Pe,"Hub"),Pe.forEach(o),$=r(B," est de passer un "),j=i(B,"CODE",{});var lt=n(j);I=r(lt,"PushToHubCallback"),lt.forEach(o),y=r(B," lorsque vous appelez "),T=i(B,"CODE",{});var Me=n(T);F=r(Me,"model.fit()"),Me.forEach(o),q=r(B," :"),B.forEach(o),h=f(H),P(z.$$.fragment,H),L=f(H),k=i(H,"P",{});var J=n(k);D=r(J,"Ensuite, vous devez ajouter "),G=i(J,"CODE",{});var de=n(G);g=r(de,"callbacks=[callback]"),de.forEach(o),A=r(J," dans votre appel \xE0 "),O=i(J,"CODE",{});var oe=n(O);U=r(oe,"model.fit()"),oe.forEach(o),Y=r(J,". Le "),V=i(J,"EM",{});var Mt=n(V);Z=r(Mt,"callback"),Mt.forEach(o),Q=r(J," t\xE9l\xE9chargera alors votre mod\xE8le vers le "),X=i(J,"EM",{});var Ce=n(X);pe=r(Ce,"Hub"),Ce.forEach(o),Te=r(J," \xE0 chaque fois qu\u2019il sera sauvegard\xE9 (ici \xE0 chaque \xE9poque) dans un d\xE9p\xF4t dans votre espace de noms. Ce d\xE9p\xF4t sera nomm\xE9 comme le r\xE9pertoire de sortie que vous avez choisi (ici "),se=i(J,"CODE",{});var x=n(se);fe=r(x,"bert-finetuned-mrpc"),x.forEach(o),Fe=r(J,") mais vous pouvez choisir un nom diff\xE9rent avec "),re=i(J,"CODE",{});var R=n(re);ee=r(R,'hub_model_id = "a_different_name"'),R.forEach(o),ae=r(J,"."),J.forEach(o),qe=f(H),K=i(H,"P",{});var ye=n(K);Ie=r(ye,"Pour t\xE9l\xE9charger votre mod\xE8le dans une organisation dont vous \xEAtes membre, passez-le simplement avec "),ue=i(ye,"CODE",{});var je=n(ue);Ne=r(je,'hub_model_id = "my_organization/my_repo_name"'),je.forEach(o),ce=r(ye,"."),ye.forEach(o)},m(H,B){u(H,d,B),t(d,m),t(d,c),t(c,_),t(d,$),t(d,j),t(j,I),t(d,y),t(d,T),t(T,F),t(d,q),u(H,h,B),M(z,H,B),u(H,L,B),u(H,k,B),t(k,D),t(k,G),t(G,g),t(k,A),t(k,O),t(O,U),t(k,Y),t(k,V),t(V,Z),t(k,Q),t(k,X),t(X,pe),t(k,Te),t(k,se),t(se,fe),t(k,Fe),t(k,re),t(re,ee),t(k,ae),u(H,qe,B),u(H,K,B),t(K,Ie),t(K,ue),t(ue,Ne),t(K,ce),ze=!0},i(H){ze||(E(z.$$.fragment,H),ze=!0)},o(H){b(z.$$.fragment,H),ze=!1},d(H){H&&o(d),H&&o(h),C(z,H),H&&o(L),H&&o(k),H&&o(qe),H&&o(K)}}}function Yg(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G,g,A,O,U,Y,V,Z,Q,X,pe,Te,se,fe,Fe,re,ee,ae,qe,K,Ie,ue,Ne,ce,ze,H,B,Pe,lt,Me,J,de,oe,Mt,Ce;return D=new N({props:{code:`from transformers import TrainingArguments

training_args = TrainingArguments(
    "bert-finetuned-mrpc", save_strategy="epoch", push_to_hub=True
)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TrainingArguments

training_args = TrainingArguments(
    <span class="hljs-string">&quot;bert-finetuned-mrpc&quot;</span>, save_strategy=<span class="hljs-string">&quot;epoch&quot;</span>, push_to_hub=<span class="hljs-literal">True</span>
)`}}),{c(){d=l("p"),m=s("Si vous avez jou\xE9 avec l\u2019API "),c=l("code"),_=s("Trainer"),$=s(" pour entra\xEEner un mod\xE8le, le moyen le plus simple de le t\xE9l\xE9charger sur le "),j=l("em"),I=s("Hub"),y=s(" est de d\xE9finir "),T=l("code"),F=s("push_to_hub=True"),q=s(" lorsque vous d\xE9finissez vos "),h=l("code"),z=s("TrainingArguments"),L=s(" :"),k=p(),w(D.$$.fragment),G=p(),g=l("p"),A=s("Lorsque vous appelez "),O=l("code"),U=s("trainer.train()"),Y=s(", le "),V=l("code"),Z=s("Trainer"),Q=s(" t\xE9l\xE9chargera alors votre mod\xE8le vers le "),X=l("em"),pe=s("Hub"),Te=s(" \xE0 chaque fois qu\u2019il sera sauvegard\xE9 (ici \xE0 chaque \xE9poque) dans un d\xE9p\xF4t dans votre espace personnel. Ce d\xE9p\xF4t sera nomm\xE9 comme le r\xE9pertoire de sortie que vous avez choisi (ici "),se=l("code"),fe=s("bert-finetuned-mrpc"),Fe=s(") mais vous pouvez choisir un nom diff\xE9rent avec "),re=l("code"),ee=s('hub_model_id = "a_different_name"'),ae=s("."),qe=p(),K=l("p"),Ie=s("Pour t\xE9l\xE9charger votre mod\xE8le vers une organisation dont vous \xEAtes membre, passez-le simplement avec "),ue=l("code"),Ne=s('hub_model_id = "my_organization/my_repo_name"'),ce=s("."),ze=p(),H=l("p"),B=s("Une fois que votre entra\xEEnement est termin\xE9, vous devriez faire un dernier "),Pe=l("code"),lt=s("trainer.push_to_hub()"),Me=s(" pour t\xE9l\xE9charger la derni\xE8re version de votre mod\xE8le. Cela g\xE9n\xE9rera \xE9galement une carte pour le mod\xE8le avec toutes les m\xE9tadonn\xE9es pertinentes, rapportant les hyperparam\xE8tres utilis\xE9s et les r\xE9sultats d\u2019\xE9valuation ! Voici un exemple du contenu que vous pourriez trouver dans une telle carte de mod\xE8le :"),J=p(),de=l("div"),oe=l("img"),this.h()},l(x){d=i(x,"P",{});var R=n(d);m=r(R,"Si vous avez jou\xE9 avec l\u2019API "),c=i(R,"CODE",{});var ye=n(c);_=r(ye,"Trainer"),ye.forEach(o),$=r(R," pour entra\xEEner un mod\xE8le, le moyen le plus simple de le t\xE9l\xE9charger sur le "),j=i(R,"EM",{});var je=n(j);I=r(je,"Hub"),je.forEach(o),y=r(R," est de d\xE9finir "),T=i(R,"CODE",{});var Ds=n(T);F=r(Ds,"push_to_hub=True"),Ds.forEach(o),q=r(R," lorsque vous d\xE9finissez vos "),h=i(R,"CODE",{});var Ct=n(h);z=r(Ct,"TrainingArguments"),Ct.forEach(o),L=r(R," :"),R.forEach(o),k=f(x),P(D.$$.fragment,x),G=f(x),g=i(x,"P",{});var le=n(g);A=r(le,"Lorsque vous appelez "),O=i(le,"CODE",{});var Ht=n(O);U=r(Ht,"trainer.train()"),Ht.forEach(o),Y=r(le,", le "),V=i(le,"CODE",{});var Ls=n(V);Z=r(Ls,"Trainer"),Ls.forEach(o),Q=r(le," t\xE9l\xE9chargera alors votre mod\xE8le vers le "),X=i(le,"EM",{});var qo=n(X);pe=r(qo,"Hub"),qo.forEach(o),Te=r(le," \xE0 chaque fois qu\u2019il sera sauvegard\xE9 (ici \xE0 chaque \xE9poque) dans un d\xE9p\xF4t dans votre espace personnel. Ce d\xE9p\xF4t sera nomm\xE9 comme le r\xE9pertoire de sortie que vous avez choisi (ici "),se=i(le,"CODE",{});var me=n(se);fe=r(me,"bert-finetuned-mrpc"),me.forEach(o),Fe=r(le,") mais vous pouvez choisir un nom diff\xE9rent avec "),re=i(le,"CODE",{});var ve=n(re);ee=r(ve,'hub_model_id = "a_different_name"'),ve.forEach(o),ae=r(le,"."),le.forEach(o),qe=f(x),K=i(x,"P",{});var He=n(K);Ie=r(He,"Pour t\xE9l\xE9charger votre mod\xE8le vers une organisation dont vous \xEAtes membre, passez-le simplement avec "),ue=i(He,"CODE",{});var we=n(ue);Ne=r(we,'hub_model_id = "my_organization/my_repo_name"'),we.forEach(o),ce=r(He,"."),He.forEach(o),ze=f(x),H=i(x,"P",{});var Gt=n(H);B=r(Gt,"Une fois que votre entra\xEEnement est termin\xE9, vous devriez faire un dernier "),Pe=i(Gt,"CODE",{});var Rt=n(Pe);lt=r(Rt,"trainer.push_to_hub()"),Rt.forEach(o),Me=r(Gt," pour t\xE9l\xE9charger la derni\xE8re version de votre mod\xE8le. Cela g\xE9n\xE9rera \xE9galement une carte pour le mod\xE8le avec toutes les m\xE9tadonn\xE9es pertinentes, rapportant les hyperparam\xE8tres utilis\xE9s et les r\xE9sultats d\u2019\xE9valuation ! Voici un exemple du contenu que vous pourriez trouver dans une telle carte de mod\xE8le :"),Gt.forEach(o),J=f(x),de=i(x,"DIV",{class:!0});var Os=n(de);oe=i(Os,"IMG",{src:!0,alt:!0,width:!0}),Os.forEach(o),this.h()},h(){rt(oe.src,Mt="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/model_card.png")||v(oe,"src",Mt),v(oe,"alt","An example of an auto-generated model card."),v(oe,"width","100%"),v(de,"class","flex justify-center")},m(x,R){u(x,d,R),t(d,m),t(d,c),t(c,_),t(d,$),t(d,j),t(j,I),t(d,y),t(d,T),t(T,F),t(d,q),t(d,h),t(h,z),t(d,L),u(x,k,R),M(D,x,R),u(x,G,R),u(x,g,R),t(g,A),t(g,O),t(O,U),t(g,Y),t(g,V),t(V,Z),t(g,Q),t(g,X),t(X,pe),t(g,Te),t(g,se),t(se,fe),t(g,Fe),t(g,re),t(re,ee),t(g,ae),u(x,qe,R),u(x,K,R),t(K,Ie),t(K,ue),t(ue,Ne),t(K,ce),u(x,ze,R),u(x,H,R),t(H,B),t(H,Pe),t(Pe,lt),t(H,Me),u(x,J,R),u(x,de,R),t(de,oe),Ce=!0},i(x){Ce||(E(D.$$.fragment,x),Ce=!0)},o(x){b(D.$$.fragment,x),Ce=!1},d(x){x&&o(d),x&&o(k),C(D,x),x&&o(G),x&&o(g),x&&o(qe),x&&o(K),x&&o(ze),x&&o(H),x&&o(J),x&&o(de)}}}function Kg(S){let d,m;return d=new N({props:{code:`from transformers import TFAutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

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

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = TFAutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function Jg(S){let d,m;return d=new N({props:{code:`from transformers import AutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

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

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = AutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function Wg(S){let d,m,c;return{c(){d=l("div"),m=l("img"),this.h()},l(_){d=i(_,"DIV",{class:!0});var $=n(d);m=i($,"IMG",{src:!0,alt:!0,width:!0}),$.forEach(o),this.h()},h(){rt(m.src,c="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model_tf.png")||v(m,"src",c),v(m,"alt","Dummy model containing both the tokenizer and model files."),v(m,"width","80%"),v(d,"class","flex justify-center")},m(_,$){u(_,d,$),t(d,m)},d(_){_&&o(d)}}}function Xg(S){let d,m,c;return{c(){d=l("div"),m=l("img"),this.h()},l(_){d=i(_,"DIV",{class:!0});var $=n(d);m=i($,"IMG",{src:!0,alt:!0,width:!0}),$.forEach(o),this.h()},h(){rt(m.src,c="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model.png")||v(m,"src",c),v(m,"alt","Dummy model containing both the tokenizer and model files."),v(m,"width","80%"),v(d,"class","flex justify-center")},m(_,$){u(_,d,$),t(d,m)},d(_){_&&o(d)}}}function Zg(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G;return{c(){d=l("p"),m=s("\u270F\uFE0F "),c=l("strong"),_=s("Essayez"),$=s(" Prenez le mod\xE8le et le "),j=l("em"),I=s("tokenizer"),y=s(" associ\xE9s au "),T=l("em"),F=s("checkpoint"),q=p(),h=l("code"),z=s("bert-base-cased"),L=s(" et t\xE9l\xE9chargez-les vers un d\xE9p\xF4t dans votre espace en utilisant la m\xE9thode "),k=l("code"),D=s("push_to_hub()"),G=s(". V\xE9rifiez que le d\xE9p\xF4t appara\xEEt correctement sur votre page avant de le supprimer.")},l(g){d=i(g,"P",{});var A=n(d);m=r(A,"\u270F\uFE0F "),c=i(A,"STRONG",{});var O=n(c);_=r(O,"Essayez"),O.forEach(o),$=r(A," Prenez le mod\xE8le et le "),j=i(A,"EM",{});var U=n(j);I=r(U,"tokenizer"),U.forEach(o),y=r(A," associ\xE9s au "),T=i(A,"EM",{});var Y=n(T);F=r(Y,"checkpoint"),Y.forEach(o),q=f(A),h=i(A,"CODE",{});var V=n(h);z=r(V,"bert-base-cased"),V.forEach(o),L=r(A," et t\xE9l\xE9chargez-les vers un d\xE9p\xF4t dans votre espace en utilisant la m\xE9thode "),k=i(A,"CODE",{});var Z=n(k);D=r(Z,"push_to_hub()"),Z.forEach(o),G=r(A,". V\xE9rifiez que le d\xE9p\xF4t appara\xEEt correctement sur votre page avant de le supprimer."),A.forEach(o)},m(g,A){u(g,d,A),t(d,m),t(d,c),t(c,_),t(d,$),t(d,j),t(j,I),t(d,y),t(d,T),t(T,F),t(d,q),t(d,h),t(h,z),t(d,L),t(d,k),t(k,D),t(d,G)},d(g){g&&o(d)}}}function Qg(S){let d,m;return d=new N({props:{code:`from transformers import TFAutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

model = TFAutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

# Faites ce que vous voulez avec le mod\xE8le, entra\xEEnez-le, finetunez-le...

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

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = TFAutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

<span class="hljs-comment"># Faites ce que vous voulez avec le mod\xE8le, entra\xEEnez-le, finetunez-le...</span>

model.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)
tokenizer.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function eb(S){let d,m;return d=new N({props:{code:`from transformers import AutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

model = AutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

# Faites ce que vous voulez avec le mod\xE8le, entra\xEEnez-le, finetunez-le...

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

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = AutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

<span class="hljs-comment"># Faites ce que vous voulez avec le mod\xE8le, entra\xEEnez-le, finetunez-le...</span>

model.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)
tokenizer.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function tb(S){let d,m,c,_,$,j,I,y,T,F,q;return d=new N({props:{code:"config.json  README.md  sentencepiece.bpe.model  special_tokens_map.json  tf_model.h5  tokenizer_config.json  tokenizer.json",highlighted:"config.json  README.md  sentencepiece.bpe.model  special_tokens_map.json  tf_model.h5  tokenizer_config.json  tokenizer.json"}}),{c(){w(d.$$.fragment),m=p(),c=l("p"),_=s("Si vous regardez la taille des fichiers (par exemple, avec "),$=l("code"),j=s("ls -lh"),I=s("), vous devriez voir que le fichier dict de l\u2019\xE9tat du mod\xE8le ("),y=l("em"),T=s("t5_model.h5"),F=s(") est la seule aberration, avec plus de 400 Mo.")},l(h){P(d.$$.fragment,h),m=f(h),c=i(h,"P",{});var z=n(c);_=r(z,"Si vous regardez la taille des fichiers (par exemple, avec "),$=i(z,"CODE",{});var L=n($);j=r(L,"ls -lh"),L.forEach(o),I=r(z,"), vous devriez voir que le fichier dict de l\u2019\xE9tat du mod\xE8le ("),y=i(z,"EM",{});var k=n(y);T=r(k,"t5_model.h5"),k.forEach(o),F=r(z,") est la seule aberration, avec plus de 400 Mo."),z.forEach(o)},m(h,z){M(d,h,z),u(h,m,z),u(h,c,z),t(c,_),t(c,$),t($,j),t(c,I),t(c,y),t(y,T),t(c,F),q=!0},i(h){q||(E(d.$$.fragment,h),q=!0)},o(h){b(d.$$.fragment,h),q=!1},d(h){C(d,h),h&&o(m),h&&o(c)}}}function ob(S){let d,m,c,_,$,j,I,y,T,F,q;return d=new N({props:{code:"config.json  pytorch_model.bin  README.md  sentencepiece.bpe.model  special_tokens_map.json tokenizer_config.json  tokenizer.json",highlighted:"config.json  pytorch_model.bin  README.md  sentencepiece.bpe.model  special_tokens_map.json tokenizer_config.json  tokenizer.json"}}),{c(){w(d.$$.fragment),m=p(),c=l("p"),_=s("Si vous regardez la taille des fichiers (par exemple, avec "),$=l("code"),j=s("ls -lh"),I=s("), vous devriez voir que le fichier d\u2019\xE9tat du mod\xE8le ("),y=l("em"),T=s("pytorch_model.bin"),F=s(") est la seule exception, avec plus de 400 Mo.")},l(h){P(d.$$.fragment,h),m=f(h),c=i(h,"P",{});var z=n(c);_=r(z,"Si vous regardez la taille des fichiers (par exemple, avec "),$=i(z,"CODE",{});var L=n($);j=r(L,"ls -lh"),L.forEach(o),I=r(z,"), vous devriez voir que le fichier d\u2019\xE9tat du mod\xE8le ("),y=i(z,"EM",{});var k=n(y);T=r(k,"pytorch_model.bin"),k.forEach(o),F=r(z,") est la seule exception, avec plus de 400 Mo."),z.forEach(o)},m(h,z){M(d,h,z),u(h,m,z),u(h,c,z),t(c,_),t(c,$),t($,j),t(c,I),t(c,y),t(y,T),t(c,F),q=!0},i(h){q||(E(d.$$.fragment,h),q=!0)},o(h){b(d.$$.fragment,h),q=!1},d(h){C(d,h),h&&o(m),h&&o(c)}}}function sb(S){let d,m,c,_,$,j,I,y,T,F;return{c(){d=s("\u270F\uFE0F Lors de la cr\xE9ation du d\xE9p\xF4t \xE0 partir de l'interface web, le fichier "),m=l("i"),c=s(".gitattributes"),_=s(" est automatiquement configur\xE9 pour consid\xE9rer les fichiers avec certaines extensions, comme "),$=l("i"),j=s(".bin"),I=s(" et "),y=l("i"),T=s(".h5"),F=s(", comme des fichiers volumineux, et git-lfs les suivra sans aucune configuration n\xE9cessaire de votre part.")},l(q){d=r(q,"\u270F\uFE0F Lors de la cr\xE9ation du d\xE9p\xF4t \xE0 partir de l'interface web, le fichier "),m=i(q,"I",{});var h=n(m);c=r(h,".gitattributes"),h.forEach(o),_=r(q," est automatiquement configur\xE9 pour consid\xE9rer les fichiers avec certaines extensions, comme "),$=i(q,"I",{});var z=n($);j=r(z,".bin"),z.forEach(o),I=r(q," et "),y=i(q,"I",{});var L=n(y);T=r(L,".h5"),L.forEach(o),F=r(q,", comme des fichiers volumineux, et git-lfs les suivra sans aucune configuration n\xE9cessaire de votre part.")},m(q,h){u(q,d,h),u(q,m,h),t(m,c),u(q,_,h),u(q,$,h),t($,j),u(q,I,h),u(q,y,h),t(y,T),u(q,F,h)},d(q){q&&o(d),q&&o(m),q&&o(_),q&&o($),q&&o(I),q&&o(y),q&&o(F)}}}function rb(S){let d,m;return d=new N({props:{code:`On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
  modified:   .gitattributes
  	new file:   config.json
	new file:   sentencepiece.bpe.model
	new file:   special_tokens_map.json
	new file:   tf_model.h5
	new file:   tokenizer.json
	new file:   tokenizer_config.json`,highlighted:`On branch main
Your branch is up to <span class="hljs-built_in">date</span> with <span class="hljs-string">&#x27;origin/main&#x27;</span>.

Changes to be committed:
  (use <span class="hljs-string">&quot;git restore --staged &lt;file&gt;...&quot;</span> to unstage)
  modified:   .gitattributes
  	new file:   config.json
	new file:   sentencepiece.bpe.model
	new file:   special_tokens_map.json
	new file:   tf_model.h5
	new file:   tokenizer.json
	new file:   tokenizer_config.json`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function lb(S){let d,m;return d=new N({props:{code:`On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
  modified:   .gitattributes
	new file:   config.json
	new file:   pytorch_model.bin
	new file:   sentencepiece.bpe.model
	new file:   special_tokens_map.json
	new file:   tokenizer.json
	new file:   tokenizer_config.json`,highlighted:`On branch main
Your branch is up to <span class="hljs-built_in">date</span> with <span class="hljs-string">&#x27;origin/main&#x27;</span>.

Changes to be committed:
  (use <span class="hljs-string">&quot;git restore --staged &lt;file&gt;...&quot;</span> to unstage)
  modified:   .gitattributes
	new file:   config.json
	new file:   pytorch_model.bin
	new file:   sentencepiece.bpe.model
	new file:   special_tokens_map.json
	new file:   tokenizer.json
	new file:   tokenizer_config.json`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function ib(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L;return d=new N({props:{code:`On branch main
Objects to be pushed to origin/main:


Objects to be committed:

	config.json (Git: bc20ff2)
	sentencepiece.bpe.model (LFS: 988bc5a)
	special_tokens_map.json (Git: cb23931)
	tf_model.h5 (LFS: 86fce29)
	tokenizer.json (Git: 851ff3e)
	tokenizer_config.json (Git: f0f7783)

Objects not staged for commit:

`,highlighted:`On branch main
Objects to be pushed to origin/main:


Objects to be committed:

	config.json (Git: bc20ff2)
	sentencepiece.bpe.model (LFS: 988bc5a)
	special_tokens_map.json (Git: cb23931)
	tf_model.h5 (LFS: 86fce29)
	tokenizer.json (Git: 851ff3e)
	tokenizer_config.json (Git: f0f7783)

Objects not staged <span class="hljs-keyword">for</span> commit:

`}}),{c(){w(d.$$.fragment),m=p(),c=l("p"),_=s("Nous pouvons voir que tous les fichiers ont "),$=l("code"),j=s("Git"),I=s(" comme gestionnaire, sauf "),y=l("em"),T=s("t5_model.h5"),F=s(" qui a "),q=l("code"),h=s("LFS"),z=s(". Super !")},l(k){P(d.$$.fragment,k),m=f(k),c=i(k,"P",{});var D=n(c);_=r(D,"Nous pouvons voir que tous les fichiers ont "),$=i(D,"CODE",{});var G=n($);j=r(G,"Git"),G.forEach(o),I=r(D," comme gestionnaire, sauf "),y=i(D,"EM",{});var g=n(y);T=r(g,"t5_model.h5"),g.forEach(o),F=r(D," qui a "),q=i(D,"CODE",{});var A=n(q);h=r(A,"LFS"),A.forEach(o),z=r(D,". Super !"),D.forEach(o)},m(k,D){M(d,k,D),u(k,m,D),u(k,c,D),t(c,_),t(c,$),t($,j),t(c,I),t(c,y),t(y,T),t(c,F),t(c,q),t(q,h),t(c,z),L=!0},i(k){L||(E(d.$$.fragment,k),L=!0)},o(k){b(d.$$.fragment,k),L=!1},d(k){C(d,k),k&&o(m),k&&o(c)}}}function nb(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G;return d=new N({props:{code:`On branch main
Objects to be pushed to origin/main:


Objects to be committed:

	config.json (Git: bc20ff2)
	pytorch_model.bin (LFS: 35686c2)
	sentencepiece.bpe.model (LFS: 988bc5a)
	special_tokens_map.json (Git: cb23931)
	tokenizer.json (Git: 851ff3e)
	tokenizer_config.json (Git: f0f7783)

Objects not staged for commit:

`,highlighted:`On branch main
Objects to be pushed to origin/main:


Objects to be committed:

	config.json (Git: bc20ff2)
	pytorch_model.bin (LFS: 35686c2)
	sentencepiece.bpe.model (LFS: 988bc5a)
	special_tokens_map.json (Git: cb23931)
	tokenizer.json (Git: 851ff3e)
	tokenizer_config.json (Git: f0f7783)

Objects not staged <span class="hljs-keyword">for</span> commit:

`}}),{c(){w(d.$$.fragment),m=p(),c=l("p"),_=s("Nous pouvons voir que tous les fichiers ont "),$=l("code"),j=s("Git"),I=s(" comme gestionnaire, sauf "),y=l("em"),T=s("pytorch_model.bin"),F=s(" et "),q=l("em"),h=s("sentencepiece.bpe.model"),z=s(", qui ont "),L=l("code"),k=s("LFS"),D=s(". Super !")},l(g){P(d.$$.fragment,g),m=f(g),c=i(g,"P",{});var A=n(c);_=r(A,"Nous pouvons voir que tous les fichiers ont "),$=i(A,"CODE",{});var O=n($);j=r(O,"Git"),O.forEach(o),I=r(A," comme gestionnaire, sauf "),y=i(A,"EM",{});var U=n(y);T=r(U,"pytorch_model.bin"),U.forEach(o),F=r(A," et "),q=i(A,"EM",{});var Y=n(q);h=r(Y,"sentencepiece.bpe.model"),Y.forEach(o),z=r(A,", qui ont "),L=i(A,"CODE",{});var V=n(L);k=r(V,"LFS"),V.forEach(o),D=r(A,". Super !"),A.forEach(o)},m(g,A){M(d,g,A),u(g,m,A),u(g,c,A),t(c,_),t(c,$),t($,j),t(c,I),t(c,y),t(y,T),t(c,F),t(c,q),t(q,h),t(c,z),t(c,L),t(L,k),t(c,D),G=!0},i(g){G||(E(d.$$.fragment,g),G=!0)},o(g){b(d.$$.fragment,g),G=!1},d(g){C(d,g),g&&o(m),g&&o(c)}}}function ab(S){let d,m;return d=new N({props:{code:`[main b08aab1] First model version
 6 files changed, 36 insertions(+)
 create mode 100644 config.json
 create mode 100644 sentencepiece.bpe.model
 create mode 100644 special_tokens_map.json
 create mode 100644 tf_model.h5
 create mode 100644 tokenizer.json
 create mode 100644 tokenizer_config.json`,highlighted:`[main b08aab1] First model version
 6 files changed, 36 insertions(+)
 create mode 100644 config.json
 create mode 100644 sentencepiece.bpe.model
 create mode 100644 special_tokens_map.json
 create mode 100644 tf_model.h5
 create mode 100644 tokenizer.json
 create mode 100644 tokenizer_config.json`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function ub(S){let d,m;return d=new N({props:{code:`[main b08aab1] First model version
 7 files changed, 29027 insertions(+)
  6 files changed, 36 insertions(+)
 create mode 100644 config.json
 create mode 100644 pytorch_model.bin
 create mode 100644 sentencepiece.bpe.model
 create mode 100644 special_tokens_map.json
 create mode 100644 tokenizer.json
 create mode 100644 tokenizer_config.json`,highlighted:`[main b08aab1] First model version
 7 files changed, 29027 insertions(+)
  6 files changed, 36 insertions(+)
 create mode 100644 config.json
 create mode 100644 pytorch_model.bin
 create mode 100644 sentencepiece.bpe.model
 create mode 100644 special_tokens_map.json
 create mode 100644 tokenizer.json
 create mode 100644 tokenizer_config.json`}}),{c(){w(d.$$.fragment)},l(c){P(d.$$.fragment,c)},m(c,_){M(d,c,_),m=!0},i(c){m||(E(d.$$.fragment,c),m=!0)},o(c){b(d.$$.fragment,c),m=!1},d(c){C(d,c)}}}function cb(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G;return{c(){d=s(`Si nous jetons un coup d'\u0153il au d\xE9p\xF4t du mod\xE8le, lorsque cette op\xE9ration est termin\xE9e, nous pouvons voir tous les fichiers r\xE9cemment ajout\xE9s :
`),m=l("div"),c=l("img"),$=p(),j=l("p"),I=s("L\u2019interface utilisateur vous permet d\u2019explorer les fichiers du mod\xE8le et les "),y=l("em"),T=s("commits"),F=s(" et de voir la diff\xE9rence introduite par chaque "),q=l("em"),h=s("commit"),z=s(" :"),L=p(),k=l("div"),D=l("img"),this.h()},l(g){d=r(g,`Si nous jetons un coup d'\u0153il au d\xE9p\xF4t du mod\xE8le, lorsque cette op\xE9ration est termin\xE9e, nous pouvons voir tous les fichiers r\xE9cemment ajout\xE9s :
`),m=i(g,"DIV",{class:!0});var A=n(m);c=i(A,"IMG",{src:!0,alt:!0,width:!0}),A.forEach(o),$=f(g),j=i(g,"P",{});var O=n(j);I=r(O,"L\u2019interface utilisateur vous permet d\u2019explorer les fichiers du mod\xE8le et les "),y=i(O,"EM",{});var U=n(y);T=r(U,"commits"),U.forEach(o),F=r(O," et de voir la diff\xE9rence introduite par chaque "),q=i(O,"EM",{});var Y=n(q);h=r(Y,"commit"),Y.forEach(o),z=r(O," :"),O.forEach(o),L=f(g),k=i(g,"DIV",{class:!0});var V=n(k);D=i(V,"IMG",{src:!0,alt:!0,width:!0}),V.forEach(o),this.h()},h(){rt(c.src,_="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model_tf.png")||v(c,"src",_),v(c,"alt","The 'Files and versions' tab now contains all the recently uploaded files."),v(c,"width","80%"),v(m,"class","flex justify-center"),rt(D.src,G="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffstf.gif")||v(D,"src",G),v(D,"alt","The diff introduced by the recent commit."),v(D,"width","80%"),v(k,"class","flex justify-center")},m(g,A){u(g,d,A),u(g,m,A),t(m,c),u(g,$,A),u(g,j,A),t(j,I),t(j,y),t(y,T),t(j,F),t(j,q),t(q,h),t(j,z),u(g,L,A),u(g,k,A),t(k,D)},d(g){g&&o(d),g&&o(m),g&&o($),g&&o(j),g&&o(L),g&&o(k)}}}function db(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G,g,A;return{c(){d=l("p"),m=s("Si nous jetons un coup d\u2019\u0153il au d\xE9p\xF4t du mod\xE8le, lorsque cette op\xE9ration est termin\xE9e, nous pouvons voir tous les fichiers r\xE9cemment ajout\xE9s :"),c=p(),_=l("div"),$=l("img"),I=p(),y=l("p"),T=s("L\u2019interface utilisateur vous permet d\u2019explorer les fichiers du mod\xE8le et les "),F=l("em"),q=s("commits"),h=s(" et de voir la diff\xE9rence introduite par chaque "),z=l("em"),L=s("commit"),k=s(" :"),D=p(),G=l("div"),g=l("img"),this.h()},l(O){d=i(O,"P",{});var U=n(d);m=r(U,"Si nous jetons un coup d\u2019\u0153il au d\xE9p\xF4t du mod\xE8le, lorsque cette op\xE9ration est termin\xE9e, nous pouvons voir tous les fichiers r\xE9cemment ajout\xE9s :"),U.forEach(o),c=f(O),_=i(O,"DIV",{class:!0});var Y=n(_);$=i(Y,"IMG",{src:!0,alt:!0,width:!0}),Y.forEach(o),I=f(O),y=i(O,"P",{});var V=n(y);T=r(V,"L\u2019interface utilisateur vous permet d\u2019explorer les fichiers du mod\xE8le et les "),F=i(V,"EM",{});var Z=n(F);q=r(Z,"commits"),Z.forEach(o),h=r(V," et de voir la diff\xE9rence introduite par chaque "),z=i(V,"EM",{});var Q=n(z);L=r(Q,"commit"),Q.forEach(o),k=r(V," :"),V.forEach(o),D=f(O),G=i(O,"DIV",{class:!0});var X=n(G);g=i(X,"IMG",{src:!0,alt:!0,width:!0}),X.forEach(o),this.h()},h(){rt($.src,j="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model.png")||v($,"src",j),v($,"alt","The 'Files and versions' tab now contains all the recently uploaded files."),v($,"width","80%"),v(_,"class","flex justify-center"),rt(g.src,A="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffs.gif")||v(g,"src",A),v(g,"alt","The diff introduced by the recent commit."),v(g,"width","80%"),v(G,"class","flex justify-center")},m(O,U){u(O,d,U),t(d,m),u(O,c,U),u(O,_,U),t(_,$),u(O,I,U),u(O,y,U),t(y,T),t(y,F),t(F,q),t(y,h),t(y,z),t(z,L),t(y,k),u(O,D,U),u(O,G,U),t(G,g)},d(O){O&&o(d),O&&o(c),O&&o(_),O&&o(I),O&&o(y),O&&o(D),O&&o(G)}}}function pb(S){let d,m,c,_,$,j,I,y,T,F,q,h,z,L,k,D,G,g,A,O,U,Y,V,Z,Q,X,pe,Te,se,fe,Fe,re,ee,ae,qe,K,Ie,ue,Ne,ce,ze,H,B,Pe,lt,Me,J,de,oe,Mt,Ce,x,R,ye,je,Ds,Ct,le,Ht,Ls,qo,me,ve,He,we,Gt,Rt,Os,ku,Nr,qu,zu,Ji,_e,yu,Hr,ju,wu,Gr,Pu,Mu,xs,Cu,Au,Rr,Du,Lu,Wi,zo,Xi,Ss,Ou,Zi,yo,Qi,it,xu,Ur,Su,Tu,jo,Fu,Iu,en,Ts,Nu,tn,Ge,Re,Fs,he,Hu,Vr,Gu,Ru,Br,Uu,Vu,Yr,Bu,Yu,Kr,Ku,Ju,on,Ut,Wu,Jr,Xu,Zu,sn,Ue,Ve,Is,te,Qu,Wr,ec,tc,Xr,oc,sc,Zr,rc,lc,Qr,ic,nc,el,ac,uc,tl,cc,dc,rn,wo,ln,nt,pc,ol,fc,mc,sl,vc,_c,nn,Po,an,Vt,hc,rl,gc,bc,un,Mo,cn,Bt,Ec,ll,$c,kc,dn,Co,pn,at,qc,il,zc,yc,nl,Ao,jc,wc,fn,Ns,Pc,mn,Hs,Yt,vn,ut,Mc,al,Cc,Ac,Kt,Dc,ul,Lc,Oc,_n,W,xc,cl,Sc,Tc,dl,Fc,Ic,Do,pl,Nc,Hc,fl,Gc,Rc,ml,Uc,Vc,Lo,vl,Bc,Yc,_l,Kc,Jc,hn,Gs,Wc,gn,At,Jt,hl,Oo,Xc,Rs,Zc,gl,Qc,bn,ge,ed,bl,td,od,El,sd,rd,$l,ld,id,kl,nd,ad,En,Ae,ud,ql,cd,dd,zl,pd,fd,yl,md,vd,$n,xo,kn,ct,_d,jl,hd,gd,wl,bd,Ed,qn,So,zn,Wt,$d,Pl,kd,qd,yn,dt,zd,Ml,yd,jd,Cl,wd,Pd,jn,To,wn,pt,Md,Al,Cd,Ad,Dl,Dd,Ld,Pn,Fo,Mn,ft,Od,Ll,xd,Sd,Ol,Td,Fd,Cn,mt,Us,xl,Id,Nd,Hd,Vs,Sl,Gd,Rd,Ud,be,Tl,Vd,Bd,Fl,Yd,Kd,Il,Jd,Wd,Nl,Xd,Zd,Hl,Qd,ep,An,Bs,tp,Dn,Dt,Xt,Gl,Io,op,Rl,sp,Ln,Zt,rp,Ul,lp,ip,On,Qt,np,No,ap,up,xn,Ho,Go,uv,Sn,Ys,cp,Tn,Ks,dp,Fn,Js,pp,In,Ro,Uo,cv,Nn,Ws,fp,Hn,Vo,Bo,dv,Gn,Xs,mp,Rn,De,vp,Vl,_p,hp,Bl,gp,bp,Yl,Ep,$p,Un,Yo,Ko,pv,Vn,Zs,kp,Bn,Lt,eo,Kl,Jo,qp,Jl,zp,Yn,vt,yp,Wl,jp,wp,Wo,Pp,Mp,Kn,_t,Cp,Xl,Ap,Dp,Zl,Lp,Op,Jn,Ot,to,Ql,Xo,xp,ei,Sp,Wn,ht,Tp,ti,Fp,Ip,oi,Np,Hp,Xn,Qs,Gp,Zn,Zo,Qn,Ee,Rp,si,Up,Vp,ri,Bp,Yp,li,Kp,Jp,ii,Wp,Xp,ea,oo,er,ni,Zp,Qp,ef,$e,ai,tf,of,ui,sf,rf,ci,lf,nf,di,af,uf,pi,cf,df,ta,xt,so,fi,Qo,pf,tr,ff,mi,mf,oa,ro,vf,vi,_f,hf,sa,lo,gf,es,bf,Ef,ra,or,$f,la,ts,ia,Le,kf,_i,qf,zf,hi,yf,jf,gi,wf,Pf,na,sr,Mf,aa,os,ua,gt,Cf,bi,Af,Df,ss,Lf,Of,ca,bt,xf,Ei,Sf,Tf,$i,Ff,If,da,rr,Nf,pa,rs,fa,io,Hf,ki,Gf,Rf,ma,ls,va,Oe,Uf,qi,Vf,Bf,zi,Yf,Kf,yi,Jf,Wf,_a,is,ha,no,Xf,ji,Zf,Qf,ga,St,ao,wi,ns,em,Pi,tm,ba,lr,om,Ea,uo,sm,as,rm,lm,$a,ir,im,ka,us,qa,cs,za,nr,nm,ya,ds,ja,Et,am,Mi,um,cm,Ci,dm,pm,wa,ps,Pa,$t,fm,Ai,mm,vm,Di,_m,hm,Ma,fs,Ca,ms,Aa,ie,gm,Li,bm,Em,Oi,$m,km,xi,qm,zm,Si,ym,jm,Ti,wm,Pm,Da,co,Mm,Fi,Cm,Am,La,po,Dm,Ii,Lm,Om,Oa,Be,Ye,ar,kt,xm,Ni,Sm,Tm,Hi,Fm,Im,xa,vs,Sa,Ke,Je,ur,fo,Ta,mo,Nm,Gi,Hm,Gm,Fa,_s,Ia,cr,Rm,Na,hs,Ha,We,Xe,dr,vo,Um,Ri,Vm,Bm,Ga,gs,Ra,Ze,Qe,pr,xe,Ym,Ui,Km,Jm,Vi,Wm,Xm,Bi,Zm,Qm,Ua,bs,Va,et,tt,fr,mr,ev,Ba,Es,Ya,$s,Ka,vr,Ja;c=new Hg({props:{fw:S[0]}}),y=new ko({});const fv=[Rg,Gg],ks=[];function mv(e,a){return e[0]==="pt"?0:1}z=mv(S),L=ks[z]=fv[z](S),Q=new av({props:{id:"9yY3RB_GSPM"}}),je=new ko({});const vv=[Vg,Ug],qs=[];function _v(e,a){return e[0]==="pt"?0:1}me=_v(S),ve=qs[me]=vv[me](S),zo=new N({props:{code:`from huggingface_hub import notebook_login

notebook_login()`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

notebook_login()`}}),yo=new N({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}});const hv=[Yg,Bg],zs=[];function gv(e,a){return e[0]==="pt"?0:1}Ge=gv(S),Re=zs[Ge]=hv[Ge](S);const bv=[Jg,Kg],ys=[];function Ev(e,a){return e[0]==="pt"?0:1}Ue=Ev(S),Ve=ys[Ue]=bv[Ue](S),wo=new N({props:{code:'model.push_to_hub("dummy-model")',highlighted:'model.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)'}}),Po=new N({props:{code:'tokenizer.push_to_hub("dummy-model")',highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)'}}),Mo=new N({props:{code:'tokenizer.push_to_hub("dummy-model", organization="huggingface")',highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>)'}}),Co=new N({props:{code:'tokenizer.push_to_hub("dummy-model", organization="huggingface", use_auth_token="<TOKEN>")',highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>, use_auth_token=<span class="hljs-string">&quot;&lt;TOKEN&gt;&quot;</span>)'}});function $v(e,a){return e[0]==="pt"?Xg:Wg}let Wa=$v(S),Tt=Wa(S);Yt=new Og({props:{$$slots:{default:[Zg]},$$scope:{ctx:S}}}),Oo=new ko({}),xo=new N({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),So=new N({props:{code:`from huggingface_hub import (
    # Gestion des utilisateurs
    login,
    logout,
    whoami,

    # Cr\xE9ation et gestion du d\xE9p\xF4t
    create_repo,
    delete_repo,
    update_repo_visibility,

    # Et quelques m\xE9thodes pour r\xE9cup\xE9rer/changer des informations sur le contenu
    list_models,
    list_datasets,
    list_metrics,
    list_repo_files,
    upload_file,
    delete_file,
)`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> (
    <span class="hljs-comment"># Gestion des utilisateurs</span>
    login,
    logout,
    whoami,

    <span class="hljs-comment"># Cr\xE9ation et gestion du d\xE9p\xF4t</span>
    create_repo,
    delete_repo,
    update_repo_visibility,

    <span class="hljs-comment"># Et quelques m\xE9thodes pour r\xE9cup\xE9rer/changer des informations sur le contenu</span>
    list_models,
    list_datasets,
    list_metrics,
    list_repo_files,
    upload_file,
    delete_file,
)`}}),To=new N({props:{code:`from huggingface_hub import create_repo

create_repo("dummy-model")`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> create_repo

create_repo(<span class="hljs-string">&quot;dummy-model&quot;</span>)`}}),Fo=new N({props:{code:`from huggingface_hub import create_repo

create_repo("dummy-model", organization="huggingface")`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> create_repo

create_repo(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>)`}}),Io=new ko({}),Jo=new ko({}),Xo=new ko({}),Zo=new N({props:{code:`from huggingface_hub import upload_file

upload_file(
    "<path_to_file>/config.json",
    path_in_repo="config.json",
    repo_id="<namespace>/dummy-model",
)`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> upload_file

upload_file(
    <span class="hljs-string">&quot;&lt;path_to_file&gt;/config.json&quot;</span>,
    path_in_repo=<span class="hljs-string">&quot;config.json&quot;</span>,
    repo_id=<span class="hljs-string">&quot;&lt;namespace&gt;/dummy-model&quot;</span>,
)`}}),Qo=new ko({}),ts=new N({props:{code:`from huggingface_hub import Repository

repo = Repository("<path_to_dummy_folder>", clone_from="<namespace>/dummy-model")`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> Repository

repo = Repository(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>, clone_from=<span class="hljs-string">&quot;&lt;namespace&gt;/dummy-model&quot;</span>)`}}),os=new N({props:{code:`repo.git_pull()
repo.git_add()
repo.git_commit()
repo.git_push()
repo.git_tag()`,highlighted:`repo.git_pull()
repo.git_add()
repo.git_commit()
repo.git_push()
repo.git_tag()`}}),rs=new N({props:{code:"repo.git_pull()",highlighted:"repo.git_pull()"}}),ls=new N({props:{code:`model.save_pretrained("<path_to_dummy_folder>")
tokenizer.save_pretrained("<path_to_dummy_folder>")`,highlighted:`model.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)
tokenizer.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)`}}),is=new N({props:{code:`repo.git_add()
repo.git_commit("Add model and tokenizer files")
repo.git_push()`,highlighted:`repo.git_add()
repo.git_commit(<span class="hljs-string">&quot;Add model and tokenizer files&quot;</span>)
repo.git_push()`}}),ns=new ko({}),us=new N({props:{code:"git lfs install",highlighted:"git lfs install"}}),cs=new N({props:{code:`Updated git hooks.
Git LFS initialized.`,highlighted:`Updated git hooks.
Git LFS initialized.`}}),ds=new N({props:{code:"git clone https://huggingface.co/<namespace>/<your-model-id>",highlighted:'git <span class="hljs-built_in">clone</span> https://huggingface.co/&lt;namespace&gt;/&lt;your-model-id&gt;'}}),ps=new N({props:{code:"git clone https://huggingface.co/lysandre/dummy",highlighted:'git clone https:<span class="hljs-regexp">//</span>huggingface.co<span class="hljs-regexp">/lysandre/</span>dummy'}}),fs=new N({props:{code:"cd dummy && ls",highlighted:'<span class="hljs-built_in">cd</span> dummy &amp;&amp; <span class="hljs-built_in">ls</span>'}}),ms=new N({props:{code:"README.md",highlighted:"README.md"}});const kv=[eb,Qg],js=[];function qv(e,a){return e[0]==="pt"?0:1}Be=qv(S),Ye=js[Be]=kv[Be](S),vs=new N({props:{code:"ls",highlighted:'<span class="hljs-built_in">ls</span>'}});const zv=[ob,tb],ws=[];function yv(e,a){return e[0]==="pt"?0:1}Ke=yv(S),Je=ws[Ke]=zv[Ke](S),fo=new Og({props:{$$slots:{default:[sb]},$$scope:{ctx:S}}}),_s=new N({props:{code:"git add .",highlighted:"git add ."}}),hs=new N({props:{code:"git status",highlighted:"git status"}});const jv=[lb,rb],Ps=[];function wv(e,a){return e[0]==="pt"?0:1}We=wv(S),Xe=Ps[We]=jv[We](S),gs=new N({props:{code:"git lfs status",highlighted:"git lfs status"}});const Pv=[nb,ib],Ms=[];function Mv(e,a){return e[0]==="pt"?0:1}Ze=Mv(S),Qe=Ms[Ze]=Pv[Ze](S),bs=new N({props:{code:'git commit -m "First model version"',highlighted:'git commit -m <span class="hljs-string">&quot;First model version&quot;</span>'}});const Cv=[ub,ab],Cs=[];function Av(e,a){return e[0]==="pt"?0:1}et=Av(S),tt=Cs[et]=Cv[et](S),Es=new N({props:{code:"git push",highlighted:"git push"}}),$s=new N({props:{code:`Uploading LFS objects: 100% (1/1), 433 MB | 1.3 MB/s, done.
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 288.27 KiB | 6.27 MiB/s, done.
Total 9 (delta 1), reused 0 (delta 0), pack-reused 0
To https://huggingface.co/lysandre/dummy
   891b41d..b08aab1  main -> main`,highlighted:`Uploading LFS objects: 100% (1/1), 433 MB | 1.3 MB/s, <span class="hljs-keyword">done</span>.
Enumerating objects: 11, <span class="hljs-keyword">done</span>.
Counting objects: 100% (11/11), <span class="hljs-keyword">done</span>.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), <span class="hljs-keyword">done</span>.
Writing objects: 100% (9/9), 288.27 KiB | 6.27 MiB/s, <span class="hljs-keyword">done</span>.
Total 9 (delta 1), reused 0 (delta 0), pack-reused 0
To https://huggingface.co/lysandre/dummy
   891b41d..b08aab1  main -&gt; main`}});function Dv(e,a){return e[0]==="pt"?db:cb}let Xa=Dv(S),Ft=Xa(S);return{c(){d=l("meta"),m=p(),w(c.$$.fragment),_=p(),$=l("h1"),j=l("a"),I=l("span"),w(y.$$.fragment),T=p(),F=l("span"),q=s("Partage de mod\xE8les pr\xE9-entra\xEEn\xE9s"),h=p(),L.c(),k=p(),D=l("p"),G=s("Dans les \xE9tapes ci-dessous, nous allons examiner les moyens les plus simples de partager des mod\xE8les pr\xE9-entra\xEEn\xE9s sur le \u{1F917} "),g=l("em"),A=s("Hub"),O=s(". Il existe des outils et des services disponibles qui permettent de simplifier le partage et la mise \xE0 jour des mod\xE8les directement sur le "),U=l("em"),Y=s("Hub"),V=s(", que nous allons explorer ci-dessous."),Z=p(),w(Q.$$.fragment),X=p(),pe=l("p"),Te=s("Nous encourageons tous les utilisateurs qui entra\xEEnent des mod\xE8les \xE0 contribuer en les partageant avec la communaut\xE9. Le partage des mod\xE8les, m\xEAme s\u2019ils ont \xE9t\xE9 entra\xEEn\xE9s sur des jeux de donn\xE9es tr\xE8s sp\xE9cifiques, aidera les autres, en leur faisant gagner du temps, des ressources de calcul et en leur donnant acc\xE8s \xE0 des artefacts entra\xEEn\xE9s utiles. \xC0 votre tour, vous pourrez b\xE9n\xE9ficier du travail effectu\xE9 par les autres !"),se=p(),fe=l("p"),Fe=s("Il y a trois fa\xE7ons de cr\xE9er de nouveaux d\xE9p\xF4ts de mod\xE8les :"),re=p(),ee=l("ul"),ae=l("li"),qe=s("en utilisant l\u2019API "),K=l("code"),Ie=s("push_to_hub"),ue=s(","),Ne=p(),ce=l("li"),ze=s("en utilisant la biblioth\xE8que Python "),H=l("code"),B=s("huggingface_hub"),Pe=s(","),lt=p(),Me=l("li"),J=s("en utilisant l\u2019interface web."),de=p(),oe=l("p"),Mt=s("Une fois que vous avez cr\xE9\xE9 un d\xE9p\xF4t, vous pouvez y charger des fichiers via git et git-lfs. Nous allons vous guider dans la cr\xE9ation de d\xE9p\xF4ts de mod\xE8les et le t\xE9l\xE9chargement de fichiers dans les sections suivantes."),Ce=p(),x=l("h2"),R=l("a"),ye=l("span"),w(je.$$.fragment),Ds=p(),Ct=l("span"),le=s("Utilisation de l'API "),Ht=l("code"),Ls=s("push_to_hub"),qo=p(),ve.c(),He=p(),we=l("p"),Gt=s("La fa\xE7on la plus simple de t\xE9l\xE9charger des fichiers vers le "),Rt=l("em"),Os=s("Hub"),ku=s(" est d\u2019utiliser l\u2019API "),Nr=l("code"),qu=s("push_to_hub"),zu=s("."),Ji=p(),_e=l("p"),yu=s("Avant d\u2019aller plus loin, vous devrez g\xE9n\xE9rer un jeton d\u2019authentification afin que l\u2019API "),Hr=l("code"),ju=s("huggingface_hub"),wu=s(" sache qui vous \xEAtes et \xE0 quels espaces de noms vous avez acc\xE8s en \xE9criture. Assurez-vous que vous \xEAtes dans un environnement o\xF9 vous avez install\xE9 "),Gr=l("code"),Pu=s("transformers"),Mu=s(" (voir la "),xs=l("a"),Cu=s("Configuration"),Au=s("). Si vous \xEAtes dans un "),Rr=l("em"),Du=s("notebook"),Lu=s(", vous pouvez utiliser la fonction suivante pour vous connecter :"),Wi=p(),w(zo.$$.fragment),Xi=p(),Ss=l("p"),Ou=s("Dans un terminal, vous pouvez ex\xE9cuter :"),Zi=p(),w(yo.$$.fragment),Qi=p(),it=l("p"),xu=s("Dans les deux cas, vous serez invit\xE9 \xE0 saisir votre nom d\u2019utilisateur et votre mot de passe, qui sont les m\xEAmes que ceux que vous utilisez pour vous connecter au "),Ur=l("em"),Su=s("Hub"),Tu=s(". Si vous n\u2019avez pas encore de profil pour le Hub, vous devez en cr\xE9er un "),jo=l("a"),Fu=s("ici"),Iu=s("."),en=p(),Ts=l("p"),Nu=s("Super ! Votre jeton d\u2019authentification est maintenant stock\xE9 dans votre dossier de cache. Cr\xE9ons quelques d\xE9p\xF4ts !"),tn=p(),Re.c(),Fs=p(),he=l("p"),Hu=s("A un niveau inf\xE9rieur, l\u2019acc\xE8s au "),Vr=l("em"),Gu=s("Hub"),Ru=s(" peut \xEAtre fait directement sur les mod\xE8les, les "),Br=l("em"),Uu=s("tokenizers"),Vu=s(" et les objets de configuration via leur m\xE9thode "),Yr=l("code"),Bu=s("push_to_hub()"),Yu=s(". Cette m\xE9thode s\u2019occupe \xE0 la fois de la cr\xE9ation du d\xE9p\xF4t et de l\u2019envoi les fichiers du mod\xE8le et du "),Kr=l("em"),Ku=s("tokenizer"),Ju=s(" directement dans le d\xE9p\xF4t. Aucune manipulation manuelle n\u2019est n\xE9cessaire, contrairement \xE0 l\u2019API que nous verrons plus loin."),on=p(),Ut=l("p"),Wu=s("Pour avoir une id\xE9e de son fonctionnement, commen\xE7ons par initialiser un mod\xE8le et un "),Jr=l("em"),Xu=s("tokenizer"),Zu=s(" :"),sn=p(),Ve.c(),Is=p(),te=l("p"),Qu=s("Vous \xEAtes libre de faire ce que vous voulez avec ces objets : ajouter des "),Wr=l("em"),ec=s("tokens"),tc=s(" au "),Xr=l("em"),oc=s("tokenizer"),sc=s(", entra\xEEner le mod\xE8le, le "),Zr=l("em"),rc=s("finetuner"),lc=s(". Une fois que vous \xEAtes satisfait du mod\xE8le, des poids et du "),Qr=l("em"),ic=s("tokenizer"),nc=s(" obtenus, vous pouvez utiliser la m\xE9thode "),el=l("code"),ac=s("push_to_hub()"),uc=s(" directement disponible sur l\u2019objet "),tl=l("code"),cc=s("model"),dc=s(" :"),rn=p(),w(wo.$$.fragment),ln=p(),nt=l("p"),pc=s("Cela va cr\xE9er le nouveau d\xE9p\xF4t "),ol=l("code"),fc=s("dummy-model"),mc=s(` dans votre profil et le remplir avec les fichiers du mod\xE8le.
Faites la m\xEAme chose avec le `),sl=l("em"),vc=s("tokenizer"),_c=s(", de sorte que tous les fichiers sont maintenant disponibles dans ce d\xE9p\xF4t :"),nn=p(),w(Po.$$.fragment),an=p(),Vt=l("p"),hc=s("Si vous appartenez \xE0 une organisation, il suffit de sp\xE9cifier l\u2019argument "),rl=l("code"),gc=s("organization"),bc=s(" pour t\xE9l\xE9charger dans l\u2019espace de cette organisation :"),un=p(),w(Mo.$$.fragment),cn=p(),Bt=l("p"),Ec=s("Si vous souhaitez utiliser un jeton Hugging Face sp\xE9cifique, vous pouvez \xE9galement le sp\xE9cifier \xE0 la m\xE9thode "),ll=l("code"),$c=s("push_to_hub()"),kc=s(" :"),dn=p(),w(Co.$$.fragment),pn=p(),at=l("p"),qc=s("Maintenant, dirigez-vous sur "),il=l("em"),zc=s("Hub"),yc=s(" pour trouver votre mod\xE8le nouvellement t\xE9l\xE9charg\xE9 : "),nl=l("em"),Ao=l("a"),jc=s("https://huggingface.co/user-or-organization/dummy-model"),wc=s("."),fn=p(),Ns=l("p"),Pc=s("Cliquez sur l\u2019onglet \xAB Fichiers et versions \xBB et vous devriez voir les fichiers visibles dans la capture d\u2019\xE9cran suivante :"),mn=p(),Tt.c(),Hs=p(),w(Yt.$$.fragment),vn=p(),ut=l("p"),Mc=s("Comme vous l\u2019avez vu, la m\xE9thode "),al=l("code"),Cc=s("push_to_hub()"),Ac=s(" accepte plusieurs arguments, ce qui permet de t\xE9l\xE9charger vers un d\xE9p\xF4t ou un espace d\u2019organisation sp\xE9cifique, ou d\u2019utiliser un jeton d\u2019API diff\xE9rent. Nous vous recommandons de jeter un coup d\u2019\u0153il \xE0 la sp\xE9cification de la m\xE9thode disponible directement dans la documentation de "),Kt=l("a"),Dc=s("\u{1F917} "),ul=l("em"),Lc=s("Transformers"),Oc=s(" pour avoir une id\xE9e de ce qui est possible."),_n=p(),W=l("p"),xc=s("La m\xE9thode "),cl=l("code"),Sc=s("push_to_hub()"),Tc=s(" est soutenue par le "),dl=l("em"),Fc=s("package"),Ic=s(" Python "),Do=l("a"),pl=l("code"),Nc=s("huggingface_hub"),Hc=s(", qui offre une API directe au "),fl=l("em"),Gc=s("Hub"),Rc=s(". C\u2019est int\xE9gr\xE9 \xE0 \u{1F917} "),ml=l("em"),Uc=s("Transformers"),Vc=s(" et \xE0 plusieurs autres biblioth\xE8ques d\u2019apprentissage automatique, comme "),Lo=l("a"),vl=l("code"),Bc=s("allenlp"),Yc=s(". Bien que nous nous concentrions sur l\u2019int\xE9gration via \u{1F917} "),_l=l("em"),Kc=s("Transformers"),Jc=s(" dans ce chapitre, son int\xE9gration dans votre propre code ou biblioth\xE8que est simple."),hn=p(),Gs=l("p"),Wc=s("Passez \xE0 la derni\xE8re section pour voir comment t\xE9l\xE9charger des fichiers dans votre d\xE9p\xF4t nouvellement cr\xE9\xE9 !"),gn=p(),At=l("h2"),Jt=l("a"),hl=l("span"),w(Oo.$$.fragment),Xc=p(),Rs=l("span"),Zc=s("Utilisation de la biblioth\xE8que Python "),gl=l("code"),Qc=s("huggingface_hub"),bn=p(),ge=l("p"),ed=s("La biblioth\xE8que Python "),bl=l("code"),td=s("huggingface_hub"),od=s(" est un "),El=l("em"),sd=s("package"),rd=s(" qui offre un ensemble d\u2019outils pour les hubs des mod\xE8les et des jeux de donn\xE9es. Elle fournit des m\xE9thodes et des classes simples pour des t\xE2ches courantes telles qu\u2019obtenir et g\xE9rer des informations \xE0 propos des d\xE9p\xF4ts sur le "),$l=l("em"),ld=s("Hub"),id=s(". Elle fournit des APIs simples qui fonctionnent au-dessus de git pour g\xE9rer le contenu de ces d\xE9p\xF4ts et pour int\xE9grer le "),kl=l("em"),nd=s("Hub"),ad=s(" dans vos projets et biblioth\xE8ques."),En=p(),Ae=l("p"),ud=s("De la m\xEAme mani\xE8re que pour l\u2019utilisation de l\u2019API "),ql=l("code"),cd=s("push_to_hub"),dd=s(", vous devrez avoir votre jeton d\u2019API enregistr\xE9 dans votre cache. Pour ce faire, vous devrez utiliser la commande "),zl=l("code"),pd=s("login"),fd=s(" de la CLI, comme mentionn\xE9 dans la section pr\xE9c\xE9dente (encore une fois, assurez-vous de faire pr\xE9c\xE9der ces commandes du caract\xE8re "),yl=l("code"),md=s("!"),vd=s(" si vous les ex\xE9cutez dans Google Colab) :"),$n=p(),w(xo.$$.fragment),kn=p(),ct=l("p"),_d=s("Le "),jl=l("em"),hd=s("package"),gd=p(),wl=l("code"),bd=s("huggingface_hub"),Ed=s(" offre plusieurs m\xE9thodes et classes qui sont utiles pour notre objectif. Tout d\u2019abord, il y a quelques m\xE9thodes pour g\xE9rer la cr\xE9ation, la suppression des d\xE9p\xF4ts, et autres :"),qn=p(),w(So.$$.fragment),zn=p(),Wt=l("p"),$d=s("De plus, elle offre la tr\xE8s puissante classe "),Pl=l("code"),kd=s("Repository"),qd=s(" pour g\xE9rer un d\xE9p\xF4t local. Nous allons explorer ces m\xE9thodes et cette classe dans les prochaines sections pour comprendre comment les exploiter."),yn=p(),dt=l("p"),zd=s("La m\xE9thode "),Ml=l("code"),yd=s("create_repo"),jd=s(" peut \xEAtre utilis\xE9e pour cr\xE9er un nouveau d\xE9p\xF4t sur le "),Cl=l("em"),wd=s("Hub"),Pd=s(" :"),jn=p(),w(To.$$.fragment),wn=p(),pt=l("p"),Md=s("Ceci cr\xE9era le d\xE9p\xF4t "),Al=l("code"),Cd=s("dummy-model"),Ad=s(" dans votre espace. Si vous le souhaitez, vous pouvez sp\xE9cifier \xE0 quelle organisation le d\xE9p\xF4t doit appartenir en utilisant l\u2019argument "),Dl=l("code"),Dd=s("organization"),Ld=s(" :"),Pn=p(),w(Fo.$$.fragment),Mn=p(),ft=l("p"),Od=s("Cela cr\xE9era le d\xE9p\xF4t "),Ll=l("code"),xd=s("dummy-model"),Sd=s(" dans l\u2019espace de nom "),Ol=l("code"),Td=s("huggingface"),Fd=s(`, en supposant que vous appartenez \xE0 cette organisation.
D\u2019autres arguments qui peuvent \xEAtre utiles sont :`),Cn=p(),mt=l("ul"),Us=l("li"),xl=l("code"),Id=s("private"),Nd=s(", afin de sp\xE9cifier si le d\xE9p\xF4t doit \xEAtre visible des autres ou non,"),Hd=p(),Vs=l("li"),Sl=l("code"),Gd=s("token"),Rd=s(", si vous voulez remplacer le jeton stock\xE9 dans votre cache par un jeton donn\xE9,"),Ud=p(),be=l("li"),Tl=l("code"),Vd=s("repo_type"),Bd=s(", si vous souhaitez cr\xE9er un "),Fl=l("code"),Yd=s("dataset"),Kd=s(" ou un "),Il=l("code"),Jd=s("space"),Wd=s(" au lieu d\u2019un mod\xE8le. Les valeurs accept\xE9es sont "),Nl=l("code"),Xd=s('"dataset"'),Zd=s(" et "),Hl=l("code"),Qd=s('"space"'),ep=s("."),An=p(),Bs=l("p"),tp=s("Une fois que le d\xE9p\xF4t est cr\xE9\xE9, nous devons y ajouter des fichiers ! Passez \xE0 la section suivante pour voir les trois fa\xE7ons dont cela peut \xEAtre g\xE9r\xE9."),Dn=p(),Dt=l("h2"),Xt=l("a"),Gl=l("span"),w(Io.$$.fragment),op=p(),Rl=l("span"),sp=s("Utilisation de l'interface web"),Ln=p(),Zt=l("p"),rp=s("L\u2019interface web offre des outils pour g\xE9rer les d\xE9p\xF4ts directement dans le "),Ul=l("em"),lp=s("Hub"),ip=s(". En utilisant l\u2019interface, vous pouvez facilement cr\xE9er des d\xE9p\xF4ts, ajouter des fichiers (m\xEAme de grande taille !), explorer des mod\xE8les, visualiser les diff\xE9rences, et bien plus encore."),On=p(),Qt=l("p"),np=s("Pour cr\xE9er un nouveau d\xE9p\xF4t, visitez "),No=l("a"),ap=s("huggingface.co/new"),up=s(" :"),xn=p(),Ho=l("div"),Go=l("img"),Sn=p(),Ys=l("p"),cp=s("Tout d\u2019abord, indiquez le propri\xE9taire du d\xE9p\xF4t : il peut s\u2019agir de vous ou de l\u2019une des organisations auxquelles vous \xEAtes affili\xE9. Si vous choisissez une organisation, le mod\xE8le sera pr\xE9sent\xE9 sur la page de l\u2019organisation et chaque membre de l\u2019organisation aura la possibilit\xE9 de contribuer au d\xE9p\xF4t."),Tn=p(),Ks=l("p"),dp=s("Ensuite, saisissez le nom de votre mod\xE8le. Ce sera \xE9galement le nom du d\xE9p\xF4t. Enfin, vous pouvez pr\xE9ciser si vous souhaitez que votre mod\xE8le soit public ou priv\xE9. Les mod\xE8les priv\xE9s sont cach\xE9s de la vue du public."),Fn=p(),Js=l("p"),pp=s("Apr\xE8s avoir cr\xE9\xE9 votre d\xE9p\xF4t de mod\xE8les, vous devriez voir une page comme celle-ci :"),In=p(),Ro=l("div"),Uo=l("img"),Nn=p(),Ws=l("p"),fp=s("C\u2019est l\xE0 que votre mod\xE8le sera h\xE9berg\xE9. Pour commencer \xE0 le remplir, vous pouvez ajouter un fichier README directement depuis l\u2019interface web."),Hn=p(),Vo=l("div"),Bo=l("img"),Gn=p(),Xs=l("p"),mp=s("Le fichier README est en Markdown. N\u2019h\xE9sitez pas \xE0 vous l\xE2cher avec lui ! La troisi\xE8me partie de ce chapitre est consacr\xE9e \xE0 la construction d\u2019une carte de mod\xE8le. Celles-ci sont d\u2019une importance capitale pour valoriser votre mod\xE8le, car c\u2019est par elles que vous indiquez aux autres ce qu\u2019il peut faire."),Rn=p(),De=l("p"),vp=s("Si vous regardez l\u2019onglet \xAB "),Vl=l("em"),_p=s("Files and versions"),hp=s(" \xBB, vous verrez qu\u2019il n\u2019y a pas encore beaucoup de fichiers : juste le "),Bl=l("em"),gp=s("README.md"),bp=s(" que vous venez de cr\xE9er et le fichier "),Yl=l("em"),Ep=s(".gitattributes"),$p=s(" qui garde la trace des gros fichiers."),Un=p(),Yo=l("div"),Ko=l("img"),Vn=p(),Zs=l("p"),kp=s("Nous allons maintenant voir comment ajouter de nouveaux fichiers."),Bn=p(),Lt=l("h2"),eo=l("a"),Kl=l("span"),w(Jo.$$.fragment),qp=p(),Jl=l("span"),zp=s("T\xE9l\xE9chargement des fichiers du mod\xE8le"),Yn=p(),vt=l("p"),yp=s("Le syst\xE8me de gestion des fichiers sur le "),Wl=l("em"),jp=s("Hub"),wp=s(" est bas\xE9 sur git pour les fichiers ordinaires et git-lfs (qui signifie "),Wo=l("a"),Pp=s("Git Large File Storage"),Mp=s(") pour les fichiers plus importants."),Kn=p(),_t=l("p"),Cp=s("Dans la section suivante, nous passons en revue trois fa\xE7ons diff\xE9rentes de t\xE9l\xE9charger des fichiers sur le "),Xl=l("em"),Ap=s("Hub"),Dp=s(" : par "),Zl=l("code"),Lp=s("huggingface_hub"),Op=s(" et par des commandes git."),Jn=p(),Ot=l("h3"),to=l("a"),Ql=l("span"),w(Xo.$$.fragment),xp=p(),ei=l("span"),Sp=s("L'approche `upload_file'"),Wn=p(),ht=l("p"),Tp=s("L\u2019utilisation de "),ti=l("code"),Fp=s("upload_file"),Ip=s(" ne n\xE9cessite pas que git et git-lfs soient install\xE9s sur votre syst\xE8me. Il pousse les fichiers directement vers le \u{1F917} "),oi=l("em"),Np=s("Hub"),Hp=s(` en utilisant des requ\xEAtes HTTP POST. Une limitation de cette approche est qu\u2019elle ne g\xE8re pas les fichiers dont la taille est sup\xE9rieure \xE0 5 Go.
Si vos fichiers ont une taille sup\xE9rieure \xE0 5 Go, veuillez suivre les deux autres m\xE9thodes d\xE9taill\xE9es ci-dessous.`),Xn=p(),Qs=l("p"),Gp=s("L\u2019API peut \xEAtre utilis\xE9e comme suit :"),Zn=p(),w(Zo.$$.fragment),Qn=p(),Ee=l("p"),Rp=s("Ceci t\xE9l\xE9chargera le fichier "),si=l("code"),Up=s("config.json"),Vp=s(" disponible \xE0 "),ri=l("code"),Bp=s("<path_to_file>"),Yp=s(" \xE0 la racine du d\xE9p\xF4t en tant que "),li=l("code"),Kp=s("config.json"),Jp=s(", vers le d\xE9p\xF4t "),ii=l("code"),Wp=s("dummy-model"),Xp=s(`.
D\u2019autres arguments qui peuvent \xEAtre utiles sont :`),ea=p(),oo=l("ul"),er=l("li"),ni=l("code"),Zp=s("token"),Qp=s(", si vous souhaitez remplacer le jeton stock\xE9 dans votre cache par un jeton donn\xE9,"),ef=p(),$e=l("li"),ai=l("code"),tf=s("repo_type"),of=s(", si vous souhaitez t\xE9l\xE9charger vers un "),ui=l("code"),sf=s("dataset"),rf=s(" ou un "),ci=l("code"),lf=s("space"),nf=s(" au lieu d\u2019un mod\xE8le. Les valeurs accept\xE9es sont "),di=l("code"),af=s('"dataset"'),uf=s(" et "),pi=l("code"),cf=s('"space"'),df=s("."),ta=p(),xt=l("h3"),so=l("a"),fi=l("span"),w(Qo.$$.fragment),pf=p(),tr=l("span"),ff=s("La classe "),mi=l("code"),mf=s("Repository"),oa=p(),ro=l("p"),vf=s("La classe "),vi=l("code"),_f=s("Repository"),hf=s(" g\xE8re un d\xE9p\xF4t local d\u2019une mani\xE8re similaire \xE0 git. Elle abstrait la plupart des probl\xE8mes que l\u2019on peut rencontrer avec git pour fournir toutes les fonctionnalit\xE9s dont nous avons besoin."),sa=p(),lo=l("p"),gf=s("L\u2019utilisation de cette classe n\xE9cessite l\u2019installation de git et de git-lfs, donc assurez-vous que git-lfs est install\xE9 (voir "),es=l("a"),bf=s("ici"),Ef=s(" pour les instructions d\u2019installation) et configur\xE9 avant de commencer."),ra=p(),or=l("p"),$f=s("Afin de commencer \xE0 jouer avec le d\xE9p\xF4t que nous venons de cr\xE9er, nous pouvons commencer par l\u2019initialiser dans un dossier local en clonant le d\xE9p\xF4t distant :"),la=p(),w(ts.$$.fragment),ia=p(),Le=l("p"),kf=s("Cela a cr\xE9\xE9 le dossier "),_i=l("code"),qf=s("<path_to_dummy_folder>"),zf=s(" dans notre r\xE9pertoire de travail. Ce dossier ne contient que le fichier "),hi=l("code"),yf=s(".gitattributes"),jf=s(" car c\u2019est le seul fichier cr\xE9\xE9 lors de l\u2019instanciation du d\xE9p\xF4t par "),gi=l("code"),wf=s("create_repo"),Pf=s("."),na=p(),sr=l("p"),Mf=s("A partir de maintenant, nous pouvons utiliser plusieurs des m\xE9thodes traditionnelles de git :"),aa=p(),w(os.$$.fragment),ua=p(),gt=l("p"),Cf=s("Et d\u2019autres encore ! Nous vous recommandons de jeter un coup d\u2019\u0153il  \xE0 la documentation de "),bi=l("code"),Af=s("Repository"),Df=s(" disponible "),ss=l("a"),Lf=s("ici"),Of=s(" pour une vue d\u2019ensemble de toutes les m\xE9thodes disponibles."),ca=p(),bt=l("p"),xf=s("Actuellement, nous avons un mod\xE8le et un "),Ei=l("em"),Sf=s("tokenizer"),Tf=s(" que nous voulons pousser vers le "),$i=l("em"),Ff=s("Hub"),If=s(". Nous avons r\xE9ussi \xE0 cloner le d\xE9p\xF4t, nous pouvons donc enregistrer les fichiers dans ce d\xE9p\xF4t."),da=p(),rr=l("p"),Nf=s("Nous nous assurons d\u2019abord que notre clone local est \xE0 jour en r\xE9cup\xE9rant les derni\xE8res modifications :"),pa=p(),w(rs.$$.fragment),fa=p(),io=l("p"),Hf=s("Une fois que c\u2019est fait, nous sauvegardons les fichiers du mod\xE8le et du "),ki=l("em"),Gf=s("tokenizer"),Rf=s(" :"),ma=p(),w(ls.$$.fragment),va=p(),Oe=l("p"),Uf=s("Le "),qi=l("code"),Vf=s("<path_to_dummy_folder>"),Bf=s(" contient maintenant tous les fichiers du mod\xE8le et du "),zi=l("em"),Yf=s("tokenizer"),Kf=s(". Nous suivons le flux de travail git habituel en ajoutant des fichiers \xE0 la zone de transit, en les validant et en les poussant vers le "),yi=l("em"),Jf=s("Hub"),Wf=s(" :"),_a=p(),w(is.$$.fragment),ha=p(),no=l("p"),Xf=s("F\xE9licitations ! Vous venez de pousser vos premiers fichiers sur le "),ji=l("em"),Zf=s("Hub"),Qf=s("."),ga=p(),St=l("h3"),ao=l("a"),wi=l("span"),w(ns.$$.fragment),em=p(),Pi=l("span"),tm=s("L'approche bas\xE9e sur git"),ba=p(),lr=l("p"),om=s("Il s\u2019agit de l\u2019approche la plus basique pour t\xE9l\xE9charger des fichiers : nous le ferons directement avec git et git-lfs. La plupart des difficult\xE9s sont abstraites par les approches pr\xE9c\xE9dentes, mais il y a quelques r\xE9serves avec la m\xE9thode suivante, nous allons donc suivre un cas d\u2019utilisation plus complexe."),Ea=p(),uo=l("p"),sm=s("L\u2019utilisation de cette classe n\xE9cessite l\u2019installation de git et de git-lfs, donc assurez-vous d\u2019avoir "),as=l("a"),rm=s("git-lfs"),lm=s(" install\xE9 et configur\xE9 avant de commencer."),$a=p(),ir=l("p"),im=s("Commencez par initialiser git-lfs :"),ka=p(),w(us.$$.fragment),qa=p(),w(cs.$$.fragment),za=p(),nr=l("p"),nm=s("Une fois que c\u2019est fait, la premi\xE8re \xE9tape consiste \xE0 cloner votre d\xE9p\xF4t de mod\xE8les :"),ya=p(),w(ds.$$.fragment),ja=p(),Et=l("p"),am=s("Mon nom d\u2019utilisateur est "),Mi=l("code"),um=s("lysandre"),cm=s(" et j\u2019ai utilis\xE9 le nom de mod\xE8le "),Ci=l("code"),dm=s("dummy"),pm=s(", donc pour moi la commande ressemble \xE0 ce qui suit :"),wa=p(),w(ps.$$.fragment),Pa=p(),$t=l("p"),fm=s("J\u2019ai maintenant un dossier nomm\xE9 "),Ai=l("em"),mm=s("dummy"),vm=s(" dans mon r\xE9pertoire de travail. Je peux "),Di=l("code"),_m=s("cd"),hm=s(" dans ce dossier et jeter un coup d\u2019oeil \xE0 son contenu :"),Ma=p(),w(fs.$$.fragment),Ca=p(),w(ms.$$.fragment),Aa=p(),ie=l("p"),gm=s("Si vous venez de cr\xE9er votre d\xE9p\xF4t en utilisant la m\xE9thode "),Li=l("code"),bm=s("create_repo"),Em=s(" du "),Oi=l("em"),$m=s("Hub"),km=s(", ce dossier devrait seulement contenir un fichier cach\xE9 "),xi=l("code"),qm=s(".gitattributes"),zm=s(". Si vous avez suivi les instructions de la section pr\xE9c\xE9dente pour cr\xE9er un d\xE9p\xF4t en utilisant l\u2019interface web, le dossier devrait contenir un seul fichier "),Si=l("em"),ym=s("README.md"),jm=s(" \xE0 c\xF4t\xE9 du fichier cach\xE9 "),Ti=l("code"),wm=s(".gitattributes"),Pm=s(", comme indiqu\xE9 ici."),Da=p(),co=l("p"),Mm=s("L\u2019ajout d\u2019un fichier de taille normale, comme un fichier de configuration, un fichier de vocabulaire, ou tout autre fichier de moins de quelques m\xE9gaoctets, est fait exactement comme on le ferait dans n\u2019importe quel syst\xE8me bas\xE9 sur git. Cependant, les fichiers plus volumineux doivent \xEAtre enregistr\xE9s via git-lfs afin de les pousser vers "),Fi=l("em"),Cm=s("huggingface.co"),Am=s("."),La=p(),po=l("p"),Dm=s("Revenons un peu \xE0 Python pour g\xE9n\xE9rer un mod\xE8le et un "),Ii=l("em"),Lm=s("tokenizer"),Om=s(" que nous souhaitons \xAB commiter \xBB dans notre d\xE9p\xF4t fictif :"),Oa=p(),Ye.c(),ar=p(),kt=l("p"),xm=s("Maintenant que nous avons sauvegard\xE9 quelques artefacts de mod\xE8le et de "),Ni=l("em"),Sm=s("tokenizer"),Tm=s(", regardons \xE0 nouveau le dossier "),Hi=l("em"),Fm=s("dummy"),Im=s(" :"),xa=p(),w(vs.$$.fragment),Sa=p(),Je.c(),ur=p(),w(fo.$$.fragment),Ta=p(),mo=l("p"),Nm=s("Nous pouvons maintenant aller de l\u2019avant et proc\xE9der comme nous le ferions habituellement avec des d\xE9p\xF4ts Git traditionnels. Nous pouvons ajouter tous les fichiers \xE0 l\u2019environnement Git en utilisant la commande "),Gi=l("code"),Hm=s("git add"),Gm=s(" :"),Fa=p(),w(_s.$$.fragment),Ia=p(),cr=l("p"),Rm=s("Nous pouvons alors jeter un coup d\u2019\u0153il aux fichiers :"),Na=p(),w(hs.$$.fragment),Ha=p(),Xe.c(),dr=p(),vo=l("p"),Um=s("De m\xEAme, nous pouvons nous assurer que git-lfs suit les bons fichiers en utilisant sa commande "),Ri=l("code"),Vm=s("status"),Bm=s(" :"),Ga=p(),w(gs.$$.fragment),Ra=p(),Qe.c(),pr=p(),xe=l("p"),Ym=s("Passons aux \xE9tapes finales, "),Ui=l("em"),Km=s("committing"),Jm=s(" et "),Vi=l("em"),Wm=s("pushing"),Xm=s(" vers le d\xE9p\xF4t distant "),Bi=l("em"),Zm=s("huggingface.co"),Qm=s(" :"),Ua=p(),w(bs.$$.fragment),Va=p(),tt.c(),fr=p(),mr=l("p"),ev=s("Le chargement peut prendre un peu de temps, en fonction de la vitesse de votre connexion Internet et de la taille de vos fichiers :"),Ba=p(),w(Es.$$.fragment),Ya=p(),w($s.$$.fragment),Ka=p(),Ft.c(),vr=Lg(),this.h()},l(e){const a=Ig('[data-svelte="svelte-1phssyn"]',document.head);d=i(a,"META",{name:!0,content:!0}),a.forEach(o),m=f(e),P(c.$$.fragment,e),_=f(e),$=i(e,"H1",{class:!0});var As=n($);j=i(As,"A",{id:!0,class:!0,href:!0});var _r=n(j);I=i(_r,"SPAN",{});var hr=n(I);P(y.$$.fragment,hr),hr.forEach(o),_r.forEach(o),T=f(As),F=i(As,"SPAN",{});var gr=n(F);q=r(gr,"Partage de mod\xE8les pr\xE9-entra\xEEn\xE9s"),gr.forEach(o),As.forEach(o),h=f(e),L.l(e),k=f(e),D=i(e,"P",{});var qt=n(D);G=r(qt,"Dans les \xE9tapes ci-dessous, nous allons examiner les moyens les plus simples de partager des mod\xE8les pr\xE9-entra\xEEn\xE9s sur le \u{1F917} "),g=i(qt,"EM",{});var Yi=n(g);A=r(Yi,"Hub"),Yi.forEach(o),O=r(qt,". Il existe des outils et des services disponibles qui permettent de simplifier le partage et la mise \xE0 jour des mod\xE8les directement sur le "),U=i(qt,"EM",{});var br=n(U);Y=r(br,"Hub"),br.forEach(o),V=r(qt,", que nous allons explorer ci-dessous."),qt.forEach(o),Z=f(e),P(Q.$$.fragment,e),X=f(e),pe=i(e,"P",{});var Er=n(pe);Te=r(Er,"Nous encourageons tous les utilisateurs qui entra\xEEnent des mod\xE8les \xE0 contribuer en les partageant avec la communaut\xE9. Le partage des mod\xE8les, m\xEAme s\u2019ils ont \xE9t\xE9 entra\xEEn\xE9s sur des jeux de donn\xE9es tr\xE8s sp\xE9cifiques, aidera les autres, en leur faisant gagner du temps, des ressources de calcul et en leur donnant acc\xE8s \xE0 des artefacts entra\xEEn\xE9s utiles. \xC0 votre tour, vous pourrez b\xE9n\xE9ficier du travail effectu\xE9 par les autres !"),Er.forEach(o),se=f(e),fe=i(e,"P",{});var Ki=n(fe);Fe=r(Ki,"Il y a trois fa\xE7ons de cr\xE9er de nouveaux d\xE9p\xF4ts de mod\xE8les :"),Ki.forEach(o),re=f(e),ee=i(e,"UL",{});var zt=n(ee);ae=i(zt,"LI",{});var _o=n(ae);qe=r(_o,"en utilisant l\u2019API "),K=i(_o,"CODE",{});var $r=n(K);Ie=r($r,"push_to_hub"),$r.forEach(o),ue=r(_o,","),_o.forEach(o),Ne=f(zt),ce=i(zt,"LI",{});var Za=n(ce);ze=r(Za,"en utilisant la biblioth\xE8que Python "),H=i(Za,"CODE",{});var Lv=n(H);B=r(Lv,"huggingface_hub"),Lv.forEach(o),Pe=r(Za,","),Za.forEach(o),lt=f(zt),Me=i(zt,"LI",{});var Ov=n(Me);J=r(Ov,"en utilisant l\u2019interface web."),Ov.forEach(o),zt.forEach(o),de=f(e),oe=i(e,"P",{});var xv=n(oe);Mt=r(xv,"Une fois que vous avez cr\xE9\xE9 un d\xE9p\xF4t, vous pouvez y charger des fichiers via git et git-lfs. Nous allons vous guider dans la cr\xE9ation de d\xE9p\xF4ts de mod\xE8les et le t\xE9l\xE9chargement de fichiers dans les sections suivantes."),xv.forEach(o),Ce=f(e),x=i(e,"H2",{class:!0});var Qa=n(x);R=i(Qa,"A",{id:!0,class:!0,href:!0});var Sv=n(R);ye=i(Sv,"SPAN",{});var Tv=n(ye);P(je.$$.fragment,Tv),Tv.forEach(o),Sv.forEach(o),Ds=f(Qa),Ct=i(Qa,"SPAN",{});var tv=n(Ct);le=r(tv,"Utilisation de l'API "),Ht=i(tv,"CODE",{});var Fv=n(Ht);Ls=r(Fv,"push_to_hub"),Fv.forEach(o),tv.forEach(o),Qa.forEach(o),qo=f(e),ve.l(e),He=f(e),we=i(e,"P",{});var kr=n(we);Gt=r(kr,"La fa\xE7on la plus simple de t\xE9l\xE9charger des fichiers vers le "),Rt=i(kr,"EM",{});var Iv=n(Rt);Os=r(Iv,"Hub"),Iv.forEach(o),ku=r(kr," est d\u2019utiliser l\u2019API "),Nr=i(kr,"CODE",{});var Nv=n(Nr);qu=r(Nv,"push_to_hub"),Nv.forEach(o),zu=r(kr,"."),kr.forEach(o),Ji=f(e),_e=i(e,"P",{});var yt=n(_e);yu=r(yt,"Avant d\u2019aller plus loin, vous devrez g\xE9n\xE9rer un jeton d\u2019authentification afin que l\u2019API "),Hr=i(yt,"CODE",{});var Hv=n(Hr);ju=r(Hv,"huggingface_hub"),Hv.forEach(o),wu=r(yt," sache qui vous \xEAtes et \xE0 quels espaces de noms vous avez acc\xE8s en \xE9criture. Assurez-vous que vous \xEAtes dans un environnement o\xF9 vous avez install\xE9 "),Gr=i(yt,"CODE",{});var Gv=n(Gr);Pu=r(Gv,"transformers"),Gv.forEach(o),Mu=r(yt," (voir la "),xs=i(yt,"A",{href:!0});var Rv=n(xs);Cu=r(Rv,"Configuration"),Rv.forEach(o),Au=r(yt,"). Si vous \xEAtes dans un "),Rr=i(yt,"EM",{});var Uv=n(Rr);Du=r(Uv,"notebook"),Uv.forEach(o),Lu=r(yt,", vous pouvez utiliser la fonction suivante pour vous connecter :"),yt.forEach(o),Wi=f(e),P(zo.$$.fragment,e),Xi=f(e),Ss=i(e,"P",{});var Vv=n(Ss);Ou=r(Vv,"Dans un terminal, vous pouvez ex\xE9cuter :"),Vv.forEach(o),Zi=f(e),P(yo.$$.fragment,e),Qi=f(e),it=i(e,"P",{});var qr=n(it);xu=r(qr,"Dans les deux cas, vous serez invit\xE9 \xE0 saisir votre nom d\u2019utilisateur et votre mot de passe, qui sont les m\xEAmes que ceux que vous utilisez pour vous connecter au "),Ur=i(qr,"EM",{});var Bv=n(Ur);Su=r(Bv,"Hub"),Bv.forEach(o),Tu=r(qr,". Si vous n\u2019avez pas encore de profil pour le Hub, vous devez en cr\xE9er un "),jo=i(qr,"A",{href:!0,rel:!0});var Yv=n(jo);Fu=r(Yv,"ici"),Yv.forEach(o),Iu=r(qr,"."),qr.forEach(o),en=f(e),Ts=i(e,"P",{});var Kv=n(Ts);Nu=r(Kv,"Super ! Votre jeton d\u2019authentification est maintenant stock\xE9 dans votre dossier de cache. Cr\xE9ons quelques d\xE9p\xF4ts !"),Kv.forEach(o),tn=f(e),Re.l(e),Fs=f(e),he=i(e,"P",{});var jt=n(he);Hu=r(jt,"A un niveau inf\xE9rieur, l\u2019acc\xE8s au "),Vr=i(jt,"EM",{});var Jv=n(Vr);Gu=r(Jv,"Hub"),Jv.forEach(o),Ru=r(jt," peut \xEAtre fait directement sur les mod\xE8les, les "),Br=i(jt,"EM",{});var Wv=n(Br);Uu=r(Wv,"tokenizers"),Wv.forEach(o),Vu=r(jt," et les objets de configuration via leur m\xE9thode "),Yr=i(jt,"CODE",{});var Xv=n(Yr);Bu=r(Xv,"push_to_hub()"),Xv.forEach(o),Yu=r(jt,". Cette m\xE9thode s\u2019occupe \xE0 la fois de la cr\xE9ation du d\xE9p\xF4t et de l\u2019envoi les fichiers du mod\xE8le et du "),Kr=i(jt,"EM",{});var Zv=n(Kr);Ku=r(Zv,"tokenizer"),Zv.forEach(o),Ju=r(jt," directement dans le d\xE9p\xF4t. Aucune manipulation manuelle n\u2019est n\xE9cessaire, contrairement \xE0 l\u2019API que nous verrons plus loin."),jt.forEach(o),on=f(e),Ut=i(e,"P",{});var eu=n(Ut);Wu=r(eu,"Pour avoir une id\xE9e de son fonctionnement, commen\xE7ons par initialiser un mod\xE8le et un "),Jr=i(eu,"EM",{});var Qv=n(Jr);Xu=r(Qv,"tokenizer"),Qv.forEach(o),Zu=r(eu," :"),eu.forEach(o),sn=f(e),Ve.l(e),Is=f(e),te=i(e,"P",{});var ke=n(te);Qu=r(ke,"Vous \xEAtes libre de faire ce que vous voulez avec ces objets : ajouter des "),Wr=i(ke,"EM",{});var e_=n(Wr);ec=r(e_,"tokens"),e_.forEach(o),tc=r(ke," au "),Xr=i(ke,"EM",{});var t_=n(Xr);oc=r(t_,"tokenizer"),t_.forEach(o),sc=r(ke,", entra\xEEner le mod\xE8le, le "),Zr=i(ke,"EM",{});var o_=n(Zr);rc=r(o_,"finetuner"),o_.forEach(o),lc=r(ke,". Une fois que vous \xEAtes satisfait du mod\xE8le, des poids et du "),Qr=i(ke,"EM",{});var s_=n(Qr);ic=r(s_,"tokenizer"),s_.forEach(o),nc=r(ke," obtenus, vous pouvez utiliser la m\xE9thode "),el=i(ke,"CODE",{});var r_=n(el);ac=r(r_,"push_to_hub()"),r_.forEach(o),uc=r(ke," directement disponible sur l\u2019objet "),tl=i(ke,"CODE",{});var l_=n(tl);cc=r(l_,"model"),l_.forEach(o),dc=r(ke," :"),ke.forEach(o),rn=f(e),P(wo.$$.fragment,e),ln=f(e),nt=i(e,"P",{});var zr=n(nt);pc=r(zr,"Cela va cr\xE9er le nouveau d\xE9p\xF4t "),ol=i(zr,"CODE",{});var i_=n(ol);fc=r(i_,"dummy-model"),i_.forEach(o),mc=r(zr,` dans votre profil et le remplir avec les fichiers du mod\xE8le.
Faites la m\xEAme chose avec le `),sl=i(zr,"EM",{});var n_=n(sl);vc=r(n_,"tokenizer"),n_.forEach(o),_c=r(zr,", de sorte que tous les fichiers sont maintenant disponibles dans ce d\xE9p\xF4t :"),zr.forEach(o),nn=f(e),P(Po.$$.fragment,e),an=f(e),Vt=i(e,"P",{});var tu=n(Vt);hc=r(tu,"Si vous appartenez \xE0 une organisation, il suffit de sp\xE9cifier l\u2019argument "),rl=i(tu,"CODE",{});var a_=n(rl);gc=r(a_,"organization"),a_.forEach(o),bc=r(tu," pour t\xE9l\xE9charger dans l\u2019espace de cette organisation :"),tu.forEach(o),un=f(e),P(Mo.$$.fragment,e),cn=f(e),Bt=i(e,"P",{});var ou=n(Bt);Ec=r(ou,"Si vous souhaitez utiliser un jeton Hugging Face sp\xE9cifique, vous pouvez \xE9galement le sp\xE9cifier \xE0 la m\xE9thode "),ll=i(ou,"CODE",{});var u_=n(ll);$c=r(u_,"push_to_hub()"),u_.forEach(o),kc=r(ou," :"),ou.forEach(o),dn=f(e),P(Co.$$.fragment,e),pn=f(e),at=i(e,"P",{});var yr=n(at);qc=r(yr,"Maintenant, dirigez-vous sur "),il=i(yr,"EM",{});var c_=n(il);zc=r(c_,"Hub"),c_.forEach(o),yc=r(yr," pour trouver votre mod\xE8le nouvellement t\xE9l\xE9charg\xE9 : "),nl=i(yr,"EM",{});var d_=n(nl);Ao=i(d_,"A",{href:!0,rel:!0});var p_=n(Ao);jc=r(p_,"https://huggingface.co/user-or-organization/dummy-model"),p_.forEach(o),d_.forEach(o),wc=r(yr,"."),yr.forEach(o),fn=f(e),Ns=i(e,"P",{});var f_=n(Ns);Pc=r(f_,"Cliquez sur l\u2019onglet \xAB Fichiers et versions \xBB et vous devriez voir les fichiers visibles dans la capture d\u2019\xE9cran suivante :"),f_.forEach(o),mn=f(e),Tt.l(e),Hs=f(e),P(Yt.$$.fragment,e),vn=f(e),ut=i(e,"P",{});var jr=n(ut);Mc=r(jr,"Comme vous l\u2019avez vu, la m\xE9thode "),al=i(jr,"CODE",{});var m_=n(al);Cc=r(m_,"push_to_hub()"),m_.forEach(o),Ac=r(jr," accepte plusieurs arguments, ce qui permet de t\xE9l\xE9charger vers un d\xE9p\xF4t ou un espace d\u2019organisation sp\xE9cifique, ou d\u2019utiliser un jeton d\u2019API diff\xE9rent. Nous vous recommandons de jeter un coup d\u2019\u0153il \xE0 la sp\xE9cification de la m\xE9thode disponible directement dans la documentation de "),Kt=i(jr,"A",{href:!0,rel:!0});var ov=n(Kt);Dc=r(ov,"\u{1F917} "),ul=i(ov,"EM",{});var v_=n(ul);Lc=r(v_,"Transformers"),v_.forEach(o),ov.forEach(o),Oc=r(jr," pour avoir une id\xE9e de ce qui est possible."),jr.forEach(o),_n=f(e),W=i(e,"P",{});var ne=n(W);xc=r(ne,"La m\xE9thode "),cl=i(ne,"CODE",{});var __=n(cl);Sc=r(__,"push_to_hub()"),__.forEach(o),Tc=r(ne," est soutenue par le "),dl=i(ne,"EM",{});var h_=n(dl);Fc=r(h_,"package"),h_.forEach(o),Ic=r(ne," Python "),Do=i(ne,"A",{href:!0,rel:!0});var g_=n(Do);pl=i(g_,"CODE",{});var b_=n(pl);Nc=r(b_,"huggingface_hub"),b_.forEach(o),g_.forEach(o),Hc=r(ne,", qui offre une API directe au "),fl=i(ne,"EM",{});var E_=n(fl);Gc=r(E_,"Hub"),E_.forEach(o),Rc=r(ne,". C\u2019est int\xE9gr\xE9 \xE0 \u{1F917} "),ml=i(ne,"EM",{});var $_=n(ml);Uc=r($_,"Transformers"),$_.forEach(o),Vc=r(ne," et \xE0 plusieurs autres biblioth\xE8ques d\u2019apprentissage automatique, comme "),Lo=i(ne,"A",{href:!0,rel:!0});var k_=n(Lo);vl=i(k_,"CODE",{});var q_=n(vl);Bc=r(q_,"allenlp"),q_.forEach(o),k_.forEach(o),Yc=r(ne,". Bien que nous nous concentrions sur l\u2019int\xE9gration via \u{1F917} "),_l=i(ne,"EM",{});var z_=n(_l);Kc=r(z_,"Transformers"),z_.forEach(o),Jc=r(ne," dans ce chapitre, son int\xE9gration dans votre propre code ou biblioth\xE8que est simple."),ne.forEach(o),hn=f(e),Gs=i(e,"P",{});var y_=n(Gs);Wc=r(y_,"Passez \xE0 la derni\xE8re section pour voir comment t\xE9l\xE9charger des fichiers dans votre d\xE9p\xF4t nouvellement cr\xE9\xE9 !"),y_.forEach(o),gn=f(e),At=i(e,"H2",{class:!0});var su=n(At);Jt=i(su,"A",{id:!0,class:!0,href:!0});var j_=n(Jt);hl=i(j_,"SPAN",{});var w_=n(hl);P(Oo.$$.fragment,w_),w_.forEach(o),j_.forEach(o),Xc=f(su),Rs=i(su,"SPAN",{});var sv=n(Rs);Zc=r(sv,"Utilisation de la biblioth\xE8que Python "),gl=i(sv,"CODE",{});var P_=n(gl);Qc=r(P_,"huggingface_hub"),P_.forEach(o),sv.forEach(o),su.forEach(o),bn=f(e),ge=i(e,"P",{});var wt=n(ge);ed=r(wt,"La biblioth\xE8que Python "),bl=i(wt,"CODE",{});var M_=n(bl);td=r(M_,"huggingface_hub"),M_.forEach(o),od=r(wt," est un "),El=i(wt,"EM",{});var C_=n(El);sd=r(C_,"package"),C_.forEach(o),rd=r(wt," qui offre un ensemble d\u2019outils pour les hubs des mod\xE8les et des jeux de donn\xE9es. Elle fournit des m\xE9thodes et des classes simples pour des t\xE2ches courantes telles qu\u2019obtenir et g\xE9rer des informations \xE0 propos des d\xE9p\xF4ts sur le "),$l=i(wt,"EM",{});var A_=n($l);ld=r(A_,"Hub"),A_.forEach(o),id=r(wt,". Elle fournit des APIs simples qui fonctionnent au-dessus de git pour g\xE9rer le contenu de ces d\xE9p\xF4ts et pour int\xE9grer le "),kl=i(wt,"EM",{});var D_=n(kl);nd=r(D_,"Hub"),D_.forEach(o),ad=r(wt," dans vos projets et biblioth\xE8ques."),wt.forEach(o),En=f(e),Ae=i(e,"P",{});var ho=n(Ae);ud=r(ho,"De la m\xEAme mani\xE8re que pour l\u2019utilisation de l\u2019API "),ql=i(ho,"CODE",{});var L_=n(ql);cd=r(L_,"push_to_hub"),L_.forEach(o),dd=r(ho,", vous devrez avoir votre jeton d\u2019API enregistr\xE9 dans votre cache. Pour ce faire, vous devrez utiliser la commande "),zl=i(ho,"CODE",{});var O_=n(zl);pd=r(O_,"login"),O_.forEach(o),fd=r(ho," de la CLI, comme mentionn\xE9 dans la section pr\xE9c\xE9dente (encore une fois, assurez-vous de faire pr\xE9c\xE9der ces commandes du caract\xE8re "),yl=i(ho,"CODE",{});var x_=n(yl);md=r(x_,"!"),x_.forEach(o),vd=r(ho," si vous les ex\xE9cutez dans Google Colab) :"),ho.forEach(o),$n=f(e),P(xo.$$.fragment,e),kn=f(e),ct=i(e,"P",{});var wr=n(ct);_d=r(wr,"Le "),jl=i(wr,"EM",{});var S_=n(jl);hd=r(S_,"package"),S_.forEach(o),gd=f(wr),wl=i(wr,"CODE",{});var T_=n(wl);bd=r(T_,"huggingface_hub"),T_.forEach(o),Ed=r(wr," offre plusieurs m\xE9thodes et classes qui sont utiles pour notre objectif. Tout d\u2019abord, il y a quelques m\xE9thodes pour g\xE9rer la cr\xE9ation, la suppression des d\xE9p\xF4ts, et autres :"),wr.forEach(o),qn=f(e),P(So.$$.fragment,e),zn=f(e),Wt=i(e,"P",{});var ru=n(Wt);$d=r(ru,"De plus, elle offre la tr\xE8s puissante classe "),Pl=i(ru,"CODE",{});var F_=n(Pl);kd=r(F_,"Repository"),F_.forEach(o),qd=r(ru," pour g\xE9rer un d\xE9p\xF4t local. Nous allons explorer ces m\xE9thodes et cette classe dans les prochaines sections pour comprendre comment les exploiter."),ru.forEach(o),yn=f(e),dt=i(e,"P",{});var Pr=n(dt);zd=r(Pr,"La m\xE9thode "),Ml=i(Pr,"CODE",{});var I_=n(Ml);yd=r(I_,"create_repo"),I_.forEach(o),jd=r(Pr," peut \xEAtre utilis\xE9e pour cr\xE9er un nouveau d\xE9p\xF4t sur le "),Cl=i(Pr,"EM",{});var N_=n(Cl);wd=r(N_,"Hub"),N_.forEach(o),Pd=r(Pr," :"),Pr.forEach(o),jn=f(e),P(To.$$.fragment,e),wn=f(e),pt=i(e,"P",{});var Mr=n(pt);Md=r(Mr,"Ceci cr\xE9era le d\xE9p\xF4t "),Al=i(Mr,"CODE",{});var H_=n(Al);Cd=r(H_,"dummy-model"),H_.forEach(o),Ad=r(Mr," dans votre espace. Si vous le souhaitez, vous pouvez sp\xE9cifier \xE0 quelle organisation le d\xE9p\xF4t doit appartenir en utilisant l\u2019argument "),Dl=i(Mr,"CODE",{});var G_=n(Dl);Dd=r(G_,"organization"),G_.forEach(o),Ld=r(Mr," :"),Mr.forEach(o),Pn=f(e),P(Fo.$$.fragment,e),Mn=f(e),ft=i(e,"P",{});var Cr=n(ft);Od=r(Cr,"Cela cr\xE9era le d\xE9p\xF4t "),Ll=i(Cr,"CODE",{});var R_=n(Ll);xd=r(R_,"dummy-model"),R_.forEach(o),Sd=r(Cr," dans l\u2019espace de nom "),Ol=i(Cr,"CODE",{});var U_=n(Ol);Td=r(U_,"huggingface"),U_.forEach(o),Fd=r(Cr,`, en supposant que vous appartenez \xE0 cette organisation.
D\u2019autres arguments qui peuvent \xEAtre utiles sont :`),Cr.forEach(o),Cn=f(e),mt=i(e,"UL",{});var Ar=n(mt);Us=i(Ar,"LI",{});var rv=n(Us);xl=i(rv,"CODE",{});var V_=n(xl);Id=r(V_,"private"),V_.forEach(o),Nd=r(rv,", afin de sp\xE9cifier si le d\xE9p\xF4t doit \xEAtre visible des autres ou non,"),rv.forEach(o),Hd=f(Ar),Vs=i(Ar,"LI",{});var lv=n(Vs);Sl=i(lv,"CODE",{});var B_=n(Sl);Gd=r(B_,"token"),B_.forEach(o),Rd=r(lv,", si vous voulez remplacer le jeton stock\xE9 dans votre cache par un jeton donn\xE9,"),lv.forEach(o),Ud=f(Ar),be=i(Ar,"LI",{});var ot=n(be);Tl=i(ot,"CODE",{});var Y_=n(Tl);Vd=r(Y_,"repo_type"),Y_.forEach(o),Bd=r(ot,", si vous souhaitez cr\xE9er un "),Fl=i(ot,"CODE",{});var K_=n(Fl);Yd=r(K_,"dataset"),K_.forEach(o),Kd=r(ot," ou un "),Il=i(ot,"CODE",{});var J_=n(Il);Jd=r(J_,"space"),J_.forEach(o),Wd=r(ot," au lieu d\u2019un mod\xE8le. Les valeurs accept\xE9es sont "),Nl=i(ot,"CODE",{});var W_=n(Nl);Xd=r(W_,'"dataset"'),W_.forEach(o),Zd=r(ot," et "),Hl=i(ot,"CODE",{});var X_=n(Hl);Qd=r(X_,'"space"'),X_.forEach(o),ep=r(ot,"."),ot.forEach(o),Ar.forEach(o),An=f(e),Bs=i(e,"P",{});var Z_=n(Bs);tp=r(Z_,"Une fois que le d\xE9p\xF4t est cr\xE9\xE9, nous devons y ajouter des fichiers ! Passez \xE0 la section suivante pour voir les trois fa\xE7ons dont cela peut \xEAtre g\xE9r\xE9."),Z_.forEach(o),Dn=f(e),Dt=i(e,"H2",{class:!0});var lu=n(Dt);Xt=i(lu,"A",{id:!0,class:!0,href:!0});var Q_=n(Xt);Gl=i(Q_,"SPAN",{});var eh=n(Gl);P(Io.$$.fragment,eh),eh.forEach(o),Q_.forEach(o),op=f(lu),Rl=i(lu,"SPAN",{});var th=n(Rl);sp=r(th,"Utilisation de l'interface web"),th.forEach(o),lu.forEach(o),Ln=f(e),Zt=i(e,"P",{});var iu=n(Zt);rp=r(iu,"L\u2019interface web offre des outils pour g\xE9rer les d\xE9p\xF4ts directement dans le "),Ul=i(iu,"EM",{});var oh=n(Ul);lp=r(oh,"Hub"),oh.forEach(o),ip=r(iu,". En utilisant l\u2019interface, vous pouvez facilement cr\xE9er des d\xE9p\xF4ts, ajouter des fichiers (m\xEAme de grande taille !), explorer des mod\xE8les, visualiser les diff\xE9rences, et bien plus encore."),iu.forEach(o),On=f(e),Qt=i(e,"P",{});var nu=n(Qt);np=r(nu,"Pour cr\xE9er un nouveau d\xE9p\xF4t, visitez "),No=i(nu,"A",{href:!0,rel:!0});var sh=n(No);ap=r(sh,"huggingface.co/new"),sh.forEach(o),up=r(nu," :"),nu.forEach(o),xn=f(e),Ho=i(e,"DIV",{class:!0});var rh=n(Ho);Go=i(rh,"IMG",{src:!0,alt:!0,width:!0}),rh.forEach(o),Sn=f(e),Ys=i(e,"P",{});var lh=n(Ys);cp=r(lh,"Tout d\u2019abord, indiquez le propri\xE9taire du d\xE9p\xF4t : il peut s\u2019agir de vous ou de l\u2019une des organisations auxquelles vous \xEAtes affili\xE9. Si vous choisissez une organisation, le mod\xE8le sera pr\xE9sent\xE9 sur la page de l\u2019organisation et chaque membre de l\u2019organisation aura la possibilit\xE9 de contribuer au d\xE9p\xF4t."),lh.forEach(o),Tn=f(e),Ks=i(e,"P",{});var ih=n(Ks);dp=r(ih,"Ensuite, saisissez le nom de votre mod\xE8le. Ce sera \xE9galement le nom du d\xE9p\xF4t. Enfin, vous pouvez pr\xE9ciser si vous souhaitez que votre mod\xE8le soit public ou priv\xE9. Les mod\xE8les priv\xE9s sont cach\xE9s de la vue du public."),ih.forEach(o),Fn=f(e),Js=i(e,"P",{});var nh=n(Js);pp=r(nh,"Apr\xE8s avoir cr\xE9\xE9 votre d\xE9p\xF4t de mod\xE8les, vous devriez voir une page comme celle-ci :"),nh.forEach(o),In=f(e),Ro=i(e,"DIV",{class:!0});var ah=n(Ro);Uo=i(ah,"IMG",{src:!0,alt:!0,width:!0}),ah.forEach(o),Nn=f(e),Ws=i(e,"P",{});var uh=n(Ws);fp=r(uh,"C\u2019est l\xE0 que votre mod\xE8le sera h\xE9berg\xE9. Pour commencer \xE0 le remplir, vous pouvez ajouter un fichier README directement depuis l\u2019interface web."),uh.forEach(o),Hn=f(e),Vo=i(e,"DIV",{class:!0});var ch=n(Vo);Bo=i(ch,"IMG",{src:!0,alt:!0,width:!0}),ch.forEach(o),Gn=f(e),Xs=i(e,"P",{});var dh=n(Xs);mp=r(dh,"Le fichier README est en Markdown. N\u2019h\xE9sitez pas \xE0 vous l\xE2cher avec lui ! La troisi\xE8me partie de ce chapitre est consacr\xE9e \xE0 la construction d\u2019une carte de mod\xE8le. Celles-ci sont d\u2019une importance capitale pour valoriser votre mod\xE8le, car c\u2019est par elles que vous indiquez aux autres ce qu\u2019il peut faire."),dh.forEach(o),Rn=f(e),De=i(e,"P",{});var go=n(De);vp=r(go,"Si vous regardez l\u2019onglet \xAB "),Vl=i(go,"EM",{});var ph=n(Vl);_p=r(ph,"Files and versions"),ph.forEach(o),hp=r(go," \xBB, vous verrez qu\u2019il n\u2019y a pas encore beaucoup de fichiers : juste le "),Bl=i(go,"EM",{});var fh=n(Bl);gp=r(fh,"README.md"),fh.forEach(o),bp=r(go," que vous venez de cr\xE9er et le fichier "),Yl=i(go,"EM",{});var mh=n(Yl);Ep=r(mh,".gitattributes"),mh.forEach(o),$p=r(go," qui garde la trace des gros fichiers."),go.forEach(o),Un=f(e),Yo=i(e,"DIV",{class:!0});var vh=n(Yo);Ko=i(vh,"IMG",{src:!0,alt:!0,width:!0}),vh.forEach(o),Vn=f(e),Zs=i(e,"P",{});var _h=n(Zs);kp=r(_h,"Nous allons maintenant voir comment ajouter de nouveaux fichiers."),_h.forEach(o),Bn=f(e),Lt=i(e,"H2",{class:!0});var au=n(Lt);eo=i(au,"A",{id:!0,class:!0,href:!0});var hh=n(eo);Kl=i(hh,"SPAN",{});var gh=n(Kl);P(Jo.$$.fragment,gh),gh.forEach(o),hh.forEach(o),qp=f(au),Jl=i(au,"SPAN",{});var bh=n(Jl);zp=r(bh,"T\xE9l\xE9chargement des fichiers du mod\xE8le"),bh.forEach(o),au.forEach(o),Yn=f(e),vt=i(e,"P",{});var Dr=n(vt);yp=r(Dr,"Le syst\xE8me de gestion des fichiers sur le "),Wl=i(Dr,"EM",{});var Eh=n(Wl);jp=r(Eh,"Hub"),Eh.forEach(o),wp=r(Dr," est bas\xE9 sur git pour les fichiers ordinaires et git-lfs (qui signifie "),Wo=i(Dr,"A",{href:!0,rel:!0});var $h=n(Wo);Pp=r($h,"Git Large File Storage"),$h.forEach(o),Mp=r(Dr,") pour les fichiers plus importants."),Dr.forEach(o),Kn=f(e),_t=i(e,"P",{});var Lr=n(_t);Cp=r(Lr,"Dans la section suivante, nous passons en revue trois fa\xE7ons diff\xE9rentes de t\xE9l\xE9charger des fichiers sur le "),Xl=i(Lr,"EM",{});var kh=n(Xl);Ap=r(kh,"Hub"),kh.forEach(o),Dp=r(Lr," : par "),Zl=i(Lr,"CODE",{});var qh=n(Zl);Lp=r(qh,"huggingface_hub"),qh.forEach(o),Op=r(Lr," et par des commandes git."),Lr.forEach(o),Jn=f(e),Ot=i(e,"H3",{class:!0});var uu=n(Ot);to=i(uu,"A",{id:!0,class:!0,href:!0});var zh=n(to);Ql=i(zh,"SPAN",{});var yh=n(Ql);P(Xo.$$.fragment,yh),yh.forEach(o),zh.forEach(o),xp=f(uu),ei=i(uu,"SPAN",{});var jh=n(ei);Sp=r(jh,"L'approche `upload_file'"),jh.forEach(o),uu.forEach(o),Wn=f(e),ht=i(e,"P",{});var Or=n(ht);Tp=r(Or,"L\u2019utilisation de "),ti=i(Or,"CODE",{});var wh=n(ti);Fp=r(wh,"upload_file"),wh.forEach(o),Ip=r(Or," ne n\xE9cessite pas que git et git-lfs soient install\xE9s sur votre syst\xE8me. Il pousse les fichiers directement vers le \u{1F917} "),oi=i(Or,"EM",{});var Ph=n(oi);Np=r(Ph,"Hub"),Ph.forEach(o),Hp=r(Or,` en utilisant des requ\xEAtes HTTP POST. Une limitation de cette approche est qu\u2019elle ne g\xE8re pas les fichiers dont la taille est sup\xE9rieure \xE0 5 Go.
Si vos fichiers ont une taille sup\xE9rieure \xE0 5 Go, veuillez suivre les deux autres m\xE9thodes d\xE9taill\xE9es ci-dessous.`),Or.forEach(o),Xn=f(e),Qs=i(e,"P",{});var Mh=n(Qs);Gp=r(Mh,"L\u2019API peut \xEAtre utilis\xE9e comme suit :"),Mh.forEach(o),Zn=f(e),P(Zo.$$.fragment,e),Qn=f(e),Ee=i(e,"P",{});var Pt=n(Ee);Rp=r(Pt,"Ceci t\xE9l\xE9chargera le fichier "),si=i(Pt,"CODE",{});var Ch=n(si);Up=r(Ch,"config.json"),Ch.forEach(o),Vp=r(Pt," disponible \xE0 "),ri=i(Pt,"CODE",{});var Ah=n(ri);Bp=r(Ah,"<path_to_file>"),Ah.forEach(o),Yp=r(Pt," \xE0 la racine du d\xE9p\xF4t en tant que "),li=i(Pt,"CODE",{});var Dh=n(li);Kp=r(Dh,"config.json"),Dh.forEach(o),Jp=r(Pt,", vers le d\xE9p\xF4t "),ii=i(Pt,"CODE",{});var Lh=n(ii);Wp=r(Lh,"dummy-model"),Lh.forEach(o),Xp=r(Pt,`.
D\u2019autres arguments qui peuvent \xEAtre utiles sont :`),Pt.forEach(o),ea=f(e),oo=i(e,"UL",{});var cu=n(oo);er=i(cu,"LI",{});var iv=n(er);ni=i(iv,"CODE",{});var Oh=n(ni);Zp=r(Oh,"token"),Oh.forEach(o),Qp=r(iv,", si vous souhaitez remplacer le jeton stock\xE9 dans votre cache par un jeton donn\xE9,"),iv.forEach(o),ef=f(cu),$e=i(cu,"LI",{});var st=n($e);ai=i(st,"CODE",{});var xh=n(ai);tf=r(xh,"repo_type"),xh.forEach(o),of=r(st,", si vous souhaitez t\xE9l\xE9charger vers un "),ui=i(st,"CODE",{});var Sh=n(ui);sf=r(Sh,"dataset"),Sh.forEach(o),rf=r(st," ou un "),ci=i(st,"CODE",{});var Th=n(ci);lf=r(Th,"space"),Th.forEach(o),nf=r(st," au lieu d\u2019un mod\xE8le. Les valeurs accept\xE9es sont "),di=i(st,"CODE",{});var Fh=n(di);af=r(Fh,'"dataset"'),Fh.forEach(o),uf=r(st," et "),pi=i(st,"CODE",{});var Ih=n(pi);cf=r(Ih,'"space"'),Ih.forEach(o),df=r(st,"."),st.forEach(o),cu.forEach(o),ta=f(e),xt=i(e,"H3",{class:!0});var du=n(xt);so=i(du,"A",{id:!0,class:!0,href:!0});var Nh=n(so);fi=i(Nh,"SPAN",{});var Hh=n(fi);P(Qo.$$.fragment,Hh),Hh.forEach(o),Nh.forEach(o),pf=f(du),tr=i(du,"SPAN",{});var nv=n(tr);ff=r(nv,"La classe "),mi=i(nv,"CODE",{});var Gh=n(mi);mf=r(Gh,"Repository"),Gh.forEach(o),nv.forEach(o),du.forEach(o),oa=f(e),ro=i(e,"P",{});var pu=n(ro);vf=r(pu,"La classe "),vi=i(pu,"CODE",{});var Rh=n(vi);_f=r(Rh,"Repository"),Rh.forEach(o),hf=r(pu," g\xE8re un d\xE9p\xF4t local d\u2019une mani\xE8re similaire \xE0 git. Elle abstrait la plupart des probl\xE8mes que l\u2019on peut rencontrer avec git pour fournir toutes les fonctionnalit\xE9s dont nous avons besoin."),pu.forEach(o),sa=f(e),lo=i(e,"P",{});var fu=n(lo);gf=r(fu,"L\u2019utilisation de cette classe n\xE9cessite l\u2019installation de git et de git-lfs, donc assurez-vous que git-lfs est install\xE9 (voir "),es=i(fu,"A",{href:!0,rel:!0});var Uh=n(es);bf=r(Uh,"ici"),Uh.forEach(o),Ef=r(fu," pour les instructions d\u2019installation) et configur\xE9 avant de commencer."),fu.forEach(o),ra=f(e),or=i(e,"P",{});var Vh=n(or);$f=r(Vh,"Afin de commencer \xE0 jouer avec le d\xE9p\xF4t que nous venons de cr\xE9er, nous pouvons commencer par l\u2019initialiser dans un dossier local en clonant le d\xE9p\xF4t distant :"),Vh.forEach(o),la=f(e),P(ts.$$.fragment,e),ia=f(e),Le=i(e,"P",{});var bo=n(Le);kf=r(bo,"Cela a cr\xE9\xE9 le dossier "),_i=i(bo,"CODE",{});var Bh=n(_i);qf=r(Bh,"<path_to_dummy_folder>"),Bh.forEach(o),zf=r(bo," dans notre r\xE9pertoire de travail. Ce dossier ne contient que le fichier "),hi=i(bo,"CODE",{});var Yh=n(hi);yf=r(Yh,".gitattributes"),Yh.forEach(o),jf=r(bo," car c\u2019est le seul fichier cr\xE9\xE9 lors de l\u2019instanciation du d\xE9p\xF4t par "),gi=i(bo,"CODE",{});var Kh=n(gi);wf=r(Kh,"create_repo"),Kh.forEach(o),Pf=r(bo,"."),bo.forEach(o),na=f(e),sr=i(e,"P",{});var Jh=n(sr);Mf=r(Jh,"A partir de maintenant, nous pouvons utiliser plusieurs des m\xE9thodes traditionnelles de git :"),Jh.forEach(o),aa=f(e),P(os.$$.fragment,e),ua=f(e),gt=i(e,"P",{});var xr=n(gt);Cf=r(xr,"Et d\u2019autres encore ! Nous vous recommandons de jeter un coup d\u2019\u0153il  \xE0 la documentation de "),bi=i(xr,"CODE",{});var Wh=n(bi);Af=r(Wh,"Repository"),Wh.forEach(o),Df=r(xr," disponible "),ss=i(xr,"A",{href:!0,rel:!0});var Xh=n(ss);Lf=r(Xh,"ici"),Xh.forEach(o),Of=r(xr," pour une vue d\u2019ensemble de toutes les m\xE9thodes disponibles."),xr.forEach(o),ca=f(e),bt=i(e,"P",{});var Sr=n(bt);xf=r(Sr,"Actuellement, nous avons un mod\xE8le et un "),Ei=i(Sr,"EM",{});var Zh=n(Ei);Sf=r(Zh,"tokenizer"),Zh.forEach(o),Tf=r(Sr," que nous voulons pousser vers le "),$i=i(Sr,"EM",{});var Qh=n($i);Ff=r(Qh,"Hub"),Qh.forEach(o),If=r(Sr,". Nous avons r\xE9ussi \xE0 cloner le d\xE9p\xF4t, nous pouvons donc enregistrer les fichiers dans ce d\xE9p\xF4t."),Sr.forEach(o),da=f(e),rr=i(e,"P",{});var eg=n(rr);Nf=r(eg,"Nous nous assurons d\u2019abord que notre clone local est \xE0 jour en r\xE9cup\xE9rant les derni\xE8res modifications :"),eg.forEach(o),pa=f(e),P(rs.$$.fragment,e),fa=f(e),io=i(e,"P",{});var mu=n(io);Hf=r(mu,"Une fois que c\u2019est fait, nous sauvegardons les fichiers du mod\xE8le et du "),ki=i(mu,"EM",{});var tg=n(ki);Gf=r(tg,"tokenizer"),tg.forEach(o),Rf=r(mu," :"),mu.forEach(o),ma=f(e),P(ls.$$.fragment,e),va=f(e),Oe=i(e,"P",{});var Eo=n(Oe);Uf=r(Eo,"Le "),qi=i(Eo,"CODE",{});var og=n(qi);Vf=r(og,"<path_to_dummy_folder>"),og.forEach(o),Bf=r(Eo," contient maintenant tous les fichiers du mod\xE8le et du "),zi=i(Eo,"EM",{});var sg=n(zi);Yf=r(sg,"tokenizer"),sg.forEach(o),Kf=r(Eo,". Nous suivons le flux de travail git habituel en ajoutant des fichiers \xE0 la zone de transit, en les validant et en les poussant vers le "),yi=i(Eo,"EM",{});var rg=n(yi);Jf=r(rg,"Hub"),rg.forEach(o),Wf=r(Eo," :"),Eo.forEach(o),_a=f(e),P(is.$$.fragment,e),ha=f(e),no=i(e,"P",{});var vu=n(no);Xf=r(vu,"F\xE9licitations ! Vous venez de pousser vos premiers fichiers sur le "),ji=i(vu,"EM",{});var lg=n(ji);Zf=r(lg,"Hub"),lg.forEach(o),Qf=r(vu,"."),vu.forEach(o),ga=f(e),St=i(e,"H3",{class:!0});var _u=n(St);ao=i(_u,"A",{id:!0,class:!0,href:!0});var ig=n(ao);wi=i(ig,"SPAN",{});var ng=n(wi);P(ns.$$.fragment,ng),ng.forEach(o),ig.forEach(o),em=f(_u),Pi=i(_u,"SPAN",{});var ag=n(Pi);tm=r(ag,"L'approche bas\xE9e sur git"),ag.forEach(o),_u.forEach(o),ba=f(e),lr=i(e,"P",{});var ug=n(lr);om=r(ug,"Il s\u2019agit de l\u2019approche la plus basique pour t\xE9l\xE9charger des fichiers : nous le ferons directement avec git et git-lfs. La plupart des difficult\xE9s sont abstraites par les approches pr\xE9c\xE9dentes, mais il y a quelques r\xE9serves avec la m\xE9thode suivante, nous allons donc suivre un cas d\u2019utilisation plus complexe."),ug.forEach(o),Ea=f(e),uo=i(e,"P",{});var hu=n(uo);sm=r(hu,"L\u2019utilisation de cette classe n\xE9cessite l\u2019installation de git et de git-lfs, donc assurez-vous d\u2019avoir "),as=i(hu,"A",{href:!0,rel:!0});var cg=n(as);rm=r(cg,"git-lfs"),cg.forEach(o),lm=r(hu," install\xE9 et configur\xE9 avant de commencer."),hu.forEach(o),$a=f(e),ir=i(e,"P",{});var dg=n(ir);im=r(dg,"Commencez par initialiser git-lfs :"),dg.forEach(o),ka=f(e),P(us.$$.fragment,e),qa=f(e),P(cs.$$.fragment,e),za=f(e),nr=i(e,"P",{});var pg=n(nr);nm=r(pg,"Une fois que c\u2019est fait, la premi\xE8re \xE9tape consiste \xE0 cloner votre d\xE9p\xF4t de mod\xE8les :"),pg.forEach(o),ya=f(e),P(ds.$$.fragment,e),ja=f(e),Et=i(e,"P",{});var Tr=n(Et);am=r(Tr,"Mon nom d\u2019utilisateur est "),Mi=i(Tr,"CODE",{});var fg=n(Mi);um=r(fg,"lysandre"),fg.forEach(o),cm=r(Tr," et j\u2019ai utilis\xE9 le nom de mod\xE8le "),Ci=i(Tr,"CODE",{});var mg=n(Ci);dm=r(mg,"dummy"),mg.forEach(o),pm=r(Tr,", donc pour moi la commande ressemble \xE0 ce qui suit :"),Tr.forEach(o),wa=f(e),P(ps.$$.fragment,e),Pa=f(e),$t=i(e,"P",{});var Fr=n($t);fm=r(Fr,"J\u2019ai maintenant un dossier nomm\xE9 "),Ai=i(Fr,"EM",{});var vg=n(Ai);mm=r(vg,"dummy"),vg.forEach(o),vm=r(Fr," dans mon r\xE9pertoire de travail. Je peux "),Di=i(Fr,"CODE",{});var _g=n(Di);_m=r(_g,"cd"),_g.forEach(o),hm=r(Fr," dans ce dossier et jeter un coup d\u2019oeil \xE0 son contenu :"),Fr.forEach(o),Ma=f(e),P(fs.$$.fragment,e),Ca=f(e),P(ms.$$.fragment,e),Aa=f(e),ie=i(e,"P",{});var Se=n(ie);gm=r(Se,"Si vous venez de cr\xE9er votre d\xE9p\xF4t en utilisant la m\xE9thode "),Li=i(Se,"CODE",{});var hg=n(Li);bm=r(hg,"create_repo"),hg.forEach(o),Em=r(Se," du "),Oi=i(Se,"EM",{});var gg=n(Oi);$m=r(gg,"Hub"),gg.forEach(o),km=r(Se,", ce dossier devrait seulement contenir un fichier cach\xE9 "),xi=i(Se,"CODE",{});var bg=n(xi);qm=r(bg,".gitattributes"),bg.forEach(o),zm=r(Se,". Si vous avez suivi les instructions de la section pr\xE9c\xE9dente pour cr\xE9er un d\xE9p\xF4t en utilisant l\u2019interface web, le dossier devrait contenir un seul fichier "),Si=i(Se,"EM",{});var Eg=n(Si);ym=r(Eg,"README.md"),Eg.forEach(o),jm=r(Se," \xE0 c\xF4t\xE9 du fichier cach\xE9 "),Ti=i(Se,"CODE",{});var $g=n(Ti);wm=r($g,".gitattributes"),$g.forEach(o),Pm=r(Se,", comme indiqu\xE9 ici."),Se.forEach(o),Da=f(e),co=i(e,"P",{});var gu=n(co);Mm=r(gu,"L\u2019ajout d\u2019un fichier de taille normale, comme un fichier de configuration, un fichier de vocabulaire, ou tout autre fichier de moins de quelques m\xE9gaoctets, est fait exactement comme on le ferait dans n\u2019importe quel syst\xE8me bas\xE9 sur git. Cependant, les fichiers plus volumineux doivent \xEAtre enregistr\xE9s via git-lfs afin de les pousser vers "),Fi=i(gu,"EM",{});var kg=n(Fi);Cm=r(kg,"huggingface.co"),kg.forEach(o),Am=r(gu,"."),gu.forEach(o),La=f(e),po=i(e,"P",{});var bu=n(po);Dm=r(bu,"Revenons un peu \xE0 Python pour g\xE9n\xE9rer un mod\xE8le et un "),Ii=i(bu,"EM",{});var qg=n(Ii);Lm=r(qg,"tokenizer"),qg.forEach(o),Om=r(bu," que nous souhaitons \xAB commiter \xBB dans notre d\xE9p\xF4t fictif :"),bu.forEach(o),Oa=f(e),Ye.l(e),ar=f(e),kt=i(e,"P",{});var Ir=n(kt);xm=r(Ir,"Maintenant que nous avons sauvegard\xE9 quelques artefacts de mod\xE8le et de "),Ni=i(Ir,"EM",{});var zg=n(Ni);Sm=r(zg,"tokenizer"),zg.forEach(o),Tm=r(Ir,", regardons \xE0 nouveau le dossier "),Hi=i(Ir,"EM",{});var yg=n(Hi);Fm=r(yg,"dummy"),yg.forEach(o),Im=r(Ir," :"),Ir.forEach(o),xa=f(e),P(vs.$$.fragment,e),Sa=f(e),Je.l(e),ur=f(e),P(fo.$$.fragment,e),Ta=f(e),mo=i(e,"P",{});var Eu=n(mo);Nm=r(Eu,"Nous pouvons maintenant aller de l\u2019avant et proc\xE9der comme nous le ferions habituellement avec des d\xE9p\xF4ts Git traditionnels. Nous pouvons ajouter tous les fichiers \xE0 l\u2019environnement Git en utilisant la commande "),Gi=i(Eu,"CODE",{});var jg=n(Gi);Hm=r(jg,"git add"),jg.forEach(o),Gm=r(Eu," :"),Eu.forEach(o),Fa=f(e),P(_s.$$.fragment,e),Ia=f(e),cr=i(e,"P",{});var wg=n(cr);Rm=r(wg,"Nous pouvons alors jeter un coup d\u2019\u0153il aux fichiers :"),wg.forEach(o),Na=f(e),P(hs.$$.fragment,e),Ha=f(e),Xe.l(e),dr=f(e),vo=i(e,"P",{});var $u=n(vo);Um=r($u,"De m\xEAme, nous pouvons nous assurer que git-lfs suit les bons fichiers en utilisant sa commande "),Ri=i($u,"CODE",{});var Pg=n(Ri);Vm=r(Pg,"status"),Pg.forEach(o),Bm=r($u," :"),$u.forEach(o),Ga=f(e),P(gs.$$.fragment,e),Ra=f(e),Qe.l(e),pr=f(e),xe=i(e,"P",{});var $o=n(xe);Ym=r($o,"Passons aux \xE9tapes finales, "),Ui=i($o,"EM",{});var Mg=n(Ui);Km=r(Mg,"committing"),Mg.forEach(o),Jm=r($o," et "),Vi=i($o,"EM",{});var Cg=n(Vi);Wm=r(Cg,"pushing"),Cg.forEach(o),Xm=r($o," vers le d\xE9p\xF4t distant "),Bi=i($o,"EM",{});var Ag=n(Bi);Zm=r(Ag,"huggingface.co"),Ag.forEach(o),Qm=r($o," :"),$o.forEach(o),Ua=f(e),P(bs.$$.fragment,e),Va=f(e),tt.l(e),fr=f(e),mr=i(e,"P",{});var Dg=n(mr);ev=r(Dg,"Le chargement peut prendre un peu de temps, en fonction de la vitesse de votre connexion Internet et de la taille de vos fichiers :"),Dg.forEach(o),Ba=f(e),P(Es.$$.fragment,e),Ya=f(e),P($s.$$.fragment,e),Ka=f(e),Ft.l(e),vr=Lg(),this.h()},h(){v(d,"name","hf:doc:metadata"),v(d,"content",JSON.stringify(fb)),v(j,"id","partage-de-modles-prentrans"),v(j,"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"),v(j,"href","#partage-de-modles-prentrans"),v($,"class","relative group"),v(R,"id","utilisation-de-lapi-pushtohub"),v(R,"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"),v(R,"href","#utilisation-de-lapi-pushtohub"),v(x,"class","relative group"),v(xs,"href","/course/fr/chapter0"),v(jo,"href","https://huggingface.co/join"),v(jo,"rel","nofollow"),v(Ao,"href","https://huggingface.co/user-or-organization/dummy-model"),v(Ao,"rel","nofollow"),v(Kt,"href","https://huggingface.co/transformers/model_sharing.html"),v(Kt,"rel","nofollow"),v(Do,"href","https://github.com/huggingface/huggingface_hub"),v(Do,"rel","nofollow"),v(Lo,"href","https://github.com/allenai/allennlp"),v(Lo,"rel","nofollow"),v(Jt,"id","utilisation-de-la-bibliothque-python-huggingfacehub"),v(Jt,"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"),v(Jt,"href","#utilisation-de-la-bibliothque-python-huggingfacehub"),v(At,"class","relative group"),v(Xt,"id","utilisation-de-linterface-web"),v(Xt,"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"),v(Xt,"href","#utilisation-de-linterface-web"),v(Dt,"class","relative group"),v(No,"href","https://huggingface.co/new"),v(No,"rel","nofollow"),rt(Go.src,uv="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/new_model.png")||v(Go,"src",uv),v(Go,"alt","Page showcasing the model used for the creation of a new model repository."),v(Go,"width","80%"),v(Ho,"class","flex justify-center"),rt(Uo.src,cv="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/empty_model.png")||v(Uo,"src",cv),v(Uo,"alt","An empty model page after creating a new repository."),v(Uo,"width","80%"),v(Ro,"class","flex justify-center"),rt(Bo.src,dv="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/dummy_model.png")||v(Bo,"src",dv),v(Bo,"alt","The README file showing the Markdown capabilities."),v(Bo,"width","80%"),v(Vo,"class","flex justify-center"),rt(Ko.src,pv="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/files.png")||v(Ko,"src",pv),v(Ko,"alt","The 'Files and versions' tab only shows the .gitattributes and README.md files."),v(Ko,"width","80%"),v(Yo,"class","flex justify-center"),v(eo,"id","tlchargement-des-fichiers-du-modle"),v(eo,"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"),v(eo,"href","#tlchargement-des-fichiers-du-modle"),v(Lt,"class","relative group"),v(Wo,"href","https://git-lfs.github.com/"),v(Wo,"rel","nofollow"),v(to,"id","lapproche-uploadfile"),v(to,"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"),v(to,"href","#lapproche-uploadfile"),v(Ot,"class","relative group"),v(so,"id","la-classe-repository"),v(so,"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"),v(so,"href","#la-classe-repository"),v(xt,"class","relative group"),v(es,"href","https://git-lfs.github.com/"),v(es,"rel","nofollow"),v(ss,"href","https://github.com/huggingface/huggingface_hub/tree/main/src/huggingface_hub#advanced-programmatic-repository-management"),v(ss,"rel","nofollow"),v(ao,"id","lapproche-base-sur-git"),v(ao,"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"),v(ao,"href","#lapproche-base-sur-git"),v(St,"class","relative group"),v(as,"href","https://git-lfs.github.com/"),v(as,"rel","nofollow")},m(e,a){t(document.head,d),u(e,m,a),M(c,e,a),u(e,_,a),u(e,$,a),t($,j),t(j,I),M(y,I,null),t($,T),t($,F),t(F,q),u(e,h,a),ks[z].m(e,a),u(e,k,a),u(e,D,a),t(D,G),t(D,g),t(g,A),t(D,O),t(D,U),t(U,Y),t(D,V),u(e,Z,a),M(Q,e,a),u(e,X,a),u(e,pe,a),t(pe,Te),u(e,se,a),u(e,fe,a),t(fe,Fe),u(e,re,a),u(e,ee,a),t(ee,ae),t(ae,qe),t(ae,K),t(K,Ie),t(ae,ue),t(ee,Ne),t(ee,ce),t(ce,ze),t(ce,H),t(H,B),t(ce,Pe),t(ee,lt),t(ee,Me),t(Me,J),u(e,de,a),u(e,oe,a),t(oe,Mt),u(e,Ce,a),u(e,x,a),t(x,R),t(R,ye),M(je,ye,null),t(x,Ds),t(x,Ct),t(Ct,le),t(Ct,Ht),t(Ht,Ls),u(e,qo,a),qs[me].m(e,a),u(e,He,a),u(e,we,a),t(we,Gt),t(we,Rt),t(Rt,Os),t(we,ku),t(we,Nr),t(Nr,qu),t(we,zu),u(e,Ji,a),u(e,_e,a),t(_e,yu),t(_e,Hr),t(Hr,ju),t(_e,wu),t(_e,Gr),t(Gr,Pu),t(_e,Mu),t(_e,xs),t(xs,Cu),t(_e,Au),t(_e,Rr),t(Rr,Du),t(_e,Lu),u(e,Wi,a),M(zo,e,a),u(e,Xi,a),u(e,Ss,a),t(Ss,Ou),u(e,Zi,a),M(yo,e,a),u(e,Qi,a),u(e,it,a),t(it,xu),t(it,Ur),t(Ur,Su),t(it,Tu),t(it,jo),t(jo,Fu),t(it,Iu),u(e,en,a),u(e,Ts,a),t(Ts,Nu),u(e,tn,a),zs[Ge].m(e,a),u(e,Fs,a),u(e,he,a),t(he,Hu),t(he,Vr),t(Vr,Gu),t(he,Ru),t(he,Br),t(Br,Uu),t(he,Vu),t(he,Yr),t(Yr,Bu),t(he,Yu),t(he,Kr),t(Kr,Ku),t(he,Ju),u(e,on,a),u(e,Ut,a),t(Ut,Wu),t(Ut,Jr),t(Jr,Xu),t(Ut,Zu),u(e,sn,a),ys[Ue].m(e,a),u(e,Is,a),u(e,te,a),t(te,Qu),t(te,Wr),t(Wr,ec),t(te,tc),t(te,Xr),t(Xr,oc),t(te,sc),t(te,Zr),t(Zr,rc),t(te,lc),t(te,Qr),t(Qr,ic),t(te,nc),t(te,el),t(el,ac),t(te,uc),t(te,tl),t(tl,cc),t(te,dc),u(e,rn,a),M(wo,e,a),u(e,ln,a),u(e,nt,a),t(nt,pc),t(nt,ol),t(ol,fc),t(nt,mc),t(nt,sl),t(sl,vc),t(nt,_c),u(e,nn,a),M(Po,e,a),u(e,an,a),u(e,Vt,a),t(Vt,hc),t(Vt,rl),t(rl,gc),t(Vt,bc),u(e,un,a),M(Mo,e,a),u(e,cn,a),u(e,Bt,a),t(Bt,Ec),t(Bt,ll),t(ll,$c),t(Bt,kc),u(e,dn,a),M(Co,e,a),u(e,pn,a),u(e,at,a),t(at,qc),t(at,il),t(il,zc),t(at,yc),t(at,nl),t(nl,Ao),t(Ao,jc),t(at,wc),u(e,fn,a),u(e,Ns,a),t(Ns,Pc),u(e,mn,a),Tt.m(e,a),u(e,Hs,a),M(Yt,e,a),u(e,vn,a),u(e,ut,a),t(ut,Mc),t(ut,al),t(al,Cc),t(ut,Ac),t(ut,Kt),t(Kt,Dc),t(Kt,ul),t(ul,Lc),t(ut,Oc),u(e,_n,a),u(e,W,a),t(W,xc),t(W,cl),t(cl,Sc),t(W,Tc),t(W,dl),t(dl,Fc),t(W,Ic),t(W,Do),t(Do,pl),t(pl,Nc),t(W,Hc),t(W,fl),t(fl,Gc),t(W,Rc),t(W,ml),t(ml,Uc),t(W,Vc),t(W,Lo),t(Lo,vl),t(vl,Bc),t(W,Yc),t(W,_l),t(_l,Kc),t(W,Jc),u(e,hn,a),u(e,Gs,a),t(Gs,Wc),u(e,gn,a),u(e,At,a),t(At,Jt),t(Jt,hl),M(Oo,hl,null),t(At,Xc),t(At,Rs),t(Rs,Zc),t(Rs,gl),t(gl,Qc),u(e,bn,a),u(e,ge,a),t(ge,ed),t(ge,bl),t(bl,td),t(ge,od),t(ge,El),t(El,sd),t(ge,rd),t(ge,$l),t($l,ld),t(ge,id),t(ge,kl),t(kl,nd),t(ge,ad),u(e,En,a),u(e,Ae,a),t(Ae,ud),t(Ae,ql),t(ql,cd),t(Ae,dd),t(Ae,zl),t(zl,pd),t(Ae,fd),t(Ae,yl),t(yl,md),t(Ae,vd),u(e,$n,a),M(xo,e,a),u(e,kn,a),u(e,ct,a),t(ct,_d),t(ct,jl),t(jl,hd),t(ct,gd),t(ct,wl),t(wl,bd),t(ct,Ed),u(e,qn,a),M(So,e,a),u(e,zn,a),u(e,Wt,a),t(Wt,$d),t(Wt,Pl),t(Pl,kd),t(Wt,qd),u(e,yn,a),u(e,dt,a),t(dt,zd),t(dt,Ml),t(Ml,yd),t(dt,jd),t(dt,Cl),t(Cl,wd),t(dt,Pd),u(e,jn,a),M(To,e,a),u(e,wn,a),u(e,pt,a),t(pt,Md),t(pt,Al),t(Al,Cd),t(pt,Ad),t(pt,Dl),t(Dl,Dd),t(pt,Ld),u(e,Pn,a),M(Fo,e,a),u(e,Mn,a),u(e,ft,a),t(ft,Od),t(ft,Ll),t(Ll,xd),t(ft,Sd),t(ft,Ol),t(Ol,Td),t(ft,Fd),u(e,Cn,a),u(e,mt,a),t(mt,Us),t(Us,xl),t(xl,Id),t(Us,Nd),t(mt,Hd),t(mt,Vs),t(Vs,Sl),t(Sl,Gd),t(Vs,Rd),t(mt,Ud),t(mt,be),t(be,Tl),t(Tl,Vd),t(be,Bd),t(be,Fl),t(Fl,Yd),t(be,Kd),t(be,Il),t(Il,Jd),t(be,Wd),t(be,Nl),t(Nl,Xd),t(be,Zd),t(be,Hl),t(Hl,Qd),t(be,ep),u(e,An,a),u(e,Bs,a),t(Bs,tp),u(e,Dn,a),u(e,Dt,a),t(Dt,Xt),t(Xt,Gl),M(Io,Gl,null),t(Dt,op),t(Dt,Rl),t(Rl,sp),u(e,Ln,a),u(e,Zt,a),t(Zt,rp),t(Zt,Ul),t(Ul,lp),t(Zt,ip),u(e,On,a),u(e,Qt,a),t(Qt,np),t(Qt,No),t(No,ap),t(Qt,up),u(e,xn,a),u(e,Ho,a),t(Ho,Go),u(e,Sn,a),u(e,Ys,a),t(Ys,cp),u(e,Tn,a),u(e,Ks,a),t(Ks,dp),u(e,Fn,a),u(e,Js,a),t(Js,pp),u(e,In,a),u(e,Ro,a),t(Ro,Uo),u(e,Nn,a),u(e,Ws,a),t(Ws,fp),u(e,Hn,a),u(e,Vo,a),t(Vo,Bo),u(e,Gn,a),u(e,Xs,a),t(Xs,mp),u(e,Rn,a),u(e,De,a),t(De,vp),t(De,Vl),t(Vl,_p),t(De,hp),t(De,Bl),t(Bl,gp),t(De,bp),t(De,Yl),t(Yl,Ep),t(De,$p),u(e,Un,a),u(e,Yo,a),t(Yo,Ko),u(e,Vn,a),u(e,Zs,a),t(Zs,kp),u(e,Bn,a),u(e,Lt,a),t(Lt,eo),t(eo,Kl),M(Jo,Kl,null),t(Lt,qp),t(Lt,Jl),t(Jl,zp),u(e,Yn,a),u(e,vt,a),t(vt,yp),t(vt,Wl),t(Wl,jp),t(vt,wp),t(vt,Wo),t(Wo,Pp),t(vt,Mp),u(e,Kn,a),u(e,_t,a),t(_t,Cp),t(_t,Xl),t(Xl,Ap),t(_t,Dp),t(_t,Zl),t(Zl,Lp),t(_t,Op),u(e,Jn,a),u(e,Ot,a),t(Ot,to),t(to,Ql),M(Xo,Ql,null),t(Ot,xp),t(Ot,ei),t(ei,Sp),u(e,Wn,a),u(e,ht,a),t(ht,Tp),t(ht,ti),t(ti,Fp),t(ht,Ip),t(ht,oi),t(oi,Np),t(ht,Hp),u(e,Xn,a),u(e,Qs,a),t(Qs,Gp),u(e,Zn,a),M(Zo,e,a),u(e,Qn,a),u(e,Ee,a),t(Ee,Rp),t(Ee,si),t(si,Up),t(Ee,Vp),t(Ee,ri),t(ri,Bp),t(Ee,Yp),t(Ee,li),t(li,Kp),t(Ee,Jp),t(Ee,ii),t(ii,Wp),t(Ee,Xp),u(e,ea,a),u(e,oo,a),t(oo,er),t(er,ni),t(ni,Zp),t(er,Qp),t(oo,ef),t(oo,$e),t($e,ai),t(ai,tf),t($e,of),t($e,ui),t(ui,sf),t($e,rf),t($e,ci),t(ci,lf),t($e,nf),t($e,di),t(di,af),t($e,uf),t($e,pi),t(pi,cf),t($e,df),u(e,ta,a),u(e,xt,a),t(xt,so),t(so,fi),M(Qo,fi,null),t(xt,pf),t(xt,tr),t(tr,ff),t(tr,mi),t(mi,mf),u(e,oa,a),u(e,ro,a),t(ro,vf),t(ro,vi),t(vi,_f),t(ro,hf),u(e,sa,a),u(e,lo,a),t(lo,gf),t(lo,es),t(es,bf),t(lo,Ef),u(e,ra,a),u(e,or,a),t(or,$f),u(e,la,a),M(ts,e,a),u(e,ia,a),u(e,Le,a),t(Le,kf),t(Le,_i),t(_i,qf),t(Le,zf),t(Le,hi),t(hi,yf),t(Le,jf),t(Le,gi),t(gi,wf),t(Le,Pf),u(e,na,a),u(e,sr,a),t(sr,Mf),u(e,aa,a),M(os,e,a),u(e,ua,a),u(e,gt,a),t(gt,Cf),t(gt,bi),t(bi,Af),t(gt,Df),t(gt,ss),t(ss,Lf),t(gt,Of),u(e,ca,a),u(e,bt,a),t(bt,xf),t(bt,Ei),t(Ei,Sf),t(bt,Tf),t(bt,$i),t($i,Ff),t(bt,If),u(e,da,a),u(e,rr,a),t(rr,Nf),u(e,pa,a),M(rs,e,a),u(e,fa,a),u(e,io,a),t(io,Hf),t(io,ki),t(ki,Gf),t(io,Rf),u(e,ma,a),M(ls,e,a),u(e,va,a),u(e,Oe,a),t(Oe,Uf),t(Oe,qi),t(qi,Vf),t(Oe,Bf),t(Oe,zi),t(zi,Yf),t(Oe,Kf),t(Oe,yi),t(yi,Jf),t(Oe,Wf),u(e,_a,a),M(is,e,a),u(e,ha,a),u(e,no,a),t(no,Xf),t(no,ji),t(ji,Zf),t(no,Qf),u(e,ga,a),u(e,St,a),t(St,ao),t(ao,wi),M(ns,wi,null),t(St,em),t(St,Pi),t(Pi,tm),u(e,ba,a),u(e,lr,a),t(lr,om),u(e,Ea,a),u(e,uo,a),t(uo,sm),t(uo,as),t(as,rm),t(uo,lm),u(e,$a,a),u(e,ir,a),t(ir,im),u(e,ka,a),M(us,e,a),u(e,qa,a),M(cs,e,a),u(e,za,a),u(e,nr,a),t(nr,nm),u(e,ya,a),M(ds,e,a),u(e,ja,a),u(e,Et,a),t(Et,am),t(Et,Mi),t(Mi,um),t(Et,cm),t(Et,Ci),t(Ci,dm),t(Et,pm),u(e,wa,a),M(ps,e,a),u(e,Pa,a),u(e,$t,a),t($t,fm),t($t,Ai),t(Ai,mm),t($t,vm),t($t,Di),t(Di,_m),t($t,hm),u(e,Ma,a),M(fs,e,a),u(e,Ca,a),M(ms,e,a),u(e,Aa,a),u(e,ie,a),t(ie,gm),t(ie,Li),t(Li,bm),t(ie,Em),t(ie,Oi),t(Oi,$m),t(ie,km),t(ie,xi),t(xi,qm),t(ie,zm),t(ie,Si),t(Si,ym),t(ie,jm),t(ie,Ti),t(Ti,wm),t(ie,Pm),u(e,Da,a),u(e,co,a),t(co,Mm),t(co,Fi),t(Fi,Cm),t(co,Am),u(e,La,a),u(e,po,a),t(po,Dm),t(po,Ii),t(Ii,Lm),t(po,Om),u(e,Oa,a),js[Be].m(e,a),u(e,ar,a),u(e,kt,a),t(kt,xm),t(kt,Ni),t(Ni,Sm),t(kt,Tm),t(kt,Hi),t(Hi,Fm),t(kt,Im),u(e,xa,a),M(vs,e,a),u(e,Sa,a),ws[Ke].m(e,a),u(e,ur,a),M(fo,e,a),u(e,Ta,a),u(e,mo,a),t(mo,Nm),t(mo,Gi),t(Gi,Hm),t(mo,Gm),u(e,Fa,a),M(_s,e,a),u(e,Ia,a),u(e,cr,a),t(cr,Rm),u(e,Na,a),M(hs,e,a),u(e,Ha,a),Ps[We].m(e,a),u(e,dr,a),u(e,vo,a),t(vo,Um),t(vo,Ri),t(Ri,Vm),t(vo,Bm),u(e,Ga,a),M(gs,e,a),u(e,Ra,a),Ms[Ze].m(e,a),u(e,pr,a),u(e,xe,a),t(xe,Ym),t(xe,Ui),t(Ui,Km),t(xe,Jm),t(xe,Vi),t(Vi,Wm),t(xe,Xm),t(xe,Bi),t(Bi,Zm),t(xe,Qm),u(e,Ua,a),M(bs,e,a),u(e,Va,a),Cs[et].m(e,a),u(e,fr,a),u(e,mr,a),t(mr,ev),u(e,Ba,a),M(Es,e,a),u(e,Ya,a),M($s,e,a),u(e,Ka,a),Ft.m(e,a),u(e,vr,a),Ja=!0},p(e,[a]){const As={};a&1&&(As.fw=e[0]),c.$set(As);let _r=z;z=mv(e),z!==_r&&(Nt(),b(ks[_r],1,1,()=>{ks[_r]=null}),It(),L=ks[z],L||(L=ks[z]=fv[z](e),L.c()),E(L,1),L.m(k.parentNode,k));let hr=me;me=_v(e),me!==hr&&(Nt(),b(qs[hr],1,1,()=>{qs[hr]=null}),It(),ve=qs[me],ve||(ve=qs[me]=vv[me](e),ve.c()),E(ve,1),ve.m(He.parentNode,He));let gr=Ge;Ge=gv(e),Ge!==gr&&(Nt(),b(zs[gr],1,1,()=>{zs[gr]=null}),It(),Re=zs[Ge],Re||(Re=zs[Ge]=hv[Ge](e),Re.c()),E(Re,1),Re.m(Fs.parentNode,Fs));let qt=Ue;Ue=Ev(e),Ue!==qt&&(Nt(),b(ys[qt],1,1,()=>{ys[qt]=null}),It(),Ve=ys[Ue],Ve||(Ve=ys[Ue]=bv[Ue](e),Ve.c()),E(Ve,1),Ve.m(Is.parentNode,Is)),Wa!==(Wa=$v(e))&&(Tt.d(1),Tt=Wa(e),Tt&&(Tt.c(),Tt.m(Hs.parentNode,Hs)));const Yi={};a&2&&(Yi.$$scope={dirty:a,ctx:e}),Yt.$set(Yi);let br=Be;Be=qv(e),Be!==br&&(Nt(),b(js[br],1,1,()=>{js[br]=null}),It(),Ye=js[Be],Ye||(Ye=js[Be]=kv[Be](e),Ye.c()),E(Ye,1),Ye.m(ar.parentNode,ar));let Er=Ke;Ke=yv(e),Ke!==Er&&(Nt(),b(ws[Er],1,1,()=>{ws[Er]=null}),It(),Je=ws[Ke],Je||(Je=ws[Ke]=zv[Ke](e),Je.c()),E(Je,1),Je.m(ur.parentNode,ur));const Ki={};a&2&&(Ki.$$scope={dirty:a,ctx:e}),fo.$set(Ki);let zt=We;We=wv(e),We!==zt&&(Nt(),b(Ps[zt],1,1,()=>{Ps[zt]=null}),It(),Xe=Ps[We],Xe||(Xe=Ps[We]=jv[We](e),Xe.c()),E(Xe,1),Xe.m(dr.parentNode,dr));let _o=Ze;Ze=Mv(e),Ze!==_o&&(Nt(),b(Ms[_o],1,1,()=>{Ms[_o]=null}),It(),Qe=Ms[Ze],Qe||(Qe=Ms[Ze]=Pv[Ze](e),Qe.c()),E(Qe,1),Qe.m(pr.parentNode,pr));let $r=et;et=Av(e),et!==$r&&(Nt(),b(Cs[$r],1,1,()=>{Cs[$r]=null}),It(),tt=Cs[et],tt||(tt=Cs[et]=Cv[et](e),tt.c()),E(tt,1),tt.m(fr.parentNode,fr)),Xa!==(Xa=Dv(e))&&(Ft.d(1),Ft=Xa(e),Ft&&(Ft.c(),Ft.m(vr.parentNode,vr)))},i(e){Ja||(E(c.$$.fragment,e),E(y.$$.fragment,e),E(L),E(Q.$$.fragment,e),E(je.$$.fragment,e),E(ve),E(zo.$$.fragment,e),E(yo.$$.fragment,e),E(Re),E(Ve),E(wo.$$.fragment,e),E(Po.$$.fragment,e),E(Mo.$$.fragment,e),E(Co.$$.fragment,e),E(Yt.$$.fragment,e),E(Oo.$$.fragment,e),E(xo.$$.fragment,e),E(So.$$.fragment,e),E(To.$$.fragment,e),E(Fo.$$.fragment,e),E(Io.$$.fragment,e),E(Jo.$$.fragment,e),E(Xo.$$.fragment,e),E(Zo.$$.fragment,e),E(Qo.$$.fragment,e),E(ts.$$.fragment,e),E(os.$$.fragment,e),E(rs.$$.fragment,e),E(ls.$$.fragment,e),E(is.$$.fragment,e),E(ns.$$.fragment,e),E(us.$$.fragment,e),E(cs.$$.fragment,e),E(ds.$$.fragment,e),E(ps.$$.fragment,e),E(fs.$$.fragment,e),E(ms.$$.fragment,e),E(Ye),E(vs.$$.fragment,e),E(Je),E(fo.$$.fragment,e),E(_s.$$.fragment,e),E(hs.$$.fragment,e),E(Xe),E(gs.$$.fragment,e),E(Qe),E(bs.$$.fragment,e),E(tt),E(Es.$$.fragment,e),E($s.$$.fragment,e),Ja=!0)},o(e){b(c.$$.fragment,e),b(y.$$.fragment,e),b(L),b(Q.$$.fragment,e),b(je.$$.fragment,e),b(ve),b(zo.$$.fragment,e),b(yo.$$.fragment,e),b(Re),b(Ve),b(wo.$$.fragment,e),b(Po.$$.fragment,e),b(Mo.$$.fragment,e),b(Co.$$.fragment,e),b(Yt.$$.fragment,e),b(Oo.$$.fragment,e),b(xo.$$.fragment,e),b(So.$$.fragment,e),b(To.$$.fragment,e),b(Fo.$$.fragment,e),b(Io.$$.fragment,e),b(Jo.$$.fragment,e),b(Xo.$$.fragment,e),b(Zo.$$.fragment,e),b(Qo.$$.fragment,e),b(ts.$$.fragment,e),b(os.$$.fragment,e),b(rs.$$.fragment,e),b(ls.$$.fragment,e),b(is.$$.fragment,e),b(ns.$$.fragment,e),b(us.$$.fragment,e),b(cs.$$.fragment,e),b(ds.$$.fragment,e),b(ps.$$.fragment,e),b(fs.$$.fragment,e),b(ms.$$.fragment,e),b(Ye),b(vs.$$.fragment,e),b(Je),b(fo.$$.fragment,e),b(_s.$$.fragment,e),b(hs.$$.fragment,e),b(Xe),b(gs.$$.fragment,e),b(Qe),b(bs.$$.fragment,e),b(tt),b(Es.$$.fragment,e),b($s.$$.fragment,e),Ja=!1},d(e){o(d),e&&o(m),C(c,e),e&&o(_),e&&o($),C(y),e&&o(h),ks[z].d(e),e&&o(k),e&&o(D),e&&o(Z),C(Q,e),e&&o(X),e&&o(pe),e&&o(se),e&&o(fe),e&&o(re),e&&o(ee),e&&o(de),e&&o(oe),e&&o(Ce),e&&o(x),C(je),e&&o(qo),qs[me].d(e),e&&o(He),e&&o(we),e&&o(Ji),e&&o(_e),e&&o(Wi),C(zo,e),e&&o(Xi),e&&o(Ss),e&&o(Zi),C(yo,e),e&&o(Qi),e&&o(it),e&&o(en),e&&o(Ts),e&&o(tn),zs[Ge].d(e),e&&o(Fs),e&&o(he),e&&o(on),e&&o(Ut),e&&o(sn),ys[Ue].d(e),e&&o(Is),e&&o(te),e&&o(rn),C(wo,e),e&&o(ln),e&&o(nt),e&&o(nn),C(Po,e),e&&o(an),e&&o(Vt),e&&o(un),C(Mo,e),e&&o(cn),e&&o(Bt),e&&o(dn),C(Co,e),e&&o(pn),e&&o(at),e&&o(fn),e&&o(Ns),e&&o(mn),Tt.d(e),e&&o(Hs),C(Yt,e),e&&o(vn),e&&o(ut),e&&o(_n),e&&o(W),e&&o(hn),e&&o(Gs),e&&o(gn),e&&o(At),C(Oo),e&&o(bn),e&&o(ge),e&&o(En),e&&o(Ae),e&&o($n),C(xo,e),e&&o(kn),e&&o(ct),e&&o(qn),C(So,e),e&&o(zn),e&&o(Wt),e&&o(yn),e&&o(dt),e&&o(jn),C(To,e),e&&o(wn),e&&o(pt),e&&o(Pn),C(Fo,e),e&&o(Mn),e&&o(ft),e&&o(Cn),e&&o(mt),e&&o(An),e&&o(Bs),e&&o(Dn),e&&o(Dt),C(Io),e&&o(Ln),e&&o(Zt),e&&o(On),e&&o(Qt),e&&o(xn),e&&o(Ho),e&&o(Sn),e&&o(Ys),e&&o(Tn),e&&o(Ks),e&&o(Fn),e&&o(Js),e&&o(In),e&&o(Ro),e&&o(Nn),e&&o(Ws),e&&o(Hn),e&&o(Vo),e&&o(Gn),e&&o(Xs),e&&o(Rn),e&&o(De),e&&o(Un),e&&o(Yo),e&&o(Vn),e&&o(Zs),e&&o(Bn),e&&o(Lt),C(Jo),e&&o(Yn),e&&o(vt),e&&o(Kn),e&&o(_t),e&&o(Jn),e&&o(Ot),C(Xo),e&&o(Wn),e&&o(ht),e&&o(Xn),e&&o(Qs),e&&o(Zn),C(Zo,e),e&&o(Qn),e&&o(Ee),e&&o(ea),e&&o(oo),e&&o(ta),e&&o(xt),C(Qo),e&&o(oa),e&&o(ro),e&&o(sa),e&&o(lo),e&&o(ra),e&&o(or),e&&o(la),C(ts,e),e&&o(ia),e&&o(Le),e&&o(na),e&&o(sr),e&&o(aa),C(os,e),e&&o(ua),e&&o(gt),e&&o(ca),e&&o(bt),e&&o(da),e&&o(rr),e&&o(pa),C(rs,e),e&&o(fa),e&&o(io),e&&o(ma),C(ls,e),e&&o(va),e&&o(Oe),e&&o(_a),C(is,e),e&&o(ha),e&&o(no),e&&o(ga),e&&o(St),C(ns),e&&o(ba),e&&o(lr),e&&o(Ea),e&&o(uo),e&&o($a),e&&o(ir),e&&o(ka),C(us,e),e&&o(qa),C(cs,e),e&&o(za),e&&o(nr),e&&o(ya),C(ds,e),e&&o(ja),e&&o(Et),e&&o(wa),C(ps,e),e&&o(Pa),e&&o($t),e&&o(Ma),C(fs,e),e&&o(Ca),C(ms,e),e&&o(Aa),e&&o(ie),e&&o(Da),e&&o(co),e&&o(La),e&&o(po),e&&o(Oa),js[Be].d(e),e&&o(ar),e&&o(kt),e&&o(xa),C(vs,e),e&&o(Sa),ws[Ke].d(e),e&&o(ur),C(fo,e),e&&o(Ta),e&&o(mo),e&&o(Fa),C(_s,e),e&&o(Ia),e&&o(cr),e&&o(Na),C(hs,e),e&&o(Ha),Ps[We].d(e),e&&o(dr),e&&o(vo),e&&o(Ga),C(gs,e),e&&o(Ra),Ms[Ze].d(e),e&&o(pr),e&&o(xe),e&&o(Ua),C(bs,e),e&&o(Va),Cs[et].d(e),e&&o(fr),e&&o(mr),e&&o(Ba),C(Es,e),e&&o(Ya),C($s,e),e&&o(Ka),Ft.d(e),e&&o(vr)}}}const fb={local:"partage-de-modles-prentrans",sections:[{local:"utilisation-de-lapi-pushtohub",title:"Utilisation de l'API `push_to_hub`"},{local:"utilisation-de-la-bibliothque-python-huggingfacehub",title:"Utilisation de la biblioth\xE8que Python `huggingface_hub`"},{local:"utilisation-de-linterface-web",title:"Utilisation de l'interface web"},{local:"tlchargement-des-fichiers-du-modle",sections:[{local:"lapproche-uploadfile",title:"L'approche `upload_file'"},{local:"la-classe-repository",title:"La classe `Repository`"},{local:"lapproche-base-sur-git",title:"L'approche bas\xE9e sur git"}],title:"T\xE9l\xE9chargement des fichiers du mod\xE8le"}],title:"Partage de mod\xE8les pr\xE9-entra\xEEn\xE9s"};function mb(S,d,m){let c="pt";return Ng(()=>{const _=new URLSearchParams(window.location.search);m(0,c=_.get("fw")||"pt")}),[c]}class kb extends Sg{constructor(d){super();Tg(this,d,mb,pb,Fg,{})}}export{kb as default,fb as metadata};
