import{s as ne,o as Je}from"../chunks/scheduler.cc52f4b9.js";import{S as ae,i as Me,e as V,s as a,c as o,h as Ue,a as w,d as s,b as M,f as Kl,g as r,j as C,k as le,l as pe,m as n,n as c,o as p,u as ee,t as i,p as u,v as se}from"../chunks/index.9480bb2b.js";import{C as ie,H as $l,E as oe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.e0b4ce23.js";import{C as Q}from"../chunks/CodeBlock.d991436c.js";import{C as te}from"../chunks/CourseFloatingBanner.0ea490da.js";import{F as re}from"../chunks/FrameworkSwitchCourse.42d12053.js";function ce(E){let J,U;return J=new te({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_tf.ipynb"}]}}),{c(){o(J.$$.fragment)},l(t){r(J.$$.fragment,t)},m(t,m){c(J,t,m),U=!0},i(t){U||(i(J.$$.fragment,t),U=!0)},o(t){p(J.$$.fragment,t),U=!1},d(t){u(J,t)}}}function ue(E){let J,U;return J=new te({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_pt.ipynb"}]}}),{c(){o(J.$$.fragment)},l(t){r(J.$$.fragment,t)},m(t,m){c(J,t,m),U=!0},i(t){U||(i(J.$$.fragment,t),U=!0)},o(t){p(J.$$.fragment,t),U=!1},d(t){u(J,t)}}}function Ve(E){let J,U;return J=new Q({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUyQyUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBc2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEF0b2tlbnMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIydGYlMjIpJTBBb3V0cHV0JTIwJTNEJTIwbW9kZWwoKip0b2tlbnMp",highlighted:`<span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForSequenceClassification

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint)
sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]

tokens = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;tf&quot;</span>)
output = model(**tokens)`,wrap:!1}}),{c(){o(J.$$.fragment)},l(t){r(J.$$.fragment,t)},m(t,m){c(J,t,m),U=!0},i(t){U||(i(J.$$.fragment,t),U=!0)},o(t){p(J.$$.fragment,t),U=!1},d(t){u(J,t)}}}function we(E){let J,U;return J=new Q({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUyQyUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEFzZXF1ZW5jZXMlMjAlM0QlMjAlNUIlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMkMlMjAlMjJTbyUyMGhhdmUlMjBJISUyMiU1RCUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHRydW5jYXRpb24lM0RUcnVlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEFvdXRwdXQlMjAlM0QlMjBtb2RlbCgqKnRva2Vucyk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForSequenceClassification

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForSequenceClassification.from_pretrained(checkpoint)
sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]

tokens = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
output = model(**tokens)`,wrap:!1}}),{c(){o(J.$$.fragment)},l(t){r(J.$$.fragment,t)},m(t,m){c(J,t,m),U=!0},i(t){U||(i(J.$$.fragment,t),U=!0)},o(t){p(J.$$.fragment,t),U=!1},d(t){u(J,t)}}}function me(E){let J,U,t,m,I,nl,R,Jl,f,al,y,T,el,d,Al="В последних нескольких разделах мы старались делать большую часть работы вручную. Мы изучили, как работают токенизаторы, рассмотрели токенизацию, преобразование во входные идентификаторы, дополнении, усечении и маски внимания.",Ml,h,Nl="Однако, как мы видели в разделе 2, 🤗 Transformers API может обработать все это для нас с помощью высокоуровневой функции, которую мы рассмотрим здесь. Когда вы вызываете свой <code>tokenizer</code> непосредственно на предложении, вы получаете обратно входы, готовые к передаче в вашу модель:",Ul,g,pl,D,Wl="Здесь переменная <code>model_inputs</code> содержит все, что необходимо для нормальной работы модели. Для DistilBERT это идентификаторы входов, а также маска внимания. В других моделях, принимающих дополнительные входы, они также будут формироваться выходами объекта <code>tokenizer</code>.",il,k,xl="Как мы увидим на нескольких примерах ниже, это очень мощный метод. Во-первых, он может токенизировать одну последовательность:",ol,S,rl,Z,_l="Он также обрабатывает несколько последовательностей одновременно, без каких-либо изменений в API:",cl,$,ul,A,Bl="Он может быть дополнен исходя из нескольких целей:",Vl,N,wl,W,Xl="Он также может выполнять усечение последовательностей:",ml,x,Cl,_,Gl="Объект <code>tokenizer</code> может выполнять преобразование в тензоры конкретных фреймворков, которые затем могут быть напрямую переданы в модель. Например, в следующем примере кода мы задаем токенизатору возвращать тензоры для различных фреймворков - <code>&quot;pt&quot;</code> возвращает тензоры PyTorch, <code>&quot;tf&quot;</code> возвращает тензоры TensorFlow, а <code>&quot;np&quot;</code> возвращает массивы NumPy:",Ql,B,El,X,yl,G,zl="Если мы посмотрим на идентификаторы входа, возвращаемые токенизатором, то увидим, что они немного отличаются от тех, что мы получали ранее:",Tl,z,bl,q,jl,v,ql="Один идентификатор токена был добавлен в начале, а другой - в конце. Давайте декодируем две последовательности идентификаторов, приведенные выше, чтобы понять, в чем дело:",Il,Y,Rl,F,fl,H,vl="Токенизатор добавил специальное слово <code>[CLS]</code> в начале и специальное слово <code>[SEP]</code> в конце. Это связано с тем, что модель была предварительно обучена с ними, поэтому для получения тех же результатов при инференсе нам нужно добавить и их. Обратите внимание, что некоторые модели не добавляют специальные слова или добавляют другие слова; модели также могут добавлять эти специальные слова только в начале или только в конце. В любом случае, токенизатор знает, какие из них ожидаются, и справится с этим сам.",dl,O,hl,L,Yl="Теперь, когда мы рассмотрели все отдельные шаги, которые использует объект <code>tokenizer</code> при работе с текстами, давайте в последний раз посмотрим, как он может работать с множественными последовательностями (дополнение!), очень длинными последовательностями (усечение!) и несколькими типами тензоров с помощью своего основного API:",gl,b,j,sl,P,Dl,tl,kl;I=new re({props:{fw:E[0]}}),R=new ie({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),f=new $l({props:{title:"Собираем все воедино",local:"putting-it-all-together",headingTag:"h1"}});const Fl=[ue,ce],K=[];function Hl(l,e){return l[0]==="pt"?0:1}y=Hl(E),T=K[y]=Fl[y](E),g=new Q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQSUwQXNlcXVlbmNlJTIwJTNEJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTBBJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>

model_inputs = tokenizer(sequence)`,wrap:!1}}),S=new Q({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2Up",highlighted:`sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>

model_inputs = tokenizer(sequence)`,wrap:!1}}),$=new Q({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzKQ==",highlighted:`sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]

model_inputs = tokenizer(sequences)`,wrap:!1}}),N=new Q({props:{code:"JTIzJTIwJUQwJTk0JUQwJUJFJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI1JUQwJUI5JTIwJUQwJUI0JUQwJUJFJTIwJUQwJUJDJUQwJUIwJUQwJUJBJUQxJTgxJUQwJUI4JUQwJUJDJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUI0JUQwJUJCJUQwJUI4JUQwJUJEJUQxJThCJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMHBhZGRpbmclM0QlMjJsb25nZXN0JTIyKSUwQSUwQSUyMyUyMCVEMCU5NCVEMCVCRSVEMCVCRiVEMCVCRSVEMCVCQiVEMCVCRCVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCRiVEMCVCRSVEMSU4MSVEMCVCQiVEMCVCNSVEMCVCNCVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCNSVEMCVCOSUyMCVEMCVCNCVEMCVCRSUyMCVEMCVCQyVEMCVCMCVEMCVCQSVEMSU4MSVEMCVCOCVEMCVCQyVEMCVCMCVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCRSVEMCVCOSUyMCVEMCVCNCVEMCVCQiVEMCVCOCVEMCVCRCVEMSU4QiUyMCVEMCVCQyVEMCVCRSVEMCVCNCVEMCVCNSVEMCVCQiVEMCVCOCUwQSUyMyUyMCg1MTIlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjBCRVJUJTIwJUQwJUI4JUQwJUJCJUQwJUI4JTIwRGlzdGlsQkVSVCklMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRCUyMm1heF9sZW5ndGglMjIpJTBBJTBBJTIzJTIwJUQwJTk0JUQwJUJFJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI1JUQwJUI5JTIwJUQwJUI0JUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUJDJUQwJUIwJUQwJUJBJUQxJTgxJUQwJUI4JUQwJUJDJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUI0JUQwJUJCJUQwJUI4JUQwJUJEJUQxJThCJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMHBhZGRpbmclM0QlMjJtYXhfbGVuZ3RoJTIyJTJDJTIwbWF4X2xlbmd0aCUzRDgp",highlighted:`<span class="hljs-comment"># Дополнение последовательностей до максимальной длины последовательности</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;longest&quot;</span>)

<span class="hljs-comment"># Дополнение последовательностей до максимальной длины модели</span>
<span class="hljs-comment"># (512 для BERT или DistilBERT)</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;max_length&quot;</span>)

<span class="hljs-comment"># Дополнение последовательностей до заданной максимальной длины</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;max_length&quot;</span>, max_length=<span class="hljs-number">8</span>)`,wrap:!1}}),x=new Q({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEElMjMlMjAlRDAlQTMlRDElODElRDAlQjUlRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDAlQjUlMjAlRDAlQkYlRDAlQkUlRDElODElRDAlQkIlRDAlQjUlRDAlQjQlRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEMlRDAlQkQlRDAlQkUlRDElODElRDElODIlRDAlQjUlRDAlQjklMkMlMjAlRDAlQjQlRDAlQkIlRDAlQjglRDAlQkQlRDAlQjAlMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDElOEIlRDElODUlMjAlRDAlQkYlRDElODAlRDAlQjUlRDAlQjIlRDElOEIlRDElODglRDAlQjAlRDAlQjUlRDElODIlMjAlRDAlQkMlRDAlQjAlRDAlQkElRDElODElRDAlQjglRDAlQkMlRDAlQjAlRDAlQkIlRDElOEMlRDAlQkQlRDElODMlRDElOEUlMjAlRDAlQjQlRDAlQkIlRDAlQjglRDAlQkQlRDElODMlMjAlRDAlQkMlRDAlQkUlRDAlQjQlRDAlQjUlRDAlQkIlRDAlQjglMEElMjMlMjAoNTEyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwQkVSVCUyMCVEMCVCOCVEMCVCQiVEMCVCOCUyMERpc3RpbEJFUlQpJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMHRydW5jYXRpb24lM0RUcnVlKSUwQSUwQSUyMyUyMCVEMCVBMyVEMSU4MSVEMCVCNSVEMSU4NyVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCRiVEMCVCRSVEMSU4MSVEMCVCQiVEMCVCNSVEMCVCNCVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCNSVEMCVCOSUyQyUyMCVEMCVCNCVEMCVCQiVEMCVCOCVEMCVCRCVEMCVCMCUyMCVEMCVCQSVEMCVCRSVEMSU4MiVEMCVCRSVEMSU4MCVEMSU4QiVEMSU4NSUyMCVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCMiVEMSU4QiVEMSU4OCVEMCVCMCVEMCVCNSVEMSU4MiUyMCVEMCVCNyVEMCVCMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4MyVEMSU4RSUyMCVEMCVCQyVEMCVCMCVEMCVCQSVEMSU4MSVEMCVCOCVEMCVCQyVEMCVCMCVEMCVCQiVEMSU4QyVEMCVCRCVEMSU4MyVEMSU4RSUyMCVEMCVCNCVEMCVCQiVEMCVCOCVEMCVCRCVEMSU4MyUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBtYXhfbGVuZ3RoJTNEOCUyQyUyMHRydW5jYXRpb24lM0RUcnVlKQ==",highlighted:`sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]

<span class="hljs-comment"># Усечение последовательностей, длина которых превышает максимальную длину модели</span>
<span class="hljs-comment"># (512 для BERT или DistilBERT)</span>
model_inputs = tokenizer(sequences, truncation=<span class="hljs-literal">True</span>)

<span class="hljs-comment"># Усечение последовательностей, длина которых превышает заданную максимальную длину</span>
model_inputs = tokenizer(sequences, max_length=<span class="hljs-number">8</span>, truncation=<span class="hljs-literal">True</span>)`,wrap:!1}}),B=new Q({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEElMjMlMjAlRDAlOTIlRDAlQjUlRDElODAlRDAlQkQlRDElODMlRDElODIlRDElOEMlMjAlRDElODIlRDAlQjUlRDAlQkQlRDAlQjclRDAlQkUlRDElODAlRDElOEIlMjBQeVRvcmNoJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMHBhZGRpbmclM0RUcnVlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEElMEElMjMlMjAlRDAlOTIlRDAlQjUlRDElODAlRDAlQkQlRDElODMlRDElODIlRDElOEMlMjAlRDElODIlRDAlQjUlRDAlQkQlRDAlQjclRDAlQkUlRDElODAlRDElOEIlMjBUZW5zb3JGbG93JTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMHBhZGRpbmclM0RUcnVlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJ0ZiUyMiklMEElMEElMjMlMjAlRDAlOTIlRDAlQjUlRDElODAlRDAlQkQlRDElODMlRDElODIlRDElOEMlMjAlRDAlQkMlRDAlQjAlRDElODElRDElODElRDAlQjglRDAlQjIlRDElOEIlMjBOdW1QeSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIybnAlMjIp",highlighted:`sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]

<span class="hljs-comment"># Вернуть тензоры PyTorch</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-comment"># Вернуть тензоры TensorFlow</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;tf&quot;</span>)

<span class="hljs-comment"># Вернуть массивы NumPy</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;np&quot;</span>)`,wrap:!1}}),X=new $l({props:{title:"Специальные токены",local:"special-tokens",headingTag:"h2"}}),z=new Q({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2UpJTBBcHJpbnQobW9kZWxfaW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVEKSUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplci50b2tlbml6ZShzZXF1ZW5jZSklMEFpZHMlMjAlM0QlMjB0b2tlbml6ZXIuY29udmVydF90b2tlbnNfdG9faWRzKHRva2VucyklMEFwcmludChpZHMp",highlighted:`sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>

model_inputs = tokenizer(sequence)
<span class="hljs-built_in">print</span>(model_inputs[<span class="hljs-string">&quot;input_ids&quot;</span>])

tokens = tokenizer.tokenize(sequence)
ids = tokenizer.convert_tokens_to_ids(tokens)
<span class="hljs-built_in">print</span>(ids)`,wrap:!1}}),q=new Q({props:{code:"JTVCMTAxJTJDJTIwMTA0NSUyQyUyMDEwMDUlMkMlMjAyMzEwJTJDJTIwMjA0MiUyQyUyMDM0MDMlMkMlMjAyMDA1JTJDJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwMjAyNiUyQyUyMDI4NzglMkMlMjAyMTY2JTJDJTIwMTAxMiUyQyUyMDEwMiU1RCUwQSU1QjEwNDUlMkMlMjAxMDA1JTJDJTIwMjMxMCUyQyUyMDIwNDIlMkMlMjAzNDAzJTJDJTIwMjAwNSUyQyUyMDEwMzclMkMlMjAxNzY2MiUyQyUyMDEyMTcyJTJDJTIwMjYwNyUyQyUyMDIwMjYlMkMlMjAyODc4JTJDJTIwMjE2NiUyQyUyMDEwMTIlNUQ=",highlighted:`[<span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>]
[<span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>]`,wrap:!1}}),Y=new Q({props:{code:"cHJpbnQodG9rZW5pemVyLmRlY29kZShtb2RlbF9pbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQpKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUoaWRzKSk=",highlighted:`<span class="hljs-built_in">print</span>(tokenizer.decode(model_inputs[<span class="hljs-string">&quot;input_ids&quot;</span>]))
<span class="hljs-built_in">print</span>(tokenizer.decode(ids))`,wrap:!1}}),F=new Q({props:{code:"JTIyJTVCQ0xTJTVEJTIwaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIwJTVCU0VQJTVEJTIyJTBBJTIyaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIy",highlighted:`<span class="hljs-string">&quot;[CLS] i&#x27;ve been waiting for a huggingface course my whole life. [SEP]&quot;</span>
<span class="hljs-string">&quot;i&#x27;ve been waiting for a huggingface course my whole life.&quot;</span>`,wrap:!1}}),O=new $l({props:{title:"Подведение итогов: От токенизатора к модели",local:"wrapping-up-from-tokenizer-to-model",headingTag:"h2"}});const Ol=[we,Ve],ll=[];function Ll(l,e){return l[0]==="pt"?0:1}return b=Ll(E),j=ll[b]=Ol[b](E),P=new oe({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ru/chapter2/6.mdx"}}),{c(){J=V("meta"),U=a(),t=V("p"),m=a(),o(I.$$.fragment),nl=a(),o(R.$$.fragment),Jl=a(),o(f.$$.fragment),al=a(),T.c(),el=a(),d=V("p"),d.textContent=Al,Ml=a(),h=V("p"),h.innerHTML=Nl,Ul=a(),o(g.$$.fragment),pl=a(),D=V("p"),D.innerHTML=Wl,il=a(),k=V("p"),k.textContent=xl,ol=a(),o(S.$$.fragment),rl=a(),Z=V("p"),Z.textContent=_l,cl=a(),o($.$$.fragment),ul=a(),A=V("p"),A.textContent=Bl,Vl=a(),o(N.$$.fragment),wl=a(),W=V("p"),W.textContent=Xl,ml=a(),o(x.$$.fragment),Cl=a(),_=V("p"),_.innerHTML=Gl,Ql=a(),o(B.$$.fragment),El=a(),o(X.$$.fragment),yl=a(),G=V("p"),G.textContent=zl,Tl=a(),o(z.$$.fragment),bl=a(),o(q.$$.fragment),jl=a(),v=V("p"),v.textContent=ql,Il=a(),o(Y.$$.fragment),Rl=a(),o(F.$$.fragment),fl=a(),H=V("p"),H.innerHTML=vl,dl=a(),o(O.$$.fragment),hl=a(),L=V("p"),L.innerHTML=Yl,gl=a(),j.c(),sl=a(),o(P.$$.fragment),Dl=a(),tl=V("p"),this.h()},l(l){const e=Ue("svelte-u9bgzb",document.head);J=w(e,"META",{name:!0,content:!0}),e.forEach(s),U=M(l),t=w(l,"P",{}),Kl(t).forEach(s),m=M(l),r(I.$$.fragment,l),nl=M(l),r(R.$$.fragment,l),Jl=M(l),r(f.$$.fragment,l),al=M(l),T.l(l),el=M(l),d=w(l,"P",{"data-svelte-h":!0}),C(d)!=="svelte-1qspsn7"&&(d.textContent=Al),Ml=M(l),h=w(l,"P",{"data-svelte-h":!0}),C(h)!=="svelte-1c9gskv"&&(h.innerHTML=Nl),Ul=M(l),r(g.$$.fragment,l),pl=M(l),D=w(l,"P",{"data-svelte-h":!0}),C(D)!=="svelte-bfsxl7"&&(D.innerHTML=Wl),il=M(l),k=w(l,"P",{"data-svelte-h":!0}),C(k)!=="svelte-r4zf48"&&(k.textContent=xl),ol=M(l),r(S.$$.fragment,l),rl=M(l),Z=w(l,"P",{"data-svelte-h":!0}),C(Z)!=="svelte-1e4pp3k"&&(Z.textContent=_l),cl=M(l),r($.$$.fragment,l),ul=M(l),A=w(l,"P",{"data-svelte-h":!0}),C(A)!=="svelte-awrm8g"&&(A.textContent=Bl),Vl=M(l),r(N.$$.fragment,l),wl=M(l),W=w(l,"P",{"data-svelte-h":!0}),C(W)!=="svelte-wx0f7x"&&(W.textContent=Xl),ml=M(l),r(x.$$.fragment,l),Cl=M(l),_=w(l,"P",{"data-svelte-h":!0}),C(_)!=="svelte-13cruk0"&&(_.innerHTML=Gl),Ql=M(l),r(B.$$.fragment,l),El=M(l),r(X.$$.fragment,l),yl=M(l),G=w(l,"P",{"data-svelte-h":!0}),C(G)!=="svelte-2cexa6"&&(G.textContent=zl),Tl=M(l),r(z.$$.fragment,l),bl=M(l),r(q.$$.fragment,l),jl=M(l),v=w(l,"P",{"data-svelte-h":!0}),C(v)!=="svelte-1xy2mj1"&&(v.textContent=ql),Il=M(l),r(Y.$$.fragment,l),Rl=M(l),r(F.$$.fragment,l),fl=M(l),H=w(l,"P",{"data-svelte-h":!0}),C(H)!=="svelte-mebgwb"&&(H.innerHTML=vl),dl=M(l),r(O.$$.fragment,l),hl=M(l),L=w(l,"P",{"data-svelte-h":!0}),C(L)!=="svelte-1dc8rk9"&&(L.innerHTML=Yl),gl=M(l),j.l(l),sl=M(l),r(P.$$.fragment,l),Dl=M(l),tl=w(l,"P",{}),Kl(tl).forEach(s),this.h()},h(){le(J,"name","hf:doc:metadata"),le(J,"content",Ce)},m(l,e){pe(document.head,J),n(l,U,e),n(l,t,e),n(l,m,e),c(I,l,e),n(l,nl,e),c(R,l,e),n(l,Jl,e),c(f,l,e),n(l,al,e),K[y].m(l,e),n(l,el,e),n(l,d,e),n(l,Ml,e),n(l,h,e),n(l,Ul,e),c(g,l,e),n(l,pl,e),n(l,D,e),n(l,il,e),n(l,k,e),n(l,ol,e),c(S,l,e),n(l,rl,e),n(l,Z,e),n(l,cl,e),c($,l,e),n(l,ul,e),n(l,A,e),n(l,Vl,e),c(N,l,e),n(l,wl,e),n(l,W,e),n(l,ml,e),c(x,l,e),n(l,Cl,e),n(l,_,e),n(l,Ql,e),c(B,l,e),n(l,El,e),c(X,l,e),n(l,yl,e),n(l,G,e),n(l,Tl,e),c(z,l,e),n(l,bl,e),c(q,l,e),n(l,jl,e),n(l,v,e),n(l,Il,e),c(Y,l,e),n(l,Rl,e),c(F,l,e),n(l,fl,e),n(l,H,e),n(l,dl,e),c(O,l,e),n(l,hl,e),n(l,L,e),n(l,gl,e),ll[b].m(l,e),n(l,sl,e),c(P,l,e),n(l,Dl,e),n(l,tl,e),kl=!0},p(l,[e]){const Pl={};e&1&&(Pl.fw=l[0]),I.$set(Pl);let Sl=y;y=Hl(l),y!==Sl&&(se(),p(K[Sl],1,1,()=>{K[Sl]=null}),ee(),T=K[y],T||(T=K[y]=Fl[y](l),T.c()),i(T,1),T.m(el.parentNode,el));let Zl=b;b=Ll(l),b!==Zl&&(se(),p(ll[Zl],1,1,()=>{ll[Zl]=null}),ee(),j=ll[b],j||(j=ll[b]=Ol[b](l),j.c()),i(j,1),j.m(sl.parentNode,sl))},i(l){kl||(i(I.$$.fragment,l),i(R.$$.fragment,l),i(f.$$.fragment,l),i(T),i(g.$$.fragment,l),i(S.$$.fragment,l),i($.$$.fragment,l),i(N.$$.fragment,l),i(x.$$.fragment,l),i(B.$$.fragment,l),i(X.$$.fragment,l),i(z.$$.fragment,l),i(q.$$.fragment,l),i(Y.$$.fragment,l),i(F.$$.fragment,l),i(O.$$.fragment,l),i(j),i(P.$$.fragment,l),kl=!0)},o(l){p(I.$$.fragment,l),p(R.$$.fragment,l),p(f.$$.fragment,l),p(T),p(g.$$.fragment,l),p(S.$$.fragment,l),p($.$$.fragment,l),p(N.$$.fragment,l),p(x.$$.fragment,l),p(B.$$.fragment,l),p(X.$$.fragment,l),p(z.$$.fragment,l),p(q.$$.fragment,l),p(Y.$$.fragment,l),p(F.$$.fragment,l),p(O.$$.fragment,l),p(j),p(P.$$.fragment,l),kl=!1},d(l){l&&(s(U),s(t),s(m),s(nl),s(Jl),s(al),s(el),s(d),s(Ml),s(h),s(Ul),s(pl),s(D),s(il),s(k),s(ol),s(rl),s(Z),s(cl),s(ul),s(A),s(Vl),s(wl),s(W),s(ml),s(Cl),s(_),s(Ql),s(El),s(yl),s(G),s(Tl),s(bl),s(jl),s(v),s(Il),s(Rl),s(fl),s(H),s(dl),s(hl),s(L),s(gl),s(sl),s(Dl),s(tl)),s(J),u(I,l),u(R,l),u(f,l),K[y].d(l),u(g,l),u(S,l),u($,l),u(N,l),u(x,l),u(B,l),u(X,l),u(z,l),u(q,l),u(Y,l),u(F,l),u(O,l),ll[b].d(l),u(P,l)}}}const Ce='{"title":"Собираем все воедино","local":"putting-it-all-together","sections":[{"title":"Специальные токены","local":"special-tokens","sections":[],"depth":2},{"title":"Подведение итогов: От токенизатора к модели","local":"wrapping-up-from-tokenizer-to-model","sections":[],"depth":2}],"depth":1}';function Qe(E,J,U){let t="pt";return Je(()=>{const m=new URLSearchParams(window.location.search);U(0,t=m.get("fw")||"pt")}),[t]}class Re extends ae{constructor(J){super(),Me(this,J,Qe,me,ne,{})}}export{Re as component};
