import{s as X,o as Y,n as Z}from"../chunks/scheduler.37c15a92.js";import{S as tt,i as et,g as m,s as r,r as j,A as nt,h as f,f as n,c as o,j as Q,u as q,x as M,k as U,y as st,a as s,v as I,d as S,t as F,w as N,m as V,n as W}from"../chunks/index.2bf4358c.js";import{T as lt}from"../chunks/Tip.363c041f.js";import{C as at}from"../chunks/CourseFloatingBanner.06521e8b.js";import{H as it}from"../chunks/Heading.8ada512a.js";function rt(L){let a,i,u="создать учетную запись",p;return{c(){a=V("⚠️ Чтобы воспользоваться всеми возможностями, доступными в Model Hub и 🤗 Transformers, мы рекомендуем "),i=m("a"),i.textContent=u,p=V("."),this.h()},l(l){a=W(l,"⚠️ Чтобы воспользоваться всеми возможностями, доступными в Model Hub и 🤗 Transformers, мы рекомендуем "),i=f(l,"A",{href:!0,"data-svelte-h":!0}),M(i)!=="svelte-t6rq1k"&&(i.textContent=u),p=W(l,"."),this.h()},h(){U(i,"href","https://huggingface.co/join")},m(l,c){s(l,a,c),s(l,i,c),s(l,p,c)},p:Z,d(l){l&&(n(a),n(i),n(p))}}}function ot(L){let a,i,u,p,l,c,d,H,_,B='Как вы видели в <a href="../chapter1">Главе 1</a>, модели трансформеров обычно очень большие. С миллионами и десятками <em>миллиардов</em> параметров, обучение и развертывание этих моделей - сложная задача. Кроме того, поскольку новые модели выходят практически ежедневно и каждая из них имеет свою собственную реализацию, попробовать их все - задача не из легких.',g,h,R="Для решения этой проблемы была создана библиотека 🤗 Transformers. Ее цель - предоставить единый API, с помощью которого можно загрузить, обучить и сохранить любую модель Transformer. Основными особенностями библиотеки являются:",w,x,D="<li><strong>Простота использования</strong>: Скачать, загрузить и использовать современную модель NLP для инференса можно всего в две строчки кода.</li> <li><strong>Гибкость</strong>: По своей сути все модели представляют собой простые классы PyTorch <code>nn.Module</code> или TensorFlow <code>tf.keras.Model</code> и могут быть обработаны как любые другие модели в соответствующих фреймворках машинного обучения (ML).</li> <li><strong>Простота</strong>: В библиотеке почти нет абстракций. Концепция “Все в одном файле” является основной: прямой проход модели полностью определяется в одном файле, так что сам код понятен и доступен для изменения.</li>",b,T,G=`Эта последняя особенность делает 🤗 Transformers совершенно непохожей на другие ML-библиотеки. Модели не строятся на основе модулей
которые совместно используются в разных файлах; вместо этого каждая модель имеет свои собственные слои. Помимо того, что это делает модели более доступными и понятными, это позволяет легко экспериментировать с одной моделью, не затрагивая другие.`,k,v,J='Эта глава начнется со сквозного примера, в котором мы используем модель и токенизатор вместе, чтобы воссоздать функцию <code>pipeline()</code>, представленную в <a href="../chapter1">Главе 1</a>. Далее мы обсудим API модели: мы погрузимся в модель и классы конфигурации, покажем, как загрузить модель и как она обрабатывает числовые данные для вывода прогнозов.',A,C,K="Затем мы рассмотрим API токенизатора, который является другим основным компонентом функции <code>pipeline()</code>. Токенизаторы берут на себя первый и последний шаги препроцессинга, обработку преобразования текста в числовые входы для нейронной сети и обратное преобразование в текст, когда это необходимо. Наконец, мы покажем вам, как обрабатывать несколько предложений, передавая их в модель в подготовленном батче, затем завершим все это более подробным рассмотрением высокоуровневой функции <code>tokenizer()</code>.",y,$,z,P,E;return l=new it({props:{title:"Введение",local:"introduction",headingTag:"h1"}}),d=new at({props:{chapter:2,classNames:"absolute z-10 right-0 top-0"}}),$=new lt({props:{$$slots:{default:[rt]},$$scope:{ctx:L}}}),{c(){a=m("meta"),i=r(),u=m("p"),p=r(),j(l.$$.fragment),c=r(),j(d.$$.fragment),H=r(),_=m("p"),_.innerHTML=B,g=r(),h=m("p"),h.textContent=R,w=r(),x=m("ul"),x.innerHTML=D,b=r(),T=m("p"),T.textContent=G,k=r(),v=m("p"),v.innerHTML=J,A=r(),C=m("p"),C.innerHTML=K,y=r(),j($.$$.fragment),z=r(),P=m("p"),this.h()},l(t){const e=nt("svelte-u9bgzb",document.head);a=f(e,"META",{name:!0,content:!0}),e.forEach(n),i=o(t),u=f(t,"P",{}),Q(u).forEach(n),p=o(t),q(l.$$.fragment,t),c=o(t),q(d.$$.fragment,t),H=o(t),_=f(t,"P",{"data-svelte-h":!0}),M(_)!=="svelte-1y4bk7k"&&(_.innerHTML=B),g=o(t),h=f(t,"P",{"data-svelte-h":!0}),M(h)!=="svelte-1sco3r1"&&(h.textContent=R),w=o(t),x=f(t,"UL",{"data-svelte-h":!0}),M(x)!=="svelte-19zfqjg"&&(x.innerHTML=D),b=o(t),T=f(t,"P",{"data-svelte-h":!0}),M(T)!=="svelte-uwlndd"&&(T.textContent=G),k=o(t),v=f(t,"P",{"data-svelte-h":!0}),M(v)!=="svelte-4xs1h"&&(v.innerHTML=J),A=o(t),C=f(t,"P",{"data-svelte-h":!0}),M(C)!=="svelte-13dtm48"&&(C.innerHTML=K),y=o(t),q($.$$.fragment,t),z=o(t),P=f(t,"P",{}),Q(P).forEach(n),this.h()},h(){U(a,"name","hf:doc:metadata"),U(a,"content",mt)},m(t,e){st(document.head,a),s(t,i,e),s(t,u,e),s(t,p,e),I(l,t,e),s(t,c,e),I(d,t,e),s(t,H,e),s(t,_,e),s(t,g,e),s(t,h,e),s(t,w,e),s(t,x,e),s(t,b,e),s(t,T,e),s(t,k,e),s(t,v,e),s(t,A,e),s(t,C,e),s(t,y,e),I($,t,e),s(t,z,e),s(t,P,e),E=!0},p(t,[e]){const O={};e&2&&(O.$$scope={dirty:e,ctx:t}),$.$set(O)},i(t){E||(S(l.$$.fragment,t),S(d.$$.fragment,t),S($.$$.fragment,t),E=!0)},o(t){F(l.$$.fragment,t),F(d.$$.fragment,t),F($.$$.fragment,t),E=!1},d(t){t&&(n(i),n(u),n(p),n(c),n(H),n(_),n(g),n(h),n(w),n(x),n(b),n(T),n(k),n(v),n(A),n(C),n(y),n(z),n(P)),n(a),N(l,t),N(d,t),N($,t)}}}const mt='{"title":"Введение","local":"introduction","sections":[],"depth":1}';function ft(L){return Y(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class _t extends tt{constructor(a){super(),et(this,a,ft,ot,X,{})}}export{_t as component};
