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