import{S as Sp,i as Hp,s as Op,e as r,k as c,w as v,t,M as Cp,c as l,d as a,m as u,a as i,x as $,h as o,b as m,N as zp,F as s,g as p,y as b,q as _,o as x,B as E,v as Lp}from"../../chunks/vendor-1e8b365d.js";import{T as Re}from"../../chunks/Tip-62b14c6e.js";import{Y as Np}from"../../chunks/Youtube-c2a8cc39.js";import{I as M}from"../../chunks/IconCopyLink-483c28ba.js";import{C as O}from"../../chunks/CodeBlock-e5764662.js";import{D as Dp}from"../../chunks/DocNotebookDropdown-37d928d3.js";function Fp(z){let d,y,f,w,q,h,g,j,A,I,T;return{c(){d=r("p"),y=t("\u{1F440} Ves el bot\xF3n "),f=r("em"),w=t("Open in Colab"),q=t(" en la parte superior derecha? Haz clic en \xE9l para abrir un cuaderno de Google Colab con todos los ejemplos de c\xF3digo de esta secci\xF3n. Este bot\xF3n aparecer\xE1 en cualquier secci\xF3n que tenga ejemplos de c\xF3digo."),h=c(),g=r("p"),j=t("Si quieres ejecutar los ejemplos localmente, te recomendamos revisar la "),A=r("a"),I=t("configuraci\xF3n"),T=t("."),this.h()},l(P){d=l(P,"P",{});var k=i(d);y=o(k,"\u{1F440} Ves el bot\xF3n "),f=l(k,"EM",{});var D=i(f);w=o(D,"Open in Colab"),D.forEach(a),q=o(k," en la parte superior derecha? Haz clic en \xE9l para abrir un cuaderno de Google Colab con todos los ejemplos de c\xF3digo de esta secci\xF3n. Este bot\xF3n aparecer\xE1 en cualquier secci\xF3n que tenga ejemplos de c\xF3digo."),k.forEach(a),h=u(P),g=l(P,"P",{});var C=i(g);j=o(C,"Si quieres ejecutar los ejemplos localmente, te recomendamos revisar la "),A=l(C,"A",{href:!0});var S=i(A);I=o(S,"configuraci\xF3n"),S.forEach(a),T=o(C,"."),C.forEach(a),this.h()},h(){m(A,"href","/course/chapter0")},m(P,k){p(P,d,k),s(d,y),s(d,f),s(f,w),s(d,q),p(P,h,k),p(P,g,k),s(g,j),s(g,A),s(A,I),s(g,T)},d(P){P&&a(d),P&&a(h),P&&a(g)}}}function Rp(z){let d,y,f,w,q;return{c(){d=r("p"),y=t("\u26A0\uFE0F El Hub de Hugging Face no se limita a Transformadores. \xA1Cualquiera puede compartir los tipos de modelos o conjuntos de datos que quiera! \xA1"),f=r("a"),w=t("Crea una cuenta de huggingface.co"),q=t(" para beneficiarte de todas las funciones disponibles!"),this.h()},l(h){d=l(h,"P",{});var g=i(d);y=o(g,"\u26A0\uFE0F El Hub de Hugging Face no se limita a Transformadores. \xA1Cualquiera puede compartir los tipos de modelos o conjuntos de datos que quiera! \xA1"),f=l(g,"A",{href:!0});var j=i(f);w=o(j,"Crea una cuenta de huggingface.co"),j.forEach(a),q=o(g," para beneficiarte de todas las funciones disponibles!"),g.forEach(a),this.h()},h(){m(f,"href","https://huggingface.co/join")},m(h,g){p(h,d,g),s(d,y),s(d,f),s(f,w),s(d,q)},d(h){h&&a(d)}}}function Mp(z){let d,y,f,w,q;return{c(){d=r("p"),y=t("\u270F\uFE0F "),f=r("strong"),w=t("\xA1Pru\xE9balo!"),q=t(" Juega con tus propias secuencias y etiquetas, y observa c\xF3mo se comporta el modelo.")},l(h){d=l(h,"P",{});var g=i(d);y=o(g,"\u270F\uFE0F "),f=l(g,"STRONG",{});var j=i(f);w=o(j,"\xA1Pru\xE9balo!"),j.forEach(a),q=o(g," Juega con tus propias secuencias y etiquetas, y observa c\xF3mo se comporta el modelo."),g.forEach(a)},m(h,g){p(h,d,g),s(d,y),s(d,f),s(f,w),s(d,q)},d(h){h&&a(d)}}}function Gp(z){let d,y,f,w,q,h,g,j,A,I,T;return{c(){d=r("p"),y=t("\u270F\uFE0F "),f=r("strong"),w=t("\xA1Pru\xE9balo!"),q=t(" Usa los argumentos "),h=r("code"),g=t("num_return_sequences"),j=t(" y "),A=r("code"),I=t("max_length"),T=t(" para generar dos oraciones de 15 palabras cada una.")},l(P){d=l(P,"P",{});var k=i(d);y=o(k,"\u270F\uFE0F "),f=l(k,"STRONG",{});var D=i(f);w=o(D,"\xA1Pru\xE9balo!"),D.forEach(a),q=o(k," Usa los argumentos "),h=l(k,"CODE",{});var C=i(h);g=o(C,"num_return_sequences"),C.forEach(a),j=o(k," y "),A=l(k,"CODE",{});var S=i(A);I=o(S,"max_length"),S.forEach(a),T=o(k," para generar dos oraciones de 15 palabras cada una."),k.forEach(a)},m(P,k){p(P,d,k),s(d,y),s(d,f),s(f,w),s(d,q),s(d,h),s(h,g),s(d,j),s(d,A),s(A,I),s(d,T)},d(P){P&&a(d)}}}function Bp(z){let d,y,f,w,q;return{c(){d=r("p"),y=t("\u270F\uFE0F "),f=r("strong"),w=t("\xA1Pru\xE9balo!"),q=t(" Usa los filtros para encontrar un modelo de generaci\xF3n de texto para un idioma diferente. \xA1Si\xE9ntete libre de jugar con el widget y \xFAsalo en un pipeline!")},l(h){d=l(h,"P",{});var g=i(d);y=o(g,"\u270F\uFE0F "),f=l(g,"STRONG",{});var j=i(f);w=o(j,"\xA1Pru\xE9balo!"),j.forEach(a),q=o(g," Usa los filtros para encontrar un modelo de generaci\xF3n de texto para un idioma diferente. \xA1Si\xE9ntete libre de jugar con el widget y \xFAsalo en un pipeline!"),g.forEach(a)},m(h,g){p(h,d,g),s(d,y),s(d,f),s(f,w),s(d,q)},d(h){h&&a(d)}}}function Up(z){let d,y,f,w,q,h,g,j,A,I,T,P,k,D;return{c(){d=r("p"),y=t("\u270F\uFE0F "),f=r("strong"),w=t("\xA1Pru\xE9balo!"),q=t(" Busca el modelo "),h=r("code"),g=t("bert-base-cased"),j=t(" en el Hub e identifica su "),A=r("em"),I=t("mask token"),T=t(" en el widget de la API de Inferencia. \xBFQu\xE9 predice este modelo para la oraci\xF3n que est\xE1 en el ejemplo de "),P=r("code"),k=t("pipeline"),D=t(" anterior?")},l(C){d=l(C,"P",{});var S=i(d);y=o(S,"\u270F\uFE0F "),f=l(S,"STRONG",{});var Oa=i(f);w=o(Oa,"\xA1Pru\xE9balo!"),Oa.forEach(a),q=o(S," Busca el modelo "),h=l(S,"CODE",{});var Me=i(h);g=o(Me,"bert-base-cased"),Me.forEach(a),j=o(S," en el Hub e identifica su "),A=l(S,"EM",{});var G=i(A);I=o(G,"mask token"),G.forEach(a),T=o(S," en el widget de la API de Inferencia. \xBFQu\xE9 predice este modelo para la oraci\xF3n que est\xE1 en el ejemplo de "),P=l(S,"CODE",{});var Ge=i(P);k=o(Ge,"pipeline"),Ge.forEach(a),D=o(S," anterior?"),S.forEach(a)},m(C,S){p(C,d,S),s(d,y),s(d,f),s(f,w),s(d,q),s(d,h),s(h,g),s(d,j),s(d,A),s(A,I),s(d,T),s(d,P),s(P,k),s(d,D)},d(C){C&&a(d)}}}function Vp(z){let d,y,f,w,q,h,g,j;return{c(){d=r("p"),y=t("\u270F\uFE0F "),f=r("strong"),w=t("\xA1Pru\xE9balo!"),q=t(" Busca en el Model Hub un modelo capaz de hacer etiquetado "),h=r("em"),g=t("part-of-speech"),j=t(" (que se abrevia usualmente como POS) en Ingl\xE9s. \xBFQu\xE9 predice este modelo para la oraci\xF3n en el ejemplo de arriba?")},l(A){d=l(A,"P",{});var I=i(d);y=o(I,"\u270F\uFE0F "),f=l(I,"STRONG",{});var T=i(f);w=o(T,"\xA1Pru\xE9balo!"),T.forEach(a),q=o(I," Busca en el Model Hub un modelo capaz de hacer etiquetado "),h=l(I,"EM",{});var P=i(h);g=o(P,"part-of-speech"),P.forEach(a),j=o(I," (que se abrevia usualmente como POS) en Ingl\xE9s. \xBFQu\xE9 predice este modelo para la oraci\xF3n en el ejemplo de arriba?"),I.forEach(a)},m(A,I){p(A,d,I),s(d,y),s(d,f),s(f,w),s(d,q),s(d,h),s(h,g),s(d,j)},d(A){A&&a(d)}}}function Wp(z){let d,y,f,w,q;return{c(){d=r("p"),y=t("\u270F\uFE0F "),f=r("strong"),w=t("\xA1Pru\xE9balo!"),q=t(" Busca modelos de traducci\xF3n en otros idiomas e intenta traducir la oraci\xF3n anterior en varios de ellos.")},l(h){d=l(h,"P",{});var g=i(d);y=o(g,"\u270F\uFE0F "),f=l(g,"STRONG",{});var j=i(f);w=o(j,"\xA1Pru\xE9balo!"),j.forEach(a),q=o(g," Busca modelos de traducci\xF3n en otros idiomas e intenta traducir la oraci\xF3n anterior en varios de ellos."),g.forEach(a)},m(h,g){p(h,d,g),s(d,y),s(d,f),s(f,w),s(d,q)},d(h){h&&a(d)}}}function Qp(z){let d,y,f,w,q,h,g,j,A,I,T,P,k,D,C,S,Oa,Me,G,Ge,Z,ie,es,Be,ro,as,lo,$n,Ca,io,bn,pe,Bl,_n,B,po,Ue,co,uo,Ve,mo,fo,xn,ce,En,za,ho,wn,K,ue,ss,We,go,ns,vo,qn,Qe,yn,de,$o,ts,bo,_o,jn,Ye,kn,Je,Pn,La,xo,An,Ze,In,Ke,Tn,me,Eo,os,wo,qo,Sn,Na,yo,Hn,U,rs,jo,ko,ls,Po,Ao,is,Io,On,fe,To,Xe,So,Ho,Cn,H,Da,ps,Oo,Co,zo,cs,us,Lo,No,Fa,ds,Do,Fo,Ro,ms,fs,Mo,Go,hs,gs,Bo,Uo,vs,$s,Vo,Wo,bs,_s,Qo,Yo,xs,Es,Jo,Zo,ws,qs,Ko,zn,Ra,Xo,Ln,X,he,ys,ea,er,js,ar,Nn,ge,sr,ks,nr,tr,Dn,aa,Fn,sa,Rn,ve,or,Ps,rr,lr,Mn,$e,Gn,ee,be,As,na,ir,Is,pr,Bn,_e,cr,Ts,ur,dr,Un,ta,Vn,oa,Wn,V,mr,Ss,fr,hr,Hs,gr,vr,Qn,xe,Yn,ae,Ee,Os,ra,$r,Cs,br,Jn,W,_r,la,xr,Er,ia,wr,qr,Zn,we,yr,pa,zs,jr,kr,Kn,ca,Xn,ua,et,qe,Pr,Ls,Ar,Ir,at,Ma,Tr,st,ye,nt,se,je,Ns,da,Sr,Ds,Hr,tt,ke,Or,ma,Cr,zr,ot,Pe,Lr,fa,Nr,Dr,rt,ne,Ae,Fs,ha,Fr,Rs,Rr,lt,Ie,Mr,Ms,Gr,Br,it,ga,pt,va,ct,F,Ur,Gs,Vr,Wr,Bs,Qr,Yr,Us,Jr,Zr,ut,Te,dt,te,Se,Vs,$a,Kr,Ws,Xr,mt,Ga,el,ft,ba,ht,_a,gt,Ba,al,vt,N,sl,Qs,nl,tl,Ys,ol,rl,Js,ll,il,Zs,pl,cl,Ks,ul,dl,$t,He,bt,oe,Oe,Xs,xa,ml,en,fl,_t,Ce,hl,an,gl,vl,xt,Ea,Et,wa,wt,Ua,$l,qt,re,ze,sn,qa,bl,nn,_l,yt,Va,xl,jt,ya,kt,ja,Pt,Q,El,tn,wl,ql,on,yl,jl,At,le,Le,rn,ka,kl,ln,Pl,It,Y,Al,pn,Il,Tl,Pa,Sl,Hl,Tt,Aa,St,Ia,Ht,J,Ol,cn,Cl,zl,un,Ll,Nl,Ot,Ne,Ct,De,Dl,dn,Fl,Rl,zt;return h=new M({}),T=new Dp({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter1/section3.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter1/section3.ipynb"}]}}),G=new Re({props:{$$slots:{default:[Fp]},$$scope:{ctx:z}}}),Be=new M({}),ce=new Re({props:{$$slots:{default:[Rp]},$$scope:{ctx:z}}}),We=new M({}),Qe=new Np({props:{id:"tiZFewofSLM"}}),Ye=new O({props:{code:`from transformers import pipeline

classifier = pipeline("sentiment-analysis")
classifier("I've been waiting for a HuggingFace course my whole life.")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

classifier = pipeline(<span class="hljs-string">&quot;sentiment-analysis&quot;</span>)
classifier(<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>)`}}),Je=new O({props:{code:"[{'label': 'POSITIVE', 'score': 0.9598047137260437}]",highlighted:'[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;POSITIVE&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9598047137260437</span>}]'}}),Ze=new O({props:{code:`classifier(
    ["I've been waiting for a HuggingFace course my whole life.", "I hate this so much!"]
)`,highlighted:`classifier(
    [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;I hate this so much!&quot;</span>]
)`}}),Ke=new O({props:{code:`[{'label': 'POSITIVE', 'score': 0.9598047137260437},
 {'label': 'NEGATIVE', 'score': 0.9994558095932007}]`,highlighted:`[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;POSITIVE&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9598047137260437</span>},
 {<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;NEGATIVE&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9994558095932007</span>}]`}}),ea=new M({}),aa=new O({props:{code:`from transformers import pipeline

classifier = pipeline("zero-shot-classification")
classifier(
    "This is a course about the Transformers library",
    candidate_labels=["education", "politics", "business"],
)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

classifier = pipeline(<span class="hljs-string">&quot;zero-shot-classification&quot;</span>)
classifier(
    <span class="hljs-string">&quot;This is a course about the Transformers library&quot;</span>,
    candidate_labels=[<span class="hljs-string">&quot;education&quot;</span>, <span class="hljs-string">&quot;politics&quot;</span>, <span class="hljs-string">&quot;business&quot;</span>],
)`}}),sa=new O({props:{code:`{'sequence': 'This is a course about the Transformers library',
 'labels': ['education', 'business', 'politics'],
 'scores': [0.8445963859558105, 0.111976258456707, 0.043427448719739914]}`,highlighted:`{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;This is a course about the Transformers library&#x27;</span>,
 <span class="hljs-string">&#x27;labels&#x27;</span>: [<span class="hljs-string">&#x27;education&#x27;</span>, <span class="hljs-string">&#x27;business&#x27;</span>, <span class="hljs-string">&#x27;politics&#x27;</span>],
 <span class="hljs-string">&#x27;scores&#x27;</span>: [<span class="hljs-number">0.8445963859558105</span>, <span class="hljs-number">0.111976258456707</span>, <span class="hljs-number">0.043427448719739914</span>]}`}}),$e=new Re({props:{$$slots:{default:[Mp]},$$scope:{ctx:z}}}),na=new M({}),ta=new O({props:{code:`from transformers import pipeline

generator = pipeline("text-generation")
generator("In this course, we will teach you how to")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

generator = pipeline(<span class="hljs-string">&quot;text-generation&quot;</span>)
generator(<span class="hljs-string">&quot;In this course, we will teach you how to&quot;</span>)`}}),oa=new O({props:{code:`[{'generated_text': 'In this course, we will teach you how to understand and use '
                    'data flow and data interchange when handling user data. We '
                    'will be working with one or more of the most commonly used '
                    'data flows \u2014 data flows of various types, as seen by the '
                    'HTTP'}]`,highlighted:`[{<span class="hljs-string">&#x27;generated_text&#x27;</span>: <span class="hljs-string">&#x27;In this course, we will teach you how to understand and use &#x27;</span>
                    <span class="hljs-string">&#x27;data flow and data interchange when handling user data. We &#x27;</span>
                    <span class="hljs-string">&#x27;will be working with one or more of the most commonly used &#x27;</span>
                    <span class="hljs-string">&#x27;data flows \u2014 data flows of various types, as seen by the &#x27;</span>
                    <span class="hljs-string">&#x27;HTTP&#x27;</span>}]`}}),xe=new Re({props:{$$slots:{default:[Gp]},$$scope:{ctx:z}}}),ra=new M({}),ca=new O({props:{code:`from transformers import pipeline

generator = pipeline("text-generation", model="distilgpt2")
generator(
    "In this course, we will teach you how to",
    max_length=30,
    num_return_sequences=2,
)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

generator = pipeline(<span class="hljs-string">&quot;text-generation&quot;</span>, model=<span class="hljs-string">&quot;distilgpt2&quot;</span>)
generator(
    <span class="hljs-string">&quot;In this course, we will teach you how to&quot;</span>,
    max_length=<span class="hljs-number">30</span>,
    num_return_sequences=<span class="hljs-number">2</span>,
)`}}),ua=new O({props:{code:`[{'generated_text': 'In this course, we will teach you how to manipulate the world and '
                    'move your mental and physical capabilities to your advantage.'},
 {'generated_text': 'In this course, we will teach you how to become an expert and '
                    'practice realtime, and with a hands on experience on both real '
                    'time and real'}]`,highlighted:`[{<span class="hljs-string">&#x27;generated_text&#x27;</span>: <span class="hljs-string">&#x27;In this course, we will teach you how to manipulate the world and &#x27;</span>
                    <span class="hljs-string">&#x27;move your mental and physical capabilities to your advantage.&#x27;</span>},
 {<span class="hljs-string">&#x27;generated_text&#x27;</span>: <span class="hljs-string">&#x27;In this course, we will teach you how to become an expert and &#x27;</span>
                    <span class="hljs-string">&#x27;practice realtime, and with a hands on experience on both real &#x27;</span>
                    <span class="hljs-string">&#x27;time and real&#x27;</span>}]`}}),ye=new Re({props:{$$slots:{default:[Bp]},$$scope:{ctx:z}}}),da=new M({}),ha=new M({}),ga=new O({props:{code:`from transformers import pipeline

unmasker = pipeline("fill-mask")
unmasker("This course will teach you all about <mask> models.", top_k=2)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

unmasker = pipeline(<span class="hljs-string">&quot;fill-mask&quot;</span>)
unmasker(<span class="hljs-string">&quot;This course will teach you all about &lt;mask&gt; models.&quot;</span>, top_k=<span class="hljs-number">2</span>)`}}),va=new O({props:{code:`[{'sequence': 'This course will teach you all about mathematical models.',
  'score': 0.19619831442832947,
  'token': 30412,
  'token_str': ' mathematical'},
 {'sequence': 'This course will teach you all about computational models.',
  'score': 0.04052725434303284,
  'token': 38163,
  'token_str': ' computational'}]`,highlighted:`[{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;This course will teach you all about mathematical models.&#x27;</span>,
  <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.19619831442832947</span>,
  <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">30412</span>,
  <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27; mathematical&#x27;</span>},
 {<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;This course will teach you all about computational models.&#x27;</span>,
  <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.04052725434303284</span>,
  <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">38163</span>,
  <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27; computational&#x27;</span>}]`}}),Te=new Re({props:{$$slots:{default:[Up]},$$scope:{ctx:z}}}),$a=new M({}),ba=new O({props:{code:`from transformers import pipeline

ner = pipeline("ner", grouped_entities=True)
ner("My name is Sylvain and I work at Hugging Face in Brooklyn.")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

ner = pipeline(<span class="hljs-string">&quot;ner&quot;</span>, grouped_entities=<span class="hljs-literal">True</span>)
ner(<span class="hljs-string">&quot;My name is Sylvain and I work at Hugging Face in Brooklyn.&quot;</span>)`}}),_a=new O({props:{code:`[{'entity_group': 'PER', 'score': 0.99816, 'word': 'Sylvain', 'start': 11, 'end': 18}, 
 {'entity_group': 'ORG', 'score': 0.97960, 'word': 'Hugging Face', 'start': 33, 'end': 45}, 
 {'entity_group': 'LOC', 'score': 0.99321, 'word': 'Brooklyn', 'start': 49, 'end': 57}
]`,highlighted:`[{<span class="hljs-string">&#x27;entity_group&#x27;</span>: <span class="hljs-string">&#x27;PER&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.99816</span>, <span class="hljs-string">&#x27;word&#x27;</span>: <span class="hljs-string">&#x27;Sylvain&#x27;</span>, <span class="hljs-string">&#x27;start&#x27;</span>: <span class="hljs-number">11</span>, <span class="hljs-string">&#x27;end&#x27;</span>: <span class="hljs-number">18</span>}, 
 {<span class="hljs-string">&#x27;entity_group&#x27;</span>: <span class="hljs-string">&#x27;ORG&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.97960</span>, <span class="hljs-string">&#x27;word&#x27;</span>: <span class="hljs-string">&#x27;Hugging Face&#x27;</span>, <span class="hljs-string">&#x27;start&#x27;</span>: <span class="hljs-number">33</span>, <span class="hljs-string">&#x27;end&#x27;</span>: <span class="hljs-number">45</span>}, 
 {<span class="hljs-string">&#x27;entity_group&#x27;</span>: <span class="hljs-string">&#x27;LOC&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.99321</span>, <span class="hljs-string">&#x27;word&#x27;</span>: <span class="hljs-string">&#x27;Brooklyn&#x27;</span>, <span class="hljs-string">&#x27;start&#x27;</span>: <span class="hljs-number">49</span>, <span class="hljs-string">&#x27;end&#x27;</span>: <span class="hljs-number">57</span>}
]`}}),He=new Re({props:{$$slots:{default:[Vp]},$$scope:{ctx:z}}}),xa=new M({}),Ea=new O({props:{code:`from transformers import pipeline

question_answerer = pipeline("question-answering")
question_answerer(
    question="Where do I work?",
    context="My name is Sylvain and I work at Hugging Face in Brooklyn",
)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

question_answerer = pipeline(<span class="hljs-string">&quot;question-answering&quot;</span>)
question_answerer(
    question=<span class="hljs-string">&quot;Where do I work?&quot;</span>,
    context=<span class="hljs-string">&quot;My name is Sylvain and I work at Hugging Face in Brooklyn&quot;</span>,
)`}}),wa=new O({props:{code:"{'score': 0.6385916471481323, 'start': 33, 'end': 45, 'answer': 'Hugging Face'}",highlighted:'{<span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.6385916471481323</span>, <span class="hljs-string">&#x27;start&#x27;</span>: <span class="hljs-number">33</span>, <span class="hljs-string">&#x27;end&#x27;</span>: <span class="hljs-number">45</span>, <span class="hljs-string">&#x27;answer&#x27;</span>: <span class="hljs-string">&#x27;Hugging Face&#x27;</span>}'}}),qa=new M({}),ya=new O({props:{code:`from transformers import pipeline

summarizer = pipeline("summarization")
summarizer(
    """
    America has changed dramatically during recent years. Not only has the number of 
    graduates in traditional engineering disciplines such as mechanical, civil, 
    electrical, chemical, and aeronautical engineering declined, but in most of 
    the premier American universities engineering curricula now concentrate on 
    and encourage largely the study of engineering science. As a result, there 
    are declining offerings in engineering subjects dealing with infrastructure, 
    the environment, and related issues, and greater concentration on high 
    technology subjects, largely supporting increasingly complex scientific 
    developments. While the latter is important, it should not be at the expense 
    of more traditional engineering.

    Rapidly developing economies such as China and India, as well as other 
    industrial countries in Europe and Asia, continue to encourage and advance 
    the teaching of engineering. Both China and India, respectively, graduate 
    six and eight times as many traditional engineers as does the United States. 
    Other industrial countries at minimum maintain their output, while America 
    suffers an increasingly serious decline in the number of engineering graduates 
    and a lack of well-educated engineers.
"""
)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

summarizer = pipeline(<span class="hljs-string">&quot;summarization&quot;</span>)
summarizer(
    <span class="hljs-string">&quot;&quot;&quot;
    America has changed dramatically during recent years. Not only has the number of 
    graduates in traditional engineering disciplines such as mechanical, civil, 
    electrical, chemical, and aeronautical engineering declined, but in most of 
    the premier American universities engineering curricula now concentrate on 
    and encourage largely the study of engineering science. As a result, there 
    are declining offerings in engineering subjects dealing with infrastructure, 
    the environment, and related issues, and greater concentration on high 
    technology subjects, largely supporting increasingly complex scientific 
    developments. While the latter is important, it should not be at the expense 
    of more traditional engineering.

    Rapidly developing economies such as China and India, as well as other 
    industrial countries in Europe and Asia, continue to encourage and advance 
    the teaching of engineering. Both China and India, respectively, graduate 
    six and eight times as many traditional engineers as does the United States. 
    Other industrial countries at minimum maintain their output, while America 
    suffers an increasingly serious decline in the number of engineering graduates 
    and a lack of well-educated engineers.
&quot;&quot;&quot;</span>
)`}}),ja=new O({props:{code:`[{'summary_text': ' America has changed dramatically during recent years . The '
                  'number of engineering graduates in the U.S. has declined in '
                  'traditional engineering disciplines such as mechanical, civil '
                  ', electrical, chemical, and aeronautical engineering . Rapidly '
                  'developing economies such as China and India, as well as other '
                  'industrial countries in Europe and Asia, continue to encourage '
                  'and advance engineering .'}]`,highlighted:`[{<span class="hljs-string">&#x27;summary_text&#x27;</span>: <span class="hljs-string">&#x27; America has changed dramatically during recent years . The &#x27;</span>
                  <span class="hljs-string">&#x27;number of engineering graduates in the U.S. has declined in &#x27;</span>
                  <span class="hljs-string">&#x27;traditional engineering disciplines such as mechanical, civil &#x27;</span>
                  <span class="hljs-string">&#x27;, electrical, chemical, and aeronautical engineering . Rapidly &#x27;</span>
                  <span class="hljs-string">&#x27;developing economies such as China and India, as well as other &#x27;</span>
                  <span class="hljs-string">&#x27;industrial countries in Europe and Asia, continue to encourage &#x27;</span>
                  <span class="hljs-string">&#x27;and advance engineering .&#x27;</span>}]`}}),ka=new M({}),Aa=new O({props:{code:`from transformers import pipeline

translator = pipeline("translation", model="Helsinki-NLP/opus-mt-fr-en")
translator("Ce cours est produit par Hugging Face.")`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

translator = pipeline(<span class="hljs-string">&quot;translation&quot;</span>, model=<span class="hljs-string">&quot;Helsinki-NLP/opus-mt-fr-en&quot;</span>)
translator(<span class="hljs-string">&quot;Ce cours est produit par Hugging Face.&quot;</span>)`}}),Ia=new O({props:{code:"[{'translation_text': 'This course is produced by Hugging Face.'}]",highlighted:'[{<span class="hljs-string">&#x27;translation_text&#x27;</span>: <span class="hljs-string">&#x27;This course is produced by Hugging Face.&#x27;</span>}]'}}),Ne=new Re({props:{$$slots:{default:[Wp]},$$scope:{ctx:z}}}),{c(){d=r("meta"),y=c(),f=r("h1"),w=r("a"),q=r("span"),v(h.$$.fragment),g=c(),j=r("span"),A=t("Transformadores, \xBFqu\xE9 pueden hacer?"),I=c(),v(T.$$.fragment),P=c(),k=r("p"),D=t("En esta secci\xF3n, veremos qu\xE9 pueden hacer los Transformadores y usaremos nuestra primera herramienta de la librer\xEDa \u{1F917} Transformers: la funci\xF3n "),C=r("code"),S=t("pipeline()"),Oa=t("."),Me=c(),v(G.$$.fragment),Ge=c(),Z=r("h2"),ie=r("a"),es=r("span"),v(Be.$$.fragment),ro=c(),as=r("span"),lo=t("\xA1Los Transformadores est\xE1n en todas partes!"),$n=c(),Ca=r("p"),io=t("Los Transformadores se usan para resolver todo tipo de tareas de PLN, como las mencionadas en la secci\xF3n anterior. Aqu\xED te mostramos algunas de las compa\xF1\xEDas y organizaciones que usan Hugging Face y Transformadores, que tambi\xE9n contribuyen de vuelta a la comunidad al compartir sus modelos:"),bn=c(),pe=r("img"),_n=c(),B=r("p"),po=t("La "),Ue=r("a"),co=t("librer\xEDa \u{1F917} Transformers"),uo=t(" provee la funcionalidad de crear y usar estos modelos compartidos. El "),Ve=r("a"),mo=t("Hub de Modelos"),fo=t(" contiene miles de modelos preentrenados que cualquiera puede descargar y usar. \xA1T\xFA tambi\xE9n puedes subir tus propios modelos al Hub!"),xn=c(),v(ce.$$.fragment),En=c(),za=r("p"),ho=t("Antes de ver c\xF3mo funcionan internamente los Transformadores, veamos un par de ejemplos sobre c\xF3mo pueden ser usados para resolver tareas de PLN."),wn=c(),K=r("h2"),ue=r("a"),ss=r("span"),v(We.$$.fragment),go=c(),ns=r("span"),vo=t("Trabajando con pipelines"),qn=c(),v(Qe.$$.fragment),yn=c(),de=r("p"),$o=t("El objeto m\xE1s b\xE1sico en la librer\xEDa \u{1F917} Transformers es la funci\xF3n "),ts=r("code"),bo=t("pipeline()"),_o=t(". Esta funci\xF3n conecta un modelo con los pasos necesarios para su preprocesamiento y posprocesamiento, permiti\xE9ndonos introducir de manera directa cualquier texto y obtener una respuesta inteligible:"),jn=c(),v(Ye.$$.fragment),kn=c(),v(Je.$$.fragment),Pn=c(),La=r("p"),xo=t("\xA1Incluso podemos pasar varias oraciones!"),An=c(),v(Ze.$$.fragment),In=c(),v(Ke.$$.fragment),Tn=c(),me=r("p"),Eo=t("Por defecto, este pipeline selecciona un modelo particular preentrenado que ha sido ajustado para el an\xE1lisis de sentimientos en Ingl\xE9s. El modelo se descarga y se almacena en el cach\xE9 cuando creas el objeto "),os=r("code"),wo=t("classifier"),qo=t(". Si vuelves a ejecutar el comando, se usar\xE1 el modelo almacenado en cach\xE9 y no habr\xE1 necesidad de descargarlo de nuevo."),Sn=c(),Na=r("p"),yo=t("Hay tres pasos principales que ocurren cuando pasas un texto a un pipeline:"),Hn=c(),U=r("ol"),rs=r("li"),jo=t("El texto es preprocesado en un formato que el modelo puede entender."),ko=c(),ls=r("li"),Po=t("La entrada preprocesada se pasa al modelo."),Ao=c(),is=r("li"),Io=t("Las predicciones del modelo son posprocesadas, de tal manera que las puedas entender."),On=c(),fe=r("p"),To=t("Algunos de los "),Xe=r("a"),So=t("pipelines disponibles"),Ho=t(" son:"),Cn=c(),H=r("ul"),Da=r("li"),ps=r("code"),Oo=t("feature-extraction"),Co=t(" (obtener la representaci\xF3n vectorial de un texto)"),zo=c(),cs=r("li"),us=r("code"),Lo=t("fill-mask"),No=c(),Fa=r("li"),ds=r("code"),Do=t("ner"),Fo=t(" (reconocimiento de entidades nombradas)"),Ro=c(),ms=r("li"),fs=r("code"),Mo=t("question-answering"),Go=c(),hs=r("li"),gs=r("code"),Bo=t("sentiment-analysis"),Uo=c(),vs=r("li"),$s=r("code"),Vo=t("summarization"),Wo=c(),bs=r("li"),_s=r("code"),Qo=t("text-generation"),Yo=c(),xs=r("li"),Es=r("code"),Jo=t("translation"),Zo=c(),ws=r("li"),qs=r("code"),Ko=t("zero-shot-classification"),zn=c(),Ra=r("p"),Xo=t("\xA1Veamos algunas de ellas!"),Ln=c(),X=r("h2"),he=r("a"),ys=r("span"),v(ea.$$.fragment),er=c(),js=r("span"),ar=t("Clasificaci\xF3n *zero-shot*"),Nn=c(),ge=r("p"),sr=t("Empezaremos abordando una tarea m\xE1s compleja, en la que necesitamos clasificar textos que no han sido etiquetados. Este es un escenario com\xFAn en proyectos de la vida real porque anotar texto usualmente requiere mucho tiempo y dominio del tema. Para este caso de uso, el pipeline "),ks=r("code"),nr=t("zero-shot-classification"),tr=t(" es muy poderoso: permite que especifiques qu\xE9 etiquetas usar para la clasificaci\xF3n, para que no dependas de las etiquetas del modelo preentrenado. Ya viste c\xF3mo el modelo puede clasificar una oraci\xF3n como positiva o negativa usando esas dos etiquetas \u2014 pero tambi\xE9n puede clasificar el texto usando cualquier otro conjunto de etiquetas que definas."),Dn=c(),v(aa.$$.fragment),Fn=c(),v(sa.$$.fragment),Rn=c(),ve=r("p"),or=t("Este pipeline se llama "),Ps=r("em"),rr=t("zero-shot"),lr=t(" porque no necesitas ajustar el modelo con tus datos para usarlo. \xA1Puede devolver directamente puntajes de probabilidad para cualquier lista de de etiquetas que escojas!"),Mn=c(),v($e.$$.fragment),Gn=c(),ee=r("h2"),be=r("a"),As=r("span"),v(na.$$.fragment),ir=c(),Is=r("span"),pr=t("Generaci\xF3n de texto"),Bn=c(),_e=r("p"),cr=t("Ahora veamos c\xF3mo usar un pipeline para generar texto. La idea es que proporciones una indicaci\xF3n ("),Ts=r("em"),ur=t("prompt"),dr=t(") y el modelo la va a completar autom\xE1ticamente al generar el texto restante. Esto es parecido a la funci\xF3n de texto predictivo que est\xE1 presente en muchos tel\xE9fonos. La generaci\xF3n de texto involucra aleat\xF3riedad, por lo que es normal que no obtengas el mismo resultado que se muestra abajo."),Un=c(),v(ta.$$.fragment),Vn=c(),v(oa.$$.fragment),Wn=c(),V=r("p"),mr=t("Puedes controlar cu\xE1ntas secuencias diferentes se generan con el argumento "),Ss=r("code"),fr=t("num_return_sequences"),hr=t(" y la longitud total del texto de salida con el argumento "),Hs=r("code"),gr=t("max_length"),vr=t("."),Qn=c(),v(xe.$$.fragment),Yn=c(),ae=r("h2"),Ee=r("a"),Os=r("span"),v(ra.$$.fragment),$r=c(),Cs=r("span"),br=t("Usa cualquier modelo del Hub en un pipeline"),Jn=c(),W=r("p"),_r=t("Los ejemplos anteriores usaban el modelo por defecto para cada tarea, pero tambi\xE9n puedes escoger un modelo particular del Hub y usarlo en un pipeline para una tarea espec\xEDfica - por ejemplo, la generaci\xF3n de texto. Ve al "),la=r("a"),xr=t("Hub de Modelos"),Er=t(" y haz clic en la etiqueta correspondiente en la parte izquierda para mostrar \xFAnicamente los modelos soportados para esa tarea. Deber\xEDas ver una p\xE1gina "),ia=r("a"),wr=t("como esta"),qr=t("."),Zn=c(),we=r("p"),yr=t("\xA1Intentemos con el modelo "),pa=r("a"),zs=r("code"),jr=t("distilgpt2"),kr=t("! Puedes cargarlo en el mismo pipeline de la siguiente manera:"),Kn=c(),v(ca.$$.fragment),Xn=c(),v(ua.$$.fragment),et=c(),qe=r("p"),Pr=t("Puedes refinar tu b\xFAsqueda de un modelo haciendo clic en las etiquetas de idioma y escoger uno que genere textos en otro idioma. El Hub de Modelos tambi\xE9n contiene puntos de control ("),Ls=r("em"),Ar=t("checkpoints"),Ir=t(") para modelos que soportan m\xFAltiples lenguajes."),at=c(),Ma=r("p"),Tr=t("Una vez has seleccionado un modelo haciendo clic en \xE9l, ver\xE1s que hay un widget que te permite probarlo directamente en l\xEDnea. De esta manera puedes probar r\xE1pidamente las capacidades del modelo antes de descargarlo."),st=c(),v(ye.$$.fragment),nt=c(),se=r("h3"),je=r("a"),Ns=r("span"),v(da.$$.fragment),Sr=c(),Ds=r("span"),Hr=t("La API de Inferencia"),tt=c(),ke=r("p"),Or=t("Todos los modelos pueden ser probados directamente en tu navegador usando la API de Inferencia, que est\xE1 disponible en el "),ma=r("a"),Cr=t("sitio web"),zr=t(" de Hugging Face. Puedes jugar con el modelo directamente en esta p\xE1gina al pasar tu texto personalizado como entrada y ver c\xF3mo lo procesa."),ot=c(),Pe=r("p"),Lr=t("La API de Inferencia que hace funcionar al widget tambi\xE9n est\xE1 disponible como un producto pago, algo \xFAtil si lo necesitas para tus flujos de trabajo. Dir\xEDgete a la "),fa=r("a"),Nr=t("p\xE1gina de precios"),Dr=t(" para m\xE1s detalles."),rt=c(),ne=r("h2"),Ae=r("a"),Fs=r("span"),v(ha.$$.fragment),Fr=c(),Rs=r("span"),Rr=t("Llenado de ocultos (*Mask filling*)"),lt=c(),Ie=r("p"),Mr=t("El siguiente pipeline con el que vas a trabajar es "),Ms=r("code"),Gr=t("fill-mask"),Br=t(". La idea de esta tarea es llenar los espacios en blanco de un texto dado:"),it=c(),v(ga.$$.fragment),pt=c(),v(va.$$.fragment),ct=c(),F=r("p"),Ur=t("El argumento "),Gs=r("code"),Vr=t("top_k"),Wr=t(" controla el n\xFAmero de posibilidades que se van a mostrar. Nota que en este caso el modelo llena la palabra especial "),Bs=r("code"),Qr=t("<mask>"),Yr=t(", que se denomina com\xFAnmente como "),Us=r("em"),Jr=t("mask token"),Zr=t(". Otros modelos pueden tener diferentes tokens, por lo que es una buena idea verificar la palabra especial adecuada cuando est\xE9s explorando diferentes modelos. Una manera de confirmar es revisar la palabra usada en el widget."),ut=c(),v(Te.$$.fragment),dt=c(),te=r("h2"),Se=r("a"),Vs=r("span"),v($a.$$.fragment),Kr=c(),Ws=r("span"),Xr=t("Reconocimiento de entidades nombradas"),mt=c(),Ga=r("p"),el=t("El reconocimiento de entidades nombradas (REN) es una tarea en la que el modelo tiene que encontrar cu\xE1les partes del texto introducido corresponden a entidades como personas, ubicaciones u organizaciones. Veamos un ejemplo:"),ft=c(),v(ba.$$.fragment),ht=c(),v(_a.$$.fragment),gt=c(),Ba=r("p"),al=t("En este caso el modelo identific\xF3 correctamente que Sylvain es una persona (PER), Hugging Face una organizaci\xF3n (ORG) y Brooklyn una ubicaci\xF3n (LOC)."),vt=c(),N=r("p"),sl=t("Pasamos la opci\xF3n "),Qs=r("code"),nl=t("grouped_entities=True"),tl=t(" en la funci\xF3n de creaci\xF3n del pipeline para decirle que agrupe las partes de la oraci\xF3n que corresponden a la misma entidad: Aqu\xED el modelo agrup\xF3 correctamente \u201CHugging\u201D y \u201CFace\u201D como una sola organizaci\xF3n, a pesar de que su nombre est\xE1 compuesto de varias palabras. De hecho, como veremos en el siguente cap\xEDtulo, el preprocesamiento puede incluso dividir palabras en partes m\xE1s peque\xF1as. Por ejemplo, \u2018Sylvain\u2019 se separa en cuatro piezas: "),Ys=r("code"),ol=t("S"),rl=t(", "),Js=r("code"),ll=t("##yl"),il=t(", "),Zs=r("code"),pl=t("##va"),cl=t(" y"),Ks=r("code"),ul=t("##in"),dl=t(". En el paso de prosprocesamiento, el pipeline reagrupa de manera exitosa dichas piezas."),$t=c(),v(He.$$.fragment),bt=c(),oe=r("h2"),Oe=r("a"),Xs=r("span"),v(xa.$$.fragment),ml=c(),en=r("span"),fl=t("Responder preguntas"),_t=c(),Ce=r("p"),hl=t("El pipeline "),an=r("code"),gl=t("question-answering"),vl=t(" responde preguntas usando informaci\xF3n de un contexto dado:"),xt=c(),v(Ea.$$.fragment),Et=c(),v(wa.$$.fragment),wt=c(),Ua=r("p"),$l=t("Observa que este pipeline funciona extrayendo informaci\xF3n del contexto ofrecido; m\xE1s no genera la respuesta."),qt=c(),re=r("h2"),ze=r("a"),sn=r("span"),v(qa.$$.fragment),bl=c(),nn=r("span"),_l=t("Resumir (*Summarization*)"),yt=c(),Va=r("p"),xl=t("Resumir es la tarea de reducir un texto en uno m\xE1s corto, conservando todos (o la mayor parte de) los aspectos importantes mencionados. Aqu\xED va un ejemplo:"),jt=c(),v(ya.$$.fragment),kt=c(),v(ja.$$.fragment),Pt=c(),Q=r("p"),El=t("Similar a la generaci\xF3n de textos, puedes especificar los argumentos "),tn=r("code"),wl=t("max-length"),ql=t(" o "),on=r("code"),yl=t("min_length"),jl=t(" para definir la longitud del resultado."),At=c(),le=r("h2"),Le=r("a"),rn=r("span"),v(ka.$$.fragment),kl=c(),ln=r("span"),Pl=t("Traducci\xF3n"),It=c(),Y=r("p"),Al=t("Para la traducci\xF3n, puedes usar el modelo por defecto si indicas una pareja de idiomas en el nombre de la tarea (como "),pn=r("code"),Il=t('"translation_en_to_fr"'),Tl=t("), pero la forma m\xE1s sencilla es escoger el modelo que quieres usar en el "),Pa=r("a"),Sl=t("Hub de Modelos"),Hl=t(". Aqu\xED intentaremos traducir de Franc\xE9s a Ingl\xE9s:"),Tt=c(),v(Aa.$$.fragment),St=c(),v(Ia.$$.fragment),Ht=c(),J=r("p"),Ol=t("Al igual que los pipelines de generaci\xF3n de textos y resumen, puedes especificar una longitud m\xE1xima ("),cn=r("code"),Cl=t("max_length"),zl=t(") o m\xEDnima ("),un=r("code"),Ll=t("min_length"),Nl=t(") para el resultado."),Ot=c(),v(Ne.$$.fragment),Ct=c(),De=r("p"),Dl=t("Los pipelines vistos hasta el momento son principalmente para fines demostrativos. Fueron programados para tareas espec\xEDficas y no pueden desarrollar variaciones de ellas. En el siguiente cap\xEDtulo, aprender\xE1s qu\xE9 est\xE1 detr\xE1s de una funci\xF3n "),dn=r("code"),Fl=t("pipeline()"),Rl=t(" y c\xF3mo personalizar su comportamiento."),this.h()},l(e){const n=Cp('[data-svelte="svelte-1phssyn"]',document.head);d=l(n,"META",{name:!0,content:!0}),n.forEach(a),y=u(e),f=l(e,"H1",{class:!0});var Ta=i(f);w=l(Ta,"A",{id:!0,class:!0,href:!0});var mn=i(w);q=l(mn,"SPAN",{});var fn=i(q);$(h.$$.fragment,fn),fn.forEach(a),mn.forEach(a),g=u(Ta),j=l(Ta,"SPAN",{});var hn=i(j);A=o(hn,"Transformadores, \xBFqu\xE9 pueden hacer?"),hn.forEach(a),Ta.forEach(a),I=u(e),$(T.$$.fragment,e),P=u(e),k=l(e,"P",{});var Sa=i(k);D=o(Sa,"En esta secci\xF3n, veremos qu\xE9 pueden hacer los Transformadores y usaremos nuestra primera herramienta de la librer\xEDa \u{1F917} Transformers: la funci\xF3n "),C=l(Sa,"CODE",{});var gn=i(C);S=o(gn,"pipeline()"),gn.forEach(a),Oa=o(Sa,"."),Sa.forEach(a),Me=u(e),$(G.$$.fragment,e),Ge=u(e),Z=l(e,"H2",{class:!0});var Ha=i(Z);ie=l(Ha,"A",{id:!0,class:!0,href:!0});var vn=i(ie);es=l(vn,"SPAN",{});var Ul=i(es);$(Be.$$.fragment,Ul),Ul.forEach(a),vn.forEach(a),ro=u(Ha),as=l(Ha,"SPAN",{});var Vl=i(as);lo=o(Vl,"\xA1Los Transformadores est\xE1n en todas partes!"),Vl.forEach(a),Ha.forEach(a),$n=u(e),Ca=l(e,"P",{});var Wl=i(Ca);io=o(Wl,"Los Transformadores se usan para resolver todo tipo de tareas de PLN, como las mencionadas en la secci\xF3n anterior. Aqu\xED te mostramos algunas de las compa\xF1\xEDas y organizaciones que usan Hugging Face y Transformadores, que tambi\xE9n contribuyen de vuelta a la comunidad al compartir sus modelos:"),Wl.forEach(a),bn=u(e),pe=l(e,"IMG",{src:!0,alt:!0,width:!0}),_n=u(e),B=l(e,"P",{});var Wa=i(B);po=o(Wa,"La "),Ue=l(Wa,"A",{href:!0,rel:!0});var Ql=i(Ue);co=o(Ql,"librer\xEDa \u{1F917} Transformers"),Ql.forEach(a),uo=o(Wa," provee la funcionalidad de crear y usar estos modelos compartidos. El "),Ve=l(Wa,"A",{href:!0,rel:!0});var Yl=i(Ve);mo=o(Yl,"Hub de Modelos"),Yl.forEach(a),fo=o(Wa," contiene miles de modelos preentrenados que cualquiera puede descargar y usar. \xA1T\xFA tambi\xE9n puedes subir tus propios modelos al Hub!"),Wa.forEach(a),xn=u(e),$(ce.$$.fragment,e),En=u(e),za=l(e,"P",{});var Jl=i(za);ho=o(Jl,"Antes de ver c\xF3mo funcionan internamente los Transformadores, veamos un par de ejemplos sobre c\xF3mo pueden ser usados para resolver tareas de PLN."),Jl.forEach(a),wn=u(e),K=l(e,"H2",{class:!0});var Lt=i(K);ue=l(Lt,"A",{id:!0,class:!0,href:!0});var Zl=i(ue);ss=l(Zl,"SPAN",{});var Kl=i(ss);$(We.$$.fragment,Kl),Kl.forEach(a),Zl.forEach(a),go=u(Lt),ns=l(Lt,"SPAN",{});var Xl=i(ns);vo=o(Xl,"Trabajando con pipelines"),Xl.forEach(a),Lt.forEach(a),qn=u(e),$(Qe.$$.fragment,e),yn=u(e),de=l(e,"P",{});var Nt=i(de);$o=o(Nt,"El objeto m\xE1s b\xE1sico en la librer\xEDa \u{1F917} Transformers es la funci\xF3n "),ts=l(Nt,"CODE",{});var ei=i(ts);bo=o(ei,"pipeline()"),ei.forEach(a),_o=o(Nt,". Esta funci\xF3n conecta un modelo con los pasos necesarios para su preprocesamiento y posprocesamiento, permiti\xE9ndonos introducir de manera directa cualquier texto y obtener una respuesta inteligible:"),Nt.forEach(a),jn=u(e),$(Ye.$$.fragment,e),kn=u(e),$(Je.$$.fragment,e),Pn=u(e),La=l(e,"P",{});var ai=i(La);xo=o(ai,"\xA1Incluso podemos pasar varias oraciones!"),ai.forEach(a),An=u(e),$(Ze.$$.fragment,e),In=u(e),$(Ke.$$.fragment,e),Tn=u(e),me=l(e,"P",{});var Dt=i(me);Eo=o(Dt,"Por defecto, este pipeline selecciona un modelo particular preentrenado que ha sido ajustado para el an\xE1lisis de sentimientos en Ingl\xE9s. El modelo se descarga y se almacena en el cach\xE9 cuando creas el objeto "),os=l(Dt,"CODE",{});var si=i(os);wo=o(si,"classifier"),si.forEach(a),qo=o(Dt,". Si vuelves a ejecutar el comando, se usar\xE1 el modelo almacenado en cach\xE9 y no habr\xE1 necesidad de descargarlo de nuevo."),Dt.forEach(a),Sn=u(e),Na=l(e,"P",{});var ni=i(Na);yo=o(ni,"Hay tres pasos principales que ocurren cuando pasas un texto a un pipeline:"),ni.forEach(a),Hn=u(e),U=l(e,"OL",{});var Qa=i(U);rs=l(Qa,"LI",{});var ti=i(rs);jo=o(ti,"El texto es preprocesado en un formato que el modelo puede entender."),ti.forEach(a),ko=u(Qa),ls=l(Qa,"LI",{});var oi=i(ls);Po=o(oi,"La entrada preprocesada se pasa al modelo."),oi.forEach(a),Ao=u(Qa),is=l(Qa,"LI",{});var ri=i(is);Io=o(ri,"Las predicciones del modelo son posprocesadas, de tal manera que las puedas entender."),ri.forEach(a),Qa.forEach(a),On=u(e),fe=l(e,"P",{});var Ft=i(fe);To=o(Ft,"Algunos de los "),Xe=l(Ft,"A",{href:!0,rel:!0});var li=i(Xe);So=o(li,"pipelines disponibles"),li.forEach(a),Ho=o(Ft," son:"),Ft.forEach(a),Cn=u(e),H=l(e,"UL",{});var L=i(H);Da=l(L,"LI",{});var Ml=i(Da);ps=l(Ml,"CODE",{});var ii=i(ps);Oo=o(ii,"feature-extraction"),ii.forEach(a),Co=o(Ml," (obtener la representaci\xF3n vectorial de un texto)"),Ml.forEach(a),zo=u(L),cs=l(L,"LI",{});var pi=i(cs);us=l(pi,"CODE",{});var ci=i(us);Lo=o(ci,"fill-mask"),ci.forEach(a),pi.forEach(a),No=u(L),Fa=l(L,"LI",{});var Gl=i(Fa);ds=l(Gl,"CODE",{});var ui=i(ds);Do=o(ui,"ner"),ui.forEach(a),Fo=o(Gl," (reconocimiento de entidades nombradas)"),Gl.forEach(a),Ro=u(L),ms=l(L,"LI",{});var di=i(ms);fs=l(di,"CODE",{});var mi=i(fs);Mo=o(mi,"question-answering"),mi.forEach(a),di.forEach(a),Go=u(L),hs=l(L,"LI",{});var fi=i(hs);gs=l(fi,"CODE",{});var hi=i(gs);Bo=o(hi,"sentiment-analysis"),hi.forEach(a),fi.forEach(a),Uo=u(L),vs=l(L,"LI",{});var gi=i(vs);$s=l(gi,"CODE",{});var vi=i($s);Vo=o(vi,"summarization"),vi.forEach(a),gi.forEach(a),Wo=u(L),bs=l(L,"LI",{});var $i=i(bs);_s=l($i,"CODE",{});var bi=i(_s);Qo=o(bi,"text-generation"),bi.forEach(a),$i.forEach(a),Yo=u(L),xs=l(L,"LI",{});var _i=i(xs);Es=l(_i,"CODE",{});var xi=i(Es);Jo=o(xi,"translation"),xi.forEach(a),_i.forEach(a),Zo=u(L),ws=l(L,"LI",{});var Ei=i(ws);qs=l(Ei,"CODE",{});var wi=i(qs);Ko=o(wi,"zero-shot-classification"),wi.forEach(a),Ei.forEach(a),L.forEach(a),zn=u(e),Ra=l(e,"P",{});var qi=i(Ra);Xo=o(qi,"\xA1Veamos algunas de ellas!"),qi.forEach(a),Ln=u(e),X=l(e,"H2",{class:!0});var Rt=i(X);he=l(Rt,"A",{id:!0,class:!0,href:!0});var yi=i(he);ys=l(yi,"SPAN",{});var ji=i(ys);$(ea.$$.fragment,ji),ji.forEach(a),yi.forEach(a),er=u(Rt),js=l(Rt,"SPAN",{});var ki=i(js);ar=o(ki,"Clasificaci\xF3n *zero-shot*"),ki.forEach(a),Rt.forEach(a),Nn=u(e),ge=l(e,"P",{});var Mt=i(ge);sr=o(Mt,"Empezaremos abordando una tarea m\xE1s compleja, en la que necesitamos clasificar textos que no han sido etiquetados. Este es un escenario com\xFAn en proyectos de la vida real porque anotar texto usualmente requiere mucho tiempo y dominio del tema. Para este caso de uso, el pipeline "),ks=l(Mt,"CODE",{});var Pi=i(ks);nr=o(Pi,"zero-shot-classification"),Pi.forEach(a),tr=o(Mt," es muy poderoso: permite que especifiques qu\xE9 etiquetas usar para la clasificaci\xF3n, para que no dependas de las etiquetas del modelo preentrenado. Ya viste c\xF3mo el modelo puede clasificar una oraci\xF3n como positiva o negativa usando esas dos etiquetas \u2014 pero tambi\xE9n puede clasificar el texto usando cualquier otro conjunto de etiquetas que definas."),Mt.forEach(a),Dn=u(e),$(aa.$$.fragment,e),Fn=u(e),$(sa.$$.fragment,e),Rn=u(e),ve=l(e,"P",{});var Gt=i(ve);or=o(Gt,"Este pipeline se llama "),Ps=l(Gt,"EM",{});var Ai=i(Ps);rr=o(Ai,"zero-shot"),Ai.forEach(a),lr=o(Gt," porque no necesitas ajustar el modelo con tus datos para usarlo. \xA1Puede devolver directamente puntajes de probabilidad para cualquier lista de de etiquetas que escojas!"),Gt.forEach(a),Mn=u(e),$($e.$$.fragment,e),Gn=u(e),ee=l(e,"H2",{class:!0});var Bt=i(ee);be=l(Bt,"A",{id:!0,class:!0,href:!0});var Ii=i(be);As=l(Ii,"SPAN",{});var Ti=i(As);$(na.$$.fragment,Ti),Ti.forEach(a),Ii.forEach(a),ir=u(Bt),Is=l(Bt,"SPAN",{});var Si=i(Is);pr=o(Si,"Generaci\xF3n de texto"),Si.forEach(a),Bt.forEach(a),Bn=u(e),_e=l(e,"P",{});var Ut=i(_e);cr=o(Ut,"Ahora veamos c\xF3mo usar un pipeline para generar texto. La idea es que proporciones una indicaci\xF3n ("),Ts=l(Ut,"EM",{});var Hi=i(Ts);ur=o(Hi,"prompt"),Hi.forEach(a),dr=o(Ut,") y el modelo la va a completar autom\xE1ticamente al generar el texto restante. Esto es parecido a la funci\xF3n de texto predictivo que est\xE1 presente en muchos tel\xE9fonos. La generaci\xF3n de texto involucra aleat\xF3riedad, por lo que es normal que no obtengas el mismo resultado que se muestra abajo."),Ut.forEach(a),Un=u(e),$(ta.$$.fragment,e),Vn=u(e),$(oa.$$.fragment,e),Wn=u(e),V=l(e,"P",{});var Ya=i(V);mr=o(Ya,"Puedes controlar cu\xE1ntas secuencias diferentes se generan con el argumento "),Ss=l(Ya,"CODE",{});var Oi=i(Ss);fr=o(Oi,"num_return_sequences"),Oi.forEach(a),hr=o(Ya," y la longitud total del texto de salida con el argumento "),Hs=l(Ya,"CODE",{});var Ci=i(Hs);gr=o(Ci,"max_length"),Ci.forEach(a),vr=o(Ya,"."),Ya.forEach(a),Qn=u(e),$(xe.$$.fragment,e),Yn=u(e),ae=l(e,"H2",{class:!0});var Vt=i(ae);Ee=l(Vt,"A",{id:!0,class:!0,href:!0});var zi=i(Ee);Os=l(zi,"SPAN",{});var Li=i(Os);$(ra.$$.fragment,Li),Li.forEach(a),zi.forEach(a),$r=u(Vt),Cs=l(Vt,"SPAN",{});var Ni=i(Cs);br=o(Ni,"Usa cualquier modelo del Hub en un pipeline"),Ni.forEach(a),Vt.forEach(a),Jn=u(e),W=l(e,"P",{});var Ja=i(W);_r=o(Ja,"Los ejemplos anteriores usaban el modelo por defecto para cada tarea, pero tambi\xE9n puedes escoger un modelo particular del Hub y usarlo en un pipeline para una tarea espec\xEDfica - por ejemplo, la generaci\xF3n de texto. Ve al "),la=l(Ja,"A",{href:!0,rel:!0});var Di=i(la);xr=o(Di,"Hub de Modelos"),Di.forEach(a),Er=o(Ja," y haz clic en la etiqueta correspondiente en la parte izquierda para mostrar \xFAnicamente los modelos soportados para esa tarea. Deber\xEDas ver una p\xE1gina "),ia=l(Ja,"A",{href:!0,rel:!0});var Fi=i(ia);wr=o(Fi,"como esta"),Fi.forEach(a),qr=o(Ja,"."),Ja.forEach(a),Zn=u(e),we=l(e,"P",{});var Wt=i(we);yr=o(Wt,"\xA1Intentemos con el modelo "),pa=l(Wt,"A",{href:!0,rel:!0});var Ri=i(pa);zs=l(Ri,"CODE",{});var Mi=i(zs);jr=o(Mi,"distilgpt2"),Mi.forEach(a),Ri.forEach(a),kr=o(Wt,"! Puedes cargarlo en el mismo pipeline de la siguiente manera:"),Wt.forEach(a),Kn=u(e),$(ca.$$.fragment,e),Xn=u(e),$(ua.$$.fragment,e),et=u(e),qe=l(e,"P",{});var Qt=i(qe);Pr=o(Qt,"Puedes refinar tu b\xFAsqueda de un modelo haciendo clic en las etiquetas de idioma y escoger uno que genere textos en otro idioma. El Hub de Modelos tambi\xE9n contiene puntos de control ("),Ls=l(Qt,"EM",{});var Gi=i(Ls);Ar=o(Gi,"checkpoints"),Gi.forEach(a),Ir=o(Qt,") para modelos que soportan m\xFAltiples lenguajes."),Qt.forEach(a),at=u(e),Ma=l(e,"P",{});var Bi=i(Ma);Tr=o(Bi,"Una vez has seleccionado un modelo haciendo clic en \xE9l, ver\xE1s que hay un widget que te permite probarlo directamente en l\xEDnea. De esta manera puedes probar r\xE1pidamente las capacidades del modelo antes de descargarlo."),Bi.forEach(a),st=u(e),$(ye.$$.fragment,e),nt=u(e),se=l(e,"H3",{class:!0});var Yt=i(se);je=l(Yt,"A",{id:!0,class:!0,href:!0});var Ui=i(je);Ns=l(Ui,"SPAN",{});var Vi=i(Ns);$(da.$$.fragment,Vi),Vi.forEach(a),Ui.forEach(a),Sr=u(Yt),Ds=l(Yt,"SPAN",{});var Wi=i(Ds);Hr=o(Wi,"La API de Inferencia"),Wi.forEach(a),Yt.forEach(a),tt=u(e),ke=l(e,"P",{});var Jt=i(ke);Or=o(Jt,"Todos los modelos pueden ser probados directamente en tu navegador usando la API de Inferencia, que est\xE1 disponible en el "),ma=l(Jt,"A",{href:!0,rel:!0});var Qi=i(ma);Cr=o(Qi,"sitio web"),Qi.forEach(a),zr=o(Jt," de Hugging Face. Puedes jugar con el modelo directamente en esta p\xE1gina al pasar tu texto personalizado como entrada y ver c\xF3mo lo procesa."),Jt.forEach(a),ot=u(e),Pe=l(e,"P",{});var Zt=i(Pe);Lr=o(Zt,"La API de Inferencia que hace funcionar al widget tambi\xE9n est\xE1 disponible como un producto pago, algo \xFAtil si lo necesitas para tus flujos de trabajo. Dir\xEDgete a la "),fa=l(Zt,"A",{href:!0,rel:!0});var Yi=i(fa);Nr=o(Yi,"p\xE1gina de precios"),Yi.forEach(a),Dr=o(Zt," para m\xE1s detalles."),Zt.forEach(a),rt=u(e),ne=l(e,"H2",{class:!0});var Kt=i(ne);Ae=l(Kt,"A",{id:!0,class:!0,href:!0});var Ji=i(Ae);Fs=l(Ji,"SPAN",{});var Zi=i(Fs);$(ha.$$.fragment,Zi),Zi.forEach(a),Ji.forEach(a),Fr=u(Kt),Rs=l(Kt,"SPAN",{});var Ki=i(Rs);Rr=o(Ki,"Llenado de ocultos (*Mask filling*)"),Ki.forEach(a),Kt.forEach(a),lt=u(e),Ie=l(e,"P",{});var Xt=i(Ie);Mr=o(Xt,"El siguiente pipeline con el que vas a trabajar es "),Ms=l(Xt,"CODE",{});var Xi=i(Ms);Gr=o(Xi,"fill-mask"),Xi.forEach(a),Br=o(Xt,". La idea de esta tarea es llenar los espacios en blanco de un texto dado:"),Xt.forEach(a),it=u(e),$(ga.$$.fragment,e),pt=u(e),$(va.$$.fragment,e),ct=u(e),F=l(e,"P",{});var Fe=i(F);Ur=o(Fe,"El argumento "),Gs=l(Fe,"CODE",{});var ep=i(Gs);Vr=o(ep,"top_k"),ep.forEach(a),Wr=o(Fe," controla el n\xFAmero de posibilidades que se van a mostrar. Nota que en este caso el modelo llena la palabra especial "),Bs=l(Fe,"CODE",{});var ap=i(Bs);Qr=o(ap,"<mask>"),ap.forEach(a),Yr=o(Fe,", que se denomina com\xFAnmente como "),Us=l(Fe,"EM",{});var sp=i(Us);Jr=o(sp,"mask token"),sp.forEach(a),Zr=o(Fe,". Otros modelos pueden tener diferentes tokens, por lo que es una buena idea verificar la palabra especial adecuada cuando est\xE9s explorando diferentes modelos. Una manera de confirmar es revisar la palabra usada en el widget."),Fe.forEach(a),ut=u(e),$(Te.$$.fragment,e),dt=u(e),te=l(e,"H2",{class:!0});var eo=i(te);Se=l(eo,"A",{id:!0,class:!0,href:!0});var np=i(Se);Vs=l(np,"SPAN",{});var tp=i(Vs);$($a.$$.fragment,tp),tp.forEach(a),np.forEach(a),Kr=u(eo),Ws=l(eo,"SPAN",{});var op=i(Ws);Xr=o(op,"Reconocimiento de entidades nombradas"),op.forEach(a),eo.forEach(a),mt=u(e),Ga=l(e,"P",{});var rp=i(Ga);el=o(rp,"El reconocimiento de entidades nombradas (REN) es una tarea en la que el modelo tiene que encontrar cu\xE1les partes del texto introducido corresponden a entidades como personas, ubicaciones u organizaciones. Veamos un ejemplo:"),rp.forEach(a),ft=u(e),$(ba.$$.fragment,e),ht=u(e),$(_a.$$.fragment,e),gt=u(e),Ba=l(e,"P",{});var lp=i(Ba);al=o(lp,"En este caso el modelo identific\xF3 correctamente que Sylvain es una persona (PER), Hugging Face una organizaci\xF3n (ORG) y Brooklyn una ubicaci\xF3n (LOC)."),lp.forEach(a),vt=u(e),N=l(e,"P",{});var R=i(N);sl=o(R,"Pasamos la opci\xF3n "),Qs=l(R,"CODE",{});var ip=i(Qs);nl=o(ip,"grouped_entities=True"),ip.forEach(a),tl=o(R," en la funci\xF3n de creaci\xF3n del pipeline para decirle que agrupe las partes de la oraci\xF3n que corresponden a la misma entidad: Aqu\xED el modelo agrup\xF3 correctamente \u201CHugging\u201D y \u201CFace\u201D como una sola organizaci\xF3n, a pesar de que su nombre est\xE1 compuesto de varias palabras. De hecho, como veremos en el siguente cap\xEDtulo, el preprocesamiento puede incluso dividir palabras en partes m\xE1s peque\xF1as. Por ejemplo, \u2018Sylvain\u2019 se separa en cuatro piezas: "),Ys=l(R,"CODE",{});var pp=i(Ys);ol=o(pp,"S"),pp.forEach(a),rl=o(R,", "),Js=l(R,"CODE",{});var cp=i(Js);ll=o(cp,"##yl"),cp.forEach(a),il=o(R,", "),Zs=l(R,"CODE",{});var up=i(Zs);pl=o(up,"##va"),up.forEach(a),cl=o(R," y"),Ks=l(R,"CODE",{});var dp=i(Ks);ul=o(dp,"##in"),dp.forEach(a),dl=o(R,". En el paso de prosprocesamiento, el pipeline reagrupa de manera exitosa dichas piezas."),R.forEach(a),$t=u(e),$(He.$$.fragment,e),bt=u(e),oe=l(e,"H2",{class:!0});var ao=i(oe);Oe=l(ao,"A",{id:!0,class:!0,href:!0});var mp=i(Oe);Xs=l(mp,"SPAN",{});var fp=i(Xs);$(xa.$$.fragment,fp),fp.forEach(a),mp.forEach(a),ml=u(ao),en=l(ao,"SPAN",{});var hp=i(en);fl=o(hp,"Responder preguntas"),hp.forEach(a),ao.forEach(a),_t=u(e),Ce=l(e,"P",{});var so=i(Ce);hl=o(so,"El pipeline "),an=l(so,"CODE",{});var gp=i(an);gl=o(gp,"question-answering"),gp.forEach(a),vl=o(so," responde preguntas usando informaci\xF3n de un contexto dado:"),so.forEach(a),xt=u(e),$(Ea.$$.fragment,e),Et=u(e),$(wa.$$.fragment,e),wt=u(e),Ua=l(e,"P",{});var vp=i(Ua);$l=o(vp,"Observa que este pipeline funciona extrayendo informaci\xF3n del contexto ofrecido; m\xE1s no genera la respuesta."),vp.forEach(a),qt=u(e),re=l(e,"H2",{class:!0});var no=i(re);ze=l(no,"A",{id:!0,class:!0,href:!0});var $p=i(ze);sn=l($p,"SPAN",{});var bp=i(sn);$(qa.$$.fragment,bp),bp.forEach(a),$p.forEach(a),bl=u(no),nn=l(no,"SPAN",{});var _p=i(nn);_l=o(_p,"Resumir (*Summarization*)"),_p.forEach(a),no.forEach(a),yt=u(e),Va=l(e,"P",{});var xp=i(Va);xl=o(xp,"Resumir es la tarea de reducir un texto en uno m\xE1s corto, conservando todos (o la mayor parte de) los aspectos importantes mencionados. Aqu\xED va un ejemplo:"),xp.forEach(a),jt=u(e),$(ya.$$.fragment,e),kt=u(e),$(ja.$$.fragment,e),Pt=u(e),Q=l(e,"P",{});var Za=i(Q);El=o(Za,"Similar a la generaci\xF3n de textos, puedes especificar los argumentos "),tn=l(Za,"CODE",{});var Ep=i(tn);wl=o(Ep,"max-length"),Ep.forEach(a),ql=o(Za," o "),on=l(Za,"CODE",{});var wp=i(on);yl=o(wp,"min_length"),wp.forEach(a),jl=o(Za," para definir la longitud del resultado."),Za.forEach(a),At=u(e),le=l(e,"H2",{class:!0});var to=i(le);Le=l(to,"A",{id:!0,class:!0,href:!0});var qp=i(Le);rn=l(qp,"SPAN",{});var yp=i(rn);$(ka.$$.fragment,yp),yp.forEach(a),qp.forEach(a),kl=u(to),ln=l(to,"SPAN",{});var jp=i(ln);Pl=o(jp,"Traducci\xF3n"),jp.forEach(a),to.forEach(a),It=u(e),Y=l(e,"P",{});var Ka=i(Y);Al=o(Ka,"Para la traducci\xF3n, puedes usar el modelo por defecto si indicas una pareja de idiomas en el nombre de la tarea (como "),pn=l(Ka,"CODE",{});var kp=i(pn);Il=o(kp,'"translation_en_to_fr"'),kp.forEach(a),Tl=o(Ka,"), pero la forma m\xE1s sencilla es escoger el modelo que quieres usar en el "),Pa=l(Ka,"A",{href:!0,rel:!0});var Pp=i(Pa);Sl=o(Pp,"Hub de Modelos"),Pp.forEach(a),Hl=o(Ka,". Aqu\xED intentaremos traducir de Franc\xE9s a Ingl\xE9s:"),Ka.forEach(a),Tt=u(e),$(Aa.$$.fragment,e),St=u(e),$(Ia.$$.fragment,e),Ht=u(e),J=l(e,"P",{});var Xa=i(J);Ol=o(Xa,"Al igual que los pipelines de generaci\xF3n de textos y resumen, puedes especificar una longitud m\xE1xima ("),cn=l(Xa,"CODE",{});var Ap=i(cn);Cl=o(Ap,"max_length"),Ap.forEach(a),zl=o(Xa,") o m\xEDnima ("),un=l(Xa,"CODE",{});var Ip=i(un);Ll=o(Ip,"min_length"),Ip.forEach(a),Nl=o(Xa,") para el resultado."),Xa.forEach(a),Ot=u(e),$(Ne.$$.fragment,e),Ct=u(e),De=l(e,"P",{});var oo=i(De);Dl=o(oo,"Los pipelines vistos hasta el momento son principalmente para fines demostrativos. Fueron programados para tareas espec\xEDficas y no pueden desarrollar variaciones de ellas. En el siguiente cap\xEDtulo, aprender\xE1s qu\xE9 est\xE1 detr\xE1s de una funci\xF3n "),dn=l(oo,"CODE",{});var Tp=i(dn);Fl=o(Tp,"pipeline()"),Tp.forEach(a),Rl=o(oo," y c\xF3mo personalizar su comportamiento."),oo.forEach(a),this.h()},h(){m(d,"name","hf:doc:metadata"),m(d,"content",JSON.stringify(Yp)),m(w,"id","transformadores-qu-pueden-hacer"),m(w,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(w,"href","#transformadores-qu-pueden-hacer"),m(f,"class","relative group"),m(ie,"id","los-transformadores-estn-en-todas-partes"),m(ie,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(ie,"href","#los-transformadores-estn-en-todas-partes"),m(Z,"class","relative group"),zp(pe.src,Bl="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter1/companies.PNG")||m(pe,"src",Bl),m(pe,"alt","Companies using Hugging Face"),m(pe,"width","100%"),m(Ue,"href","https://github.com/huggingface/transformers"),m(Ue,"rel","nofollow"),m(Ve,"href","https://huggingface.co/models"),m(Ve,"rel","nofollow"),m(ue,"id","trabajando-con-pipelines"),m(ue,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(ue,"href","#trabajando-con-pipelines"),m(K,"class","relative group"),m(Xe,"href","https://huggingface.co/transformers/main_classes/pipelines.html"),m(Xe,"rel","nofollow"),m(he,"id","clasificacin-zeroshot"),m(he,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(he,"href","#clasificacin-zeroshot"),m(X,"class","relative group"),m(be,"id","generacin-de-texto"),m(be,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(be,"href","#generacin-de-texto"),m(ee,"class","relative group"),m(Ee,"id","usa-cualquier-modelo-del-hub-en-un-pipeline"),m(Ee,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(Ee,"href","#usa-cualquier-modelo-del-hub-en-un-pipeline"),m(ae,"class","relative group"),m(la,"href","https://huggingface.co/models"),m(la,"rel","nofollow"),m(ia,"href","https://huggingface.co/models?pipeline_tag=text-generation"),m(ia,"rel","nofollow"),m(pa,"href","https://huggingface.co/distilgpt2"),m(pa,"rel","nofollow"),m(je,"id","la-api-de-inferencia"),m(je,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(je,"href","#la-api-de-inferencia"),m(se,"class","relative group"),m(ma,"href","https://huggingface.co/"),m(ma,"rel","nofollow"),m(fa,"href","https://huggingface.co/pricing"),m(fa,"rel","nofollow"),m(Ae,"id","llenado-de-ocultos-mask-filling"),m(Ae,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(Ae,"href","#llenado-de-ocultos-mask-filling"),m(ne,"class","relative group"),m(Se,"id","reconocimiento-de-entidades-nombradas"),m(Se,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(Se,"href","#reconocimiento-de-entidades-nombradas"),m(te,"class","relative group"),m(Oe,"id","responder-preguntas"),m(Oe,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(Oe,"href","#responder-preguntas"),m(oe,"class","relative group"),m(ze,"id","resumir-summarization"),m(ze,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(ze,"href","#resumir-summarization"),m(re,"class","relative group"),m(Le,"id","traduccin"),m(Le,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),m(Le,"href","#traduccin"),m(le,"class","relative group"),m(Pa,"href","https://huggingface.co/models"),m(Pa,"rel","nofollow")},m(e,n){s(document.head,d),p(e,y,n),p(e,f,n),s(f,w),s(w,q),b(h,q,null),s(f,g),s(f,j),s(j,A),p(e,I,n),b(T,e,n),p(e,P,n),p(e,k,n),s(k,D),s(k,C),s(C,S),s(k,Oa),p(e,Me,n),b(G,e,n),p(e,Ge,n),p(e,Z,n),s(Z,ie),s(ie,es),b(Be,es,null),s(Z,ro),s(Z,as),s(as,lo),p(e,$n,n),p(e,Ca,n),s(Ca,io),p(e,bn,n),p(e,pe,n),p(e,_n,n),p(e,B,n),s(B,po),s(B,Ue),s(Ue,co),s(B,uo),s(B,Ve),s(Ve,mo),s(B,fo),p(e,xn,n),b(ce,e,n),p(e,En,n),p(e,za,n),s(za,ho),p(e,wn,n),p(e,K,n),s(K,ue),s(ue,ss),b(We,ss,null),s(K,go),s(K,ns),s(ns,vo),p(e,qn,n),b(Qe,e,n),p(e,yn,n),p(e,de,n),s(de,$o),s(de,ts),s(ts,bo),s(de,_o),p(e,jn,n),b(Ye,e,n),p(e,kn,n),b(Je,e,n),p(e,Pn,n),p(e,La,n),s(La,xo),p(e,An,n),b(Ze,e,n),p(e,In,n),b(Ke,e,n),p(e,Tn,n),p(e,me,n),s(me,Eo),s(me,os),s(os,wo),s(me,qo),p(e,Sn,n),p(e,Na,n),s(Na,yo),p(e,Hn,n),p(e,U,n),s(U,rs),s(rs,jo),s(U,ko),s(U,ls),s(ls,Po),s(U,Ao),s(U,is),s(is,Io),p(e,On,n),p(e,fe,n),s(fe,To),s(fe,Xe),s(Xe,So),s(fe,Ho),p(e,Cn,n),p(e,H,n),s(H,Da),s(Da,ps),s(ps,Oo),s(Da,Co),s(H,zo),s(H,cs),s(cs,us),s(us,Lo),s(H,No),s(H,Fa),s(Fa,ds),s(ds,Do),s(Fa,Fo),s(H,Ro),s(H,ms),s(ms,fs),s(fs,Mo),s(H,Go),s(H,hs),s(hs,gs),s(gs,Bo),s(H,Uo),s(H,vs),s(vs,$s),s($s,Vo),s(H,Wo),s(H,bs),s(bs,_s),s(_s,Qo),s(H,Yo),s(H,xs),s(xs,Es),s(Es,Jo),s(H,Zo),s(H,ws),s(ws,qs),s(qs,Ko),p(e,zn,n),p(e,Ra,n),s(Ra,Xo),p(e,Ln,n),p(e,X,n),s(X,he),s(he,ys),b(ea,ys,null),s(X,er),s(X,js),s(js,ar),p(e,Nn,n),p(e,ge,n),s(ge,sr),s(ge,ks),s(ks,nr),s(ge,tr),p(e,Dn,n),b(aa,e,n),p(e,Fn,n),b(sa,e,n),p(e,Rn,n),p(e,ve,n),s(ve,or),s(ve,Ps),s(Ps,rr),s(ve,lr),p(e,Mn,n),b($e,e,n),p(e,Gn,n),p(e,ee,n),s(ee,be),s(be,As),b(na,As,null),s(ee,ir),s(ee,Is),s(Is,pr),p(e,Bn,n),p(e,_e,n),s(_e,cr),s(_e,Ts),s(Ts,ur),s(_e,dr),p(e,Un,n),b(ta,e,n),p(e,Vn,n),b(oa,e,n),p(e,Wn,n),p(e,V,n),s(V,mr),s(V,Ss),s(Ss,fr),s(V,hr),s(V,Hs),s(Hs,gr),s(V,vr),p(e,Qn,n),b(xe,e,n),p(e,Yn,n),p(e,ae,n),s(ae,Ee),s(Ee,Os),b(ra,Os,null),s(ae,$r),s(ae,Cs),s(Cs,br),p(e,Jn,n),p(e,W,n),s(W,_r),s(W,la),s(la,xr),s(W,Er),s(W,ia),s(ia,wr),s(W,qr),p(e,Zn,n),p(e,we,n),s(we,yr),s(we,pa),s(pa,zs),s(zs,jr),s(we,kr),p(e,Kn,n),b(ca,e,n),p(e,Xn,n),b(ua,e,n),p(e,et,n),p(e,qe,n),s(qe,Pr),s(qe,Ls),s(Ls,Ar),s(qe,Ir),p(e,at,n),p(e,Ma,n),s(Ma,Tr),p(e,st,n),b(ye,e,n),p(e,nt,n),p(e,se,n),s(se,je),s(je,Ns),b(da,Ns,null),s(se,Sr),s(se,Ds),s(Ds,Hr),p(e,tt,n),p(e,ke,n),s(ke,Or),s(ke,ma),s(ma,Cr),s(ke,zr),p(e,ot,n),p(e,Pe,n),s(Pe,Lr),s(Pe,fa),s(fa,Nr),s(Pe,Dr),p(e,rt,n),p(e,ne,n),s(ne,Ae),s(Ae,Fs),b(ha,Fs,null),s(ne,Fr),s(ne,Rs),s(Rs,Rr),p(e,lt,n),p(e,Ie,n),s(Ie,Mr),s(Ie,Ms),s(Ms,Gr),s(Ie,Br),p(e,it,n),b(ga,e,n),p(e,pt,n),b(va,e,n),p(e,ct,n),p(e,F,n),s(F,Ur),s(F,Gs),s(Gs,Vr),s(F,Wr),s(F,Bs),s(Bs,Qr),s(F,Yr),s(F,Us),s(Us,Jr),s(F,Zr),p(e,ut,n),b(Te,e,n),p(e,dt,n),p(e,te,n),s(te,Se),s(Se,Vs),b($a,Vs,null),s(te,Kr),s(te,Ws),s(Ws,Xr),p(e,mt,n),p(e,Ga,n),s(Ga,el),p(e,ft,n),b(ba,e,n),p(e,ht,n),b(_a,e,n),p(e,gt,n),p(e,Ba,n),s(Ba,al),p(e,vt,n),p(e,N,n),s(N,sl),s(N,Qs),s(Qs,nl),s(N,tl),s(N,Ys),s(Ys,ol),s(N,rl),s(N,Js),s(Js,ll),s(N,il),s(N,Zs),s(Zs,pl),s(N,cl),s(N,Ks),s(Ks,ul),s(N,dl),p(e,$t,n),b(He,e,n),p(e,bt,n),p(e,oe,n),s(oe,Oe),s(Oe,Xs),b(xa,Xs,null),s(oe,ml),s(oe,en),s(en,fl),p(e,_t,n),p(e,Ce,n),s(Ce,hl),s(Ce,an),s(an,gl),s(Ce,vl),p(e,xt,n),b(Ea,e,n),p(e,Et,n),b(wa,e,n),p(e,wt,n),p(e,Ua,n),s(Ua,$l),p(e,qt,n),p(e,re,n),s(re,ze),s(ze,sn),b(qa,sn,null),s(re,bl),s(re,nn),s(nn,_l),p(e,yt,n),p(e,Va,n),s(Va,xl),p(e,jt,n),b(ya,e,n),p(e,kt,n),b(ja,e,n),p(e,Pt,n),p(e,Q,n),s(Q,El),s(Q,tn),s(tn,wl),s(Q,ql),s(Q,on),s(on,yl),s(Q,jl),p(e,At,n),p(e,le,n),s(le,Le),s(Le,rn),b(ka,rn,null),s(le,kl),s(le,ln),s(ln,Pl),p(e,It,n),p(e,Y,n),s(Y,Al),s(Y,pn),s(pn,Il),s(Y,Tl),s(Y,Pa),s(Pa,Sl),s(Y,Hl),p(e,Tt,n),b(Aa,e,n),p(e,St,n),b(Ia,e,n),p(e,Ht,n),p(e,J,n),s(J,Ol),s(J,cn),s(cn,Cl),s(J,zl),s(J,un),s(un,Ll),s(J,Nl),p(e,Ot,n),b(Ne,e,n),p(e,Ct,n),p(e,De,n),s(De,Dl),s(De,dn),s(dn,Fl),s(De,Rl),zt=!0},p(e,[n]){const Ta={};n&2&&(Ta.$$scope={dirty:n,ctx:e}),G.$set(Ta);const mn={};n&2&&(mn.$$scope={dirty:n,ctx:e}),ce.$set(mn);const fn={};n&2&&(fn.$$scope={dirty:n,ctx:e}),$e.$set(fn);const hn={};n&2&&(hn.$$scope={dirty:n,ctx:e}),xe.$set(hn);const Sa={};n&2&&(Sa.$$scope={dirty:n,ctx:e}),ye.$set(Sa);const gn={};n&2&&(gn.$$scope={dirty:n,ctx:e}),Te.$set(gn);const Ha={};n&2&&(Ha.$$scope={dirty:n,ctx:e}),He.$set(Ha);const vn={};n&2&&(vn.$$scope={dirty:n,ctx:e}),Ne.$set(vn)},i(e){zt||(_(h.$$.fragment,e),_(T.$$.fragment,e),_(G.$$.fragment,e),_(Be.$$.fragment,e),_(ce.$$.fragment,e),_(We.$$.fragment,e),_(Qe.$$.fragment,e),_(Ye.$$.fragment,e),_(Je.$$.fragment,e),_(Ze.$$.fragment,e),_(Ke.$$.fragment,e),_(ea.$$.fragment,e),_(aa.$$.fragment,e),_(sa.$$.fragment,e),_($e.$$.fragment,e),_(na.$$.fragment,e),_(ta.$$.fragment,e),_(oa.$$.fragment,e),_(xe.$$.fragment,e),_(ra.$$.fragment,e),_(ca.$$.fragment,e),_(ua.$$.fragment,e),_(ye.$$.fragment,e),_(da.$$.fragment,e),_(ha.$$.fragment,e),_(ga.$$.fragment,e),_(va.$$.fragment,e),_(Te.$$.fragment,e),_($a.$$.fragment,e),_(ba.$$.fragment,e),_(_a.$$.fragment,e),_(He.$$.fragment,e),_(xa.$$.fragment,e),_(Ea.$$.fragment,e),_(wa.$$.fragment,e),_(qa.$$.fragment,e),_(ya.$$.fragment,e),_(ja.$$.fragment,e),_(ka.$$.fragment,e),_(Aa.$$.fragment,e),_(Ia.$$.fragment,e),_(Ne.$$.fragment,e),zt=!0)},o(e){x(h.$$.fragment,e),x(T.$$.fragment,e),x(G.$$.fragment,e),x(Be.$$.fragment,e),x(ce.$$.fragment,e),x(We.$$.fragment,e),x(Qe.$$.fragment,e),x(Ye.$$.fragment,e),x(Je.$$.fragment,e),x(Ze.$$.fragment,e),x(Ke.$$.fragment,e),x(ea.$$.fragment,e),x(aa.$$.fragment,e),x(sa.$$.fragment,e),x($e.$$.fragment,e),x(na.$$.fragment,e),x(ta.$$.fragment,e),x(oa.$$.fragment,e),x(xe.$$.fragment,e),x(ra.$$.fragment,e),x(ca.$$.fragment,e),x(ua.$$.fragment,e),x(ye.$$.fragment,e),x(da.$$.fragment,e),x(ha.$$.fragment,e),x(ga.$$.fragment,e),x(va.$$.fragment,e),x(Te.$$.fragment,e),x($a.$$.fragment,e),x(ba.$$.fragment,e),x(_a.$$.fragment,e),x(He.$$.fragment,e),x(xa.$$.fragment,e),x(Ea.$$.fragment,e),x(wa.$$.fragment,e),x(qa.$$.fragment,e),x(ya.$$.fragment,e),x(ja.$$.fragment,e),x(ka.$$.fragment,e),x(Aa.$$.fragment,e),x(Ia.$$.fragment,e),x(Ne.$$.fragment,e),zt=!1},d(e){a(d),e&&a(y),e&&a(f),E(h),e&&a(I),E(T,e),e&&a(P),e&&a(k),e&&a(Me),E(G,e),e&&a(Ge),e&&a(Z),E(Be),e&&a($n),e&&a(Ca),e&&a(bn),e&&a(pe),e&&a(_n),e&&a(B),e&&a(xn),E(ce,e),e&&a(En),e&&a(za),e&&a(wn),e&&a(K),E(We),e&&a(qn),E(Qe,e),e&&a(yn),e&&a(de),e&&a(jn),E(Ye,e),e&&a(kn),E(Je,e),e&&a(Pn),e&&a(La),e&&a(An),E(Ze,e),e&&a(In),E(Ke,e),e&&a(Tn),e&&a(me),e&&a(Sn),e&&a(Na),e&&a(Hn),e&&a(U),e&&a(On),e&&a(fe),e&&a(Cn),e&&a(H),e&&a(zn),e&&a(Ra),e&&a(Ln),e&&a(X),E(ea),e&&a(Nn),e&&a(ge),e&&a(Dn),E(aa,e),e&&a(Fn),E(sa,e),e&&a(Rn),e&&a(ve),e&&a(Mn),E($e,e),e&&a(Gn),e&&a(ee),E(na),e&&a(Bn),e&&a(_e),e&&a(Un),E(ta,e),e&&a(Vn),E(oa,e),e&&a(Wn),e&&a(V),e&&a(Qn),E(xe,e),e&&a(Yn),e&&a(ae),E(ra),e&&a(Jn),e&&a(W),e&&a(Zn),e&&a(we),e&&a(Kn),E(ca,e),e&&a(Xn),E(ua,e),e&&a(et),e&&a(qe),e&&a(at),e&&a(Ma),e&&a(st),E(ye,e),e&&a(nt),e&&a(se),E(da),e&&a(tt),e&&a(ke),e&&a(ot),e&&a(Pe),e&&a(rt),e&&a(ne),E(ha),e&&a(lt),e&&a(Ie),e&&a(it),E(ga,e),e&&a(pt),E(va,e),e&&a(ct),e&&a(F),e&&a(ut),E(Te,e),e&&a(dt),e&&a(te),E($a),e&&a(mt),e&&a(Ga),e&&a(ft),E(ba,e),e&&a(ht),E(_a,e),e&&a(gt),e&&a(Ba),e&&a(vt),e&&a(N),e&&a($t),E(He,e),e&&a(bt),e&&a(oe),E(xa),e&&a(_t),e&&a(Ce),e&&a(xt),E(Ea,e),e&&a(Et),E(wa,e),e&&a(wt),e&&a(Ua),e&&a(qt),e&&a(re),E(qa),e&&a(yt),e&&a(Va),e&&a(jt),E(ya,e),e&&a(kt),E(ja,e),e&&a(Pt),e&&a(Q),e&&a(At),e&&a(le),E(ka),e&&a(It),e&&a(Y),e&&a(Tt),E(Aa,e),e&&a(St),E(Ia,e),e&&a(Ht),e&&a(J),e&&a(Ot),E(Ne,e),e&&a(Ct),e&&a(De)}}}const Yp={local:"transformadores-qu-pueden-hacer",sections:[{local:"los-transformadores-estn-en-todas-partes",title:"\xA1Los Transformadores est\xE1n en todas partes!"},{local:"trabajando-con-pipelines",title:"Trabajando con pipelines"},{local:"clasificacin-zeroshot",title:"Clasificaci\xF3n *zero-shot*"},{local:"generacin-de-texto",title:"Generaci\xF3n de texto"},{local:"usa-cualquier-modelo-del-hub-en-un-pipeline",sections:[{local:"la-api-de-inferencia",title:"La API de Inferencia"}],title:"Usa cualquier modelo del Hub en un pipeline"},{local:"llenado-de-ocultos-mask-filling",title:"Llenado de ocultos (*Mask filling*)"},{local:"reconocimiento-de-entidades-nombradas",title:"Reconocimiento de entidades nombradas"},{local:"responder-preguntas",title:"Responder preguntas"},{local:"resumir-summarization",title:"Resumir (*Summarization*)"},{local:"traduccin",title:"Traducci\xF3n"}],title:"Transformadores, \xBFqu\xE9 pueden hacer?"};function Jp(z){return Lp(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class nc extends Sp{constructor(d){super();Hp(this,d,Jp,Qp,Op,{})}}export{nc as default,Yp as metadata};
