import{S as Dg,i as Lg,s as Og,e as l,k as p,w,t as s,l as Mg,M as xg,c as i,d as o,m as f,x as P,a as n,h as r,b as v,N as st,F as t,g as u,y as M,o as b,p as Ft,q as E,B as C,v as Sg,n as Nt}from"../../chunks/vendor-1e8b365d.js";import{T as Cg}from"../../chunks/Tip-62b14c6e.js";import{Y as lv}from"../../chunks/Youtube-c2a8cc39.js";import{I as $o}from"../../chunks/IconCopyLink-483c28ba.js";import{C as N}from"../../chunks/CodeBlock-e5764662.js";import{D as Ag}from"../../chunks/DocNotebookDropdown-37d928d3.js";import{F as Tg}from"../../chunks/FrameworkSwitchCourse-7f8f0f31.js";function Ig(S){let d,m;return d=new Ag({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section3_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/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 Fg(S){let d,m;return d=new Ag({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section3_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/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 Ng(S){let d,m;return d=new lv({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 Hg(S){let d,m;return d=new lv({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 Gg(S){let d,m,c,_,$,j,F,y,T,I,q,h,z,L,k,D,G,g,A,O,U,Y,V,Z,Q,X,pe,Se,se,fe,Te,re,ee,ae,qe,K,Ie,ue,Fe,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"),F=s("PushToHubCallback"),y=s(" lorsque vous appelez "),T=l("code"),I=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"),Se=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"),Te=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"),Fe=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 rt=n(j);F=r(rt,"PushToHubCallback"),rt.forEach(o),y=r(B," lorsque vous appelez "),T=i(B,"CODE",{});var Me=n(T);I=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),Se=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),Te=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);Fe=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,F),t(d,y),t(d,T),t(T,I),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,Se),t(k,se),t(se,fe),t(k,Te),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,Fe),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 Rg(S){let d,m,c,_,$,j,F,y,T,I,q,h,z,L,k,D,G,g,A,O,U,Y,V,Z,Q,X,pe,Se,se,fe,Te,re,ee,ae,qe,K,Ie,ue,Fe,ce,ze,H,B,Pe,rt,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"),F=s("Hub"),y=s(" est de d\xE9finir "),T=l("code"),I=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"),Se=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"),Te=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"),Fe=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"),rt=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);F=r(je,"Hub"),je.forEach(o),y=r(R," est de d\xE9finir "),T=i(R,"CODE",{});var As=n(T);I=r(As,"push_to_hub=True"),As.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 Ds=n(V);Z=r(Ds,"Trainer"),Ds.forEach(o),Q=r(le," t\xE9l\xE9chargera alors votre mod\xE8le vers le "),X=i(le,"EM",{});var ko=n(X);pe=r(ko,"Hub"),ko.forEach(o),Se=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),Te=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 Ne=n(K);Ie=r(Ne,"Pour t\xE9l\xE9charger votre mod\xE8le vers une organisation dont vous \xEAtes membre, passez-le simplement avec "),ue=i(Ne,"CODE",{});var we=n(ue);Fe=r(we,'hub_model_id = "my_organization/my_repo_name"'),we.forEach(o),ce=r(Ne,"."),Ne.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);rt=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 Ls=n(de);oe=i(Ls,"IMG",{src:!0,alt:!0,width:!0}),Ls.forEach(o),this.h()},h(){st(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,F),t(d,y),t(d,T),t(T,I),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,Se),t(g,se),t(se,fe),t(g,Te),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,Fe),t(K,ce),u(x,ze,R),u(x,H,R),t(H,B),t(H,Pe),t(Pe,rt),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 Ug(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 Vg(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 Bg(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(){st(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 Yg(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(){st(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 Kg(S){let d,m,c,_,$,j,F,y,T,I,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"),F=s("tokenizer"),y=s(" associ\xE9s au "),T=l("em"),I=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);F=r(U,"tokenizer"),U.forEach(o),y=r(A," associ\xE9s au "),T=i(A,"EM",{});var Y=n(T);I=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,F),t(d,y),t(d,T),t(T,I),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 Jg(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 Wg(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 Xg(S){let d,m,c,_,$,j,F,y,T,I,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"),F=s("), vous devriez voir que le fichier dict de l\u2019\xE9tat du mod\xE8le ("),y=l("em"),T=s("t5_model.h5"),I=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),F=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),I=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,F),t(c,y),t(y,T),t(c,I),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 Zg(S){let d,m,c,_,$,j,F,y,T,I,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"),F=s("), vous devriez voir que le fichier d\u2019\xE9tat du mod\xE8le ("),y=l("em"),T=s("pytorch_model.bin"),I=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),F=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),I=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,F),t(c,y),t(y,T),t(c,I),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 Qg(S){let d,m,c,_,$,j,F,y,T,I;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"),F=s(" et "),y=l("i"),T=s(".h5"),I=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),F=r(q," et "),y=i(q,"I",{});var L=n(y);T=r(L,".h5"),L.forEach(o),I=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,F,h),u(q,y,h),t(y,T),u(q,I,h)},d(q){q&&o(d),q&&o(m),q&&o(_),q&&o($),q&&o(F),q&&o(y),q&&o(I)}}}function eb(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 tb(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 ob(S){let d,m,c,_,$,j,F,y,T,I,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"),F=s(" comme gestionnaire, sauf "),y=l("em"),T=s("t5_model.h5"),I=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),F=r(D," comme gestionnaire, sauf "),y=i(D,"EM",{});var g=n(y);T=r(g,"t5_model.h5"),g.forEach(o),I=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,F),t(c,y),t(y,T),t(c,I),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 sb(S){let d,m,c,_,$,j,F,y,T,I,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"),F=s(" comme gestionnaire, sauf "),y=l("em"),T=s("pytorch_model.bin"),I=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),F=r(A," comme gestionnaire, sauf "),y=i(A,"EM",{});var U=n(y);T=r(U,"pytorch_model.bin"),U.forEach(o),I=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,F),t(c,y),t(y,T),t(c,I),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 rb(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 lb(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 ib(S){let d,m,c,_,$,j,F,y,T,I,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"),F=s("L\u2019interface utilisateur vous permet d\u2019explorer les fichiers du mod\xE8le et les "),y=l("em"),T=s("commits"),I=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);F=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),I=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(){st(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"),st(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,F),t(j,y),t(y,T),t(j,I),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 nb(S){let d,m,c,_,$,j,F,y,T,I,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"),F=p(),y=l("p"),T=s("L\u2019interface utilisateur vous permet d\u2019explorer les fichiers du mod\xE8le et les "),I=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),F=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 "),I=i(V,"EM",{});var Z=n(I);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(){st($.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"),st(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,F,U),u(O,y,U),t(y,T),t(y,I),t(I,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(F),O&&o(y),O&&o(D),O&&o(G)}}}function ab(S){let d,m,c,_,$,j,F,y,T,I,q,h,z,L,k,D,G,g,A,O,U,Y,V,Z,Q,X,pe,Se,se,fe,Te,re,ee,ae,qe,K,Ie,ue,Fe,ce,ze,H,B,Pe,rt,Me,J,de,oe,Mt,Ce,x,R,ye,je,As,Ct,le,Ht,Ds,ko,me,ve,Ne,we,Gt,Rt,Ls,$u,Nr,ku,qu,Ki,_e,zu,Hr,yu,ju,Gr,wu,Pu,Os,Mu,Cu,Rr,Au,Du,Ji,qo,Wi,xs,Lu,Xi,zo,Zi,lt,Ou,Ur,xu,Su,yo,Tu,Iu,Qi,Ss,Fu,en,He,Ge,Ts,he,Nu,Vr,Hu,Gu,Br,Ru,Uu,Yr,Vu,Bu,Kr,Yu,Ku,tn,Ut,Ju,Jr,Wu,Xu,on,Re,Ue,Is,te,Zu,Wr,Qu,ec,Xr,tc,oc,Zr,sc,rc,Qr,lc,ic,el,nc,ac,tl,uc,cc,sn,jo,rn,it,dc,ol,pc,fc,sl,mc,vc,ln,wo,nn,Vt,_c,rl,hc,gc,an,Po,un,Bt,bc,ll,Ec,$c,cn,Mo,dn,nt,kc,il,qc,zc,nl,Co,yc,jc,pn,Fs,wc,fn,Ns,Yt,mn,at,Pc,al,Mc,Cc,Kt,Ac,ul,Dc,Lc,vn,W,Oc,cl,xc,Sc,dl,Tc,Ic,Ao,pl,Fc,Nc,fl,Hc,Gc,ml,Rc,Uc,Do,vl,Vc,Bc,_l,Yc,Kc,_n,Hs,Jc,hn,At,Jt,hl,Lo,Wc,Gs,Xc,gl,Zc,gn,ge,Qc,bl,ed,td,El,od,sd,$l,rd,ld,kl,id,nd,bn,Ae,ad,ql,ud,cd,zl,dd,pd,yl,fd,md,En,Oo,$n,ut,vd,jl,_d,hd,wl,gd,bd,kn,xo,qn,Wt,Ed,Pl,$d,kd,zn,ct,qd,Ml,zd,yd,Cl,jd,wd,yn,So,jn,dt,Pd,Al,Md,Cd,Dl,Ad,Dd,wn,To,Pn,pt,Ld,Ll,Od,xd,Ol,Sd,Td,Mn,ft,Rs,xl,Id,Fd,Nd,Us,Sl,Hd,Gd,Rd,be,Tl,Ud,Vd,Il,Bd,Yd,Fl,Kd,Jd,Nl,Wd,Xd,Hl,Zd,Qd,Cn,Vs,ep,An,Dt,Xt,Gl,Io,tp,Rl,op,Dn,Zt,sp,Ul,rp,lp,Ln,Qt,ip,Fo,np,ap,On,No,Ho,iv,xn,Bs,up,Sn,Ys,cp,Tn,Ks,dp,In,Go,Ro,nv,Fn,Js,pp,Nn,Uo,Vo,av,Hn,Ws,fp,Gn,mt,mp,Vl,vp,_p,Bl,hp,gp,Rn,Bo,Yo,uv,Un,Xs,bp,Vn,Lt,eo,Yl,Ko,Ep,Kl,$p,Bn,vt,kp,Jl,qp,zp,Jo,yp,jp,Yn,_t,wp,Wl,Pp,Mp,Xl,Cp,Ap,Kn,Ot,to,Zl,Wo,Dp,Ql,Lp,Jn,ht,Op,ei,xp,Sp,ti,Tp,Ip,Wn,Zs,Fp,Xn,Xo,Zn,Ee,Np,oi,Hp,Gp,si,Rp,Up,ri,Vp,Bp,li,Yp,Kp,Qn,oo,Qs,ii,Jp,Wp,Xp,$e,ni,Zp,Qp,ai,ef,tf,ui,of,sf,ci,rf,lf,di,nf,af,ea,xt,so,pi,Zo,uf,er,cf,fi,df,ta,ro,pf,mi,ff,mf,oa,lo,vf,Qo,_f,hf,sa,tr,gf,ra,es,la,De,bf,vi,Ef,$f,_i,kf,qf,hi,zf,yf,ia,or,jf,na,ts,aa,gt,wf,gi,Pf,Mf,os,Cf,Af,ua,bt,Df,bi,Lf,Of,Ei,xf,Sf,ca,sr,Tf,da,ss,pa,io,If,$i,Ff,Nf,fa,rs,ma,Le,Hf,ki,Gf,Rf,qi,Uf,Vf,zi,Bf,Yf,va,ls,_a,no,Kf,yi,Jf,Wf,ha,St,ao,ji,is,Xf,wi,Zf,ga,rr,Qf,ba,uo,em,ns,tm,om,Ea,lr,sm,$a,as,ka,us,qa,ir,rm,za,cs,ya,Et,lm,Pi,im,nm,Mi,am,um,ja,ds,wa,$t,cm,Ci,dm,pm,Ai,fm,mm,Pa,ps,Ma,fs,Ca,ie,vm,Di,_m,hm,Li,gm,bm,Oi,Em,$m,xi,km,qm,Si,zm,ym,Aa,co,jm,Ti,wm,Pm,Da,po,Mm,Ii,Cm,Am,La,Ve,Be,nr,kt,Dm,Fi,Lm,Om,Ni,xm,Sm,Oa,ms,xa,Ye,Ke,ar,fo,Sa,mo,Tm,Hi,Im,Fm,Ta,vs,Ia,ur,Nm,Fa,_s,Na,Je,We,cr,vo,Hm,Gi,Gm,Rm,Ha,hs,Ga,Xe,Ze,dr,Oe,Um,Ri,Vm,Bm,Ui,Ym,Km,Vi,Jm,Wm,Ra,gs,Ua,Qe,et,pr,fr,Xm,Va,bs,Ba,Es,Ya,mr,Ka;c=new Tg({props:{fw:S[0]}}),y=new $o({});const cv=[Fg,Ig],$s=[];function dv(e,a){return e[0]==="pt"?0:1}z=dv(S),L=$s[z]=cv[z](S),Q=new lv({props:{id:"9yY3RB_GSPM"}}),je=new $o({});const pv=[Hg,Ng],ks=[];function fv(e,a){return e[0]==="pt"?0:1}me=fv(S),ve=ks[me]=pv[me](S),qo=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()`}}),zo=new N({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}});const mv=[Rg,Gg],qs=[];function vv(e,a){return e[0]==="pt"?0:1}He=vv(S),Ge=qs[He]=mv[He](S);const _v=[Vg,Ug],zs=[];function hv(e,a){return e[0]==="pt"?0:1}Re=hv(S),Ue=zs[Re]=_v[Re](S),jo=new N({props:{code:'model.push_to_hub("dummy-model")',highlighted:'model.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)'}}),wo=new N({props:{code:'tokenizer.push_to_hub("dummy-model")',highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)'}}),Po=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>)'}}),Mo=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 gv(e,a){return e[0]==="pt"?Yg:Bg}let Ja=gv(S),Tt=Ja(S);Yt=new Cg({props:{$$slots:{default:[Kg]},$$scope:{ctx:S}}}),Lo=new $o({}),Oo=new N({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),xo=new N({props:{code:`from huggingface_hub import (
    # User management
    login,
    logout,
    whoami,

    # Repository creation and management
    create_repo,
    delete_repo,
    update_repo_visibility,

    # And some methods to retrieve/change information about the content
    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"># User management</span>
    login,
    logout,
    whoami,

    <span class="hljs-comment"># Repository creation and management</span>
    create_repo,
    delete_repo,
    update_repo_visibility,

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