Buckets:
| import{s as Do,o as Yo}from"../chunks/scheduler.37c15a92.js";import{S as So,i as Fo,g as a,s as o,r as y,A as Po,h as r,f as l,c as p,j as Ho,u as U,x as f,k as W,y as qo,a as n,v as _,t as M,b as ee,d,w as g,m as Lo,n as zo,p as te}from"../chunks/index.2bf4358c.js";import{T as No}from"../chunks/Tip.363c041f.js";import{Y as Fi}from"../chunks/Youtube.1e50a667.js";import{C as $}from"../chunks/CodeBlock.4e987730.js";import{C as Xo}from"../chunks/CourseFloatingBanner.9ff4c771.js";import{F as Oo}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as me,E as Ko}from"../chunks/getInferenceSnippets.ebf8be91.js";function ep(w){let i,m;return i=new Xo({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/ru/chapter4/section3_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/ru/chapter4/section3_tf.ipynb"}]}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function tp(w){let i,m;return i=new Xo({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/ru/chapter4/section3_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/ru/chapter4/section3_pt.ipynb"}]}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function lp(w){let i,m;return i=new Fi({props:{id:"pUh5cGmNV8Y"}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function np(w){let i,m;return i=new Fi({props:{id:"Zh0FfmVrKX0"}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function ip(w){let i,m="Если вы используете Keras для обучения моделей, простейший способ загрузить модель на Hub – вызвать callback <code>PushToHubCallback</code> при вызове <code>model.fit()</code>:",s,c,h,u,J="Затем необходимо добавить <code>callbacks=[callback]</code> в вызов <code>model.fit()</code>. Callback будет загружать модель на Hub каждый раз, когда она будет сохраняться (в данном примере каждую эпоху). Репозиторий будет назван так же, как вы назовете папку для сохранения (в примере это <code>bert-finetuned-mrpc</code>), но вы можете задать имя репозитория самостоятельно: задайте аргумент <code>hub_model_id = "a_different_name"</code>.",Z,T,j="Для загрузки модели в репозиторий организации, представитем которой вы являетесь, укажите <code>hub_model_id = "my_organization/my_repo_name"</code>.",C;return c=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFB1c2hUb0h1YkNhbGxiYWNrJTBBJTBBY2FsbGJhY2slMjAlM0QlMjBQdXNoVG9IdWJDYWxsYmFjayglMEElMjAlMjAlMjAlMjAlMjJiZXJ0LWZpbmV0dW5lZC1tcnBjJTIyJTJDJTIwc2F2ZV9zdHJhdGVneSUzRCUyMmVwb2NoJTIyJTJDJTIwdG9rZW5pemVyJTNEdG9rZW5pemVyJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PushToHubCallback | |
| callback = PushToHubCallback( | |
| <span class="hljs-string">"bert-finetuned-mrpc"</span>, save_strategy=<span class="hljs-string">"epoch"</span>, tokenizer=tokenizer | |
| )`,wrap:!1}}),{c(){i=a("p"),i.innerHTML=m,s=o(),y(c.$$.fragment),h=o(),u=a("p"),u.innerHTML=J,Z=o(),T=a("p"),T.innerHTML=j},l(b){i=r(b,"P",{"data-svelte-h":!0}),f(i)!=="svelte-1f8gpfy"&&(i.innerHTML=m),s=p(b),U(c.$$.fragment,b),h=p(b),u=r(b,"P",{"data-svelte-h":!0}),f(u)!=="svelte-1jvgoqd"&&(u.innerHTML=J),Z=p(b),T=r(b,"P",{"data-svelte-h":!0}),f(T)!=="svelte-o7ky6i"&&(T.innerHTML=j)},m(b,k){n(b,i,k),n(b,s,k),_(c,b,k),n(b,h,k),n(b,u,k),n(b,Z,k),n(b,T,k),C=!0},i(b){C||(d(c.$$.fragment,b),C=!0)},o(b){M(c.$$.fragment,b),C=!1},d(b){b&&(l(i),l(s),l(h),l(u),l(Z),l(T)),g(c,b)}}}function sp(w){let i,m="Если вы уже пользовались <code>Trainer</code> API для обучения модели, то самый простой способ загрузить модель на Hub – установить аргумент <code>push_to_hub=True</code> во время инициализации <code>TrainingArguments</code>:",s,c,h,u,J="При вызове <code>trainer.train()</code> <code>Trainer</code> будет загружать модель на Hub каждый раз, когда она будет сохраняться (в данном примере каждую эпоху). Репозиторий будет назван так же, как вы назовете папку для сохранения (в примере это <code>bert-finetuned-mrpc</code>), но вы можете задать имя репозитория самостоятельно: задайте аргумент <code>hub_model_id = "a_different_name"</code>.",Z,T,j="Для загрузки модели в репозиторий организации, представитем которой вы являетесь, укажите <code>hub_model_id = "my_organization/my_repo_name"</code>.",C,b,k="После окончания обучения следует вызвать метод <code>trainer.push_to_hub()</code>, который загрузит последнюю версию вашей модели в репозиторий. Также он сгенерирует карточку модели со всей необходимой информацией, использованными гиперпараметрами и результатами валидации. Ниже приведено то, что вы можете найти в подобной карточке модели:",q,G,ae='<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 c=new $({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">"bert-finetuned-mrpc"</span>, save_strategy=<span class="hljs-string">"epoch"</span>, push_to_hub=<span class="hljs-literal">True</span> | |
| )`,wrap:!1}}),{c(){i=a("p"),i.innerHTML=m,s=o(),y(c.$$.fragment),h=o(),u=a("p"),u.innerHTML=J,Z=o(),T=a("p"),T.innerHTML=j,C=o(),b=a("p"),b.innerHTML=k,q=o(),G=a("div"),G.innerHTML=ae,this.h()},l(v){i=r(v,"P",{"data-svelte-h":!0}),f(i)!=="svelte-1h06rcj"&&(i.innerHTML=m),s=p(v),U(c.$$.fragment,v),h=p(v),u=r(v,"P",{"data-svelte-h":!0}),f(u)!=="svelte-15q3xab"&&(u.innerHTML=J),Z=p(v),T=r(v,"P",{"data-svelte-h":!0}),f(T)!=="svelte-o7ky6i"&&(T.innerHTML=j),C=p(v),b=r(v,"P",{"data-svelte-h":!0}),f(b)!=="svelte-7v6zw8"&&(b.innerHTML=k),q=p(v),G=r(v,"DIV",{class:!0,"data-svelte-h":!0}),f(G)!=="svelte-1lhrimn"&&(G.innerHTML=ae),this.h()},h(){W(G,"class","flex justify-center")},m(v,Q){n(v,i,Q),n(v,s,Q),_(c,v,Q),n(v,h,Q),n(v,u,Q),n(v,Z,Q),n(v,T,Q),n(v,C,Q),n(v,b,Q),n(v,q,Q),n(v,G,Q),x=!0},i(v){x||(d(c.$$.fragment,v),x=!0)},o(v){M(c.$$.fragment,v),x=!1},d(v){v&&(l(i),l(s),l(h),l(u),l(Z),l(T),l(C),l(b),l(q),l(G)),g(c,v)}}}function op(w){let i,m;return i=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yTWFza2VkTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmNhbWVtYmVydC1iYXNlJTIyJTBBJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForMaskedLM, AutoTokenizer | |
| checkpoint = <span class="hljs-string">"camembert-base"</span> | |
| model = TFAutoModelForMaskedLM.from_pretrained(checkpoint) | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,wrap:!1}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function pp(w){let i,m;return i=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvck1hc2tlZExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJjYW1lbWJlcnQtYmFzZSUyMiUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForMaskedLM, AutoTokenizer | |
| checkpoint = <span class="hljs-string">"camembert-base"</span> | |
| model = AutoModelForMaskedLM.from_pretrained(checkpoint) | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,wrap:!1}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function mp(w){let i,m='<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(){i=a("div"),i.innerHTML=m,this.h()},l(s){i=r(s,"DIV",{class:!0,"data-svelte-h":!0}),f(i)!=="svelte-5a3kk0"&&(i.innerHTML=m),this.h()},h(){W(i,"class","flex justify-center")},m(s,c){n(s,i,c)},d(s){s&&l(i)}}}function ap(w){let i,m='<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(){i=a("div"),i.innerHTML=m,this.h()},l(s){i=r(s,"DIV",{class:!0,"data-svelte-h":!0}),f(i)!=="svelte-19u1vyv"&&(i.innerHTML=m),this.h()},h(){W(i,"class","flex justify-center")},m(s,c){n(s,i,c)},d(s){s&&l(i)}}}function rp(w){let i;return{c(){i=Lo("✏️ **Попробуйте!** Используйте модель и токенайзер чекпоинта `bert-base-cased` и загрузите их в собственный профиль с помощью метода `push_to_hub()`. Проверьте, что репозиторий корректно создался перед его удалением.")},l(m){i=zo(m,"✏️ **Попробуйте!** Используйте модель и токенайзер чекпоинта `bert-base-cased` и загрузите их в собственный профиль с помощью метода `push_to_hub()`. Проверьте, что репозиторий корректно создался перед его удалением.")},m(m,s){n(m,i,s)},d(m){m&&l(i)}}}function fp(w){let i,m;return i=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yTWFza2VkTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmNhbWVtYmVydC1iYXNlJTIyJTBBJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBJTBBJTIzJTIwRG8lMjB3aGF0ZXZlciUyMHdpdGglMjB0aGUlMjBtb2RlbCUyQyUyMHRyYWluJTIwaXQlMkMlMjBmaW5lLXR1bmUlMjBpdC4uLiUwQSUwQW1vZGVsLnNhdmVfcHJldHJhaW5lZCglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMiklMEF0b2tlbml6ZXIuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForMaskedLM, AutoTokenizer | |
| checkpoint = <span class="hljs-string">"camembert-base"</span> | |
| model = TFAutoModelForMaskedLM.from_pretrained(checkpoint) | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| <span class="hljs-comment"># Do whatever with the model, train it, fine-tune it...</span> | |
| model.save_pretrained(<span class="hljs-string">"<path_to_dummy_folder>"</span>) | |
| tokenizer.save_pretrained(<span class="hljs-string">"<path_to_dummy_folder>"</span>)`,wrap:!1}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function up(w){let i,m;return i=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvck1hc2tlZExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJjYW1lbWJlcnQtYmFzZSUyMiUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEElMEElMjMlMjAlRDAlQTElRDAlQjQlRDAlQjUlRDAlQkIlRDAlQjAlRDAlQjklRDElODIlRDAlQjUlMjAlRDElODElMjAlRDAlQkMlRDAlQkUlRDAlQjQlRDAlQjUlRDAlQkIlRDElOEMlRDElOEUlMjAlRDElODclRDElODIlRDAlQkUlMjAlRDElODMlRDAlQjMlRDAlQkUlRDAlQjQlRDAlQkQlRDAlQkUlM0ElMjAlRDAlQkUlRDAlQjElRDElODMlRDElODclRDAlQjglRDElODIlRDAlQjUlMjAlRDElODElMjAlRDAlQkQlRDElODMlRDAlQkIlRDElOEYlMkMlMjAlRDAlQjQlRDAlQkUlRDAlQkUlRDAlQjElRDElODMlRDElODclRDAlQjglRDElODIlRDAlQjUlMjAlRDAlQjglMjAlRDElODIlRDAlQjQlMEElMEFtb2RlbC5zYXZlX3ByZXRyYWluZWQoJTIyJTNDcGF0aF90b19kdW1teV9mb2xkZXIlM0UlMjIpJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZCglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForMaskedLM, AutoTokenizer | |
| checkpoint = <span class="hljs-string">"camembert-base"</span> | |
| model = AutoModelForMaskedLM.from_pretrained(checkpoint) | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| <span class="hljs-comment"># Сделайте с моделью что угодно: обучите с нуля, дообучите и тд</span> | |
| model.save_pretrained(<span class="hljs-string">"<path_to_dummy_folder>"</span>) | |
| tokenizer.save_pretrained(<span class="hljs-string">"<path_to_dummy_folder>"</span>)`,wrap:!1}}),{c(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function cp(w){let i,m,s,c="Если вы обратите внимание на размеры файлов (например, с помощью команды <code>ls -lh</code>), вы заметите, что файл модели (<em>t5_model.h5</em>) является единственным большим файлом, он занимает более 400 Мб.",h;return i=new $({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(){y(i.$$.fragment),m=o(),s=a("p"),s.innerHTML=c},l(u){U(i.$$.fragment,u),m=p(u),s=r(u,"P",{"data-svelte-h":!0}),f(s)!=="svelte-1ssac4y"&&(s.innerHTML=c)},m(u,J){_(i,u,J),n(u,m,J),n(u,s,J),h=!0},i(u){h||(d(i.$$.fragment,u),h=!0)},o(u){M(i.$$.fragment,u),h=!1},d(u){u&&(l(m),l(s)),g(i,u)}}}function Mp(w){let i,m,s,c="If you look at the file sizes (for example, with <code>ls -lh</code>), you should see that the model state dict file (<em>pytorch_model.bin</em>) is the only outlier, at more than 400 MB.",h;return i=new $({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(){y(i.$$.fragment),m=o(),s=a("p"),s.innerHTML=c},l(u){U(i.$$.fragment,u),m=p(u),s=r(u,"P",{"data-svelte-h":!0}),f(s)!=="svelte-174jxm4"&&(s.innerHTML=c)},m(u,J){_(i,u,J),n(u,m,J),n(u,s,J),h=!0},i(u){h||(d(i.$$.fragment,u),h=!0)},o(u){M(i.$$.fragment,u),h=!1},d(u){u&&(l(m),l(s)),g(i,u)}}}function dp(w){let i;return{c(){i=Lo("✏️ При создании репозитория с помощью веб-интерфейса, файл *.gitattributes* автоматически фиксирует файлы с определенными расширениями (*.bin* и *.h5*) как большие файлы, и git-lfs отследит их без необходимости делать это вручную.")},l(m){i=zo(m,"✏️ При создании репозитория с помощью веб-интерфейса, файл *.gitattributes* автоматически фиксирует файлы с определенными расширениями (*.bin* и *.h5*) как большие файлы, и git-lfs отследит их без необходимости делать это вручную.")},m(m,s){n(m,i,s)},d(m){m&&l(i)}}}function bp(w){let i,m;return i=new $({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBWW91ciUyMGJyYW5jaCUyMGlzJTIwdXAlMjB0byUyMGRhdGUlMjB3aXRoJTIwJ29yaWdpbiUyRm1haW4nLiUwQSUwQUNoYW5nZXMlMjB0byUyMGJlJTIwY29tbWl0dGVkJTNBJTBBJTIwJTIwKHVzZSUyMCUyMmdpdCUyMHJlc3RvcmUlMjAtLXN0YWdlZCUyMCUzQ2ZpbGUlM0UuLi4lMjIlMjB0byUyMHVuc3RhZ2UpJTBBJTIwJTIwbW9kaWZpZWQlM0ElMjAlMjAlMjAuZ2l0YXR0cmlidXRlcyUwQSUyMCUyMCUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBjb25maWcuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0Zl9tb2RlbC5oNSUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXIuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",highlighted:`On branch main | |
| Your branch is up to <span class="hljs-built_in">date</span> with <span class="hljs-string">'origin/main'</span>. | |
| Changes to be committed: | |
| (use <span class="hljs-string">"git restore --staged <file>..."</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(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function yp(w){let i,m;return i=new $({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBWW91ciUyMGJyYW5jaCUyMGlzJTIwdXAlMjB0byUyMGRhdGUlMjB3aXRoJTIwJ29yaWdpbiUyRm1haW4nLiUwQSUwQUNoYW5nZXMlMjB0byUyMGJlJTIwY29tbWl0dGVkJTNBJTBBJTIwJTIwKHVzZSUyMCUyMmdpdCUyMHJlc3RvcmUlMjAtLXN0YWdlZCUyMCUzQ2ZpbGUlM0UuLi4lMjIlMjB0byUyMHVuc3RhZ2UpJTBBJTIwJTIwbW9kaWZpZWQlM0ElMjAlMjAlMjAuZ2l0YXR0cmlidXRlcyUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBjb25maWcuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBweXRvcmNoX21vZGVsLmJpbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXIuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",highlighted:`On branch main | |
| Your branch is up to <span class="hljs-built_in">date</span> with <span class="hljs-string">'origin/main'</span>. | |
| Changes to be committed: | |
| (use <span class="hljs-string">"git restore --staged <file>..."</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(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function Up(w){let i,m,s,c="Мы видим, что все файлы имеют <code>Git</code> в качестве обработчика, кроме <em>t5_model.h5</em>, у которых есть <code>LFS</code>. Отлично!",h;return i=new $({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(){y(i.$$.fragment),m=o(),s=a("p"),s.innerHTML=c},l(u){U(i.$$.fragment,u),m=p(u),s=r(u,"P",{"data-svelte-h":!0}),f(s)!=="svelte-1ojhjgl"&&(s.innerHTML=c)},m(u,J){_(i,u,J),n(u,m,J),n(u,s,J),h=!0},i(u){h||(d(i.$$.fragment,u),h=!0)},o(u){M(i.$$.fragment,u),h=!1},d(u){u&&(l(m),l(s)),g(i,u)}}}function _p(w){let i,m,s,c="Мы видим, что все файлы имеют <code>Git</code> в качестве обработчика, кроме <em>pytorch_model.bin</em> и <em>sentencepiece.bpe.model</em>, у которых есть <code>LFS</code>. Отлично!",h;return i=new $({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(){y(i.$$.fragment),m=o(),s=a("p"),s.innerHTML=c},l(u){U(i.$$.fragment,u),m=p(u),s=r(u,"P",{"data-svelte-h":!0}),f(s)!=="svelte-1uegv1f"&&(s.innerHTML=c)},m(u,J){_(i,u,J),n(u,m,J),n(u,s,J),h=!0},i(u){h||(d(i.$$.fragment,u),h=!0)},o(u){M(i.$$.fragment,u),h=!1},d(u){u&&(l(m),l(s)),g(i,u)}}}function gp(w){let i,m;return i=new $({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(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function wp(w){let i,m;return i=new $({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(){y(i.$$.fragment)},l(s){U(i.$$.fragment,s)},m(s,c){_(i,s,c),m=!0},i(s){m||(d(i.$$.fragment,s),m=!0)},o(s){M(i.$$.fragment,s),m=!1},d(s){g(i,s)}}}function Jp(w){let i,m="Если мы посмотрим на репозиторий модели после завершения отправки, мы увидим все недавно добавленные файлы:",s,c,h='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model_tf.png" alt="The 'Files and versions' tab now contains all the recently uploaded files." width="80%"/>',u,J,Z="Интерфейс позволяет вам исследовать файлы моделей и коммиты, а также видеть разницу, представленную каждым коммитом:",T,j,C='<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(){i=a("p"),i.textContent=m,s=o(),c=a("div"),c.innerHTML=h,u=o(),J=a("p"),J.textContent=Z,T=o(),j=a("div"),j.innerHTML=C,this.h()},l(b){i=r(b,"P",{"data-svelte-h":!0}),f(i)!=="svelte-l89y8m"&&(i.textContent=m),s=p(b),c=r(b,"DIV",{class:!0,"data-svelte-h":!0}),f(c)!=="svelte-tz4fi2"&&(c.innerHTML=h),u=p(b),J=r(b,"P",{"data-svelte-h":!0}),f(J)!=="svelte-15myfxo"&&(J.textContent=Z),T=p(b),j=r(b,"DIV",{class:!0,"data-svelte-h":!0}),f(j)!=="svelte-2jd8bj"&&(j.innerHTML=C),this.h()},h(){W(c,"class","flex justify-center"),W(j,"class","flex justify-center")},m(b,k){n(b,i,k),n(b,s,k),n(b,c,k),n(b,u,k),n(b,J,k),n(b,T,k),n(b,j,k)},d(b){b&&(l(i),l(s),l(c),l(u),l(J),l(T),l(j))}}}function hp(w){let i,m="Если мы посмотрим на репозиторий модели после завершения отправки, мы увидим все недавно добавленные файлы:",s,c,h='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model.png" alt="The 'Files and versions' tab now contains all the recently uploaded files." width="80%"/>',u,J,Z="Интерфейс позволяет вам исследовать файлы моделей и коммиты, а также видеть разницу, представленную каждым коммитом:",T,j,C='<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(){i=a("p"),i.textContent=m,s=o(),c=a("div"),c.innerHTML=h,u=o(),J=a("p"),J.textContent=Z,T=o(),j=a("div"),j.innerHTML=C,this.h()},l(b){i=r(b,"P",{"data-svelte-h":!0}),f(i)!=="svelte-l89y8m"&&(i.textContent=m),s=p(b),c=r(b,"DIV",{class:!0,"data-svelte-h":!0}),f(c)!=="svelte-1v39mjb"&&(c.innerHTML=h),u=p(b),J=r(b,"P",{"data-svelte-h":!0}),f(J)!=="svelte-15myfxo"&&(J.textContent=Z),T=p(b),j=r(b,"DIV",{class:!0,"data-svelte-h":!0}),f(j)!=="svelte-1g561m5"&&(j.innerHTML=C),this.h()},h(){W(c,"class","flex justify-center"),W(j,"class","flex justify-center")},m(b,k){n(b,i,k),n(b,s,k),n(b,c,k),n(b,u,k),n(b,J,k),n(b,T,k),n(b,j,k)},d(b){b&&(l(i),l(s),l(c),l(u),l(J),l(T),l(j))}}}function $p(w){let i,m,s,c,h,u,J,Z,T,j,C,b,k="Далее мы рассмотрим самые простые способы публикации предварительно обученных моделей в 🤗 Hub: доступные инструменты и утилиты, упрощающие совместное использование и обновление моделей непосредственно в Hub.",q,G,ae,x,v="Мы призываем всех пользователей, которые обучают модели, вносить свой вклад, делясь ими с сообществом — совместное использование моделей, даже если они обучены на очень конкретных наборах данных, поможет другим, сэкономив им время и вычислительные ресурсы! В свою очередь, вы можете извлечь выгоду из работы, которую проделали другие!",Q,re,Pi="Есть три пути создания репозитория с моделью:",Zl,fe,qi="<li>С использованием API <code>push_to_hub</code></li> <li>С использованием python-библиотеки <code>huggingface_hub</code></li> <li>С использованием веб-интерфейса</li>",Gl,ue,Oi="После создания репозитория вы можете загружать в него файлы через git и git-lfs. В следующих разделах мы познакомим вас с созданием репозиториев моделей и загрузкой в них файлов.",Ql,ce,Wl,R,B,_l,Me,Ki="Простейший путь загрузки файлов на Hub – <code>push_to_hub</code> API.",xl,de,es='Перед тем, как пойдем дальше, необходимо сгенерировать токен аутентификации. Это необходимо сделать для того, чтобы <code>huggingface_hub</code> API «узнал» вас и предоставил вам необходимые права на запись. Убедитесь, что вы находитесь в окружении, в котором установлена библиотека <code>transformers</code> (см. <a href="../chapter0">Установка</a>). Если вы работаете в Jupyter’е, вы можете использовать следующую функцию для авторизации:',Rl,be,Bl,ye,ts="В терминале можно запустить:",Il,Ue,Vl,_e,ls='В обоих случаях вам будет предложено ввести свой логин и пароль (это должны быть те же данные, которые вы используете для входа на Hub). Если у вас нет учетной записи HuggingFace, вы можете создать ее <a href="https://huggingface.co/join" rel="nofollow">здесь</a>.',Al,ge,ns="Отлично! После авторизации ваш токен сохранится во временную папку. Давайте создадим репозитории!",El,I,V,gl,we,is="На более низком уровне доступ к Model Hub может быть осуществлен прямо через метод <code>push_to_hub()</code>, который можно вызвать у моделей, токенизаторов и конфигурационных объектов. Этот метод отвечает сразу и за создание репозитория, и за загрузку файлов моделей и токенизаторов. Никак",Hl,Je,ss="At a lower level, accessing the Model Hub can be done directly on models, tokenizers, and configuration objects via their <code>push_to_hub()</code> method. This method takes care of both the repository creation and pushing the model and tokenizer files directly to the repository. В отличие от API, который мы рассмотрим ниже, здесь никакая ручная обработка не применяется.",Nl,he,os="Чтобы понять, как это работает, давайте инициализируем модель и токенизатор:",Ll,A,E,wl,$e,ps="Вы можете сделать с этими объектами что угодно – измените настройки токенизатора, обучите модель, дообучите предобученную и т.д. После того, как вы получите приемлемый результат, вы можете вызвать <code>push_to_hub()</code> прямо у экземпляра модели:",zl,Te,Xl,je,ms="Эта операция создаст новый репозиторий <code>dummy-model</code> в вашем профиле и загрузит все необходимые файлы. Сделайте это же с токенизатором:",Dl,ve,Yl,ke,as="Если вы являетесь членом организации, просто укажите <code>organization</code> и данные будут загружены в профиль организации:",Sl,Ce,Fl,Ze,rs="Если вы хотите использовать какой-то конкретный токен, вы можете указать его в методе <code>push_to_hub()</code>:",Pl,Ge,ql,Qe,fs='Теперь перейдите в Model Hub и найдите свою модель: <em><a href="https://huggingface.co/user-or-organization/dummy-model" rel="nofollow">https://huggingface.co/user-or-organization/dummy-model</a></em>.',Ol,We,us="Выберите вкладку “Files and versions”, вы должны увидеть файлы, похожие на приведенные на скриншоте ниже:",Kl,Jl,le,en,xe,cs='Как мы увидели выше, метод <code>push_to_hub()</code> поддерживает несколько аргументов, позволяющих загрузить данные в конкретный профиль или профиль организации или использовать конкретный токен. Мы рекомендуем обратить внимание на спецификацию метода, доступную по ссылке <a href="https://huggingface.co/transformers/model_sharing.html" rel="nofollow">🤗 Transformers documentation</a>, и ознакомиться с остальными возможностями метода.',tn,Re,Ms='Метод <code>push_to_hub()</code> реализован с использованием python-пакета <a href="https://github.com/huggingface/huggingface_hub" rel="nofollow"><code>huggingface_hub</code></a>, который напрямую использует API Hugging Face Hub. Этот пакет интегрирован в 🤗 Transformers и несколько других библиотек машинного обучения, например <a href="https://github.com/allenai/allennlp" rel="nofollow"><code>allenlp</code></a>. Хотя в этой главе мы сосредоточимся на интеграции с 🤗 Transformers, интегрировать его в ваш собственный код или библиотеку очень просто.',ln,Be,ds="Перейдите к последнему разделу, чтобы узнать, как загружать файлы в только что созданный репозиторий!",nn,Ie,sn,Ve,bs="Библиотека <code>huggingface_hub</code> - это инструмент, который предлагает наборы различных моделей и датасетов. В ней есть возможность использования простых методов и классов для общих задач, таких как получение информации о репозиториях на хабе и управление ими. Также доступны простые API-интерфейсы, которые работают поверх git для управления содержимым этих репозиториев и интеграции Hub в ваших проектах и библиотеках.",on,Ae,ys="Как и при использовании API <code>push_to_hub</code> необходимо, чтобы ваш токен API был сохранен в кэше. Для этого вам нужно будет использовать команду <code>login</code> из CLI, как упоминалось в предыдущем разделе (опять же, убедитесь, что перед этими командами стоит символ <code>!</code>, если вы работаете в Google Colab):",pn,Ee,mn,He,Us="Пакет <code>huggingface_hub</code> предлагает несколько методов и классов, полезных для наших целей. Во-первых, есть несколько способов управления созданием, удалением и прочего:",an,Ne,rn,Le,_s="Кроме того, <code>huggingface_hub</code> предлагает очень мощный класс <code>Repository</code> для управления локальным хранилищем. Мы рассмотрим эти методы и этот класс в следующих нескольких разделах, чтобы понять, как их использовать.",fn,ze,gs="Метод <code>create_repo</code> можно использовать для создания нового репозитория на хабе:",un,Xe,cn,De,ws="Это создаст репозиторий <code>dummy-model</code> в вашем пространстве. Если хотите, вы можете указать, какой организации должен принадлежать репозиторий, используя аргумент <code>organization</code>:",Mn,Ye,dn,Se,Js=`Это создаст репозиторий <code>dummy-model</code> в пространстве <code>huggingface</code>, предполагая, что вы принадлежите к этой организации. | |
| Другие аргументы, которые могут быть полезны:`,bn,Fe,hs="<li><code>private</code>, чтобы указать, должен ли репозиторий быть видимым для других или нет.</li> <li><code>token</code>, если вы хотите переопределить токен, хранящийся в вашем кэше, указанным токеном.</li> <li><code>repo_type</code>, если вы хотите создать <code>dataset</code> или <code>space</code> вместо модели. Допустимые значения: <code>"dataset"</code> и <code>"space"</code>.</li>",yn,Pe,$s="Как только репозиторий создан, мы должны добавить в него файлы! Перейдите к следующему разделу, чтобы увидеть три способа сделать это.",Un,qe,_n,Oe,Ts="Веб-интерфейс предлагает инструменты для управления репозиториями прямо в хабе. Используя интерфейс, вы можете легко создавать репозитории, добавлять файлы (даже большие!), исследовать модели, визуализировать различия и многое другое.",gn,Ke,js='Для создания нового репозитория перейдите по ссылке: <a href="https://huggingface.co/new" rel="nofollow">huggingface.co/new</a>:',wn,ne,vs='<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%"/>',Jn,et,ks="Во-первых, укажите владельца репозитория: это можете быть как вы, так и любая из организаций, с которыми вы связаны. Если вы выберете организацию, модель будет размещена на странице организации, и каждый член организации сможет внести свой вклад в репозиторий.",hn,tt,Cs="Затем введите название вашей модели. Это также будет имя репозитория. Наконец, вы можете указать, хотите ли вы, чтобы ваша модель была общедоступной или приватной. Приватные модели скрыты от посторонних глаз.",$n,lt,Zs="После создания репозитория моделей вы должны увидеть страницу, подобную этой:",Tn,ie,Gs='<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%"/>',jn,nt,Qs="Здесь будет размещена ваша модель. Чтобы начать заполнение репозитория, вы можете добавить файл README прямо из веб-интерфейса.",vn,se,Ws='<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%"/>',kn,it,xs="Файл README хранится в формате Markdown! Третья часть этой главы посвящена заполнению карточки модели. Она имеет первостепенное значение для повышения ценности вашей модели, поскольку именно здесь вы рассказываете другим, на что способна модель.",Cn,st,Rs="Если вы посмотрите на вкладку «Файлы и версии», то увидите, что там пока не так много файлов — только только что созданный <em>README.md</em> и файл <em>.gitattributes</em>, который отслеживает большие файлы.",Zn,oe,Bs='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/files.png" alt="The 'Files and versions' tab only shows the .gitattributes and README.md files." width="80%"/>',Gn,ot,Is="Позже мы посмотрим, как добавить новые файлы.",Qn,pt,Wn,mt,Vs='Система управления файлами в Hugging Face Hub основана на git для обычных файлов и git-lfs (что означает <a href="https://git-lfs.github.com/" rel="nofollow">Git Large File Storage</a>) для больших файлов.',xn,at,As="В следующем разделе мы рассмотрим три различных способа загрузки файлов в Hub: через <code>huggingface_hub</code> и через команды git.",Rn,rt,Bn,ft,Es=`Использование <code>upload_file</code> не требует установки git и git-lfs в вашей системе. Функция отправляет файлы напрямую в 🤗 Hub с помощью HTTP-запросов POST. Ограничение этого подхода заключается в том, что он не обрабатывает файлы размером более 5 ГБ. | |
| Если размер ваших файлов превышает 5 ГБ, воспользуйтесь двумя другими способами, описанными ниже.`,In,ut,Hs="API можно использовать следующим образом:",Vn,ct,An,Mt,Ns=`Это загрузит файл <code>config.json</code>, доступный по адресу <code><path_to_file></code>, в корень как <code>config.json</code> в репозиторий <code>dummy-model</code>. | |
| Другие аргументы, которые могут быть полезны:`,En,dt,Ls="<li><code>token</code>, если вы хотите переопределить токен, хранящийся в вашем кеше, указанным токеном.</li> <li><code>repo_type</code>, если вы хотите загрузить в <code>dataset</code> или <code>space</code>. Допустимые значения: <code>"dataset"</code> и <code>"space"</code>.</li>",Hn,bt,Nn,yt,zs="Класс <code>Repository</code> управляет локальным репозиторием подобно git. Он абстрагирует большинство проблемных моментов, которые могут возникнуть с git, чтобы предоставить все функции, которые нам нужны.",Ln,Ut,Xs='Использование этого класса требует наличия установленных git и git-lfs, поэтому убедитесь, что у вас установлен и настроен git-lfs (см. [здесь] (<a href="https://git-lfs.github.com/" rel="nofollow">https://git-lfs.github.com/</a>) для инструкций по установке), прежде чем начать .',zn,_t,Ds="Чтобы начать использование только что созданного репозитория, его нужно инициализировать в локальной папке путем клонирования удаленного репозитория:",Xn,gt,Dn,wt,Ys="Этот код создал папку <code><path_to_dummy_folder></code> в нашем рабочем каталоге. Эта папка содержит только файл <code>.gitattributes</code>, поскольку это единственный файл, созданный при создании экземпляра репозитория с помощью <code>create_repo</code>.",Yn,Jt,Ss="С этого момента мы можем использовать несколько традиционных методов git:",Sn,ht,Fn,$t,Fs='и другие. Мы рекомендуем ознакомиться с доступной документацией <code>Repository</code> [здесь] (<a href="https://github.com/huggingface/huggingface_hub/tree/main/src/huggingface_hub#advanced-programmatic-repository-management" rel="nofollow">https://github.com/huggingface/huggingface_hub/tree/main/src/huggingface_hub#advanced-programmatic-repository-management</a>) для обзора всех доступных методов.',Pn,Tt,Ps="В настоящее время у нас есть модель и токенизатор, которые мы хотели бы отправить в хаб. Мы успешно клонировали репозиторий, поэтому мы можем сохранить файлы в этом репозитории.",qn,jt,qs="Сначала мы убедимся, что наш локальный репозиторий обновлен: запросим оттуда все изменения:",On,vt,Kn,kt,Os="После того, как это сделано, мы сохраним файлы модели и токенизатора:",ei,Ct,ti,Zt,Ks="<code><path_to_dummy_folder></code> сейчас содержит пути к модели и токенизатору. Мы последуем обычной процедуре добавления файлов с помощью git, зафиксируем изменения и отправим их в удаленный репозиторий:",li,Gt,ni,Qt,eo="Поздравляем! Вы только что сделали первый коммит в хаб!",ii,Wt,si,xt,to="Это очень простой подход к загрузке файлов: мы сделаем это напрямую с помощью git и git-lfs.",oi,Rt,lo='Использование этого подхода требует наличия установленных git и git-lfs, поэтому убедитесь, что у вас установлен и настроен <a href="https://git-lfs.github.com/" rel="nofollow">git-lfs</a> (см. здесь инструкции по установке), прежде чем начать.',pi,Bt,no="Начните с инициализации git-lfs:",mi,It,ai,Vt,ri,At,io="После инициализации клонируйте репозиторий с моделью.",fi,Et,so="Once that’s done, the first step is to clone your model repository:",ui,Ht,ci,Nt,oo="Мое имя пользователя <code>lysandre</code> и я использую модель под названием <code>dummy</code>, поэтому команда выглядит следующим образом:",Mi,Lt,di,zt,po="Теперь у меня есть папка <em>dummy</em> в моей рабочей директории. Командной <code>cd</code> я могу перейти в эту директорию и посмотреть на ее содержимое:",bi,Xt,yi,Dt,Ui,Yt,mo="Если вы только что создали репозиторий с помощью метода <code>create_repo</code> в Hugging Face Hub, эта папка должна содержать только скрытый файл <code>.gitattributes</code>. Если вы следовали инструкциям из предыдущего раздела для создания репозитория с помощью веб-интерфейса, папка должна содержать один файл <em>README.md</em> вместе со скрытым файлом <code>.gitattributes</code>, как показано здесь.",_i,St,ao="Добавление файла обычного размера, такого как файл конфигурации, файл словаря или практически любого файла размером менее нескольких мегабайт, выполняется точно так же, как это делается в любой системе на основе git. Однако файлы большего размера должны быть зарегистрированы через git-lfs, тогда появится возможность отправить их на <em>huggingface.co</em>.",gi,Ft,ro="Давайте ненадолго вернемся к Python, чтобы сгенерировать модель и токенизатор, которые мы хотели бы зафиксировать в нашем демонстрацинном репозитории:",wi,H,N,hl,Pt,fo="Давайте взглянем на нашу директорию после выполненных выше шагов:",Ji,qt,hi,L,z,$l,pe,$i,Ot,uo="Теперь мы можем продолжить и продолжить, как обычно делаем с традиционными репозиториями Git. Мы можем добавить все файлы в промежуточную среду Git с помощью команды <code>git add</code>:",Ti,Kt,ji,el,co="Затем мы можем взглянуть на файлы, которые в настоящее время размещены:",vi,tl,ki,X,D,Tl,ll,Mo="Точно так же мы можем убедиться, что git-lfs отслеживает правильные файлы, используя команду <code>status</code>:",Ci,nl,Zi,Y,S,jl,il,bo="Перейдем к последним шагам - коммиту и отправке в удаленный репозиторий <em>huggingface.co</em>:",Gi,sl,Qi,F,P,vl,ol,yo="Отправка может занять некоторое время, в зависимости от скорости вашего интернет-соединения и размера ваших файлов:",Wi,pl,xi,ml,Ri,kl,al,Bi,Cl,Ii;h=new Oo({props:{fw:w[0]}}),J=new me({props:{title:"Публикация обученых моделей в общий доступ",local:"публикация-обученых-моделей-в-общий-доступ",headingTag:"h1"}});const Uo=[tp,ep],rl=[];function _o(e,t){return e[0]==="pt"?0:1}T=_o(w),j=rl[T]=Uo[T](w),G=new Fi({props:{id:"9yY3RB_GSPM"}}),ce=new me({props:{title:"Использование API push_to_hub",local:"использование-api-pushtohub",headingTag:"h2"}});const go=[np,lp],fl=[];function wo(e,t){return e[0]==="pt"?0:1}R=wo(w),B=fl[R]=go[R](w),be=new $({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login | |
| notebook_login()`,wrap:!1}}),Ue=new $({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}});const Jo=[sp,ip],ul=[];function ho(e,t){return e[0]==="pt"?0:1}I=ho(w),V=ul[I]=Jo[I](w);const $o=[pp,op],cl=[];function To(e,t){return e[0]==="pt"?0:1}A=To(w),E=cl[A]=$o[A](w),Te=new $({props:{code:"bW9kZWwucHVzaF90b19odWIoJTIyZHVtbXktbW9kZWwlMjIp",highlighted:'model.push_to_hub(<span class="hljs-string">"dummy-model"</span>)',wrap:!1}}),ve=new $({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyKQ==",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">"dummy-model"</span>)',wrap:!1}}),Ce=new $({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyJTJDJTIwb3JnYW5pemF0aW9uJTNEJTIyaHVnZ2luZ2ZhY2UlMjIp",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">"dummy-model"</span>, organization=<span class="hljs-string">"huggingface"</span>)',wrap:!1}}),Ge=new $({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyJTJDJTIwb3JnYW5pemF0aW9uJTNEJTIyaHVnZ2luZ2ZhY2UlMjIlMkMlMjB1c2VfYXV0aF90b2tlbiUzRCUyMiUzQ1RPS0VOJTNFJTIyKQ==",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">"dummy-model"</span>, organization=<span class="hljs-string">"huggingface"</span>, use_auth_token=<span class="hljs-string">"<TOKEN>"</span>)',wrap:!1}});function jo(e,t){return e[0]==="pt"?ap:mp}let Vi=jo(w),O=Vi(w);le=new No({props:{$$slots:{default:[rp]},$$scope:{ctx:w}}}),Ie=new me({props:{title:"Использование библиотеки huggingface_hub",local:"использование-библиотеки-huggingfacehub",headingTag:"h2"}}),Ee=new $({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),Ne=new $({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMCglMEElMjAlMjAlMjAlMjAlMjMlMjAlRDAlOUYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEMlRDElODElRDAlQkElRDAlQjglRDAlQjUlMjAlRDAlQkQlRDAlQjAlRDElODElRDElODIlRDElODAlRDAlQkUlRDAlQjklRDAlQkElRDAlQjglMEElMjAlMjAlMjAlMjBsb2dpbiUyQyUwQSUyMCUyMCUyMCUyMGxvZ291dCUyQyUwQSUyMCUyMCUyMCUyMHdob2FtaSUyQyUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMCVEMCVBMSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCOCUyMCVEMSU4MyVEMCVCRiVEMSU4MCVEMCVCMCVEMCVCMiVEMCVCQiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMSU4MCVEMCVCNSVEMCVCRiVEMCVCRSVEMCVCNyVEMCVCOCVEMSU4MiVEMCVCRSVEMSU4MCVEMCVCOCVEMSU4RiVEMCVCQyVEMCVCOCUwQSUyMCUyMCUyMCUyMGNyZWF0ZV9yZXBvJTJDJTBBJTIwJTIwJTIwJTIwZGVsZXRlX3JlcG8lMkMlMEElMjAlMjAlMjAlMjB1cGRhdGVfcmVwb192aXNpYmlsaXR5JTJDJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwJUQwJTk4JTIwJUQwJUJEJUQwJUI1JUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJCJUQxJThDJUQwJUJBJUQwJUJFJTIwJUQxJTgxJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJFJUQwJUIxJUQwJUJFJUQwJUIyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUI4JUQwJUI3JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUJFJTIwJUQxJTgxJUQwJUJFJUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUI4JUQwJUJDJUQwJUJFJUQwJUJDJTBBJTIwJTIwJTIwJTIwbGlzdF9tb2RlbHMlMkMlMEElMjAlMjAlMjAlMjBsaXN0X2RhdGFzZXRzJTJDJTBBJTIwJTIwJTIwJTIwbGlzdF9tZXRyaWNzJTJDJTBBJTIwJTIwJTIwJTIwbGlzdF9yZXBvX2ZpbGVzJTJDJTBBJTIwJTIwJTIwJTIwdXBsb2FkX2ZpbGUlMkMlMEElMjAlMjAlMjAlMjBkZWxldGVfZmlsZSUyQyUwQSk=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> ( | |
| <span class="hljs-comment"># Пользовательские настройки</span> | |
| login, | |
| logout, | |
| whoami, | |
| <span class="hljs-comment"># Создание и управление репозиториями</span> | |
| create_repo, | |
| delete_repo, | |
| update_repo_visibility, | |
| <span class="hljs-comment"># И несколько способов для получения или изменения информации о содержимом</span> | |
| list_models, | |
| list_datasets, | |
| list_metrics, | |
| list_repo_files, | |
| upload_file, | |
| delete_file, | |
| )`,wrap:!1}}),Xe=new $({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">"dummy-model"</span>)`,wrap:!1}}),Ye=new $({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">"dummy-model"</span>, organization=<span class="hljs-string">"huggingface"</span>)`,wrap:!1}}),qe=new me({props:{title:"Использование веб-интерфейса",local:"использование-веб-интерфейса",headingTag:"h2"}}),pt=new me({props:{title:"Загрузка файлов модели",local:"загрузка-файлов-модели",headingTag:"h2"}}),rt=new me({props:{title:"Функция upload_file",local:"функция-uploadfile",headingTag:"h3"}}),ct=new $({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">"<path_to_file>/config.json"</span>, | |
| path_in_repo=<span class="hljs-string">"config.json"</span>, | |
| repo_id=<span class="hljs-string">"<namespace>/dummy-model"</span>, | |
| )`,wrap:!1}}),bt=new me({props:{title:"Класс Repository",local:"класс-repository",headingTag:"h3"}}),gt=new $({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">"<path_to_dummy_folder>"</span>, clone_from=<span class="hljs-string">"<namespace>/dummy-model"</span>)`,wrap:!1}}),ht=new $({props:{code:"cmVwby5naXRfcHVsbCgpJTBBcmVwby5naXRfYWRkKCklMEFyZXBvLmdpdF9jb21taXQoKSUwQXJlcG8uZ2l0X3B1c2goKSUwQXJlcG8uZ2l0X3RhZygp",highlighted:`repo.git_pull() | |
| repo.git_add() | |
| repo.git_commit() | |
| repo.git_push() | |
| repo.git_tag()`,wrap:!1}}),vt=new $({props:{code:"cmVwby5naXRfcHVsbCgp",highlighted:"repo.git_pull()",wrap:!1}}),Ct=new $({props:{code:"bW9kZWwuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKSUwQXRva2VuaXplci5zYXZlX3ByZXRyYWluZWQoJTIyJTNDcGF0aF90b19kdW1teV9mb2xkZXIlM0UlMjIp",highlighted:`model.save_pretrained(<span class="hljs-string">"<path_to_dummy_folder>"</span>) | |
| tokenizer.save_pretrained(<span class="hljs-string">"<path_to_dummy_folder>"</span>)`,wrap:!1}}),Gt=new $({props:{code:"cmVwby5naXRfYWRkKCklMEFyZXBvLmdpdF9jb21taXQoJTIyQWRkJTIwbW9kZWwlMjBhbmQlMjB0b2tlbml6ZXIlMjBmaWxlcyUyMiklMEFyZXBvLmdpdF9wdXNoKCk=",highlighted:`repo.git_add() | |
| repo.git_commit(<span class="hljs-string">"Add model and tokenizer files"</span>) | |
| repo.git_push()`,wrap:!1}}),Wt=new me({props:{title:"git-подход",local:"git-подход",headingTag:"h3"}}),It=new $({props:{code:"Z2l0JTIwbGZzJTIwaW5zdGFsbA==",highlighted:"git lfs install",wrap:!1}}),Vt=new $({props:{code:"VXBkYXRlZCUyMGdpdCUyMGhvb2tzLiUwQUdpdCUyMExGUyUyMGluaXRpYWxpemVkLg==",highlighted:`Updated git hooks. | |
| Git LFS initialized.`,wrap:!1}}),Ht=new $({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGJTNDbmFtZXNwYWNlJTNFJTJGJTNDeW91ci1tb2RlbC1pZCUzRQ==",highlighted:'git <span class="hljs-built_in">clone</span> https://huggingface.co/<namespace>/<your-model-id>',wrap:!1}}),Lt=new $({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbHlzYW5kcmUlMkZkdW1teQ==",highlighted:'git clone https:<span class="hljs-regexp">//</span>huggingface.co<span class="hljs-regexp">/lysandre/</span>dummy',wrap:!1}}),Xt=new $({props:{code:"Y2QlMjBkdW1teSUyMCUyNiUyNiUyMGxz",highlighted:'<span class="hljs-built_in">cd</span> dummy && <span class="hljs-built_in">ls</span>',wrap:!1}}),Dt=new $({props:{code:"UkVBRE1FLm1k",highlighted:"README.md",wrap:!1}});const vo=[up,fp],Ml=[];function ko(e,t){return e[0]==="pt"?0:1}H=ko(w),N=Ml[H]=vo[H](w),qt=new $({props:{code:"bHM=",highlighted:'<span class="hljs-built_in">ls</span>',wrap:!1}});const Co=[Mp,cp],dl=[];function Zo(e,t){return e[0]==="pt"?0:1}L=Zo(w),z=dl[L]=Co[L](w),pe=new No({props:{$$slots:{default:[dp]},$$scope:{ctx:w}}}),Kt=new $({props:{code:"Z2l0JTIwYWRkJTIwLg==",highlighted:"git add .",wrap:!1}}),tl=new $({props:{code:"Z2l0JTIwc3RhdHVz",highlighted:"git status",wrap:!1}});const Go=[yp,bp],bl=[];function Qo(e,t){return e[0]==="pt"?0:1}X=Qo(w),D=bl[X]=Go[X](w),nl=new $({props:{code:"Z2l0JTIwbGZzJTIwc3RhdHVz",highlighted:"git lfs status",wrap:!1}});const Wo=[_p,Up],yl=[];function xo(e,t){return e[0]==="pt"?0:1}Y=xo(w),S=yl[Y]=Wo[Y](w),sl=new $({props:{code:"Z2l0JTIwY29tbWl0JTIwLW0lMjAlMjJGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUyMg==",highlighted:'git commit -m <span class="hljs-string">"First model version"</span>',wrap:!1}});const Ro=[wp,gp],Ul=[];function Bo(e,t){return e[0]==="pt"?0:1}F=Bo(w),P=Ul[F]=Ro[F](w),pl=new $({props:{code:"Z2l0JTIwcHVzaA==",highlighted:"git push",wrap:!1}}),ml=new $({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 -> main`,wrap:!1}});function Io(e,t){return e[0]==="pt"?hp:Jp}let Ai=Io(w),K=Ai(w);return al=new Ko({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ru/chapter4/3.mdx"}}),{c(){i=a("meta"),m=o(),s=a("p"),c=o(),y(h.$$.fragment),u=o(),y(J.$$.fragment),Z=o(),j.c(),C=o(),b=a("p"),b.textContent=k,q=o(),y(G.$$.fragment),ae=o(),x=a("p"),x.textContent=v,Q=o(),re=a("p"),re.textContent=Pi,Zl=o(),fe=a("ul"),fe.innerHTML=qi,Gl=o(),ue=a("p"),ue.textContent=Oi,Ql=o(),y(ce.$$.fragment),Wl=o(),B.c(),_l=o(),Me=a("p"),Me.innerHTML=Ki,xl=o(),de=a("p"),de.innerHTML=es,Rl=o(),y(be.$$.fragment),Bl=o(),ye=a("p"),ye.textContent=ts,Il=o(),y(Ue.$$.fragment),Vl=o(),_e=a("p"),_e.innerHTML=ls,Al=o(),ge=a("p"),ge.textContent=ns,El=o(),V.c(),gl=o(),we=a("p"),we.innerHTML=is,Hl=o(),Je=a("p"),Je.innerHTML=ss,Nl=o(),he=a("p"),he.textContent=os,Ll=o(),E.c(),wl=o(),$e=a("p"),$e.innerHTML=ps,zl=o(),y(Te.$$.fragment),Xl=o(),je=a("p"),je.innerHTML=ms,Dl=o(),y(ve.$$.fragment),Yl=o(),ke=a("p"),ke.innerHTML=as,Sl=o(),y(Ce.$$.fragment),Fl=o(),Ze=a("p"),Ze.innerHTML=rs,Pl=o(),y(Ge.$$.fragment),ql=o(),Qe=a("p"),Qe.innerHTML=fs,Ol=o(),We=a("p"),We.textContent=us,Kl=o(),O.c(),Jl=o(),y(le.$$.fragment),en=o(),xe=a("p"),xe.innerHTML=cs,tn=o(),Re=a("p"),Re.innerHTML=Ms,ln=o(),Be=a("p"),Be.textContent=ds,nn=o(),y(Ie.$$.fragment),sn=o(),Ve=a("p"),Ve.innerHTML=bs,on=o(),Ae=a("p"),Ae.innerHTML=ys,pn=o(),y(Ee.$$.fragment),mn=o(),He=a("p"),He.innerHTML=Us,an=o(),y(Ne.$$.fragment),rn=o(),Le=a("p"),Le.innerHTML=_s,fn=o(),ze=a("p"),ze.innerHTML=gs,un=o(),y(Xe.$$.fragment),cn=o(),De=a("p"),De.innerHTML=ws,Mn=o(),y(Ye.$$.fragment),dn=o(),Se=a("p"),Se.innerHTML=Js,bn=o(),Fe=a("ul"),Fe.innerHTML=hs,yn=o(),Pe=a("p"),Pe.textContent=$s,Un=o(),y(qe.$$.fragment),_n=o(),Oe=a("p"),Oe.textContent=Ts,gn=o(),Ke=a("p"),Ke.innerHTML=js,wn=o(),ne=a("div"),ne.innerHTML=vs,Jn=o(),et=a("p"),et.textContent=ks,hn=o(),tt=a("p"),tt.textContent=Cs,$n=o(),lt=a("p"),lt.textContent=Zs,Tn=o(),ie=a("div"),ie.innerHTML=Gs,jn=o(),nt=a("p"),nt.textContent=Qs,vn=o(),se=a("div"),se.innerHTML=Ws,kn=o(),it=a("p"),it.textContent=xs,Cn=o(),st=a("p"),st.innerHTML=Rs,Zn=o(),oe=a("div"),oe.innerHTML=Bs,Gn=o(),ot=a("p"),ot.textContent=Is,Qn=o(),y(pt.$$.fragment),Wn=o(),mt=a("p"),mt.innerHTML=Vs,xn=o(),at=a("p"),at.innerHTML=As,Rn=o(),y(rt.$$.fragment),Bn=o(),ft=a("p"),ft.innerHTML=Es,In=o(),ut=a("p"),ut.textContent=Hs,Vn=o(),y(ct.$$.fragment),An=o(),Mt=a("p"),Mt.innerHTML=Ns,En=o(),dt=a("ul"),dt.innerHTML=Ls,Hn=o(),y(bt.$$.fragment),Nn=o(),yt=a("p"),yt.innerHTML=zs,Ln=o(),Ut=a("p"),Ut.innerHTML=Xs,zn=o(),_t=a("p"),_t.textContent=Ds,Xn=o(),y(gt.$$.fragment),Dn=o(),wt=a("p"),wt.innerHTML=Ys,Yn=o(),Jt=a("p"),Jt.textContent=Ss,Sn=o(),y(ht.$$.fragment),Fn=o(),$t=a("p"),$t.innerHTML=Fs,Pn=o(),Tt=a("p"),Tt.textContent=Ps,qn=o(),jt=a("p"),jt.textContent=qs,On=o(),y(vt.$$.fragment),Kn=o(),kt=a("p"),kt.textContent=Os,ei=o(),y(Ct.$$.fragment),ti=o(),Zt=a("p"),Zt.innerHTML=Ks,li=o(),y(Gt.$$.fragment),ni=o(),Qt=a("p"),Qt.textContent=eo,ii=o(),y(Wt.$$.fragment),si=o(),xt=a("p"),xt.textContent=to,oi=o(),Rt=a("p"),Rt.innerHTML=lo,pi=o(),Bt=a("p"),Bt.textContent=no,mi=o(),y(It.$$.fragment),ai=o(),y(Vt.$$.fragment),ri=o(),At=a("p"),At.textContent=io,fi=o(),Et=a("p"),Et.textContent=so,ui=o(),y(Ht.$$.fragment),ci=o(),Nt=a("p"),Nt.innerHTML=oo,Mi=o(),y(Lt.$$.fragment),di=o(),zt=a("p"),zt.innerHTML=po,bi=o(),y(Xt.$$.fragment),yi=o(),y(Dt.$$.fragment),Ui=o(),Yt=a("p"),Yt.innerHTML=mo,_i=o(),St=a("p"),St.innerHTML=ao,gi=o(),Ft=a("p"),Ft.textContent=ro,wi=o(),N.c(),hl=o(),Pt=a("p"),Pt.textContent=fo,Ji=o(),y(qt.$$.fragment),hi=o(),z.c(),$l=o(),y(pe.$$.fragment),$i=o(),Ot=a("p"),Ot.innerHTML=uo,Ti=o(),y(Kt.$$.fragment),ji=o(),el=a("p"),el.textContent=co,vi=o(),y(tl.$$.fragment),ki=o(),D.c(),Tl=o(),ll=a("p"),ll.innerHTML=Mo,Ci=o(),y(nl.$$.fragment),Zi=o(),S.c(),jl=o(),il=a("p"),il.innerHTML=bo,Gi=o(),y(sl.$$.fragment),Qi=o(),P.c(),vl=o(),ol=a("p"),ol.textContent=yo,Wi=o(),y(pl.$$.fragment),xi=o(),y(ml.$$.fragment),Ri=o(),K.c(),kl=o(),y(al.$$.fragment),Bi=o(),Cl=a("p"),this.h()},l(e){const t=Po("svelte-u9bgzb",document.head);i=r(t,"META",{name:!0,content:!0}),t.forEach(l),m=p(e),s=r(e,"P",{}),Ho(s).forEach(l),c=p(e),U(h.$$.fragment,e),u=p(e),U(J.$$.fragment,e),Z=p(e),j.l(e),C=p(e),b=r(e,"P",{"data-svelte-h":!0}),f(b)!=="svelte-1v99ftw"&&(b.textContent=k),q=p(e),U(G.$$.fragment,e),ae=p(e),x=r(e,"P",{"data-svelte-h":!0}),f(x)!=="svelte-18gmbsn"&&(x.textContent=v),Q=p(e),re=r(e,"P",{"data-svelte-h":!0}),f(re)!=="svelte-151r83t"&&(re.textContent=Pi),Zl=p(e),fe=r(e,"UL",{"data-svelte-h":!0}),f(fe)!=="svelte-18gkh3t"&&(fe.innerHTML=qi),Gl=p(e),ue=r(e,"P",{"data-svelte-h":!0}),f(ue)!=="svelte-jibzvd"&&(ue.textContent=Oi),Ql=p(e),U(ce.$$.fragment,e),Wl=p(e),B.l(e),_l=p(e),Me=r(e,"P",{"data-svelte-h":!0}),f(Me)!=="svelte-ac5qlz"&&(Me.innerHTML=Ki),xl=p(e),de=r(e,"P",{"data-svelte-h":!0}),f(de)!=="svelte-1gpsedv"&&(de.innerHTML=es),Rl=p(e),U(be.$$.fragment,e),Bl=p(e),ye=r(e,"P",{"data-svelte-h":!0}),f(ye)!=="svelte-1mrhnc5"&&(ye.textContent=ts),Il=p(e),U(Ue.$$.fragment,e),Vl=p(e),_e=r(e,"P",{"data-svelte-h":!0}),f(_e)!=="svelte-xheczx"&&(_e.innerHTML=ls),Al=p(e),ge=r(e,"P",{"data-svelte-h":!0}),f(ge)!=="svelte-wbcx1u"&&(ge.textContent=ns),El=p(e),V.l(e),gl=p(e),we=r(e,"P",{"data-svelte-h":!0}),f(we)!=="svelte-xha1d8"&&(we.innerHTML=is),Hl=p(e),Je=r(e,"P",{"data-svelte-h":!0}),f(Je)!=="svelte-vxzpm4"&&(Je.innerHTML=ss),Nl=p(e),he=r(e,"P",{"data-svelte-h":!0}),f(he)!=="svelte-1hmje37"&&(he.textContent=os),Ll=p(e),E.l(e),wl=p(e),$e=r(e,"P",{"data-svelte-h":!0}),f($e)!=="svelte-77eflz"&&($e.innerHTML=ps),zl=p(e),U(Te.$$.fragment,e),Xl=p(e),je=r(e,"P",{"data-svelte-h":!0}),f(je)!=="svelte-15nsuth"&&(je.innerHTML=ms),Dl=p(e),U(ve.$$.fragment,e),Yl=p(e),ke=r(e,"P",{"data-svelte-h":!0}),f(ke)!=="svelte-hve3d7"&&(ke.innerHTML=as),Sl=p(e),U(Ce.$$.fragment,e),Fl=p(e),Ze=r(e,"P",{"data-svelte-h":!0}),f(Ze)!=="svelte-2gpfzm"&&(Ze.innerHTML=rs),Pl=p(e),U(Ge.$$.fragment,e),ql=p(e),Qe=r(e,"P",{"data-svelte-h":!0}),f(Qe)!=="svelte-18hsea6"&&(Qe.innerHTML=fs),Ol=p(e),We=r(e,"P",{"data-svelte-h":!0}),f(We)!=="svelte-1nuzaha"&&(We.textContent=us),Kl=p(e),O.l(e),Jl=p(e),U(le.$$.fragment,e),en=p(e),xe=r(e,"P",{"data-svelte-h":!0}),f(xe)!=="svelte-q3f0ur"&&(xe.innerHTML=cs),tn=p(e),Re=r(e,"P",{"data-svelte-h":!0}),f(Re)!=="svelte-2w161d"&&(Re.innerHTML=Ms),ln=p(e),Be=r(e,"P",{"data-svelte-h":!0}),f(Be)!=="svelte-ei7hx7"&&(Be.textContent=ds),nn=p(e),U(Ie.$$.fragment,e),sn=p(e),Ve=r(e,"P",{"data-svelte-h":!0}),f(Ve)!=="svelte-1eulgkq"&&(Ve.innerHTML=bs),on=p(e),Ae=r(e,"P",{"data-svelte-h":!0}),f(Ae)!=="svelte-tp08zb"&&(Ae.innerHTML=ys),pn=p(e),U(Ee.$$.fragment,e),mn=p(e),He=r(e,"P",{"data-svelte-h":!0}),f(He)!=="svelte-20ng6p"&&(He.innerHTML=Us),an=p(e),U(Ne.$$.fragment,e),rn=p(e),Le=r(e,"P",{"data-svelte-h":!0}),f(Le)!=="svelte-j8hb5a"&&(Le.innerHTML=_s),fn=p(e),ze=r(e,"P",{"data-svelte-h":!0}),f(ze)!=="svelte-15g78gq"&&(ze.innerHTML=gs),un=p(e),U(Xe.$$.fragment,e),cn=p(e),De=r(e,"P",{"data-svelte-h":!0}),f(De)!=="svelte-4uxqxa"&&(De.innerHTML=ws),Mn=p(e),U(Ye.$$.fragment,e),dn=p(e),Se=r(e,"P",{"data-svelte-h":!0}),f(Se)!=="svelte-twgkt"&&(Se.innerHTML=Js),bn=p(e),Fe=r(e,"UL",{"data-svelte-h":!0}),f(Fe)!=="svelte-1hqfy17"&&(Fe.innerHTML=hs),yn=p(e),Pe=r(e,"P",{"data-svelte-h":!0}),f(Pe)!=="svelte-1wa4hi7"&&(Pe.textContent=$s),Un=p(e),U(qe.$$.fragment,e),_n=p(e),Oe=r(e,"P",{"data-svelte-h":!0}),f(Oe)!=="svelte-11tf8qg"&&(Oe.textContent=Ts),gn=p(e),Ke=r(e,"P",{"data-svelte-h":!0}),f(Ke)!=="svelte-3b2ylt"&&(Ke.innerHTML=js),wn=p(e),ne=r(e,"DIV",{class:!0,"data-svelte-h":!0}),f(ne)!=="svelte-4qsgxt"&&(ne.innerHTML=vs),Jn=p(e),et=r(e,"P",{"data-svelte-h":!0}),f(et)!=="svelte-15b14iw"&&(et.textContent=ks),hn=p(e),tt=r(e,"P",{"data-svelte-h":!0}),f(tt)!=="svelte-163mysv"&&(tt.textContent=Cs),$n=p(e),lt=r(e,"P",{"data-svelte-h":!0}),f(lt)!=="svelte-1mcwrc1"&&(lt.textContent=Zs),Tn=p(e),ie=r(e,"DIV",{class:!0,"data-svelte-h":!0}),f(ie)!=="svelte-1xh6nig"&&(ie.innerHTML=Gs),jn=p(e),nt=r(e,"P",{"data-svelte-h":!0}),f(nt)!=="svelte-5au3o4"&&(nt.textContent=Qs),vn=p(e),se=r(e,"DIV",{class:!0,"data-svelte-h":!0}),f(se)!=="svelte-1jm8l0p"&&(se.innerHTML=Ws),kn=p(e),it=r(e,"P",{"data-svelte-h":!0}),f(it)!=="svelte-mq905y"&&(it.textContent=xs),Cn=p(e),st=r(e,"P",{"data-svelte-h":!0}),f(st)!=="svelte-16fk3je"&&(st.innerHTML=Rs),Zn=p(e),oe=r(e,"DIV",{class:!0,"data-svelte-h":!0}),f(oe)!=="svelte-1kuf5jc"&&(oe.innerHTML=Bs),Gn=p(e),ot=r(e,"P",{"data-svelte-h":!0}),f(ot)!=="svelte-1ra9zn9"&&(ot.textContent=Is),Qn=p(e),U(pt.$$.fragment,e),Wn=p(e),mt=r(e,"P",{"data-svelte-h":!0}),f(mt)!=="svelte-26gxt6"&&(mt.innerHTML=Vs),xn=p(e),at=r(e,"P",{"data-svelte-h":!0}),f(at)!=="svelte-1nfv8z9"&&(at.innerHTML=As),Rn=p(e),U(rt.$$.fragment,e),Bn=p(e),ft=r(e,"P",{"data-svelte-h":!0}),f(ft)!=="svelte-1islw21"&&(ft.innerHTML=Es),In=p(e),ut=r(e,"P",{"data-svelte-h":!0}),f(ut)!=="svelte-1y4rdtc"&&(ut.textContent=Hs),Vn=p(e),U(ct.$$.fragment,e),An=p(e),Mt=r(e,"P",{"data-svelte-h":!0}),f(Mt)!=="svelte-mm9ouc"&&(Mt.innerHTML=Ns),En=p(e),dt=r(e,"UL",{"data-svelte-h":!0}),f(dt)!=="svelte-3n3luy"&&(dt.innerHTML=Ls),Hn=p(e),U(bt.$$.fragment,e),Nn=p(e),yt=r(e,"P",{"data-svelte-h":!0}),f(yt)!=="svelte-1hptybb"&&(yt.innerHTML=zs),Ln=p(e),Ut=r(e,"P",{"data-svelte-h":!0}),f(Ut)!=="svelte-118mbai"&&(Ut.innerHTML=Xs),zn=p(e),_t=r(e,"P",{"data-svelte-h":!0}),f(_t)!=="svelte-polyqk"&&(_t.textContent=Ds),Xn=p(e),U(gt.$$.fragment,e),Dn=p(e),wt=r(e,"P",{"data-svelte-h":!0}),f(wt)!=="svelte-hf8ziy"&&(wt.innerHTML=Ys),Yn=p(e),Jt=r(e,"P",{"data-svelte-h":!0}),f(Jt)!=="svelte-1qcxyfs"&&(Jt.textContent=Ss),Sn=p(e),U(ht.$$.fragment,e),Fn=p(e),$t=r(e,"P",{"data-svelte-h":!0}),f($t)!=="svelte-1oeapo4"&&($t.innerHTML=Fs),Pn=p(e),Tt=r(e,"P",{"data-svelte-h":!0}),f(Tt)!=="svelte-10w2bmz"&&(Tt.textContent=Ps),qn=p(e),jt=r(e,"P",{"data-svelte-h":!0}),f(jt)!=="svelte-ew865q"&&(jt.textContent=qs),On=p(e),U(vt.$$.fragment,e),Kn=p(e),kt=r(e,"P",{"data-svelte-h":!0}),f(kt)!=="svelte-1on9r54"&&(kt.textContent=Os),ei=p(e),U(Ct.$$.fragment,e),ti=p(e),Zt=r(e,"P",{"data-svelte-h":!0}),f(Zt)!=="svelte-tfq4j3"&&(Zt.innerHTML=Ks),li=p(e),U(Gt.$$.fragment,e),ni=p(e),Qt=r(e,"P",{"data-svelte-h":!0}),f(Qt)!=="svelte-14z5o9q"&&(Qt.textContent=eo),ii=p(e),U(Wt.$$.fragment,e),si=p(e),xt=r(e,"P",{"data-svelte-h":!0}),f(xt)!=="svelte-1nbrsft"&&(xt.textContent=to),oi=p(e),Rt=r(e,"P",{"data-svelte-h":!0}),f(Rt)!=="svelte-obmtif"&&(Rt.innerHTML=lo),pi=p(e),Bt=r(e,"P",{"data-svelte-h":!0}),f(Bt)!=="svelte-z0xx30"&&(Bt.textContent=no),mi=p(e),U(It.$$.fragment,e),ai=p(e),U(Vt.$$.fragment,e),ri=p(e),At=r(e,"P",{"data-svelte-h":!0}),f(At)!=="svelte-nplnyn"&&(At.textContent=io),fi=p(e),Et=r(e,"P",{"data-svelte-h":!0}),f(Et)!=="svelte-nox6q5"&&(Et.textContent=so),ui=p(e),U(Ht.$$.fragment,e),ci=p(e),Nt=r(e,"P",{"data-svelte-h":!0}),f(Nt)!=="svelte-8xocqi"&&(Nt.innerHTML=oo),Mi=p(e),U(Lt.$$.fragment,e),di=p(e),zt=r(e,"P",{"data-svelte-h":!0}),f(zt)!=="svelte-mjig25"&&(zt.innerHTML=po),bi=p(e),U(Xt.$$.fragment,e),yi=p(e),U(Dt.$$.fragment,e),Ui=p(e),Yt=r(e,"P",{"data-svelte-h":!0}),f(Yt)!=="svelte-kexj02"&&(Yt.innerHTML=mo),_i=p(e),St=r(e,"P",{"data-svelte-h":!0}),f(St)!=="svelte-hui47f"&&(St.innerHTML=ao),gi=p(e),Ft=r(e,"P",{"data-svelte-h":!0}),f(Ft)!=="svelte-2x951h"&&(Ft.textContent=ro),wi=p(e),N.l(e),hl=p(e),Pt=r(e,"P",{"data-svelte-h":!0}),f(Pt)!=="svelte-49dkrk"&&(Pt.textContent=fo),Ji=p(e),U(qt.$$.fragment,e),hi=p(e),z.l(e),$l=p(e),U(pe.$$.fragment,e),$i=p(e),Ot=r(e,"P",{"data-svelte-h":!0}),f(Ot)!=="svelte-1kuyejg"&&(Ot.innerHTML=uo),Ti=p(e),U(Kt.$$.fragment,e),ji=p(e),el=r(e,"P",{"data-svelte-h":!0}),f(el)!=="svelte-1y8uw5k"&&(el.textContent=co),vi=p(e),U(tl.$$.fragment,e),ki=p(e),D.l(e),Tl=p(e),ll=r(e,"P",{"data-svelte-h":!0}),f(ll)!=="svelte-1qz05yy"&&(ll.innerHTML=Mo),Ci=p(e),U(nl.$$.fragment,e),Zi=p(e),S.l(e),jl=p(e),il=r(e,"P",{"data-svelte-h":!0}),f(il)!=="svelte-19gfgi3"&&(il.innerHTML=bo),Gi=p(e),U(sl.$$.fragment,e),Qi=p(e),P.l(e),vl=p(e),ol=r(e,"P",{"data-svelte-h":!0}),f(ol)!=="svelte-1th0qp5"&&(ol.textContent=yo),Wi=p(e),U(pl.$$.fragment,e),xi=p(e),U(ml.$$.fragment,e),Ri=p(e),K.l(e),kl=p(e),U(al.$$.fragment,e),Bi=p(e),Cl=r(e,"P",{}),Ho(Cl).forEach(l),this.h()},h(){W(i,"name","hf:doc:metadata"),W(i,"content",Tp),W(ne,"class","flex justify-center"),W(ie,"class","flex justify-center"),W(se,"class","flex justify-center"),W(oe,"class","flex justify-center")},m(e,t){qo(document.head,i),n(e,m,t),n(e,s,t),n(e,c,t),_(h,e,t),n(e,u,t),_(J,e,t),n(e,Z,t),rl[T].m(e,t),n(e,C,t),n(e,b,t),n(e,q,t),_(G,e,t),n(e,ae,t),n(e,x,t),n(e,Q,t),n(e,re,t),n(e,Zl,t),n(e,fe,t),n(e,Gl,t),n(e,ue,t),n(e,Ql,t),_(ce,e,t),n(e,Wl,t),fl[R].m(e,t),n(e,_l,t),n(e,Me,t),n(e,xl,t),n(e,de,t),n(e,Rl,t),_(be,e,t),n(e,Bl,t),n(e,ye,t),n(e,Il,t),_(Ue,e,t),n(e,Vl,t),n(e,_e,t),n(e,Al,t),n(e,ge,t),n(e,El,t),ul[I].m(e,t),n(e,gl,t),n(e,we,t),n(e,Hl,t),n(e,Je,t),n(e,Nl,t),n(e,he,t),n(e,Ll,t),cl[A].m(e,t),n(e,wl,t),n(e,$e,t),n(e,zl,t),_(Te,e,t),n(e,Xl,t),n(e,je,t),n(e,Dl,t),_(ve,e,t),n(e,Yl,t),n(e,ke,t),n(e,Sl,t),_(Ce,e,t),n(e,Fl,t),n(e,Ze,t),n(e,Pl,t),_(Ge,e,t),n(e,ql,t),n(e,Qe,t),n(e,Ol,t),n(e,We,t),n(e,Kl,t),O.m(e,t),n(e,Jl,t),_(le,e,t),n(e,en,t),n(e,xe,t),n(e,tn,t),n(e,Re,t),n(e,ln,t),n(e,Be,t),n(e,nn,t),_(Ie,e,t),n(e,sn,t),n(e,Ve,t),n(e,on,t),n(e,Ae,t),n(e,pn,t),_(Ee,e,t),n(e,mn,t),n(e,He,t),n(e,an,t),_(Ne,e,t),n(e,rn,t),n(e,Le,t),n(e,fn,t),n(e,ze,t),n(e,un,t),_(Xe,e,t),n(e,cn,t),n(e,De,t),n(e,Mn,t),_(Ye,e,t),n(e,dn,t),n(e,Se,t),n(e,bn,t),n(e,Fe,t),n(e,yn,t),n(e,Pe,t),n(e,Un,t),_(qe,e,t),n(e,_n,t),n(e,Oe,t),n(e,gn,t),n(e,Ke,t),n(e,wn,t),n(e,ne,t),n(e,Jn,t),n(e,et,t),n(e,hn,t),n(e,tt,t),n(e,$n,t),n(e,lt,t),n(e,Tn,t),n(e,ie,t),n(e,jn,t),n(e,nt,t),n(e,vn,t),n(e,se,t),n(e,kn,t),n(e,it,t),n(e,Cn,t),n(e,st,t),n(e,Zn,t),n(e,oe,t),n(e,Gn,t),n(e,ot,t),n(e,Qn,t),_(pt,e,t),n(e,Wn,t),n(e,mt,t),n(e,xn,t),n(e,at,t),n(e,Rn,t),_(rt,e,t),n(e,Bn,t),n(e,ft,t),n(e,In,t),n(e,ut,t),n(e,Vn,t),_(ct,e,t),n(e,An,t),n(e,Mt,t),n(e,En,t),n(e,dt,t),n(e,Hn,t),_(bt,e,t),n(e,Nn,t),n(e,yt,t),n(e,Ln,t),n(e,Ut,t),n(e,zn,t),n(e,_t,t),n(e,Xn,t),_(gt,e,t),n(e,Dn,t),n(e,wt,t),n(e,Yn,t),n(e,Jt,t),n(e,Sn,t),_(ht,e,t),n(e,Fn,t),n(e,$t,t),n(e,Pn,t),n(e,Tt,t),n(e,qn,t),n(e,jt,t),n(e,On,t),_(vt,e,t),n(e,Kn,t),n(e,kt,t),n(e,ei,t),_(Ct,e,t),n(e,ti,t),n(e,Zt,t),n(e,li,t),_(Gt,e,t),n(e,ni,t),n(e,Qt,t),n(e,ii,t),_(Wt,e,t),n(e,si,t),n(e,xt,t),n(e,oi,t),n(e,Rt,t),n(e,pi,t),n(e,Bt,t),n(e,mi,t),_(It,e,t),n(e,ai,t),_(Vt,e,t),n(e,ri,t),n(e,At,t),n(e,fi,t),n(e,Et,t),n(e,ui,t),_(Ht,e,t),n(e,ci,t),n(e,Nt,t),n(e,Mi,t),_(Lt,e,t),n(e,di,t),n(e,zt,t),n(e,bi,t),_(Xt,e,t),n(e,yi,t),_(Dt,e,t),n(e,Ui,t),n(e,Yt,t),n(e,_i,t),n(e,St,t),n(e,gi,t),n(e,Ft,t),n(e,wi,t),Ml[H].m(e,t),n(e,hl,t),n(e,Pt,t),n(e,Ji,t),_(qt,e,t),n(e,hi,t),dl[L].m(e,t),n(e,$l,t),_(pe,e,t),n(e,$i,t),n(e,Ot,t),n(e,Ti,t),_(Kt,e,t),n(e,ji,t),n(e,el,t),n(e,vi,t),_(tl,e,t),n(e,ki,t),bl[X].m(e,t),n(e,Tl,t),n(e,ll,t),n(e,Ci,t),_(nl,e,t),n(e,Zi,t),yl[Y].m(e,t),n(e,jl,t),n(e,il,t),n(e,Gi,t),_(sl,e,t),n(e,Qi,t),Ul[F].m(e,t),n(e,vl,t),n(e,ol,t),n(e,Wi,t),_(pl,e,t),n(e,xi,t),_(ml,e,t),n(e,Ri,t),K.m(e,t),n(e,kl,t),_(al,e,t),n(e,Bi,t),n(e,Cl,t),Ii=!0},p(e,[t]){const Vo={};t&1&&(Vo.fw=e[0]),h.$set(Vo);let Ei=T;T=_o(e),T!==Ei&&(te(),M(rl[Ei],1,1,()=>{rl[Ei]=null}),ee(),j=rl[T],j||(j=rl[T]=Uo[T](e),j.c()),d(j,1),j.m(C.parentNode,C));let Hi=R;R=wo(e),R!==Hi&&(te(),M(fl[Hi],1,1,()=>{fl[Hi]=null}),ee(),B=fl[R],B||(B=fl[R]=go[R](e),B.c()),d(B,1),B.m(_l.parentNode,_l));let Ni=I;I=ho(e),I!==Ni&&(te(),M(ul[Ni],1,1,()=>{ul[Ni]=null}),ee(),V=ul[I],V||(V=ul[I]=Jo[I](e),V.c()),d(V,1),V.m(gl.parentNode,gl));let Li=A;A=To(e),A!==Li&&(te(),M(cl[Li],1,1,()=>{cl[Li]=null}),ee(),E=cl[A],E||(E=cl[A]=$o[A](e),E.c()),d(E,1),E.m(wl.parentNode,wl)),Vi!==(Vi=jo(e))&&(O.d(1),O=Vi(e),O&&(O.c(),O.m(Jl.parentNode,Jl)));const Ao={};t&2&&(Ao.$$scope={dirty:t,ctx:e}),le.$set(Ao);let zi=H;H=ko(e),H!==zi&&(te(),M(Ml[zi],1,1,()=>{Ml[zi]=null}),ee(),N=Ml[H],N||(N=Ml[H]=vo[H](e),N.c()),d(N,1),N.m(hl.parentNode,hl));let Xi=L;L=Zo(e),L!==Xi&&(te(),M(dl[Xi],1,1,()=>{dl[Xi]=null}),ee(),z=dl[L],z||(z=dl[L]=Co[L](e),z.c()),d(z,1),z.m($l.parentNode,$l));const Eo={};t&2&&(Eo.$$scope={dirty:t,ctx:e}),pe.$set(Eo);let Di=X;X=Qo(e),X!==Di&&(te(),M(bl[Di],1,1,()=>{bl[Di]=null}),ee(),D=bl[X],D||(D=bl[X]=Go[X](e),D.c()),d(D,1),D.m(Tl.parentNode,Tl));let Yi=Y;Y=xo(e),Y!==Yi&&(te(),M(yl[Yi],1,1,()=>{yl[Yi]=null}),ee(),S=yl[Y],S||(S=yl[Y]=Wo[Y](e),S.c()),d(S,1),S.m(jl.parentNode,jl));let Si=F;F=Bo(e),F!==Si&&(te(),M(Ul[Si],1,1,()=>{Ul[Si]=null}),ee(),P=Ul[F],P||(P=Ul[F]=Ro[F](e),P.c()),d(P,1),P.m(vl.parentNode,vl)),Ai!==(Ai=Io(e))&&(K.d(1),K=Ai(e),K&&(K.c(),K.m(kl.parentNode,kl)))},i(e){Ii||(d(h.$$.fragment,e),d(J.$$.fragment,e),d(j),d(G.$$.fragment,e),d(ce.$$.fragment,e),d(B),d(be.$$.fragment,e),d(Ue.$$.fragment,e),d(V),d(E),d(Te.$$.fragment,e),d(ve.$$.fragment,e),d(Ce.$$.fragment,e),d(Ge.$$.fragment,e),d(le.$$.fragment,e),d(Ie.$$.fragment,e),d(Ee.$$.fragment,e),d(Ne.$$.fragment,e),d(Xe.$$.fragment,e),d(Ye.$$.fragment,e),d(qe.$$.fragment,e),d(pt.$$.fragment,e),d(rt.$$.fragment,e),d(ct.$$.fragment,e),d(bt.$$.fragment,e),d(gt.$$.fragment,e),d(ht.$$.fragment,e),d(vt.$$.fragment,e),d(Ct.$$.fragment,e),d(Gt.$$.fragment,e),d(Wt.$$.fragment,e),d(It.$$.fragment,e),d(Vt.$$.fragment,e),d(Ht.$$.fragment,e),d(Lt.$$.fragment,e),d(Xt.$$.fragment,e),d(Dt.$$.fragment,e),d(N),d(qt.$$.fragment,e),d(z),d(pe.$$.fragment,e),d(Kt.$$.fragment,e),d(tl.$$.fragment,e),d(D),d(nl.$$.fragment,e),d(S),d(sl.$$.fragment,e),d(P),d(pl.$$.fragment,e),d(ml.$$.fragment,e),d(al.$$.fragment,e),Ii=!0)},o(e){M(h.$$.fragment,e),M(J.$$.fragment,e),M(j),M(G.$$.fragment,e),M(ce.$$.fragment,e),M(B),M(be.$$.fragment,e),M(Ue.$$.fragment,e),M(V),M(E),M(Te.$$.fragment,e),M(ve.$$.fragment,e),M(Ce.$$.fragment,e),M(Ge.$$.fragment,e),M(le.$$.fragment,e),M(Ie.$$.fragment,e),M(Ee.$$.fragment,e),M(Ne.$$.fragment,e),M(Xe.$$.fragment,e),M(Ye.$$.fragment,e),M(qe.$$.fragment,e),M(pt.$$.fragment,e),M(rt.$$.fragment,e),M(ct.$$.fragment,e),M(bt.$$.fragment,e),M(gt.$$.fragment,e),M(ht.$$.fragment,e),M(vt.$$.fragment,e),M(Ct.$$.fragment,e),M(Gt.$$.fragment,e),M(Wt.$$.fragment,e),M(It.$$.fragment,e),M(Vt.$$.fragment,e),M(Ht.$$.fragment,e),M(Lt.$$.fragment,e),M(Xt.$$.fragment,e),M(Dt.$$.fragment,e),M(N),M(qt.$$.fragment,e),M(z),M(pe.$$.fragment,e),M(Kt.$$.fragment,e),M(tl.$$.fragment,e),M(D),M(nl.$$.fragment,e),M(S),M(sl.$$.fragment,e),M(P),M(pl.$$.fragment,e),M(ml.$$.fragment,e),M(al.$$.fragment,e),Ii=!1},d(e){e&&(l(m),l(s),l(c),l(u),l(Z),l(C),l(b),l(q),l(ae),l(x),l(Q),l(re),l(Zl),l(fe),l(Gl),l(ue),l(Ql),l(Wl),l(_l),l(Me),l(xl),l(de),l(Rl),l(Bl),l(ye),l(Il),l(Vl),l(_e),l(Al),l(ge),l(El),l(gl),l(we),l(Hl),l(Je),l(Nl),l(he),l(Ll),l(wl),l($e),l(zl),l(Xl),l(je),l(Dl),l(Yl),l(ke),l(Sl),l(Fl),l(Ze),l(Pl),l(ql),l(Qe),l(Ol),l(We),l(Kl),l(Jl),l(en),l(xe),l(tn),l(Re),l(ln),l(Be),l(nn),l(sn),l(Ve),l(on),l(Ae),l(pn),l(mn),l(He),l(an),l(rn),l(Le),l(fn),l(ze),l(un),l(cn),l(De),l(Mn),l(dn),l(Se),l(bn),l(Fe),l(yn),l(Pe),l(Un),l(_n),l(Oe),l(gn),l(Ke),l(wn),l(ne),l(Jn),l(et),l(hn),l(tt),l($n),l(lt),l(Tn),l(ie),l(jn),l(nt),l(vn),l(se),l(kn),l(it),l(Cn),l(st),l(Zn),l(oe),l(Gn),l(ot),l(Qn),l(Wn),l(mt),l(xn),l(at),l(Rn),l(Bn),l(ft),l(In),l(ut),l(Vn),l(An),l(Mt),l(En),l(dt),l(Hn),l(Nn),l(yt),l(Ln),l(Ut),l(zn),l(_t),l(Xn),l(Dn),l(wt),l(Yn),l(Jt),l(Sn),l(Fn),l($t),l(Pn),l(Tt),l(qn),l(jt),l(On),l(Kn),l(kt),l(ei),l(ti),l(Zt),l(li),l(ni),l(Qt),l(ii),l(si),l(xt),l(oi),l(Rt),l(pi),l(Bt),l(mi),l(ai),l(ri),l(At),l(fi),l(Et),l(ui),l(ci),l(Nt),l(Mi),l(di),l(zt),l(bi),l(yi),l(Ui),l(Yt),l(_i),l(St),l(gi),l(Ft),l(wi),l(hl),l(Pt),l(Ji),l(hi),l($l),l($i),l(Ot),l(Ti),l(ji),l(el),l(vi),l(ki),l(Tl),l(ll),l(Ci),l(Zi),l(jl),l(il),l(Gi),l(Qi),l(vl),l(ol),l(Wi),l(xi),l(Ri),l(kl),l(Bi),l(Cl)),l(i),g(h,e),g(J,e),rl[T].d(e),g(G,e),g(ce,e),fl[R].d(e),g(be,e),g(Ue,e),ul[I].d(e),cl[A].d(e),g(Te,e),g(ve,e),g(Ce,e),g(Ge,e),O.d(e),g(le,e),g(Ie,e),g(Ee,e),g(Ne,e),g(Xe,e),g(Ye,e),g(qe,e),g(pt,e),g(rt,e),g(ct,e),g(bt,e),g(gt,e),g(ht,e),g(vt,e),g(Ct,e),g(Gt,e),g(Wt,e),g(It,e),g(Vt,e),g(Ht,e),g(Lt,e),g(Xt,e),g(Dt,e),Ml[H].d(e),g(qt,e),dl[L].d(e),g(pe,e),g(Kt,e),g(tl,e),bl[X].d(e),g(nl,e),yl[Y].d(e),g(sl,e),Ul[F].d(e),g(pl,e),g(ml,e),K.d(e),g(al,e)}}}const Tp='{"title":"Публикация обученых моделей в общий доступ","local":"публикация-обученых-моделей-в-общий-доступ","sections":[{"title":"Использование API push_to_hub","local":"использование-api-pushtohub","sections":[],"depth":2},{"title":"Использование библиотеки huggingface_hub","local":"использование-библиотеки-huggingfacehub","sections":[],"depth":2},{"title":"Использование веб-интерфейса","local":"использование-веб-интерфейса","sections":[],"depth":2},{"title":"Загрузка файлов модели","local":"загрузка-файлов-модели","sections":[{"title":"Функция upload_file","local":"функция-uploadfile","sections":[],"depth":3},{"title":"Класс Repository","local":"класс-repository","sections":[],"depth":3},{"title":"git-подход","local":"git-подход","sections":[],"depth":3}],"depth":2}],"depth":1}';function jp(w,i,m){let s="pt";return Yo(()=>{const c=new URLSearchParams(window.location.search);m(0,s=c.get("fw")||"pt")}),[s]}class Rp extends So{constructor(i){super(),Fo(this,i,jp,$p,Do,{})}}export{Rp as component}; | |
Xet Storage Details
- Size:
- 87.4 kB
- Xet hash:
- 44a3159200a8d7fc4dca11e40db01e1b6cccb01258ee9100989a69bdbc4c9b10
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.