import{s as No,o as Xo,n as qo}from"../chunks/scheduler.37c15a92.js";import{S as Ao,i as Ro,g as u,s as o,r as v,A as Qo,h as p,f as l,c as r,j as Ho,u as h,x as m,k as W,y as So,a as s,v as y,t as b,b as ee,d as M,w as g,m as Bi,n as Li,p as te}from"../chunks/index.2bf4358c.js";import{T as Io}from"../chunks/Tip.363c041f.js";import{Y as Si}from"../chunks/Youtube.1e50a667.js";import{C as T}from"../chunks/CodeBlock.4e987730.js";import{C as Vo}from"../chunks/CourseFloatingBanner.6add7356.js";import{F as Yo}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as ae,E as Eo}from"../chunks/getInferenceSnippets.39afd8fb.js";function Fo(w){let n,a;return n=new Vo({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_tf.ipynb"},{label:"Français",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_tf.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_tf.ipynb"},{label:"Français",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_tf.ipynb"}]}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function Po(w){let n,a;return n=new Vo({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_pt.ipynb"},{label:"Français",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_pt.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter4/section3_pt.ipynb"},{label:"Français",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter4/section3_pt.ipynb"}]}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function Do(w){let n,a;return n=new Si({props:{id:"pUh5cGmNV8Y"}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function Ko(w){let n,a;return n=new Si({props:{id:"Zh0FfmVrKX0"}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function Oo(w){let n,a="Si vous utilisez Keras pour entraîner votre modèle, le moyen le plus simple de le télécharger sur le <em>Hub</em> est de passer un <code>PushToHubCallback</code> lorsque vous appelez <code>model.fit()</code> :",i,d,_,c,$="Ensuite, vous devez ajouter <code>callbacks=[callback]</code> dans votre appel à <code>model.fit()</code>. Le <em>callback</em> téléchargera alors votre modèle vers le <em>Hub</em> à chaque fois qu’il sera sauvegardé (ici à chaque époque) dans un dépôt dans votre espace de noms. Ce dépôt sera nommé comme le répertoire de sortie que vous avez choisi (ici <code>bert-finetuned-mrpc</code>) mais vous pouvez choisir un nom différent avec <code>hub_model_id = &quot;a_different_name&quot;</code>.",C,j,U="Pour télécharger votre modèle dans une organisation dont vous êtes membre, passez-le simplement avec <code>hub_model_id = &quot;my_organization/my_repo_name&quot;</code>.",k;return d=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFB1c2hUb0h1YkNhbGxiYWNrJTBBJTBBY2FsbGJhY2slMjAlM0QlMjBQdXNoVG9IdWJDYWxsYmFjayglMEElMjAlMjAlMjAlMjAlMjJiZXJ0LWZpbmV0dW5lZC1tcnBjJTIyJTJDJTIwc2F2ZV9zdHJhdGVneSUzRCUyMmVwb2NoJTIyJTJDJTIwdG9rZW5pemVyJTNEdG9rZW5pemVyJTBBKQ==",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
)`,wrap:!1}}),{c(){n=u("p"),n.innerHTML=a,i=o(),v(d.$$.fragment),_=o(),c=u("p"),c.innerHTML=$,C=o(),j=u("p"),j.innerHTML=U},l(f){n=p(f,"P",{"data-svelte-h":!0}),m(n)!=="svelte-qqabq4"&&(n.innerHTML=a),i=r(f),h(d.$$.fragment,f),_=r(f),c=p(f,"P",{"data-svelte-h":!0}),m(c)!=="svelte-1rf2yzk"&&(c.innerHTML=$),C=r(f),j=p(f,"P",{"data-svelte-h":!0}),m(j)!=="svelte-1wbrlzh"&&(j.innerHTML=U)},m(f,Z){s(f,n,Z),s(f,i,Z),y(d,f,Z),s(f,_,Z),s(f,c,Z),s(f,C,Z),s(f,j,Z),k=!0},i(f){k||(M(d.$$.fragment,f),k=!0)},o(f){b(d.$$.fragment,f),k=!1},d(f){f&&(l(n),l(i),l(_),l(c),l(C),l(j)),g(d,f)}}}function er(w){let n,a="Si vous avez joué avec l’API <code>Trainer</code> pour entraîner un modèle, le moyen le plus simple de le télécharger sur le <em>Hub</em> est de définir <code>push_to_hub=True</code> lorsque vous définissez vos <code>TrainingArguments</code> :",i,d,_,c,$="Lorsque vous appelez <code>trainer.train()</code>, le <code>Trainer</code> téléchargera alors votre modèle vers le <em>Hub</em> à chaque fois qu’il sera sauvegardé (ici à chaque époque) dans un dépôt dans votre espace personnel. Ce dépôt sera nommé comme le répertoire de sortie que vous avez choisi (ici <code>bert-finetuned-mrpc</code>) mais vous pouvez choisir un nom différent avec <code>hub_model_id = &quot;a_different_name&quot;</code>.",C,j,U="Pour télécharger votre modèle vers une organisation dont vous êtes membre, passez-le simplement avec <code>hub_model_id = &quot;my_organization/my_repo_name&quot;</code>.",k,f,Z="Une fois que votre entraînement est terminé, vous devriez faire un dernier <code>trainer.push_to_hub()</code> pour télécharger la dernière version de votre modèle. Cela générera également une carte pour le modèle avec toutes les métadonnées pertinentes, rapportant les hyperparamètres utilisés et les résultats d’évaluation ! Voici un exemple du contenu que vous pourriez trouver dans une telle carte de modèle :",D,G,ue='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/model_card.png" alt="An example of an auto-generated model card." width="100%"/>',x;return d=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRyYWluaW5nQXJndW1lbnRzJTBBJTBBdHJhaW5pbmdfYXJncyUyMCUzRCUyMFRyYWluaW5nQXJndW1lbnRzKCUwQSUyMCUyMCUyMCUyMCUyMmJlcnQtZmluZXR1bmVkLW1ycGMlMjIlMkMlMjBzYXZlX3N0cmF0ZWd5JTNEJTIyZXBvY2glMjIlMkMlMjBwdXNoX3RvX2h1YiUzRFRydWUlMEEp",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>
)`,wrap:!1}}),{c(){n=u("p"),n.innerHTML=a,i=o(),v(d.$$.fragment),_=o(),c=u("p"),c.innerHTML=$,C=o(),j=u("p"),j.innerHTML=U,k=o(),f=u("p"),f.innerHTML=Z,D=o(),G=u("div"),G.innerHTML=ue,this.h()},l(J){n=p(J,"P",{"data-svelte-h":!0}),m(n)!=="svelte-1jgq4vz"&&(n.innerHTML=a),i=r(J),h(d.$$.fragment,J),_=r(J),c=p(J,"P",{"data-svelte-h":!0}),m(c)!=="svelte-1bf6mox"&&(c.innerHTML=$),C=r(J),j=p(J,"P",{"data-svelte-h":!0}),m(j)!=="svelte-d91s87"&&(j.innerHTML=U),k=r(J),f=p(J,"P",{"data-svelte-h":!0}),m(f)!=="svelte-6a9c2v"&&(f.innerHTML=Z),D=r(J),G=p(J,"DIV",{class:!0,"data-svelte-h":!0}),m(G)!=="svelte-1lhrimn"&&(G.innerHTML=ue),this.h()},h(){W(G,"class","flex justify-center")},m(J,z){s(J,n,z),s(J,i,z),y(d,J,z),s(J,_,z),s(J,c,z),s(J,C,z),s(J,j,z),s(J,k,z),s(J,f,z),s(J,D,z),s(J,G,z),x=!0},i(J){x||(M(d.$$.fragment,J),x=!0)},o(J){b(d.$$.fragment,J),x=!1},d(J){J&&(l(n),l(i),l(_),l(c),l(C),l(j),l(k),l(f),l(D),l(G)),g(d,J)}}}function tr(w){let n,a;return n=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yTWFza2VkTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmNhbWVtYmVydC1iYXNlJTIyJTBBJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQp",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)`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function lr(w){let n,a;return n=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvck1hc2tlZExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJjYW1lbWJlcnQtYmFzZSUyMiUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCk=",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)`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function sr(w){let n,a='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model_tf.png" alt="Dummy model containing both the tokenizer and model files." width="80%"/>';return{c(){n=u("div"),n.innerHTML=a,this.h()},l(i){n=p(i,"DIV",{class:!0,"data-svelte-h":!0}),m(n)!=="svelte-5a3kk0"&&(n.innerHTML=a),this.h()},h(){W(n,"class","flex justify-center")},m(i,d){s(i,n,d)},d(i){i&&l(n)}}}function ir(w){let n,a='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model.png" alt="Dummy model containing both the tokenizer and model files." width="80%"/>';return{c(){n=u("div"),n.innerHTML=a,this.h()},l(i){n=p(i,"DIV",{class:!0,"data-svelte-h":!0}),m(n)!=="svelte-19u1vyv"&&(n.innerHTML=a),this.h()},h(){W(n,"class","flex justify-center")},m(i,d){s(i,n,d)},d(i){i&&l(n)}}}function nr(w){let n,a="✏️ <strong>Essayez</strong> Prenez le modèle et le <em>tokenizer</em> associés au <em>checkpoint</em> <code>bert-base-cased</code> et téléchargez-les vers un dépôt dans votre espace en utilisant la méthode <code>push_to_hub()</code>. Vérifiez que le dépôt apparaît correctement sur votre page avant de le supprimer.";return{c(){n=u("p"),n.innerHTML=a},l(i){n=p(i,"P",{"data-svelte-h":!0}),m(n)!=="svelte-1r8xrcc"&&(n.innerHTML=a)},m(i,d){s(i,n,d)},p:qo,d(i){i&&l(n)}}}function or(w){let n,a;return n=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yTWFza2VkTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmNhbWVtYmVydC1iYXNlJTIyJTBBJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBJTBBJTIzJTIwRmFpdGVzJTIwY2UlMjBxdWUlMjB2b3VzJTIwdm91bGV6JTIwYXZlYyUyMGxlJTIwbW9kJUMzJUE4bGUlMkMlMjBlbnRyYSVDMyVBRW5lei1sZSUyQyUyMGZpbmV0dW5lei1sZS4uLiUwQSUwQW1vZGVsLnNhdmVfcHJldHJhaW5lZCglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMiklMEF0b2tlbml6ZXIuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKQ==",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èle, entraînez-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>)`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function rr(w){let n,a;return n=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvck1hc2tlZExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJjYW1lbWJlcnQtYmFzZSUyMiUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEElMEElMjMlMjBGYWl0ZXMlMjBjZSUyMHF1ZSUyMHZvdXMlMjB2b3VsZXolMjBhdmVjJTIwbGUlMjBtb2QlQzMlQThsZSUyQyUyMGVudHJhJUMzJUFFbmV6LWxlJTJDJTIwZmluZXR1bmV6LWxlLi4uJTBBJTBBbW9kZWwuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKSUwQXRva2VuaXplci5zYXZlX3ByZXRyYWluZWQoJTIyJTNDcGF0aF90b19kdW1teV9mb2xkZXIlM0UlMjIp",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èle, entraînez-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>)`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function ar(w){let n,a,i,d="Si vous regardez la taille des fichiers (par exemple, avec <code>ls -lh</code>), vous devriez voir que le fichier dict de l’état du modèle (<em>t5_model.h5</em>) est la seule aberration, avec plus de 400 Mo.",_;return n=new T({props:{code:"Y29uZmlnLmpzb24lMjAlMjBSRUFETUUubWQlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUyMCUyMHNwZWNpYWxfdG9rZW5zX21hcC5qc29uJTIwJTIwdGZfbW9kZWwuaDUlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAlMjB0b2tlbml6ZXIuanNvbg==",highlighted:"config.json  README.md  sentencepiece.bpe.model  special_tokens_map.json  tf_model.h5  tokenizer_config.json  tokenizer.json",wrap:!1}}),{c(){v(n.$$.fragment),a=o(),i=u("p"),i.innerHTML=d},l(c){h(n.$$.fragment,c),a=r(c),i=p(c,"P",{"data-svelte-h":!0}),m(i)!=="svelte-zf3jyg"&&(i.innerHTML=d)},m(c,$){y(n,c,$),s(c,a,$),s(c,i,$),_=!0},i(c){_||(M(n.$$.fragment,c),_=!0)},o(c){b(n.$$.fragment,c),_=!1},d(c){c&&(l(a),l(i)),g(n,c)}}}function ur(w){let n,a,i,d="Si vous regardez la taille des fichiers (par exemple, avec <code>ls -lh</code>), vous devriez voir que le fichier d’état du modèle (<em>pytorch_model.bin</em>) est la seule exception, avec plus de 400 Mo.",_;return n=new T({props:{code:"Y29uZmlnLmpzb24lMjAlMjBweXRvcmNoX21vZGVsLmJpbiUyMCUyMFJFQURNRS5tZCUyMCUyMHNlbnRlbmNlcGllY2UuYnBlLm1vZGVsJTIwJTIwc3BlY2lhbF90b2tlbnNfbWFwLmpzb24lMjB0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAlMjB0b2tlbml6ZXIuanNvbg==",highlighted:"config.json  pytorch_model.bin  README.md  sentencepiece.bpe.model  special_tokens_map.json tokenizer_config.json  tokenizer.json",wrap:!1}}),{c(){v(n.$$.fragment),a=o(),i=u("p"),i.innerHTML=d},l(c){h(n.$$.fragment,c),a=r(c),i=p(c,"P",{"data-svelte-h":!0}),m(i)!=="svelte-1bsfx4z"&&(i.innerHTML=d)},m(c,$){y(n,c,$),s(c,a,$),s(c,i,$),_=!0},i(c){_||(M(n.$$.fragment,c),_=!0)},o(c){b(n.$$.fragment,c),_=!1},d(c){c&&(l(a),l(i)),g(n,c)}}}function pr(w){let n,a,i=".gitattributes",d,_,c=".bin",$,C,j=".h5",U;return{c(){n=Bi("✏️ Lors de la création du dépôt à partir de l'interface web, le fichier "),a=u("i"),a.textContent=i,d=Bi(" est automatiquement configuré pour considérer les fichiers avec certaines extensions, comme "),_=u("i"),_.textContent=c,$=Bi(" et "),C=u("i"),C.textContent=j,U=Bi(", comme des fichiers volumineux, et git-lfs les suivra sans aucune configuration nécessaire de votre part.")},l(k){n=Li(k,"✏️ Lors de la création du dépôt à partir de l'interface web, le fichier "),a=p(k,"I",{"data-svelte-h":!0}),m(a)!=="svelte-mvqmit"&&(a.textContent=i),d=Li(k," est automatiquement configuré pour considérer les fichiers avec certaines extensions, comme "),_=p(k,"I",{"data-svelte-h":!0}),m(_)!=="svelte-3mcxr1"&&(_.textContent=c),$=Li(k," et "),C=p(k,"I",{"data-svelte-h":!0}),m(C)!=="svelte-15ts8hb"&&(C.textContent=j),U=Li(k,", comme des fichiers volumineux, et git-lfs les suivra sans aucune configuration nécessaire de votre part.")},m(k,f){s(k,n,f),s(k,a,f),s(k,d,f),s(k,_,f),s(k,$,f),s(k,C,f),s(k,U,f)},p:qo,d(k){k&&(l(n),l(a),l(d),l(_),l($),l(C),l(U))}}}function mr(w){let n,a;return n=new T({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBWW91ciUyMGJyYW5jaCUyMGlzJTIwdXAlMjB0byUyMGRhdGUlMjB3aXRoJTIwJ29yaWdpbiUyRm1haW4nLiUwQSUwQUNoYW5nZXMlMjB0byUyMGJlJTIwY29tbWl0dGVkJTNBJTBBJTIwJTIwKHVzZSUyMCUyMmdpdCUyMHJlc3RvcmUlMjAtLXN0YWdlZCUyMCUzQ2ZpbGUlM0UuLi4lMjIlMjB0byUyMHVuc3RhZ2UpJTBBJTIwJTIwbW9kaWZpZWQlM0ElMjAlMjAlMjAuZ2l0YXR0cmlidXRlcyUwQSUyMCUyMCUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBjb25maWcuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0Zl9tb2RlbC5oNSUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXIuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",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`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function cr(w){let n,a;return n=new T({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBWW91ciUyMGJyYW5jaCUyMGlzJTIwdXAlMjB0byUyMGRhdGUlMjB3aXRoJTIwJ29yaWdpbiUyRm1haW4nLiUwQSUwQUNoYW5nZXMlMjB0byUyMGJlJTIwY29tbWl0dGVkJTNBJTBBJTIwJTIwKHVzZSUyMCUyMmdpdCUyMHJlc3RvcmUlMjAtLXN0YWdlZCUyMCUzQ2ZpbGUlM0UuLi4lMjIlMjB0byUyMHVuc3RhZ2UpJTBBJTIwJTIwbW9kaWZpZWQlM0ElMjAlMjAlMjAuZ2l0YXR0cmlidXRlcyUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBjb25maWcuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBweXRvcmNoX21vZGVsLmJpbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXIuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",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`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function dr(w){let n,a,i,d="Nous pouvons voir que tous les fichiers ont <code>Git</code> comme gestionnaire, sauf <em>t5_model.h5</em> qui a <code>LFS</code>. Super !",_;return n=new T({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBT2JqZWN0cyUyMHRvJTIwYmUlMjBwdXNoZWQlMjB0byUyMG9yaWdpbiUyRm1haW4lM0ElMEElMEElMEFPYmplY3RzJTIwdG8lMjBiZSUyMGNvbW1pdHRlZCUzQSUwQSUwQSUwOWNvbmZpZy5qc29uJTIwKEdpdCUzQSUyMGJjMjBmZjIpJTBBJTA5c2VudGVuY2VwaWVjZS5icGUubW9kZWwlMjAoTEZTJTNBJTIwOTg4YmM1YSklMEElMDlzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUyMChHaXQlM0ElMjBjYjIzOTMxKSUwQSUwOXRmX21vZGVsLmg1JTIwKExGUyUzQSUyMDg2ZmNlMjkpJTBBJTA5dG9rZW5pemVyLmpzb24lMjAoR2l0JTNBJTIwODUxZmYzZSklMEElMDl0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAoR2l0JTNBJTIwZjBmNzc4MyklMEElMEFPYmplY3RzJTIwbm90JTIwc3RhZ2VkJTIwZm9yJTIwY29tbWl0JTNBJTBBJTBB",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:

`,wrap:!1}}),{c(){v(n.$$.fragment),a=o(),i=u("p"),i.innerHTML=d},l(c){h(n.$$.fragment,c),a=r(c),i=p(c,"P",{"data-svelte-h":!0}),m(i)!=="svelte-19zqeod"&&(i.innerHTML=d)},m(c,$){y(n,c,$),s(c,a,$),s(c,i,$),_=!0},i(c){_||(M(n.$$.fragment,c),_=!0)},o(c){b(n.$$.fragment,c),_=!1},d(c){c&&(l(a),l(i)),g(n,c)}}}function fr(w){let n,a,i,d="Nous pouvons voir que tous les fichiers ont <code>Git</code> comme gestionnaire, sauf <em>pytorch_model.bin</em> et <em>sentencepiece.bpe.model</em>, qui ont <code>LFS</code>. Super !",_;return n=new T({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBT2JqZWN0cyUyMHRvJTIwYmUlMjBwdXNoZWQlMjB0byUyMG9yaWdpbiUyRm1haW4lM0ElMEElMEElMEFPYmplY3RzJTIwdG8lMjBiZSUyMGNvbW1pdHRlZCUzQSUwQSUwQSUwOWNvbmZpZy5qc29uJTIwKEdpdCUzQSUyMGJjMjBmZjIpJTBBJTA5cHl0b3JjaF9tb2RlbC5iaW4lMjAoTEZTJTNBJTIwMzU2ODZjMiklMEElMDlzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUyMChMRlMlM0ElMjA5ODhiYzVhKSUwQSUwOXNwZWNpYWxfdG9rZW5zX21hcC5qc29uJTIwKEdpdCUzQSUyMGNiMjM5MzEpJTBBJTA5dG9rZW5pemVyLmpzb24lMjAoR2l0JTNBJTIwODUxZmYzZSklMEElMDl0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAoR2l0JTNBJTIwZjBmNzc4MyklMEElMEFPYmplY3RzJTIwbm90JTIwc3RhZ2VkJTIwZm9yJTIwY29tbWl0JTNBJTBBJTBB",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:

`,wrap:!1}}),{c(){v(n.$$.fragment),a=o(),i=u("p"),i.innerHTML=d},l(c){h(n.$$.fragment,c),a=r(c),i=p(c,"P",{"data-svelte-h":!0}),m(i)!=="svelte-ygm2ng"&&(i.innerHTML=d)},m(c,$){y(n,c,$),s(c,a,$),s(c,i,$),_=!0},i(c){_||(M(n.$$.fragment,c),_=!0)},o(c){b(n.$$.fragment,c),_=!1},d(c){c&&(l(a),l(i)),g(n,c)}}}function br(w){let n,a;return n=new T({props:{code:"JTVCbWFpbiUyMGIwOGFhYjElNUQlMjBGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUwQSUyMDYlMjBmaWxlcyUyMGNoYW5nZWQlMkMlMjAzNiUyMGluc2VydGlvbnMoJTJCKSUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBjb25maWcuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0Zl9tb2RlbC5oNSUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXIuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",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`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function Mr(w){let n,a;return n=new T({props:{code:"JTVCbWFpbiUyMGIwOGFhYjElNUQlMjBGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUwQSUyMDclMjBmaWxlcyUyMGNoYW5nZWQlMkMlMjAyOTAyNyUyMGluc2VydGlvbnMoJTJCKSUwQSUyMCUyMDYlMjBmaWxlcyUyMGNoYW5nZWQlMkMlMjAzNiUyMGluc2VydGlvbnMoJTJCKSUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBjb25maWcuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBweXRvcmNoX21vZGVsLmJpbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXIuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",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`,wrap:!1}}),{c(){v(n.$$.fragment)},l(i){h(n.$$.fragment,i)},m(i,d){y(n,i,d),a=!0},i(i){a||(M(n.$$.fragment,i),a=!0)},o(i){b(n.$$.fragment,i),a=!1},d(i){g(n,i)}}}function vr(w){let n,a="Si nous jetons un coup d’œil au dépôt du modèle, lorsque cette opération est terminée, nous pouvons voir tous les fichiers récemment ajoutés :",i,d,_='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model_tf.png" alt="The &#39;Files and versions&#39; tab now contains all the recently uploaded files." width="80%"/>',c,$,C="L’interface utilisateur vous permet d’explorer les fichiers du modèle et les <em>commits</em> et de voir la différence introduite par chaque <em>commit</em> :",j,U,k='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffstf.gif" alt="The diff introduced by the recent commit." width="80%"/>';return{c(){n=u("p"),n.textContent=a,i=o(),d=u("div"),d.innerHTML=_,c=o(),$=u("p"),$.innerHTML=C,j=o(),U=u("div"),U.innerHTML=k,this.h()},l(f){n=p(f,"P",{"data-svelte-h":!0}),m(n)!=="svelte-12mvxh0"&&(n.textContent=a),i=r(f),d=p(f,"DIV",{class:!0,"data-svelte-h":!0}),m(d)!=="svelte-tz4fi2"&&(d.innerHTML=_),c=r(f),$=p(f,"P",{"data-svelte-h":!0}),m($)!=="svelte-16ok0cl"&&($.innerHTML=C),j=r(f),U=p(f,"DIV",{class:!0,"data-svelte-h":!0}),m(U)!=="svelte-2jd8bj"&&(U.innerHTML=k),this.h()},h(){W(d,"class","flex justify-center"),W(U,"class","flex justify-center")},m(f,Z){s(f,n,Z),s(f,i,Z),s(f,d,Z),s(f,c,Z),s(f,$,Z),s(f,j,Z),s(f,U,Z)},d(f){f&&(l(n),l(i),l(d),l(c),l($),l(j),l(U))}}}function hr(w){let n,a="Si nous jetons un coup d’œil au dépôt du modèle, lorsque cette opération est terminée, nous pouvons voir tous les fichiers récemment ajoutés :",i,d,_='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model.png" alt="The &#39;Files and versions&#39; tab now contains all the recently uploaded files." width="80%"/>',c,$,C="L’interface utilisateur vous permet d’explorer les fichiers du modèle et les <em>commits</em> et de voir la différence introduite par chaque <em>commit</em> :",j,U,k='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffs.gif" alt="The diff introduced by the recent commit." width="80%"/>';return{c(){n=u("p"),n.textContent=a,i=o(),d=u("div"),d.innerHTML=_,c=o(),$=u("p"),$.innerHTML=C,j=o(),U=u("div"),U.innerHTML=k,this.h()},l(f){n=p(f,"P",{"data-svelte-h":!0}),m(n)!=="svelte-12mvxh0"&&(n.textContent=a),i=r(f),d=p(f,"DIV",{class:!0,"data-svelte-h":!0}),m(d)!=="svelte-1v39mjb"&&(d.innerHTML=_),c=r(f),$=p(f,"P",{"data-svelte-h":!0}),m($)!=="svelte-16ok0cl"&&($.innerHTML=C),j=r(f),U=p(f,"DIV",{class:!0,"data-svelte-h":!0}),m(U)!=="svelte-1g561m5"&&(U.innerHTML=k),this.h()},h(){W(d,"class","flex justify-center"),W(U,"class","flex justify-center")},m(f,Z){s(f,n,Z),s(f,i,Z),s(f,d,Z),s(f,c,Z),s(f,$,Z),s(f,j,Z),s(f,U,Z)},d(f){f&&(l(n),l(i),l(d),l(c),l($),l(j),l(U))}}}function yr(w){let n,a,i,d,_,c,$,C,j,U,k,f,Z="Dans les étapes ci-dessous, nous allons examiner les moyens les plus simples de partager des modèles pré-entraînés sur le 🤗 <em>Hub</em>. Il existe des outils et des services disponibles qui permettent de simplifier le partage et la mise à jour des modèles directement sur le <em>Hub</em>, que nous allons explorer ci-dessous.",D,G,ue,x,J="Nous encourageons tous les utilisateurs qui entraînent des modèles à contribuer en les partageant avec la communauté. Le partage des modèles, même s’ils ont été entraînés sur des jeux de données très spécifiques, aidera les autres, en leur faisant gagner du temps, des ressources de calcul et en leur donnant accès à des artefacts entraînés utiles. À votre tour, vous pourrez bénéficier du travail effectué par les autres !",z,pe,Yi="Il y a trois façons de créer de nouveaux dépôts de modèles :",Jl,me,Ei="<li>en utilisant l’API <code>push_to_hub</code>,</li> <li>en utilisant la bibliothèque Python <code>huggingface_hub</code>,</li> <li>en utilisant l’interface web.</li>",Zl,ce,Fi="Une fois que vous avez créé un dépôt, vous pouvez y charger des fichiers via git et git-lfs. Nous allons vous guider dans la création de dépôts de modèles et le téléchargement de fichiers dans les sections suivantes.",Cl,de,Gl,B,L,vl,fe,Pi="La façon la plus simple de télécharger des fichiers vers le <em>Hub</em> est d’utiliser l’API <code>push_to_hub</code>.",zl,be,Di='Avant d’aller plus loin, vous devrez générer un jeton d’authentification afin que l’API <code>huggingface_hub</code> sache qui vous êtes et à quels espaces de noms vous avez accès en écriture. Assurez-vous que vous êtes dans un environnement où vous avez installé <code>transformers</code> (voir la <a href="/course/fr/chapter0">Configuration</a>). Si vous êtes dans un <em>notebook</em>, vous pouvez utiliser la fonction suivante pour vous connecter :',Wl,Me,xl,ve,Ki="Dans un terminal, vous pouvez exécuter :",Bl,he,Ll,ye,Oi='Dans les deux cas, vous serez invité à saisir votre nom d’utilisateur et votre mot de passe, qui sont les mêmes que ceux que vous utilisez pour vous connecter au <em>Hub</em>. Si vous n’avez pas encore de profil pour le Hub, vous devez en créer un <a href="https://huggingface.co/join" rel="nofollow">ici</a>.',Hl,ge,en="Super ! Votre jeton d’authentification est maintenant stocké dans votre dossier de cache. Créons quelques dépôts !",Il,H,I,hl,_e,tn="A un niveau inférieur, l’accès au <em>Hub</em> peut être fait directement sur les modèles, les <em>tokenizers</em> et les objets de configuration via leur méthode <code>push_to_hub()</code>. Cette méthode s’occupe à la fois de la création du dépôt et de l’envoi les fichiers du modèle et du <em>tokenizer</em> directement dans le dépôt. Aucune manipulation manuelle n’est nécessaire, contrairement à l’API que nous verrons plus loin.",ql,we,ln="Pour avoir une idée de son fonctionnement, commençons par initialiser un modèle et un <em>tokenizer</em> :",Vl,q,V,yl,$e,sn="Vous êtes libre de faire ce que vous voulez avec ces objets : ajouter des <em>tokens</em> au <em>tokenizer</em>, entraîner le modèle, le <em>finetuner</em>. Une fois que vous êtes satisfait du modèle, des poids et du <em>tokenizer</em> obtenus, vous pouvez utiliser la méthode <code>push_to_hub()</code> directement disponible sur l’objet <code>model</code> :",Nl,Te,Xl,je,nn=`Cela va créer le nouveau dépôt <code>dummy-model</code> dans votre profil et le remplir avec les fichiers du modèle.
Faites la même chose avec le <em>tokenizer</em>, de sorte que tous les fichiers sont maintenant disponibles dans ce dépôt :`,Al,Ue,Rl,ke,on="Si vous appartenez à une organisation, il suffit de spécifier l’argument <code>organization</code> pour télécharger dans l’espace de cette organisation :",Ql,Je,Sl,Ze,rn="Si vous souhaitez utiliser un jeton Hugging Face spécifique, vous pouvez également le spécifier à la méthode <code>push_to_hub()</code> :",Yl,Ce,El,Ge,an='Maintenant, dirigez-vous sur <em>Hub</em> pour trouver votre modèle nouvellement téléchargé : <em><a href="https://huggingface.co/user-or-organization/dummy-model" rel="nofollow">https://huggingface.co/user-or-organization/dummy-model</a></em>.',Fl,ze,un="Cliquez sur l’onglet « Fichiers et versions » et vous devriez voir les fichiers visibles dans la capture d’écran suivante :",Pl,gl,le,Dl,We,pn='Comme vous l’avez vu, la méthode <code>push_to_hub()</code> accepte plusieurs arguments, ce qui permet de télécharger vers un dépôt ou un espace d’organisation spécifique, ou d’utiliser un jeton d’API différent. Nous vous recommandons de jeter un coup d’œil à la spécification de la méthode disponible directement dans la documentation de <a href="https://huggingface.co/transformers/model_sharing.html" rel="nofollow">🤗 <em>Transformers</em></a> pour avoir une idée de ce qui est possible.',Kl,xe,mn='La méthode <code>push_to_hub()</code> est soutenue par le <em>package</em> Python <a href="https://github.com/huggingface/huggingface_hub" rel="nofollow"><code>huggingface_hub</code></a>, qui offre une API directe au <em>Hub</em>. C’est intégré à 🤗 <em>Transformers</em> et à plusieurs autres bibliothèques d’apprentissage automatique, comme <a href="https://github.com/allenai/allennlp" rel="nofollow"><code>allenlp</code></a>. Bien que nous nous concentrions sur l’intégration via 🤗 <em>Transformers</em> dans ce chapitre, son intégration dans votre propre code ou bibliothèque est simple.',Ol,Be,cn="Passez à la dernière section pour voir comment télécharger des fichiers dans votre dépôt nouvellement créé !",es,Le,ts,He,dn="La bibliothèque Python <code>huggingface_hub</code> est un <em>package</em> qui offre un ensemble d’outils pour les hubs des modèles et des jeux de données. Elle fournit des méthodes et des classes simples pour des tâches courantes telles qu’obtenir et gérer des informations à propos des dépôts sur le <em>Hub</em>. Elle fournit des APIs simples qui fonctionnent au-dessus de git pour gérer le contenu de ces dépôts et pour intégrer le <em>Hub</em> dans vos projets et bibliothèques.",ls,Ie,fn="De la même manière que pour l’utilisation de l’API <code>push_to_hub</code>, vous devrez avoir votre jeton d’API enregistré dans votre cache. Pour ce faire, vous devrez utiliser la commande <code>login</code> de la CLI, comme mentionné dans la section précédente (encore une fois, assurez-vous de faire précéder ces commandes du caractère <code>!</code> si vous les exécutez dans Google Colab) :",ss,qe,is,Ve,bn="Le <em>package</em> <code>huggingface_hub</code> offre plusieurs méthodes et classes qui sont utiles pour notre objectif. Tout d’abord, il y a quelques méthodes pour gérer la création, la suppression des dépôts, et autres :",ns,Ne,os,Xe,Mn="De plus, elle offre la très puissante classe <code>Repository</code> pour gérer un dépôt local. Nous allons explorer ces méthodes et cette classe dans les prochaines sections pour comprendre comment les exploiter.",rs,Ae,vn="La méthode <code>create_repo</code> peut être utilisée pour créer un nouveau dépôt sur le <em>Hub</em> :",as,Re,us,Qe,hn="Ceci créera le dépôt <code>dummy-model</code> dans votre espace. Si vous le souhaitez, vous pouvez spécifier à quelle organisation le dépôt doit appartenir en utilisant l’argument <code>organization</code> :",ps,Se,ms,Ye,yn=`Cela créera le dépôt <code>dummy-model</code> dans l’espace de nom <code>huggingface</code>, en supposant que vous appartenez à cette organisation.
D’autres arguments qui peuvent être utiles sont :`,cs,Ee,gn="<li><code>private</code>, afin de spécifier si le dépôt doit être visible des autres ou non,</li> <li><code>token</code>, si vous voulez remplacer le jeton stocké dans votre cache par un jeton donné,</li> <li><code>repo_type</code>, si vous souhaitez créer un <code>dataset</code> ou un <code>space</code> au lieu d’un modèle. Les valeurs acceptées sont <code>&quot;dataset&quot;</code> et <code>&quot;space&quot;</code>.</li>",ds,Fe,_n="Une fois que le dépôt est créé, nous devons y ajouter des fichiers ! Passez à la section suivante pour voir les trois façons dont cela peut être géré.",fs,Pe,bs,De,wn="L’interface web offre des outils pour gérer les dépôts directement dans le <em>Hub</em>. En utilisant l’interface, vous pouvez facilement créer des dépôts, ajouter des fichiers (même de grande taille !), explorer des modèles, visualiser les différences, et bien plus encore.",Ms,Ke,$n='Pour créer un nouveau dépôt, visitez <a href="https://huggingface.co/new" rel="nofollow">huggingface.co/new</a> :',vs,se,Tn='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/new_model.png" alt="Page showcasing the model used for the creation of a new model repository." width="80%"/>',hs,Oe,jn="Tout d’abord, indiquez le propriétaire du dépôt : il peut s’agir de vous ou de l’une des organisations auxquelles vous êtes affilié. Si vous choisissez une organisation, le modèle sera présenté sur la page de l’organisation et chaque membre de l’organisation aura la possibilité de contribuer au dépôt.",ys,et,Un="Ensuite, saisissez le nom de votre modèle. Ce sera également le nom du dépôt. Enfin, vous pouvez préciser si vous souhaitez que votre modèle soit public ou privé. Les modèles privés sont cachés de la vue du public.",gs,tt,kn="Après avoir créé votre dépôt de modèles, vous devriez voir une page comme celle-ci :",_s,ie,Jn='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/empty_model.png" alt="An empty model page after creating a new repository." width="80%"/>',ws,lt,Zn="C’est là que votre modèle sera hébergé. Pour commencer à le remplir, vous pouvez ajouter un fichier README directement depuis l’interface web.",$s,ne,Cn='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/dummy_model.png" alt="The README file showing the Markdown capabilities." width="80%"/>',Ts,st,Gn="Le fichier README est en Markdown. N’hésitez pas à vous lâcher avec lui ! La troisième partie de ce chapitre est consacrée à la construction d’une carte de modèle. Celles-ci sont d’une importance capitale pour valoriser votre modèle, car c’est par elles que vous indiquez aux autres ce qu’il peut faire.",js,it,zn="Si vous regardez l’onglet « <em>Files and versions</em> », vous verrez qu’il n’y a pas encore beaucoup de fichiers : juste le <em>README.md</em> que vous venez de créer et le fichier <em>.gitattributes</em> qui garde la trace des gros fichiers.",Us,oe,Wn='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/files.png" alt="The &#39;Files and versions&#39; tab only shows the .gitattributes and README.md files." width="80%"/>',ks,nt,xn="Nous allons maintenant voir comment ajouter de nouveaux fichiers.",Js,ot,Zs,rt,Bn='Le système de gestion des fichiers sur le <em>Hub</em> est basé sur git pour les fichiers ordinaires et git-lfs (qui signifie <a href="https://git-lfs.github.com/" rel="nofollow">Git Large File Storage</a>) pour les fichiers plus importants.',Cs,at,Ln="Dans la section suivante, nous passons en revue trois façons différentes de télécharger des fichiers sur le <em>Hub</em> : par <code>huggingface_hub</code> et par des commandes git.",Gs,ut,zs,pt,Hn=`L’utilisation de <code>upload_file</code> ne nécessite pas que git et git-lfs soient installés sur votre système. Il pousse les fichiers directement vers le 🤗 <em>Hub</em> en utilisant des requêtes HTTP POST. Une limitation de cette approche est qu’elle ne gère pas les fichiers dont la taille est supérieure à 5 Go.
Si vos fichiers ont une taille supérieure à 5 Go, veuillez suivre les deux autres méthodes détaillées ci-dessous.`,Ws,mt,In="L’API peut être utilisée comme suit :",xs,ct,Bs,dt,qn=`Ceci téléchargera le fichier <code>config.json</code> disponible à <code>&lt;path_to_file&gt;</code> à la racine du dépôt en tant que <code>config.json</code>, vers le dépôt <code>dummy-model</code>.
D’autres arguments qui peuvent être utiles sont :`,Ls,ft,Vn="<li><code>token</code>, si vous souhaitez remplacer le jeton stocké dans votre cache par un jeton donné,</li> <li><code>repo_type</code>, si vous souhaitez télécharger vers un <code>dataset</code> ou un <code>space</code> au lieu d’un modèle. Les valeurs acceptées sont <code>&quot;dataset&quot;</code> et <code>&quot;space&quot;</code>.</li>",Hs,bt,Is,Mt,Nn="La classe <code>Repository</code> gère un dépôt local d’une manière similaire à git. Elle abstrait la plupart des problèmes que l’on peut rencontrer avec git pour fournir toutes les fonctionnalités dont nous avons besoin.",qs,vt,Xn='L’utilisation de cette classe nécessite l’installation de git et de git-lfs, donc assurez-vous que git-lfs est installé (voir <a href="https://git-lfs.github.com/" rel="nofollow">ici</a> pour les instructions d’installation) et configuré avant de commencer.',Vs,ht,An="Afin de commencer à jouer avec le dépôt que nous venons de créer, nous pouvons commencer par l’initialiser dans un dossier local en clonant le dépôt distant :",Ns,yt,Xs,gt,Rn="Cela a créé le dossier <code>&lt;path_to_dummy_folder&gt;</code> dans notre répertoire de travail. Ce dossier ne contient que le fichier <code>.gitattributes</code> car c’est le seul fichier créé lors de l’instanciation du dépôt par <code>create_repo</code>.",As,_t,Qn="A partir de maintenant, nous pouvons utiliser plusieurs des méthodes traditionnelles de git :",Rs,wt,Qs,$t,Sn='Et d’autres encore ! Nous vous recommandons de jeter un coup d’œil  à la documentation de <code>Repository</code> disponible <a href="https://github.com/huggingface/huggingface_hub/tree/main/src/huggingface_hub#advanced-programmatic-repository-management" rel="nofollow">ici</a> pour une vue d’ensemble de toutes les méthodes disponibles.',Ss,Tt,Yn="Actuellement, nous avons un modèle et un <em>tokenizer</em> que nous voulons pousser vers le <em>Hub</em>. Nous avons réussi à cloner le dépôt, nous pouvons donc enregistrer les fichiers dans ce dépôt.",Ys,jt,En="Nous nous assurons d’abord que notre clone local est à jour en récupérant les dernières modifications :",Es,Ut,Fs,kt,Fn="Une fois que c’est fait, nous sauvegardons les fichiers du modèle et du <em>tokenizer</em> :",Ps,Jt,Ds,Zt,Pn="Le <code>&lt;path_to_dummy_folder&gt;</code> contient maintenant tous les fichiers du modèle et du <em>tokenizer</em>. Nous suivons le flux de travail git habituel en ajoutant des fichiers à la zone de transit, en les validant et en les poussant vers le <em>Hub</em> :",Ks,Ct,Os,Gt,Dn="Félicitations ! Vous venez de pousser vos premiers fichiers sur le <em>Hub</em>.",ei,zt,ti,Wt,Kn="Il s’agit de l’approche la plus basique pour télécharger des fichiers : nous le ferons directement avec git et git-lfs. La plupart des difficultés sont abstraites par les approches précédentes, mais il y a quelques réserves avec la méthode suivante, nous allons donc suivre un cas d’utilisation plus complexe.",li,xt,On='L’utilisation de cette classe nécessite l’installation de git et de git-lfs, donc assurez-vous d’avoir <a href="https://git-lfs.github.com/" rel="nofollow">git-lfs</a> installé et configuré avant de commencer.',si,Bt,eo="Commencez par initialiser git-lfs :",ii,Lt,ni,Ht,oi,It,to="Une fois que c’est fait, la première étape consiste à cloner votre dépôt de modèles :",ri,qt,ai,Vt,lo="Mon nom d’utilisateur est <code>lysandre</code> et j’ai utilisé le nom de modèle <code>dummy</code>, donc pour moi la commande ressemble à ce qui suit :",ui,Nt,pi,Xt,so="J’ai maintenant un dossier nommé <em>dummy</em> dans mon répertoire de travail. Je peux <code>cd</code> dans ce dossier et jeter un coup d’oeil à son contenu :",mi,At,ci,Rt,di,Qt,io="Si vous venez de créer votre dépôt en utilisant la méthode <code>create_repo</code> du <em>Hub</em>, ce dossier devrait seulement contenir un fichier caché <code>.gitattributes</code>. Si vous avez suivi les instructions de la section précédente pour créer un dépôt en utilisant l’interface web, le dossier devrait contenir un seul fichier <em>README.md</em> à côté du fichier caché <code>.gitattributes</code>, comme indiqué ici.",fi,St,no="L’ajout d’un fichier de taille normale, comme un fichier de configuration, un fichier de vocabulaire, ou tout autre fichier de moins de quelques mégaoctets, est fait exactement comme on le ferait dans n’importe quel système basé sur git. Cependant, les fichiers plus volumineux doivent être enregistrés via git-lfs afin de les pousser vers <em>huggingface.co</em>.",bi,Yt,oo="Revenons un peu à Python pour générer un modèle et un <em>tokenizer</em> que nous souhaitons « commiter » dans notre dépôt fictif :",Mi,N,X,_l,Et,ro="Maintenant que nous avons sauvegardé quelques artefacts de modèle et de <em>tokenizer</em>, regardons à nouveau le dossier <em>dummy</em> :",vi,Ft,hi,A,R,wl,re,yi,Pt,ao="Nous pouvons maintenant aller de l’avant et procéder comme nous le ferions habituellement avec des dépôts Git traditionnels. Nous pouvons ajouter tous les fichiers à l’environnement Git en utilisant la commande <code>git add</code> :",gi,Dt,_i,Kt,uo="Nous pouvons alors jeter un coup d’œil aux fichiers :",wi,Ot,$i,Q,S,$l,el,po="De même, nous pouvons nous assurer que git-lfs suit les bons fichiers en utilisant sa commande <code>status</code> :",Ti,tl,ji,Y,E,Tl,ll,mo="Passons aux étapes finales, <em>committing</em> et <em>pushing</em> vers le dépôt distant <em>huggingface.co</em> :",Ui,sl,ki,F,P,jl,il,co="Le chargement peut prendre un peu de temps, en fonction de la vitesse de votre connexion Internet et de la taille de vos fichiers :",Ji,nl,Zi,ol,Ci,Ul,rl,Gi,kl,zi;_=new Yo({props:{fw:w[0]}}),$=new ae({props:{title:"Partage de modèles pré-entraînés",local:"partage-de-modèles-pré-entraînés",headingTag:"h1"}});const fo=[Po,Fo],al=[];function bo(e,t){return e[0]==="pt"?0:1}j=bo(w),U=al[j]=fo[j](w),G=new Si({props:{id:"9yY3RB_GSPM"}}),de=new ae({props:{title:"Utilisation de l’API push_to_hub",local:"utilisation-de-lapi-pushtohub",headingTag:"h2"}});const Mo=[Ko,Do],ul=[];function vo(e,t){return e[0]==="pt"?0:1}B=vo(w),L=ul[B]=Mo[B](w),Me=new T({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

notebook_login()`,wrap:!1}}),he=new T({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}});const ho=[er,Oo],pl=[];function yo(e,t){return e[0]==="pt"?0:1}H=yo(w),I=pl[H]=ho[H](w);const go=[lr,tr],ml=[];function _o(e,t){return e[0]==="pt"?0:1}q=_o(w),V=ml[q]=go[q](w),Te=new T({props:{code:"bW9kZWwucHVzaF90b19odWIoJTIyZHVtbXktbW9kZWwlMjIp",highlighted:'model.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)',wrap:!1}}),Ue=new T({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyKQ==",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)',wrap:!1}}),Je=new T({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyJTJDJTIwb3JnYW5pemF0aW9uJTNEJTIyaHVnZ2luZ2ZhY2UlMjIp",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>)',wrap:!1}}),Ce=new T({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyJTJDJTIwb3JnYW5pemF0aW9uJTNEJTIyaHVnZ2luZ2ZhY2UlMjIlMkMlMjB1c2VfYXV0aF90b2tlbiUzRCUyMiUzQ1RPS0VOJTNFJTIyKQ==",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>)',wrap:!1}});function wo(e,t){return e[0]==="pt"?ir:sr}let Wi=wo(w),K=Wi(w);le=new Io({props:{$$slots:{default:[nr]},$$scope:{ctx:w}}}),Le=new ae({props:{title:"Utilisation de la bibliothèque Python huggingface_hub",local:"utilisation-de-la-bibliothèque-python-huggingfacehub",headingTag:"h2"}}),qe=new T({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),Ne=new T({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMCglMEElMjAlMjAlMjAlMjAlMjMlMjBHZXN0aW9uJTIwZGVzJTIwdXRpbGlzYXRldXJzJTBBJTIwJTIwJTIwJTIwbG9naW4lMkMlMEElMjAlMjAlMjAlMjBsb2dvdXQlMkMlMEElMjAlMjAlMjAlMjB3aG9hbWklMkMlMEElMEElMjAlMjAlMjAlMjAlMjMlMjBDciVDMyVBOWF0aW9uJTIwZXQlMjBnZXN0aW9uJTIwZHUlMjBkJUMzJUE5cCVDMyVCNHQlMEElMjAlMjAlMjAlMjBjcmVhdGVfcmVwbyUyQyUwQSUyMCUyMCUyMCUyMGRlbGV0ZV9yZXBvJTJDJTBBJTIwJTIwJTIwJTIwdXBkYXRlX3JlcG9fdmlzaWJpbGl0eSUyQyUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMEV0JTIwcXVlbHF1ZXMlMjBtJUMzJUE5dGhvZGVzJTIwcG91ciUyMHIlQzMlQTljdXAlQzMlQTlyZXIlMkZjaGFuZ2VyJTIwZGVzJTIwaW5mb3JtYXRpb25zJTIwc3VyJTIwbGUlMjBjb250ZW51JTBBJTIwJTIwJTIwJTIwbGlzdF9tb2RlbHMlMkMlMEElMjAlMjAlMjAlMjBsaXN0X2RhdGFzZXRzJTJDJTBBJTIwJTIwJTIwJTIwbGlzdF9tZXRyaWNzJTJDJTBBJTIwJTIwJTIwJTIwbGlzdF9yZXBvX2ZpbGVzJTJDJTBBJTIwJTIwJTIwJTIwdXBsb2FkX2ZpbGUlMkMlMEElMjAlMjAlMjAlMjBkZWxldGVfZmlsZSUyQyUwQSk=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> (
    <span class="hljs-comment"># Gestion des utilisateurs</span>
    login,
    logout,
    whoami,

    <span class="hljs-comment"># Création et gestion du dépôt</span>
    create_repo,
    delete_repo,
    update_repo_visibility,

    <span class="hljs-comment"># Et quelques méthodes pour récupérer/changer des informations sur le contenu</span>
    list_models,
    list_datasets,
    list_metrics,
    list_repo_files,
    upload_file,
    delete_file,
)`,wrap:!1}}),Re=new T({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGNyZWF0ZV9yZXBvJTBBJTBBY3JlYXRlX3JlcG8oJTIyZHVtbXktbW9kZWwlMjIp",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>)`,wrap:!1}}),Se=new T({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGNyZWF0ZV9yZXBvJTBBJTBBY3JlYXRlX3JlcG8oJTIyZHVtbXktbW9kZWwlMjIlMkMlMjBvcmdhbml6YXRpb24lM0QlMjJodWdnaW5nZmFjZSUyMik=",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>)`,wrap:!1}}),Pe=new ae({props:{title:"Utilisation de l’interface web",local:"utilisation-de-linterface-web",headingTag:"h2"}}),ot=new ae({props:{title:"Téléchargement des fichiers du modèle",local:"téléchargement-des-fichiers-du-modèle",headingTag:"h2"}}),ut=new ae({props:{title:"L’approche `upload_file’",local:"lapproche-uploadfile",headingTag:"h3"}}),ct=new T({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMHVwbG9hZF9maWxlJTBBJTBBdXBsb2FkX2ZpbGUoJTBBJTIwJTIwJTIwJTIwJTIyJTNDcGF0aF90b19maWxlJTNFJTJGY29uZmlnLmpzb24lMjIlMkMlMEElMjAlMjAlMjAlMjBwYXRoX2luX3JlcG8lM0QlMjJjb25maWcuanNvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMHJlcG9faWQlM0QlMjIlM0NuYW1lc3BhY2UlM0UlMkZkdW1teS1tb2RlbCUyMiUyQyUwQSk=",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>,
)`,wrap:!1}}),bt=new ae({props:{title:"La classe Repository",local:"la-classe-repository",headingTag:"h3"}}),yt=new T({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMFJlcG9zaXRvcnklMEElMEFyZXBvJTIwJTNEJTIwUmVwb3NpdG9yeSglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMiUyQyUyMGNsb25lX2Zyb20lM0QlMjIlM0NuYW1lc3BhY2UlM0UlMkZkdW1teS1tb2RlbCUyMik=",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>)`,wrap:!1}}),wt=new T({props:{code:"cmVwby5naXRfcHVsbCgpJTBBcmVwby5naXRfYWRkKCklMEFyZXBvLmdpdF9jb21taXQoKSUwQXJlcG8uZ2l0X3B1c2goKSUwQXJlcG8uZ2l0X3RhZygp",highlighted:`repo.git_pull()
repo.git_add()
repo.git_commit()
repo.git_push()
repo.git_tag()`,wrap:!1}}),Ut=new T({props:{code:"cmVwby5naXRfcHVsbCgp",highlighted:"repo.git_pull()",wrap:!1}}),Jt=new T({props:{code:"bW9kZWwuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKSUwQXRva2VuaXplci5zYXZlX3ByZXRyYWluZWQoJTIyJTNDcGF0aF90b19kdW1teV9mb2xkZXIlM0UlMjIp",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>)`,wrap:!1}}),Ct=new T({props:{code:"cmVwby5naXRfYWRkKCklMEFyZXBvLmdpdF9jb21taXQoJTIyQWRkJTIwbW9kZWwlMjBhbmQlMjB0b2tlbml6ZXIlMjBmaWxlcyUyMiklMEFyZXBvLmdpdF9wdXNoKCk=",highlighted:`repo.git_add()
repo.git_commit(<span class="hljs-string">&quot;Add model and tokenizer files&quot;</span>)
repo.git_push()`,wrap:!1}}),zt=new ae({props:{title:"L’approche basée sur git",local:"lapproche-basée-sur-git",headingTag:"h3"}}),Lt=new T({props:{code:"Z2l0JTIwbGZzJTIwaW5zdGFsbA==",highlighted:"git lfs install",wrap:!1}}),Ht=new T({props:{code:"VXBkYXRlZCUyMGdpdCUyMGhvb2tzLiUwQUdpdCUyMExGUyUyMGluaXRpYWxpemVkLg==",highlighted:`Updated git hooks.
Git LFS initialized.`,wrap:!1}}),qt=new T({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGJTNDbmFtZXNwYWNlJTNFJTJGJTNDeW91ci1tb2RlbC1pZCUzRQ==",highlighted:'git <span class="hljs-built_in">clone</span> https://huggingface.co/&lt;namespace&gt;/&lt;your-model-id&gt;',wrap:!1}}),Nt=new T({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbHlzYW5kcmUlMkZkdW1teQ==",highlighted:'git clone https:<span class="hljs-regexp">//</span>huggingface.co<span class="hljs-regexp">/lysandre/</span>dummy',wrap:!1}}),At=new T({props:{code:"Y2QlMjBkdW1teSUyMCUyNiUyNiUyMGxz",highlighted:'<span class="hljs-built_in">cd</span> dummy &amp;&amp; <span class="hljs-built_in">ls</span>',wrap:!1}}),Rt=new T({props:{code:"UkVBRE1FLm1k",highlighted:"README.md",wrap:!1}});const $o=[rr,or],cl=[];function To(e,t){return e[0]==="pt"?0:1}N=To(w),X=cl[N]=$o[N](w),Ft=new T({props:{code:"bHM=",highlighted:'<span class="hljs-built_in">ls</span>',wrap:!1}});const jo=[ur,ar],dl=[];function Uo(e,t){return e[0]==="pt"?0:1}A=Uo(w),R=dl[A]=jo[A](w),re=new Io({props:{$$slots:{default:[pr]},$$scope:{ctx:w}}}),Dt=new T({props:{code:"Z2l0JTIwYWRkJTIwLg==",highlighted:"git add .",wrap:!1}}),Ot=new T({props:{code:"Z2l0JTIwc3RhdHVz",highlighted:"git status",wrap:!1}});const ko=[cr,mr],fl=[];function Jo(e,t){return e[0]==="pt"?0:1}Q=Jo(w),S=fl[Q]=ko[Q](w),tl=new T({props:{code:"Z2l0JTIwbGZzJTIwc3RhdHVz",highlighted:"git lfs status",wrap:!1}});const Zo=[fr,dr],bl=[];function Co(e,t){return e[0]==="pt"?0:1}Y=Co(w),E=bl[Y]=Zo[Y](w),sl=new T({props:{code:"Z2l0JTIwY29tbWl0JTIwLW0lMjAlMjJGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUyMg==",highlighted:'git commit -m <span class="hljs-string">&quot;First model version&quot;</span>',wrap:!1}});const Go=[Mr,br],Ml=[];function zo(e,t){return e[0]==="pt"?0:1}F=zo(w),P=Ml[F]=Go[F](w),nl=new T({props:{code:"Z2l0JTIwcHVzaA==",highlighted:"git push",wrap:!1}}),ol=new T({props:{code:"VXBsb2FkaW5nJTIwTEZTJTIwb2JqZWN0cyUzQSUyMDEwMCUyNSUyMCgxJTJGMSklMkMlMjA0MzMlMjBNQiUyMCU3QyUyMDEuMyUyME1CJTJGcyUyQyUyMGRvbmUuJTBBRW51bWVyYXRpbmclMjBvYmplY3RzJTNBJTIwMTElMkMlMjBkb25lLiUwQUNvdW50aW5nJTIwb2JqZWN0cyUzQSUyMDEwMCUyNSUyMCgxMSUyRjExKSUyQyUyMGRvbmUuJTBBRGVsdGElMjBjb21wcmVzc2lvbiUyMHVzaW5nJTIwdXAlMjB0byUyMDEyJTIwdGhyZWFkcyUwQUNvbXByZXNzaW5nJTIwb2JqZWN0cyUzQSUyMDEwMCUyNSUyMCg5JTJGOSklMkMlMjBkb25lLiUwQVdyaXRpbmclMjBvYmplY3RzJTNBJTIwMTAwJTI1JTIwKDklMkY5KSUyQyUyMDI4OC4yNyUyMEtpQiUyMCU3QyUyMDYuMjclMjBNaUIlMkZzJTJDJTIwZG9uZS4lMEFUb3RhbCUyMDklMjAoZGVsdGElMjAxKSUyQyUyMHJldXNlZCUyMDAlMjAoZGVsdGElMjAwKSUyQyUyMHBhY2stcmV1c2VkJTIwMCUwQVRvJTIwaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmx5c2FuZHJlJTJGZHVtbXklMEElMjAlMjAlMjA4OTFiNDFkLi5iMDhhYWIxJTIwJTIwbWFpbiUyMC0lM0UlMjBtYWlu",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`,wrap:!1}});function Wo(e,t){return e[0]==="pt"?hr:vr}let xi=Wo(w),O=xi(w);return rl=new Eo({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fr/chapter4/3.mdx"}}),{c(){n=u("meta"),a=o(),i=u("p"),d=o(),v(_.$$.fragment),c=o(),v($.$$.fragment),C=o(),U.c(),k=o(),f=u("p"),f.innerHTML=Z,D=o(),v(G.$$.fragment),ue=o(),x=u("p"),x.textContent=J,z=o(),pe=u("p"),pe.textContent=Yi,Jl=o(),me=u("ul"),me.innerHTML=Ei,Zl=o(),ce=u("p"),ce.textContent=Fi,Cl=o(),v(de.$$.fragment),Gl=o(),L.c(),vl=o(),fe=u("p"),fe.innerHTML=Pi,zl=o(),be=u("p"),be.innerHTML=Di,Wl=o(),v(Me.$$.fragment),xl=o(),ve=u("p"),ve.textContent=Ki,Bl=o(),v(he.$$.fragment),Ll=o(),ye=u("p"),ye.innerHTML=Oi,Hl=o(),ge=u("p"),ge.textContent=en,Il=o(),I.c(),hl=o(),_e=u("p"),_e.innerHTML=tn,ql=o(),we=u("p"),we.innerHTML=ln,Vl=o(),V.c(),yl=o(),$e=u("p"),$e.innerHTML=sn,Nl=o(),v(Te.$$.fragment),Xl=o(),je=u("p"),je.innerHTML=nn,Al=o(),v(Ue.$$.fragment),Rl=o(),ke=u("p"),ke.innerHTML=on,Ql=o(),v(Je.$$.fragment),Sl=o(),Ze=u("p"),Ze.innerHTML=rn,Yl=o(),v(Ce.$$.fragment),El=o(),Ge=u("p"),Ge.innerHTML=an,Fl=o(),ze=u("p"),ze.textContent=un,Pl=o(),K.c(),gl=o(),v(le.$$.fragment),Dl=o(),We=u("p"),We.innerHTML=pn,Kl=o(),xe=u("p"),xe.innerHTML=mn,Ol=o(),Be=u("p"),Be.textContent=cn,es=o(),v(Le.$$.fragment),ts=o(),He=u("p"),He.innerHTML=dn,ls=o(),Ie=u("p"),Ie.innerHTML=fn,ss=o(),v(qe.$$.fragment),is=o(),Ve=u("p"),Ve.innerHTML=bn,ns=o(),v(Ne.$$.fragment),os=o(),Xe=u("p"),Xe.innerHTML=Mn,rs=o(),Ae=u("p"),Ae.innerHTML=vn,as=o(),v(Re.$$.fragment),us=o(),Qe=u("p"),Qe.innerHTML=hn,ps=o(),v(Se.$$.fragment),ms=o(),Ye=u("p"),Ye.innerHTML=yn,cs=o(),Ee=u("ul"),Ee.innerHTML=gn,ds=o(),Fe=u("p"),Fe.textContent=_n,fs=o(),v(Pe.$$.fragment),bs=o(),De=u("p"),De.innerHTML=wn,Ms=o(),Ke=u("p"),Ke.innerHTML=$n,vs=o(),se=u("div"),se.innerHTML=Tn,hs=o(),Oe=u("p"),Oe.textContent=jn,ys=o(),et=u("p"),et.textContent=Un,gs=o(),tt=u("p"),tt.textContent=kn,_s=o(),ie=u("div"),ie.innerHTML=Jn,ws=o(),lt=u("p"),lt.textContent=Zn,$s=o(),ne=u("div"),ne.innerHTML=Cn,Ts=o(),st=u("p"),st.textContent=Gn,js=o(),it=u("p"),it.innerHTML=zn,Us=o(),oe=u("div"),oe.innerHTML=Wn,ks=o(),nt=u("p"),nt.textContent=xn,Js=o(),v(ot.$$.fragment),Zs=o(),rt=u("p"),rt.innerHTML=Bn,Cs=o(),at=u("p"),at.innerHTML=Ln,Gs=o(),v(ut.$$.fragment),zs=o(),pt=u("p"),pt.innerHTML=Hn,Ws=o(),mt=u("p"),mt.textContent=In,xs=o(),v(ct.$$.fragment),Bs=o(),dt=u("p"),dt.innerHTML=qn,Ls=o(),ft=u("ul"),ft.innerHTML=Vn,Hs=o(),v(bt.$$.fragment),Is=o(),Mt=u("p"),Mt.innerHTML=Nn,qs=o(),vt=u("p"),vt.innerHTML=Xn,Vs=o(),ht=u("p"),ht.textContent=An,Ns=o(),v(yt.$$.fragment),Xs=o(),gt=u("p"),gt.innerHTML=Rn,As=o(),_t=u("p"),_t.textContent=Qn,Rs=o(),v(wt.$$.fragment),Qs=o(),$t=u("p"),$t.innerHTML=Sn,Ss=o(),Tt=u("p"),Tt.innerHTML=Yn,Ys=o(),jt=u("p"),jt.textContent=En,Es=o(),v(Ut.$$.fragment),Fs=o(),kt=u("p"),kt.innerHTML=Fn,Ps=o(),v(Jt.$$.fragment),Ds=o(),Zt=u("p"),Zt.innerHTML=Pn,Ks=o(),v(Ct.$$.fragment),Os=o(),Gt=u("p"),Gt.innerHTML=Dn,ei=o(),v(zt.$$.fragment),ti=o(),Wt=u("p"),Wt.textContent=Kn,li=o(),xt=u("p"),xt.innerHTML=On,si=o(),Bt=u("p"),Bt.textContent=eo,ii=o(),v(Lt.$$.fragment),ni=o(),v(Ht.$$.fragment),oi=o(),It=u("p"),It.textContent=to,ri=o(),v(qt.$$.fragment),ai=o(),Vt=u("p"),Vt.innerHTML=lo,ui=o(),v(Nt.$$.fragment),pi=o(),Xt=u("p"),Xt.innerHTML=so,mi=o(),v(At.$$.fragment),ci=o(),v(Rt.$$.fragment),di=o(),Qt=u("p"),Qt.innerHTML=io,fi=o(),St=u("p"),St.innerHTML=no,bi=o(),Yt=u("p"),Yt.innerHTML=oo,Mi=o(),X.c(),_l=o(),Et=u("p"),Et.innerHTML=ro,vi=o(),v(Ft.$$.fragment),hi=o(),R.c(),wl=o(),v(re.$$.fragment),yi=o(),Pt=u("p"),Pt.innerHTML=ao,gi=o(),v(Dt.$$.fragment),_i=o(),Kt=u("p"),Kt.textContent=uo,wi=o(),v(Ot.$$.fragment),$i=o(),S.c(),$l=o(),el=u("p"),el.innerHTML=po,Ti=o(),v(tl.$$.fragment),ji=o(),E.c(),Tl=o(),ll=u("p"),ll.innerHTML=mo,Ui=o(),v(sl.$$.fragment),ki=o(),P.c(),jl=o(),il=u("p"),il.textContent=co,Ji=o(),v(nl.$$.fragment),Zi=o(),v(ol.$$.fragment),Ci=o(),O.c(),Ul=o(),v(rl.$$.fragment),Gi=o(),kl=u("p"),this.h()},l(e){const t=Qo("svelte-u9bgzb",document.head);n=p(t,"META",{name:!0,content:!0}),t.forEach(l),a=r(e),i=p(e,"P",{}),Ho(i).forEach(l),d=r(e),h(_.$$.fragment,e),c=r(e),h($.$$.fragment,e),C=r(e),U.l(e),k=r(e),f=p(e,"P",{"data-svelte-h":!0}),m(f)!=="svelte-muc556"&&(f.innerHTML=Z),D=r(e),h(G.$$.fragment,e),ue=r(e),x=p(e,"P",{"data-svelte-h":!0}),m(x)!=="svelte-16pef2k"&&(x.textContent=J),z=r(e),pe=p(e,"P",{"data-svelte-h":!0}),m(pe)!=="svelte-xabxkd"&&(pe.textContent=Yi),Jl=r(e),me=p(e,"UL",{"data-svelte-h":!0}),m(me)!=="svelte-24ckq9"&&(me.innerHTML=Ei),Zl=r(e),ce=p(e,"P",{"data-svelte-h":!0}),m(ce)!=="svelte-dcs86"&&(ce.textContent=Fi),Cl=r(e),h(de.$$.fragment,e),Gl=r(e),L.l(e),vl=r(e),fe=p(e,"P",{"data-svelte-h":!0}),m(fe)!=="svelte-1wy46nc"&&(fe.innerHTML=Pi),zl=r(e),be=p(e,"P",{"data-svelte-h":!0}),m(be)!=="svelte-t3dzs5"&&(be.innerHTML=Di),Wl=r(e),h(Me.$$.fragment,e),xl=r(e),ve=p(e,"P",{"data-svelte-h":!0}),m(ve)!=="svelte-1yi01vw"&&(ve.textContent=Ki),Bl=r(e),h(he.$$.fragment,e),Ll=r(e),ye=p(e,"P",{"data-svelte-h":!0}),m(ye)!=="svelte-1ugogj0"&&(ye.innerHTML=Oi),Hl=r(e),ge=p(e,"P",{"data-svelte-h":!0}),m(ge)!=="svelte-1pnm8zq"&&(ge.textContent=en),Il=r(e),I.l(e),hl=r(e),_e=p(e,"P",{"data-svelte-h":!0}),m(_e)!=="svelte-1j13jxi"&&(_e.innerHTML=tn),ql=r(e),we=p(e,"P",{"data-svelte-h":!0}),m(we)!=="svelte-1v8h6oe"&&(we.innerHTML=ln),Vl=r(e),V.l(e),yl=r(e),$e=p(e,"P",{"data-svelte-h":!0}),m($e)!=="svelte-14e5i7j"&&($e.innerHTML=sn),Nl=r(e),h(Te.$$.fragment,e),Xl=r(e),je=p(e,"P",{"data-svelte-h":!0}),m(je)!=="svelte-1bteord"&&(je.innerHTML=nn),Al=r(e),h(Ue.$$.fragment,e),Rl=r(e),ke=p(e,"P",{"data-svelte-h":!0}),m(ke)!=="svelte-rxf3eu"&&(ke.innerHTML=on),Ql=r(e),h(Je.$$.fragment,e),Sl=r(e),Ze=p(e,"P",{"data-svelte-h":!0}),m(Ze)!=="svelte-fwi80h"&&(Ze.innerHTML=rn),Yl=r(e),h(Ce.$$.fragment,e),El=r(e),Ge=p(e,"P",{"data-svelte-h":!0}),m(Ge)!=="svelte-10tz1gz"&&(Ge.innerHTML=an),Fl=r(e),ze=p(e,"P",{"data-svelte-h":!0}),m(ze)!=="svelte-69ylxr"&&(ze.textContent=un),Pl=r(e),K.l(e),gl=r(e),h(le.$$.fragment,e),Dl=r(e),We=p(e,"P",{"data-svelte-h":!0}),m(We)!=="svelte-t03pd8"&&(We.innerHTML=pn),Kl=r(e),xe=p(e,"P",{"data-svelte-h":!0}),m(xe)!=="svelte-1sgfij2"&&(xe.innerHTML=mn),Ol=r(e),Be=p(e,"P",{"data-svelte-h":!0}),m(Be)!=="svelte-1qajhg8"&&(Be.textContent=cn),es=r(e),h(Le.$$.fragment,e),ts=r(e),He=p(e,"P",{"data-svelte-h":!0}),m(He)!=="svelte-svaw7c"&&(He.innerHTML=dn),ls=r(e),Ie=p(e,"P",{"data-svelte-h":!0}),m(Ie)!=="svelte-1bvh8ju"&&(Ie.innerHTML=fn),ss=r(e),h(qe.$$.fragment,e),is=r(e),Ve=p(e,"P",{"data-svelte-h":!0}),m(Ve)!=="svelte-bz6s2"&&(Ve.innerHTML=bn),ns=r(e),h(Ne.$$.fragment,e),os=r(e),Xe=p(e,"P",{"data-svelte-h":!0}),m(Xe)!=="svelte-sursgh"&&(Xe.innerHTML=Mn),rs=r(e),Ae=p(e,"P",{"data-svelte-h":!0}),m(Ae)!=="svelte-722giz"&&(Ae.innerHTML=vn),as=r(e),h(Re.$$.fragment,e),us=r(e),Qe=p(e,"P",{"data-svelte-h":!0}),m(Qe)!=="svelte-1sahii8"&&(Qe.innerHTML=hn),ps=r(e),h(Se.$$.fragment,e),ms=r(e),Ye=p(e,"P",{"data-svelte-h":!0}),m(Ye)!=="svelte-yujeot"&&(Ye.innerHTML=yn),cs=r(e),Ee=p(e,"UL",{"data-svelte-h":!0}),m(Ee)!=="svelte-1mofzeh"&&(Ee.innerHTML=gn),ds=r(e),Fe=p(e,"P",{"data-svelte-h":!0}),m(Fe)!=="svelte-okanau"&&(Fe.textContent=_n),fs=r(e),h(Pe.$$.fragment,e),bs=r(e),De=p(e,"P",{"data-svelte-h":!0}),m(De)!=="svelte-1kwmfb9"&&(De.innerHTML=wn),Ms=r(e),Ke=p(e,"P",{"data-svelte-h":!0}),m(Ke)!=="svelte-s5hl7a"&&(Ke.innerHTML=$n),vs=r(e),se=p(e,"DIV",{class:!0,"data-svelte-h":!0}),m(se)!=="svelte-4qsgxt"&&(se.innerHTML=Tn),hs=r(e),Oe=p(e,"P",{"data-svelte-h":!0}),m(Oe)!=="svelte-sfjtzu"&&(Oe.textContent=jn),ys=r(e),et=p(e,"P",{"data-svelte-h":!0}),m(et)!=="svelte-uakbi2"&&(et.textContent=Un),gs=r(e),tt=p(e,"P",{"data-svelte-h":!0}),m(tt)!=="svelte-1ka12hm"&&(tt.textContent=kn),_s=r(e),ie=p(e,"DIV",{class:!0,"data-svelte-h":!0}),m(ie)!=="svelte-1xh6nig"&&(ie.innerHTML=Jn),ws=r(e),lt=p(e,"P",{"data-svelte-h":!0}),m(lt)!=="svelte-1db6hyp"&&(lt.textContent=Zn),$s=r(e),ne=p(e,"DIV",{class:!0,"data-svelte-h":!0}),m(ne)!=="svelte-1jm8l0p"&&(ne.innerHTML=Cn),Ts=r(e),st=p(e,"P",{"data-svelte-h":!0}),m(st)!=="svelte-1cxw6uc"&&(st.textContent=Gn),js=r(e),it=p(e,"P",{"data-svelte-h":!0}),m(it)!=="svelte-y0l4xl"&&(it.innerHTML=zn),Us=r(e),oe=p(e,"DIV",{class:!0,"data-svelte-h":!0}),m(oe)!=="svelte-1kuf5jc"&&(oe.innerHTML=Wn),ks=r(e),nt=p(e,"P",{"data-svelte-h":!0}),m(nt)!=="svelte-vy0w6r"&&(nt.textContent=xn),Js=r(e),h(ot.$$.fragment,e),Zs=r(e),rt=p(e,"P",{"data-svelte-h":!0}),m(rt)!=="svelte-12nhlde"&&(rt.innerHTML=Bn),Cs=r(e),at=p(e,"P",{"data-svelte-h":!0}),m(at)!=="svelte-qln49"&&(at.innerHTML=Ln),Gs=r(e),h(ut.$$.fragment,e),zs=r(e),pt=p(e,"P",{"data-svelte-h":!0}),m(pt)!=="svelte-2n1ujn"&&(pt.innerHTML=Hn),Ws=r(e),mt=p(e,"P",{"data-svelte-h":!0}),m(mt)!=="svelte-1933okw"&&(mt.textContent=In),xs=r(e),h(ct.$$.fragment,e),Bs=r(e),dt=p(e,"P",{"data-svelte-h":!0}),m(dt)!=="svelte-eolgso"&&(dt.innerHTML=qn),Ls=r(e),ft=p(e,"UL",{"data-svelte-h":!0}),m(ft)!=="svelte-1tcklnz"&&(ft.innerHTML=Vn),Hs=r(e),h(bt.$$.fragment,e),Is=r(e),Mt=p(e,"P",{"data-svelte-h":!0}),m(Mt)!=="svelte-wn4jar"&&(Mt.innerHTML=Nn),qs=r(e),vt=p(e,"P",{"data-svelte-h":!0}),m(vt)!=="svelte-1ppuxwi"&&(vt.innerHTML=Xn),Vs=r(e),ht=p(e,"P",{"data-svelte-h":!0}),m(ht)!=="svelte-1x67v84"&&(ht.textContent=An),Ns=r(e),h(yt.$$.fragment,e),Xs=r(e),gt=p(e,"P",{"data-svelte-h":!0}),m(gt)!=="svelte-1a0j1sl"&&(gt.innerHTML=Rn),As=r(e),_t=p(e,"P",{"data-svelte-h":!0}),m(_t)!=="svelte-1pn3b0k"&&(_t.textContent=Qn),Rs=r(e),h(wt.$$.fragment,e),Qs=r(e),$t=p(e,"P",{"data-svelte-h":!0}),m($t)!=="svelte-1wrlijy"&&($t.innerHTML=Sn),Ss=r(e),Tt=p(e,"P",{"data-svelte-h":!0}),m(Tt)!=="svelte-1ub8m4k"&&(Tt.innerHTML=Yn),Ys=r(e),jt=p(e,"P",{"data-svelte-h":!0}),m(jt)!=="svelte-1y3sqwh"&&(jt.textContent=En),Es=r(e),h(Ut.$$.fragment,e),Fs=r(e),kt=p(e,"P",{"data-svelte-h":!0}),m(kt)!=="svelte-9ffysu"&&(kt.innerHTML=Fn),Ps=r(e),h(Jt.$$.fragment,e),Ds=r(e),Zt=p(e,"P",{"data-svelte-h":!0}),m(Zt)!=="svelte-lb1s4g"&&(Zt.innerHTML=Pn),Ks=r(e),h(Ct.$$.fragment,e),Os=r(e),Gt=p(e,"P",{"data-svelte-h":!0}),m(Gt)!=="svelte-j9thet"&&(Gt.innerHTML=Dn),ei=r(e),h(zt.$$.fragment,e),ti=r(e),Wt=p(e,"P",{"data-svelte-h":!0}),m(Wt)!=="svelte-1kn8qnd"&&(Wt.textContent=Kn),li=r(e),xt=p(e,"P",{"data-svelte-h":!0}),m(xt)!=="svelte-1iuuwpr"&&(xt.innerHTML=On),si=r(e),Bt=p(e,"P",{"data-svelte-h":!0}),m(Bt)!=="svelte-gb99yf"&&(Bt.textContent=eo),ii=r(e),h(Lt.$$.fragment,e),ni=r(e),h(Ht.$$.fragment,e),oi=r(e),It=p(e,"P",{"data-svelte-h":!0}),m(It)!=="svelte-1amxjf9"&&(It.textContent=to),ri=r(e),h(qt.$$.fragment,e),ai=r(e),Vt=p(e,"P",{"data-svelte-h":!0}),m(Vt)!=="svelte-klg7ma"&&(Vt.innerHTML=lo),ui=r(e),h(Nt.$$.fragment,e),pi=r(e),Xt=p(e,"P",{"data-svelte-h":!0}),m(Xt)!=="svelte-b6as39"&&(Xt.innerHTML=so),mi=r(e),h(At.$$.fragment,e),ci=r(e),h(Rt.$$.fragment,e),di=r(e),Qt=p(e,"P",{"data-svelte-h":!0}),m(Qt)!=="svelte-q26nxp"&&(Qt.innerHTML=io),fi=r(e),St=p(e,"P",{"data-svelte-h":!0}),m(St)!=="svelte-eo0bfj"&&(St.innerHTML=no),bi=r(e),Yt=p(e,"P",{"data-svelte-h":!0}),m(Yt)!=="svelte-9be23w"&&(Yt.innerHTML=oo),Mi=r(e),X.l(e),_l=r(e),Et=p(e,"P",{"data-svelte-h":!0}),m(Et)!=="svelte-vhzjkk"&&(Et.innerHTML=ro),vi=r(e),h(Ft.$$.fragment,e),hi=r(e),R.l(e),wl=r(e),h(re.$$.fragment,e),yi=r(e),Pt=p(e,"P",{"data-svelte-h":!0}),m(Pt)!=="svelte-zkoq53"&&(Pt.innerHTML=ao),gi=r(e),h(Dt.$$.fragment,e),_i=r(e),Kt=p(e,"P",{"data-svelte-h":!0}),m(Kt)!=="svelte-1nd6tac"&&(Kt.textContent=uo),wi=r(e),h(Ot.$$.fragment,e),$i=r(e),S.l(e),$l=r(e),el=p(e,"P",{"data-svelte-h":!0}),m(el)!=="svelte-12cbntn"&&(el.innerHTML=po),Ti=r(e),h(tl.$$.fragment,e),ji=r(e),E.l(e),Tl=r(e),ll=p(e,"P",{"data-svelte-h":!0}),m(ll)!=="svelte-1y2lo65"&&(ll.innerHTML=mo),Ui=r(e),h(sl.$$.fragment,e),ki=r(e),P.l(e),jl=r(e),il=p(e,"P",{"data-svelte-h":!0}),m(il)!=="svelte-t0ruw3"&&(il.textContent=co),Ji=r(e),h(nl.$$.fragment,e),Zi=r(e),h(ol.$$.fragment,e),Ci=r(e),O.l(e),Ul=r(e),h(rl.$$.fragment,e),Gi=r(e),kl=p(e,"P",{}),Ho(kl).forEach(l),this.h()},h(){W(n,"name","hf:doc:metadata"),W(n,"content",gr),W(se,"class","flex justify-center"),W(ie,"class","flex justify-center"),W(ne,"class","flex justify-center"),W(oe,"class","flex justify-center")},m(e,t){So(document.head,n),s(e,a,t),s(e,i,t),s(e,d,t),y(_,e,t),s(e,c,t),y($,e,t),s(e,C,t),al[j].m(e,t),s(e,k,t),s(e,f,t),s(e,D,t),y(G,e,t),s(e,ue,t),s(e,x,t),s(e,z,t),s(e,pe,t),s(e,Jl,t),s(e,me,t),s(e,Zl,t),s(e,ce,t),s(e,Cl,t),y(de,e,t),s(e,Gl,t),ul[B].m(e,t),s(e,vl,t),s(e,fe,t),s(e,zl,t),s(e,be,t),s(e,Wl,t),y(Me,e,t),s(e,xl,t),s(e,ve,t),s(e,Bl,t),y(he,e,t),s(e,Ll,t),s(e,ye,t),s(e,Hl,t),s(e,ge,t),s(e,Il,t),pl[H].m(e,t),s(e,hl,t),s(e,_e,t),s(e,ql,t),s(e,we,t),s(e,Vl,t),ml[q].m(e,t),s(e,yl,t),s(e,$e,t),s(e,Nl,t),y(Te,e,t),s(e,Xl,t),s(e,je,t),s(e,Al,t),y(Ue,e,t),s(e,Rl,t),s(e,ke,t),s(e,Ql,t),y(Je,e,t),s(e,Sl,t),s(e,Ze,t),s(e,Yl,t),y(Ce,e,t),s(e,El,t),s(e,Ge,t),s(e,Fl,t),s(e,ze,t),s(e,Pl,t),K.m(e,t),s(e,gl,t),y(le,e,t),s(e,Dl,t),s(e,We,t),s(e,Kl,t),s(e,xe,t),s(e,Ol,t),s(e,Be,t),s(e,es,t),y(Le,e,t),s(e,ts,t),s(e,He,t),s(e,ls,t),s(e,Ie,t),s(e,ss,t),y(qe,e,t),s(e,is,t),s(e,Ve,t),s(e,ns,t),y(Ne,e,t),s(e,os,t),s(e,Xe,t),s(e,rs,t),s(e,Ae,t),s(e,as,t),y(Re,e,t),s(e,us,t),s(e,Qe,t),s(e,ps,t),y(Se,e,t),s(e,ms,t),s(e,Ye,t),s(e,cs,t),s(e,Ee,t),s(e,ds,t),s(e,Fe,t),s(e,fs,t),y(Pe,e,t),s(e,bs,t),s(e,De,t),s(e,Ms,t),s(e,Ke,t),s(e,vs,t),s(e,se,t),s(e,hs,t),s(e,Oe,t),s(e,ys,t),s(e,et,t),s(e,gs,t),s(e,tt,t),s(e,_s,t),s(e,ie,t),s(e,ws,t),s(e,lt,t),s(e,$s,t),s(e,ne,t),s(e,Ts,t),s(e,st,t),s(e,js,t),s(e,it,t),s(e,Us,t),s(e,oe,t),s(e,ks,t),s(e,nt,t),s(e,Js,t),y(ot,e,t),s(e,Zs,t),s(e,rt,t),s(e,Cs,t),s(e,at,t),s(e,Gs,t),y(ut,e,t),s(e,zs,t),s(e,pt,t),s(e,Ws,t),s(e,mt,t),s(e,xs,t),y(ct,e,t),s(e,Bs,t),s(e,dt,t),s(e,Ls,t),s(e,ft,t),s(e,Hs,t),y(bt,e,t),s(e,Is,t),s(e,Mt,t),s(e,qs,t),s(e,vt,t),s(e,Vs,t),s(e,ht,t),s(e,Ns,t),y(yt,e,t),s(e,Xs,t),s(e,gt,t),s(e,As,t),s(e,_t,t),s(e,Rs,t),y(wt,e,t),s(e,Qs,t),s(e,$t,t),s(e,Ss,t),s(e,Tt,t),s(e,Ys,t),s(e,jt,t),s(e,Es,t),y(Ut,e,t),s(e,Fs,t),s(e,kt,t),s(e,Ps,t),y(Jt,e,t),s(e,Ds,t),s(e,Zt,t),s(e,Ks,t),y(Ct,e,t),s(e,Os,t),s(e,Gt,t),s(e,ei,t),y(zt,e,t),s(e,ti,t),s(e,Wt,t),s(e,li,t),s(e,xt,t),s(e,si,t),s(e,Bt,t),s(e,ii,t),y(Lt,e,t),s(e,ni,t),y(Ht,e,t),s(e,oi,t),s(e,It,t),s(e,ri,t),y(qt,e,t),s(e,ai,t),s(e,Vt,t),s(e,ui,t),y(Nt,e,t),s(e,pi,t),s(e,Xt,t),s(e,mi,t),y(At,e,t),s(e,ci,t),y(Rt,e,t),s(e,di,t),s(e,Qt,t),s(e,fi,t),s(e,St,t),s(e,bi,t),s(e,Yt,t),s(e,Mi,t),cl[N].m(e,t),s(e,_l,t),s(e,Et,t),s(e,vi,t),y(Ft,e,t),s(e,hi,t),dl[A].m(e,t),s(e,wl,t),y(re,e,t),s(e,yi,t),s(e,Pt,t),s(e,gi,t),y(Dt,e,t),s(e,_i,t),s(e,Kt,t),s(e,wi,t),y(Ot,e,t),s(e,$i,t),fl[Q].m(e,t),s(e,$l,t),s(e,el,t),s(e,Ti,t),y(tl,e,t),s(e,ji,t),bl[Y].m(e,t),s(e,Tl,t),s(e,ll,t),s(e,Ui,t),y(sl,e,t),s(e,ki,t),Ml[F].m(e,t),s(e,jl,t),s(e,il,t),s(e,Ji,t),y(nl,e,t),s(e,Zi,t),y(ol,e,t),s(e,Ci,t),O.m(e,t),s(e,Ul,t),y(rl,e,t),s(e,Gi,t),s(e,kl,t),zi=!0},p(e,[t]){const xo={};t&1&&(xo.fw=e[0]),_.$set(xo);let Hi=j;j=bo(e),j!==Hi&&(te(),b(al[Hi],1,1,()=>{al[Hi]=null}),ee(),U=al[j],U||(U=al[j]=fo[j](e),U.c()),M(U,1),U.m(k.parentNode,k));let Ii=B;B=vo(e),B!==Ii&&(te(),b(ul[Ii],1,1,()=>{ul[Ii]=null}),ee(),L=ul[B],L||(L=ul[B]=Mo[B](e),L.c()),M(L,1),L.m(vl.parentNode,vl));let qi=H;H=yo(e),H!==qi&&(te(),b(pl[qi],1,1,()=>{pl[qi]=null}),ee(),I=pl[H],I||(I=pl[H]=ho[H](e),I.c()),M(I,1),I.m(hl.parentNode,hl));let Vi=q;q=_o(e),q!==Vi&&(te(),b(ml[Vi],1,1,()=>{ml[Vi]=null}),ee(),V=ml[q],V||(V=ml[q]=go[q](e),V.c()),M(V,1),V.m(yl.parentNode,yl)),Wi!==(Wi=wo(e))&&(K.d(1),K=Wi(e),K&&(K.c(),K.m(gl.parentNode,gl)));const Bo={};t&2&&(Bo.$$scope={dirty:t,ctx:e}),le.$set(Bo);let Ni=N;N=To(e),N!==Ni&&(te(),b(cl[Ni],1,1,()=>{cl[Ni]=null}),ee(),X=cl[N],X||(X=cl[N]=$o[N](e),X.c()),M(X,1),X.m(_l.parentNode,_l));let Xi=A;A=Uo(e),A!==Xi&&(te(),b(dl[Xi],1,1,()=>{dl[Xi]=null}),ee(),R=dl[A],R||(R=dl[A]=jo[A](e),R.c()),M(R,1),R.m(wl.parentNode,wl));const Lo={};t&2&&(Lo.$$scope={dirty:t,ctx:e}),re.$set(Lo);let Ai=Q;Q=Jo(e),Q!==Ai&&(te(),b(fl[Ai],1,1,()=>{fl[Ai]=null}),ee(),S=fl[Q],S||(S=fl[Q]=ko[Q](e),S.c()),M(S,1),S.m($l.parentNode,$l));let Ri=Y;Y=Co(e),Y!==Ri&&(te(),b(bl[Ri],1,1,()=>{bl[Ri]=null}),ee(),E=bl[Y],E||(E=bl[Y]=Zo[Y](e),E.c()),M(E,1),E.m(Tl.parentNode,Tl));let Qi=F;F=zo(e),F!==Qi&&(te(),b(Ml[Qi],1,1,()=>{Ml[Qi]=null}),ee(),P=Ml[F],P||(P=Ml[F]=Go[F](e),P.c()),M(P,1),P.m(jl.parentNode,jl)),xi!==(xi=Wo(e))&&(O.d(1),O=xi(e),O&&(O.c(),O.m(Ul.parentNode,Ul)))},i(e){zi||(M(_.$$.fragment,e),M($.$$.fragment,e),M(U),M(G.$$.fragment,e),M(de.$$.fragment,e),M(L),M(Me.$$.fragment,e),M(he.$$.fragment,e),M(I),M(V),M(Te.$$.fragment,e),M(Ue.$$.fragment,e),M(Je.$$.fragment,e),M(Ce.$$.fragment,e),M(le.$$.fragment,e),M(Le.$$.fragment,e),M(qe.$$.fragment,e),M(Ne.$$.fragment,e),M(Re.$$.fragment,e),M(Se.$$.fragment,e),M(Pe.$$.fragment,e),M(ot.$$.fragment,e),M(ut.$$.fragment,e),M(ct.$$.fragment,e),M(bt.$$.fragment,e),M(yt.$$.fragment,e),M(wt.$$.fragment,e),M(Ut.$$.fragment,e),M(Jt.$$.fragment,e),M(Ct.$$.fragment,e),M(zt.$$.fragment,e),M(Lt.$$.fragment,e),M(Ht.$$.fragment,e),M(qt.$$.fragment,e),M(Nt.$$.fragment,e),M(At.$$.fragment,e),M(Rt.$$.fragment,e),M(X),M(Ft.$$.fragment,e),M(R),M(re.$$.fragment,e),M(Dt.$$.fragment,e),M(Ot.$$.fragment,e),M(S),M(tl.$$.fragment,e),M(E),M(sl.$$.fragment,e),M(P),M(nl.$$.fragment,e),M(ol.$$.fragment,e),M(rl.$$.fragment,e),zi=!0)},o(e){b(_.$$.fragment,e),b($.$$.fragment,e),b(U),b(G.$$.fragment,e),b(de.$$.fragment,e),b(L),b(Me.$$.fragment,e),b(he.$$.fragment,e),b(I),b(V),b(Te.$$.fragment,e),b(Ue.$$.fragment,e),b(Je.$$.fragment,e),b(Ce.$$.fragment,e),b(le.$$.fragment,e),b(Le.$$.fragment,e),b(qe.$$.fragment,e),b(Ne.$$.fragment,e),b(Re.$$.fragment,e),b(Se.$$.fragment,e),b(Pe.$$.fragment,e),b(ot.$$.fragment,e),b(ut.$$.fragment,e),b(ct.$$.fragment,e),b(bt.$$.fragment,e),b(yt.$$.fragment,e),b(wt.$$.fragment,e),b(Ut.$$.fragment,e),b(Jt.$$.fragment,e),b(Ct.$$.fragment,e),b(zt.$$.fragment,e),b(Lt.$$.fragment,e),b(Ht.$$.fragment,e),b(qt.$$.fragment,e),b(Nt.$$.fragment,e),b(At.$$.fragment,e),b(Rt.$$.fragment,e),b(X),b(Ft.$$.fragment,e),b(R),b(re.$$.fragment,e),b(Dt.$$.fragment,e),b(Ot.$$.fragment,e),b(S),b(tl.$$.fragment,e),b(E),b(sl.$$.fragment,e),b(P),b(nl.$$.fragment,e),b(ol.$$.fragment,e),b(rl.$$.fragment,e),zi=!1},d(e){e&&(l(a),l(i),l(d),l(c),l(C),l(k),l(f),l(D),l(ue),l(x),l(z),l(pe),l(Jl),l(me),l(Zl),l(ce),l(Cl),l(Gl),l(vl),l(fe),l(zl),l(be),l(Wl),l(xl),l(ve),l(Bl),l(Ll),l(ye),l(Hl),l(ge),l(Il),l(hl),l(_e),l(ql),l(we),l(Vl),l(yl),l($e),l(Nl),l(Xl),l(je),l(Al),l(Rl),l(ke),l(Ql),l(Sl),l(Ze),l(Yl),l(El),l(Ge),l(Fl),l(ze),l(Pl),l(gl),l(Dl),l(We),l(Kl),l(xe),l(Ol),l(Be),l(es),l(ts),l(He),l(ls),l(Ie),l(ss),l(is),l(Ve),l(ns),l(os),l(Xe),l(rs),l(Ae),l(as),l(us),l(Qe),l(ps),l(ms),l(Ye),l(cs),l(Ee),l(ds),l(Fe),l(fs),l(bs),l(De),l(Ms),l(Ke),l(vs),l(se),l(hs),l(Oe),l(ys),l(et),l(gs),l(tt),l(_s),l(ie),l(ws),l(lt),l($s),l(ne),l(Ts),l(st),l(js),l(it),l(Us),l(oe),l(ks),l(nt),l(Js),l(Zs),l(rt),l(Cs),l(at),l(Gs),l(zs),l(pt),l(Ws),l(mt),l(xs),l(Bs),l(dt),l(Ls),l(ft),l(Hs),l(Is),l(Mt),l(qs),l(vt),l(Vs),l(ht),l(Ns),l(Xs),l(gt),l(As),l(_t),l(Rs),l(Qs),l($t),l(Ss),l(Tt),l(Ys),l(jt),l(Es),l(Fs),l(kt),l(Ps),l(Ds),l(Zt),l(Ks),l(Os),l(Gt),l(ei),l(ti),l(Wt),l(li),l(xt),l(si),l(Bt),l(ii),l(ni),l(oi),l(It),l(ri),l(ai),l(Vt),l(ui),l(pi),l(Xt),l(mi),l(ci),l(di),l(Qt),l(fi),l(St),l(bi),l(Yt),l(Mi),l(_l),l(Et),l(vi),l(hi),l(wl),l(yi),l(Pt),l(gi),l(_i),l(Kt),l(wi),l($i),l($l),l(el),l(Ti),l(ji),l(Tl),l(ll),l(Ui),l(ki),l(jl),l(il),l(Ji),l(Zi),l(Ci),l(Ul),l(Gi),l(kl)),l(n),g(_,e),g($,e),al[j].d(e),g(G,e),g(de,e),ul[B].d(e),g(Me,e),g(he,e),pl[H].d(e),ml[q].d(e),g(Te,e),g(Ue,e),g(Je,e),g(Ce,e),K.d(e),g(le,e),g(Le,e),g(qe,e),g(Ne,e),g(Re,e),g(Se,e),g(Pe,e),g(ot,e),g(ut,e),g(ct,e),g(bt,e),g(yt,e),g(wt,e),g(Ut,e),g(Jt,e),g(Ct,e),g(zt,e),g(Lt,e),g(Ht,e),g(qt,e),g(Nt,e),g(At,e),g(Rt,e),cl[N].d(e),g(Ft,e),dl[A].d(e),g(re,e),g(Dt,e),g(Ot,e),fl[Q].d(e),g(tl,e),bl[Y].d(e),g(sl,e),Ml[F].d(e),g(nl,e),g(ol,e),O.d(e),g(rl,e)}}}const gr='{"title":"Partage de modèles pré-entraînés","local":"partage-de-modèles-pré-entraînés","sections":[{"title":"Utilisation de l’API push_to_hub","local":"utilisation-de-lapi-pushtohub","sections":[],"depth":2},{"title":"Utilisation de la bibliothèque Python huggingface_hub","local":"utilisation-de-la-bibliothèque-python-huggingfacehub","sections":[],"depth":2},{"title":"Utilisation de l’interface web","local":"utilisation-de-linterface-web","sections":[],"depth":2},{"title":"Téléchargement des fichiers du modèle","local":"téléchargement-des-fichiers-du-modèle","sections":[{"title":"L’approche `upload_file’","local":"lapproche-uploadfile","sections":[],"depth":3},{"title":"La classe Repository","local":"la-classe-repository","sections":[],"depth":3},{"title":"L’approche basée sur git","local":"lapproche-basée-sur-git","sections":[],"depth":3}],"depth":2}],"depth":1}';function _r(w,n,a){let i="pt";return Xo(()=>{const d=new URLSearchParams(window.location.search);a(0,i=d.get("fw")||"pt")}),[i]}class Cr extends Ao{constructor(n){super(),Ro(this,n,_r,yr,No,{})}}export{Cr as component};
