import{s as le,o as ee}from"../chunks/scheduler.37c15a92.js";import{S as se,i as te,g as w,s as a,r as o,A as ne,h as u,f as t,c as M,j as Hl,u as r,x as m,k as Ol,y as Je,a as n,v as c,t as p,b as Pl,d as i,w as V,p as Ll}from"../chunks/index.2bf4358c.js";import{C as Q}from"../chunks/CodeBlock.4f5fc1ad.js";import{C as Kl}from"../chunks/CourseFloatingBanner.06521e8b.js";import{F as ae}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as kl}from"../chunks/Heading.8ada512a.js";function Me(E){let J,U;return J=new Kl({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(s){r(J.$$.fragment,s)},m(s,C){c(J,s,C),U=!0},i(s){U||(i(J.$$.fragment,s),U=!0)},o(s){p(J.$$.fragment,s),U=!1},d(s){V(J,s)}}}function Ue(E){let J,U;return J=new Kl({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(s){r(J.$$.fragment,s)},m(s,C){c(J,s,C),U=!0},i(s){U||(i(J.$$.fragment,s),U=!0)},o(s){p(J.$$.fragment,s),U=!1},d(s){V(J,s)}}}function pe(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(s){r(J.$$.fragment,s)},m(s,C){c(J,s,C),U=!0},i(s){U||(i(J.$$.fragment,s),U=!0)},o(s){p(J.$$.fragment,s),U=!1},d(s){V(J,s)}}}function ie(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(s){r(J.$$.fragment,s)},m(s,C){c(J,s,C),U=!0},i(s){U||(i(J.$$.fragment,s),U=!0)},o(s){p(J.$$.fragment,s),U=!1},d(s){V(J,s)}}}function oe(E){let J,U,s,C,I,sl,R,tl,y,T,K,d,gl="В последних нескольких разделах мы старались делать большую часть работы вручную. Мы изучили, как работают токенизаторы, рассмотрели токенизацию, преобразование во входные идентификаторы, дополнении, усечении и маски внимания.",nl,f,Sl="Однако, как мы видели в разделе 2, 🤗 Transformers API может обработать все это для нас с помощью высокоуровневой функции, которую мы рассмотрим здесь. Когда вы вызываете свой <code>tokenizer</code> непосредственно на предложении, вы получаете обратно входы, готовые к передаче в вашу модель:",Jl,h,al,D,Zl="Здесь переменная <code>model_inputs</code> содержит все, что необходимо для нормальной работы модели. Для DistilBERT это идентификаторы входов, а также маска внимания. В других моделях, принимающих дополнительные входы, они также будут формироваться выходами объекта <code>tokenizer</code>.",Ml,k,Al="Как мы увидим на нескольких примерах ниже, это очень мощный метод. Во-первых, он может токенизировать одну последовательность:",Ul,g,pl,S,$l="Он также обрабатывает несколько последовательностей одновременно, без каких-либо изменений в API:",il,Z,ol,A,Nl="Он может быть дополнен исходя из нескольких целей:",rl,$,cl,N,Wl="Он также может выполнять усечение последовательностей:",Vl,W,wl,x,xl="Объект <code>tokenizer</code> может выполнять преобразование в тензоры конкретных фреймворков, которые затем могут быть напрямую переданы в модель. Например, в следующем примере кода мы задаем токенизатору возвращать тензоры для различных фреймворков - <code>&quot;pt&quot;</code> возвращает тензоры PyTorch, <code>&quot;tf&quot;</code> возвращает тензоры TensorFlow, а <code>&quot;np&quot;</code> возвращает массивы NumPy:",ul,_,Cl,B,ml,X,_l="Если мы посмотрим на идентификаторы входа, возвращаемые токенизатором, то увидим, что они немного отличаются от тех, что мы получали ранее:",Ql,G,El,z,yl,q,Bl="Один идентификатор токена был добавлен в начале, а другой - в конце. Давайте декодируем две последовательности идентификаторов, приведенные выше, чтобы понять, в чем дело:",Tl,v,jl,Y,bl,F,Xl="Токенизатор добавил специальное слово <code>[CLS]</code> в начале и специальное слово <code>[SEP]</code> в конце. Это связано с тем, что модель была предварительно обучена с ними, поэтому для получения тех же результатов при инференсе нам нужно добавить и их. Обратите внимание, что некоторые модели не добавляют специальные слова или добавляют другие слова; модели также могут добавлять эти специальные слова только в начале или только в конце. В любом случае, токенизатор знает, какие из них ожидаются, и справится с этим сам.",Il,H,Rl,O,Gl="Теперь, когда мы рассмотрели все отдельные шаги, которые использует объект <code>tokenizer</code> при работе с текстами, давайте в последний раз посмотрим, как он может работать с множественными последовательностями (дополнение!), очень длинными последовательностями (усечение!) и несколькими типами тензоров с помощью своего основного API:",dl,j,b,ll,el,fl;I=new ae({props:{fw:E[0]}}),R=new kl({props:{title:"Собираем все воедино",local:"putting-it-all-together",headingTag:"h1"}});const zl=[Ue,Me],P=[];function ql(l,e){return l[0]==="pt"?0:1}y=ql(E),T=P[y]=zl[y](E),h=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}}),g=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}}),Z=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}}),$=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}}),W=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}}),_=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}}),B=new kl({props:{title:"Специальные токены",local:"special-tokens",headingTag:"h2"}}),G=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}}),z=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}}),v=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}}),Y=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}}),H=new kl({props:{title:"Подведение итогов: От токенизатора к модели",local:"wrapping-up-from-tokenizer-to-model",headingTag:"h2"}});const vl=[ie,pe],L=[];function Yl(l,e){return l[0]==="pt"?0:1}return j=Yl(E),b=L[j]=vl[j](E),{c(){J=w("meta"),U=a(),s=w("p"),C=a(),o(I.$$.fragment),sl=a(),o(R.$$.fragment),tl=a(),T.c(),K=a(),d=w("p"),d.textContent=gl,nl=a(),f=w("p"),f.innerHTML=Sl,Jl=a(),o(h.$$.fragment),al=a(),D=w("p"),D.innerHTML=Zl,Ml=a(),k=w("p"),k.textContent=Al,Ul=a(),o(g.$$.fragment),pl=a(),S=w("p"),S.textContent=$l,il=a(),o(Z.$$.fragment),ol=a(),A=w("p"),A.textContent=Nl,rl=a(),o($.$$.fragment),cl=a(),N=w("p"),N.textContent=Wl,Vl=a(),o(W.$$.fragment),wl=a(),x=w("p"),x.innerHTML=xl,ul=a(),o(_.$$.fragment),Cl=a(),o(B.$$.fragment),ml=a(),X=w("p"),X.textContent=_l,Ql=a(),o(G.$$.fragment),El=a(),o(z.$$.fragment),yl=a(),q=w("p"),q.textContent=Bl,Tl=a(),o(v.$$.fragment),jl=a(),o(Y.$$.fragment),bl=a(),F=w("p"),F.innerHTML=Xl,Il=a(),o(H.$$.fragment),Rl=a(),O=w("p"),O.innerHTML=Gl,dl=a(),b.c(),ll=a(),el=w("p"),this.h()},l(l){const e=ne("svelte-u9bgzb",document.head);J=u(e,"META",{name:!0,content:!0}),e.forEach(t),U=M(l),s=u(l,"P",{}),Hl(s).forEach(t),C=M(l),r(I.$$.fragment,l),sl=M(l),r(R.$$.fragment,l),tl=M(l),T.l(l),K=M(l),d=u(l,"P",{"data-svelte-h":!0}),m(d)!=="svelte-1qspsn7"&&(d.textContent=gl),nl=M(l),f=u(l,"P",{"data-svelte-h":!0}),m(f)!=="svelte-1c9gskv"&&(f.innerHTML=Sl),Jl=M(l),r(h.$$.fragment,l),al=M(l),D=u(l,"P",{"data-svelte-h":!0}),m(D)!=="svelte-bfsxl7"&&(D.innerHTML=Zl),Ml=M(l),k=u(l,"P",{"data-svelte-h":!0}),m(k)!=="svelte-r4zf48"&&(k.textContent=Al),Ul=M(l),r(g.$$.fragment,l),pl=M(l),S=u(l,"P",{"data-svelte-h":!0}),m(S)!=="svelte-1e4pp3k"&&(S.textContent=$l),il=M(l),r(Z.$$.fragment,l),ol=M(l),A=u(l,"P",{"data-svelte-h":!0}),m(A)!=="svelte-awrm8g"&&(A.textContent=Nl),rl=M(l),r($.$$.fragment,l),cl=M(l),N=u(l,"P",{"data-svelte-h":!0}),m(N)!=="svelte-wx0f7x"&&(N.textContent=Wl),Vl=M(l),r(W.$$.fragment,l),wl=M(l),x=u(l,"P",{"data-svelte-h":!0}),m(x)!=="svelte-13cruk0"&&(x.innerHTML=xl),ul=M(l),r(_.$$.fragment,l),Cl=M(l),r(B.$$.fragment,l),ml=M(l),X=u(l,"P",{"data-svelte-h":!0}),m(X)!=="svelte-2cexa6"&&(X.textContent=_l),Ql=M(l),r(G.$$.fragment,l),El=M(l),r(z.$$.fragment,l),yl=M(l),q=u(l,"P",{"data-svelte-h":!0}),m(q)!=="svelte-1xy2mj1"&&(q.textContent=Bl),Tl=M(l),r(v.$$.fragment,l),jl=M(l),r(Y.$$.fragment,l),bl=M(l),F=u(l,"P",{"data-svelte-h":!0}),m(F)!=="svelte-mebgwb"&&(F.innerHTML=Xl),Il=M(l),r(H.$$.fragment,l),Rl=M(l),O=u(l,"P",{"data-svelte-h":!0}),m(O)!=="svelte-1dc8rk9"&&(O.innerHTML=Gl),dl=M(l),b.l(l),ll=M(l),el=u(l,"P",{}),Hl(el).forEach(t),this.h()},h(){Ol(J,"name","hf:doc:metadata"),Ol(J,"content",re)},m(l,e){Je(document.head,J),n(l,U,e),n(l,s,e),n(l,C,e),c(I,l,e),n(l,sl,e),c(R,l,e),n(l,tl,e),P[y].m(l,e),n(l,K,e),n(l,d,e),n(l,nl,e),n(l,f,e),n(l,Jl,e),c(h,l,e),n(l,al,e),n(l,D,e),n(l,Ml,e),n(l,k,e),n(l,Ul,e),c(g,l,e),n(l,pl,e),n(l,S,e),n(l,il,e),c(Z,l,e),n(l,ol,e),n(l,A,e),n(l,rl,e),c($,l,e),n(l,cl,e),n(l,N,e),n(l,Vl,e),c(W,l,e),n(l,wl,e),n(l,x,e),n(l,ul,e),c(_,l,e),n(l,Cl,e),c(B,l,e),n(l,ml,e),n(l,X,e),n(l,Ql,e),c(G,l,e),n(l,El,e),c(z,l,e),n(l,yl,e),n(l,q,e),n(l,Tl,e),c(v,l,e),n(l,jl,e),c(Y,l,e),n(l,bl,e),n(l,F,e),n(l,Il,e),c(H,l,e),n(l,Rl,e),n(l,O,e),n(l,dl,e),L[j].m(l,e),n(l,ll,e),n(l,el,e),fl=!0},p(l,[e]){const Fl={};e&1&&(Fl.fw=l[0]),I.$set(Fl);let hl=y;y=ql(l),y!==hl&&(Ll(),p(P[hl],1,1,()=>{P[hl]=null}),Pl(),T=P[y],T||(T=P[y]=zl[y](l),T.c()),i(T,1),T.m(K.parentNode,K));let Dl=j;j=Yl(l),j!==Dl&&(Ll(),p(L[Dl],1,1,()=>{L[Dl]=null}),Pl(),b=L[j],b||(b=L[j]=vl[j](l),b.c()),i(b,1),b.m(ll.parentNode,ll))},i(l){fl||(i(I.$$.fragment,l),i(R.$$.fragment,l),i(T),i(h.$$.fragment,l),i(g.$$.fragment,l),i(Z.$$.fragment,l),i($.$$.fragment,l),i(W.$$.fragment,l),i(_.$$.fragment,l),i(B.$$.fragment,l),i(G.$$.fragment,l),i(z.$$.fragment,l),i(v.$$.fragment,l),i(Y.$$.fragment,l),i(H.$$.fragment,l),i(b),fl=!0)},o(l){p(I.$$.fragment,l),p(R.$$.fragment,l),p(T),p(h.$$.fragment,l),p(g.$$.fragment,l),p(Z.$$.fragment,l),p($.$$.fragment,l),p(W.$$.fragment,l),p(_.$$.fragment,l),p(B.$$.fragment,l),p(G.$$.fragment,l),p(z.$$.fragment,l),p(v.$$.fragment,l),p(Y.$$.fragment,l),p(H.$$.fragment,l),p(b),fl=!1},d(l){l&&(t(U),t(s),t(C),t(sl),t(tl),t(K),t(d),t(nl),t(f),t(Jl),t(al),t(D),t(Ml),t(k),t(Ul),t(pl),t(S),t(il),t(ol),t(A),t(rl),t(cl),t(N),t(Vl),t(wl),t(x),t(ul),t(Cl),t(ml),t(X),t(Ql),t(El),t(yl),t(q),t(Tl),t(jl),t(bl),t(F),t(Il),t(Rl),t(O),t(dl),t(ll),t(el)),t(J),V(I,l),V(R,l),P[y].d(l),V(h,l),V(g,l),V(Z,l),V($,l),V(W,l),V(_,l),V(B,l),V(G,l),V(z,l),V(v,l),V(Y,l),V(H,l),L[j].d(l)}}}const re='{"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 ce(E,J,U){let s="pt";return ee(()=>{const C=new URLSearchParams(window.location.search);U(0,s=C.get("fw")||"pt")}),[s]}class Ee extends se{constructor(J){super(),te(this,J,ce,oe,le,{})}}export{Ee as component};
