import{s as Z,o as ee,n as te}from"../chunks/scheduler.37c15a92.js";import{S as ie,i as oe,g as m,s as r,r as S,A as ne,h as u,f as i,c as s,j as W,u as F,x as C,k as U,y as le,a as o,v as j,d as N,t as O,w as Q,m as X,n as Y}from"../chunks/index.2bf4358c.js";import{T as ae}from"../chunks/Tip.363c041f.js";import{C as re}from"../chunks/CourseFloatingBanner.06521e8b.js";import{H as se,E as me}from"../chunks/EditOnGithub.8916dc7c.js";function ue(P){let l,a,c="creare un account",p;return{c(){l=X("⚠️ Per poter usufruire di tutte le funzioni disponibili con il Model Hub e i 🤗 Transformers, si consiglia di "),a=m("a"),a.textContent=c,p=X("."),this.h()},l(n){l=Y(n,"⚠️ Per poter usufruire di tutte le funzioni disponibili con il Model Hub e i 🤗 Transformers, si consiglia di "),a=u(n,"A",{href:!0,"data-svelte-h":!0}),C(a)!=="svelte-nxfwn4"&&(a.textContent=c),p=Y(n,"."),this.h()},h(){U(a,"href","https://huggingface.co/join")},m(n,d){o(n,l,d),o(n,a,d),o(n,p,d)},p:te,d(n){n&&(i(l),i(a),i(p))}}}function pe(P){let l,a,c,p,n,d,v,L,$,B=`Come si è visto nel <a href="/course/chapter1">Capitolo 1</a>,  I modelli Transformers sono solitamente molto grandi.
Con milioni o decine di <em>miliardi</em> di parametri, l’addestramento e la distribuzione di questi modelli è un’impresa complicata.
Inoltre, con i nuovi modelli che vengono rilasciati quasi ogni giorno e ognuno dei quali ha una propria implementazione, provarli tutti non è un lavoro facile.`,M,h,G="La libreria 🤗 Transformers è stata creata per risolvere questo problema. Il suo obiettivo è fornire un’unica API attraverso la quale caricare, addestrare e salvare qualsiasi modello Transformer. Le caratteristiche principali della libreria sono:",w,g,R="<li><strong>Facilità d’uso</strong>: È possibile scaricare, caricare ed utilizzare un modello NLP all’avanguardia per fare inferenza con appena due righe di codice.</li> <li><strong>Flessibilità</strong>: Al loro interno, tutti i modelli sono semplici classi PyTorch <code>nn.Module</code> o TensorFlow <code>tf.keras.Model</code> e possono essere gestiti come qualsiasi altro modello nei rispettivi framework di apprendimento automatico (ML).</li> <li><strong>Semplicità</strong>: La libreria non contiene quasi nessuna astrazione. Il concetto di “All in one file” è fondamentale: il forward pass di un modello è interamente definito in un singolo file, in modo che il codice stesso sia comprensibile e violabile.</li>",q,b,D="Quest’ultima caratteristica rende 🤗 Transformers molto diversi da altre librerie ML. I modelli non sono costruiti su moduli condivisi tra i file, ma ogni modello ha i propri layers. Oltre a rendere i modelli più accessibili e comprensibili, questo permette di sperimentare facilmente su un modello senza influenzare gli altri.",H,z,J='Questo capitolo inizierà con un esempio in cui usiamo un modello e un tokenizer insieme per replicare la funzione <code>pipeline()</code> introdotta nel <a href="/course/chapter1">Capitolo 1</a>. Successivamente, parleremo dell’API del modello: ci immergeremo nelle classi del modello e della configurazione e mostreremo come caricare un modello e come esso elabora gli input numerici per produrre previsioni.',I,_,K="Successivamente vedremo l’API del tokenizer, che è l’altro componente principale della funzione <code>pipeline()</code>. I tokenizer si occupano della prima e dell’ultima fase di elaborazione, gestendo la conversione da testo a input numerici per la rete neurale e la conversione di nuovo in testo quando è necessario. Infine, mostreremo come gestire l’invio di più frasi a un modello in un batch preparato, per poi concludere il tutto con un’analisi più approfondita della funzione di alto livello <code>tokenizer()</code>.",k,f,A,x,y,T,E;return n=new se({props:{title:"Introduzione",local:"introduzione",headingTag:"h1"}}),v=new re({props:{chapter:2,classNames:"absolute z-10 right-0 top-0"}}),f=new ae({props:{$$slots:{default:[ue]},$$scope:{ctx:P}}}),x=new me({props:{source:"https://github.com/huggingface/course/blob/main/chapters/it/chapter2/1.mdx"}}),{c(){l=m("meta"),a=r(),c=m("p"),p=r(),S(n.$$.fragment),d=r(),S(v.$$.fragment),L=r(),$=m("p"),$.innerHTML=B,M=r(),h=m("p"),h.textContent=G,w=r(),g=m("ul"),g.innerHTML=R,q=r(),b=m("p"),b.textContent=D,H=r(),z=m("p"),z.innerHTML=J,I=r(),_=m("p"),_.innerHTML=K,k=r(),S(f.$$.fragment),A=r(),S(x.$$.fragment),y=r(),T=m("p"),this.h()},l(e){const t=ne("svelte-u9bgzb",document.head);l=u(t,"META",{name:!0,content:!0}),t.forEach(i),a=s(e),c=u(e,"P",{}),W(c).forEach(i),p=s(e),F(n.$$.fragment,e),d=s(e),F(v.$$.fragment,e),L=s(e),$=u(e,"P",{"data-svelte-h":!0}),C($)!=="svelte-1opxtn"&&($.innerHTML=B),M=s(e),h=u(e,"P",{"data-svelte-h":!0}),C(h)!=="svelte-18vkpnp"&&(h.textContent=G),w=s(e),g=u(e,"UL",{"data-svelte-h":!0}),C(g)!=="svelte-1y8bqb2"&&(g.innerHTML=R),q=s(e),b=u(e,"P",{"data-svelte-h":!0}),C(b)!=="svelte-1uva84d"&&(b.textContent=D),H=s(e),z=u(e,"P",{"data-svelte-h":!0}),C(z)!=="svelte-m1wfcs"&&(z.innerHTML=J),I=s(e),_=u(e,"P",{"data-svelte-h":!0}),C(_)!=="svelte-1t2ycev"&&(_.innerHTML=K),k=s(e),F(f.$$.fragment,e),A=s(e),F(x.$$.fragment,e),y=s(e),T=u(e,"P",{}),W(T).forEach(i),this.h()},h(){U(l,"name","hf:doc:metadata"),U(l,"content",ce)},m(e,t){le(document.head,l),o(e,a,t),o(e,c,t),o(e,p,t),j(n,e,t),o(e,d,t),j(v,e,t),o(e,L,t),o(e,$,t),o(e,M,t),o(e,h,t),o(e,w,t),o(e,g,t),o(e,q,t),o(e,b,t),o(e,H,t),o(e,z,t),o(e,I,t),o(e,_,t),o(e,k,t),j(f,e,t),o(e,A,t),j(x,e,t),o(e,y,t),o(e,T,t),E=!0},p(e,[t]){const V={};t&2&&(V.$$scope={dirty:t,ctx:e}),f.$set(V)},i(e){E||(N(n.$$.fragment,e),N(v.$$.fragment,e),N(f.$$.fragment,e),N(x.$$.fragment,e),E=!0)},o(e){O(n.$$.fragment,e),O(v.$$.fragment,e),O(f.$$.fragment,e),O(x.$$.fragment,e),E=!1},d(e){e&&(i(a),i(c),i(p),i(d),i(L),i($),i(M),i(h),i(w),i(g),i(q),i(b),i(H),i(z),i(I),i(_),i(k),i(A),i(y),i(T)),i(l),Q(n,e),Q(v,e),Q(f,e),Q(x,e)}}}const ce='{"title":"Introduzione","local":"introduzione","sections":[],"depth":1}';function de(P){return ee(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class be extends ie{constructor(l){super(),oe(this,l,de,pe,Z,{})}}export{be as component};
