import{S as Ip,i as Xp,s as Np,e as r,k as f,w as _,t as o,M as Sp,c as i,d as t,m as $,a as p,x as j,h as n,b as y,G as a,g as u,y as w,q as M,o as E,B as k,v as Bp,L as Ce}from"../chunks/vendor-hf-doc-builder.js";import{T as vt}from"../chunks/Tip-hf-doc-builder.js";import{Y as xp}from"../chunks/Youtube-hf-doc-builder.js";import{I as $a}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as X}from"../chunks/CodeBlock-hf-doc-builder.js";import{D as Pp}from"../chunks/DocNotebookDropdown-hf-doc-builder.js";import{F as gt,M as ge}from"../chunks/Markdown-hf-doc-builder.js";import"../chunks/IconTensorflow-hf-doc-builder.js";function Yp(U){let s,d;return{c(){s=r("p"),d=o(`Todos los ejemplos de c\xF3digo presentados en la documentaci\xF3n tienen un bot\xF3n arriba a la derecha para elegir si quieres ocultar o mostrar el c\xF3digo en Pytorch o TensorFlow.
Si no fuese as\xED, se espera que el c\xF3digo funcione para ambos backends sin ning\xFAn cambio.`)},l(l){s=i(l,"P",{});var m=p(s);d=n(m,`Todos los ejemplos de c\xF3digo presentados en la documentaci\xF3n tienen un bot\xF3n arriba a la derecha para elegir si quieres ocultar o mostrar el c\xF3digo en Pytorch o TensorFlow.
Si no fuese as\xED, se espera que el c\xF3digo funcione para ambos backends sin ning\xFAn cambio.`),m.forEach(t)},m(l,m){u(l,s,m),a(s,d)},d(l){l&&t(s)}}}function Dp(U){let s,d,l,m,h,g,Z,R;return{c(){s=r("p"),d=o("Para m\xE1s detalles acerca del "),l=r("code"),m=o("pipeline()"),h=o(" y tareas asociadas, consulta la documentaci\xF3n "),g=r("a"),Z=o("aqu\xED"),R=o("."),this.h()},l(C){s=i(C,"P",{});var q=p(s);d=n(q,"Para m\xE1s detalles acerca del "),l=i(q,"CODE",{});var W=p(l);m=n(W,"pipeline()"),W.forEach(t),h=n(q," y tareas asociadas, consulta la documentaci\xF3n "),g=i(q,"A",{href:!0});var J=p(g);Z=n(J,"aqu\xED"),J.forEach(t),R=n(q,"."),q.forEach(t),this.h()},h(){y(g,"href","./main_classes/pipelines")},m(C,q){u(C,s,q),a(s,d),a(s,l),a(l,m),a(s,h),a(s,g),a(g,Z),a(s,R)},d(C){C&&t(s)}}}function Qp(U){let s,d;return s=new X({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRvcmNo",highlighted:"pip install torch"}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p:Ce,i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function Hp(U){let s,d;return s=new ge({props:{$$slots:{default:[Qp]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function Op(U){let s,d;return s=new X({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRlbnNvcmZsb3c=",highlighted:"pip install tensorflow"}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p:Ce,i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function Lp(U){let s,d;return s=new ge({props:{$$slots:{default:[Op]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function Kp(U){let s,d,l,m,h,g,Z,R,C,q,W;return q=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uJTBBJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChtb2RlbF9uYW1lKSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX25hbWUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForSequenceClassification.from_pretrained(model_name)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(model_name)`}}),{c(){s=r("p"),d=o("Usa "),l=r("code"),m=o("AutoModelForSequenceClassification"),h=o(" y [\u2018AutoTokenizer\u2019] para cargar un modelo preentrenado y un tokenizador asociado (m\xE1s en un "),g=r("code"),Z=o("AutoClass"),R=o(" debajo):"),C=f(),_(q.$$.fragment)},l(J){s=i(J,"P",{});var z=p(s);d=n(z,"Usa "),l=i(z,"CODE",{});var N=p(l);m=n(N,"AutoModelForSequenceClassification"),N.forEach(t),h=n(z," y [\u2018AutoTokenizer\u2019] para cargar un modelo preentrenado y un tokenizador asociado (m\xE1s en un "),g=i(z,"CODE",{});var V=p(g);Z=n(V,"AutoClass"),V.forEach(t),R=n(z," debajo):"),z.forEach(t),C=$(J),j(q.$$.fragment,J)},m(J,z){u(J,s,z),a(s,d),a(s,l),a(l,m),a(s,h),a(s,g),a(g,Z),a(s,R),u(J,C,z),w(q,J,z),W=!0},p:Ce,i(J){W||(M(q.$$.fragment,J),W=!0)},o(J){E(q.$$.fragment,J),W=!1},d(J){J&&t(s),J&&t(C),k(q,J)}}}function ec(U){let s,d;return s=new ge({props:{$$slots:{default:[Kp]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function ac(U){let s,d,l,m,h,g,Z,R,C,q,W;return q=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbCUyMCUzRCUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQobW9kZWxfbmFtZSklMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChtb2RlbF9uYW1lKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model = TFAutoModelForSequenceClassification.from_pretrained(model_name)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(model_name)`}}),{c(){s=r("p"),d=o("Usa "),l=r("code"),m=o("TFAutoModelForSequenceClassification"),h=o(" y [\u2018AutoTokenizer\u2019] para cargar un modelo preentrenado y un tokenizador asociado (m\xE1s en un "),g=r("code"),Z=o("TFAutoClass"),R=o(" debajo):"),C=f(),_(q.$$.fragment)},l(J){s=i(J,"P",{});var z=p(s);d=n(z,"Usa "),l=i(z,"CODE",{});var N=p(l);m=n(N,"TFAutoModelForSequenceClassification"),N.forEach(t),h=n(z," y [\u2018AutoTokenizer\u2019] para cargar un modelo preentrenado y un tokenizador asociado (m\xE1s en un "),g=i(z,"CODE",{});var V=p(g);Z=n(V,"TFAutoClass"),V.forEach(t),R=n(z," debajo):"),z.forEach(t),C=$(J),j(q.$$.fragment,J)},m(J,z){u(J,s,z),a(s,d),a(s,l),a(l,m),a(s,h),a(s,g),a(g,Z),a(s,R),u(J,C,z),w(q,J,z),W=!0},p:Ce,i(J){W||(M(q.$$.fragment,J),W=!0)},o(J){E(q.$$.fragment,J),W=!1},d(J){J&&t(s),J&&t(C),k(q,J)}}}function tc(U){let s,d;return s=new ge({props:{$$slots:{default:[ac]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function sc(U){let s,d;return s=new X({props:{code:"cHRfYmF0Y2glMjAlM0QlMjB0b2tlbml6ZXIoJTBBJTIwJTIwJTIwJTIwJTVCJTIyV2UlMjBhcmUlMjB2ZXJ5JTIwaGFwcHklMjB0byUyMHNob3clMjB5b3UlMjB0aGUlMjAlRjAlOUYlQTQlOTclMjBUcmFuc2Zvcm1lcnMlMjBsaWJyYXJ5LiUyMiUyQyUyMCUyMldlJTIwaG9wZSUyMHlvdSUyMGRvbid0JTIwaGF0ZSUyMGl0LiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMHBhZGRpbmclM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBtYXhfbGVuZ3RoJTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_batch = tokenizer(
<span class="hljs-meta">... </span>    [<span class="hljs-string">&quot;We are very happy to show you the \u{1F917} Transformers library.&quot;</span>, <span class="hljs-string">&quot;We hope you don&#x27;t hate it.&quot;</span>],
<span class="hljs-meta">... </span>    padding=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    truncation=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    max_length=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span>    return_tensors=<span class="hljs-string">&quot;pt&quot;</span>,
<span class="hljs-meta">... </span>)`}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p:Ce,i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function lc(U){let s,d;return s=new ge({props:{$$slots:{default:[sc]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function oc(U){let s,d;return s=new X({props:{code:"dGZfYmF0Y2glMjAlM0QlMjB0b2tlbml6ZXIoJTBBJTIwJTIwJTIwJTIwJTVCJTIyV2UlMjBhcmUlMjB2ZXJ5JTIwaGFwcHklMjB0byUyMHNob3clMjB5b3UlMjB0aGUlMjAlRjAlOUYlQTQlOTclMjBUcmFuc2Zvcm1lcnMlMjBsaWJyYXJ5LiUyMiUyQyUyMCUyMldlJTIwaG9wZSUyMHlvdSUyMGRvbid0JTIwaGF0ZSUyMGl0LiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMHBhZGRpbmclM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBtYXhfbGVuZ3RoJTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJ0ZiUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>tf_batch = tokenizer(
<span class="hljs-meta">... </span>    [<span class="hljs-string">&quot;We are very happy to show you the \u{1F917} Transformers library.&quot;</span>, <span class="hljs-string">&quot;We hope you don&#x27;t hate it.&quot;</span>],
<span class="hljs-meta">... </span>    padding=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    truncation=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    max_length=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span>    return_tensors=<span class="hljs-string">&quot;tf&quot;</span>,
<span class="hljs-meta">... </span>)`}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p:Ce,i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function nc(U){let s,d;return s=new ge({props:{$$slots:{default:[oc]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function rc(U){let s,d,l,m,h,g,Z,R;return{c(){s=r("p"),d=o("Ve el "),l=r("a"),m=o("task summary"),h=o(" para revisar qu\xE9 clase del "),g=r("code"),Z=o("AutoModel"),R=o(" deber\xEDas usar para cada tarea."),this.h()},l(C){s=i(C,"P",{});var q=p(s);d=n(q,"Ve el "),l=i(q,"A",{href:!0});var W=p(l);m=n(W,"task summary"),W.forEach(t),h=n(q," para revisar qu\xE9 clase del "),g=i(q,"CODE",{});var J=p(g);Z=n(J,"AutoModel"),J.forEach(t),R=n(q," deber\xEDas usar para cada tarea."),q.forEach(t),this.h()},h(){y(l,"href","./task_summary")},m(C,q){u(C,s,q),a(s,d),a(s,l),a(l,m),a(s,h),a(s,g),a(g,Z),a(s,R)},d(C){C&&t(s)}}}function ic(U){let s,d,l,m,h,g,Z,R,C,q,W,J,z,N,V,x,b,A,P,I,D,Y,ae,Q,S,ee,H,O,me,le,$e,oe,te,ne,he,T,G,re;return x=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbF9uYW1lJTIwJTNEJTIwJTIybmxwdG93biUyRmJlcnQtYmFzZS1tdWx0aWxpbmd1YWwtdW5jYXNlZC1zZW50aW1lbnQlMjIlMEFwdF9tb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKG1vZGVsX25hbWUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model_name = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = AutoModelForSequenceClassification.from_pretrained(model_name)`}}),A=new vt({props:{$$slots:{default:[rc]},$$scope:{ctx:U}}}),ee=new X({props:{code:"cHRfb3V0cHV0cyUyMCUzRCUyMHB0X21vZGVsKCoqcHRfYmF0Y2gp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_outputs = pt_model(**pt_batch)'}}),G=new X({props:{code:"ZnJvbSUyMHRvcmNoJTIwaW1wb3J0JTIwbm4lMEElMEFwdF9wcmVkaWN0aW9ucyUyMCUzRCUyMG5uLmZ1bmN0aW9uYWwuc29mdG1heChwdF9vdXRwdXRzLmxvZ2l0cyUyQyUyMGRpbSUzRC0xKSUwQXByaW50KHB0X3ByZWRpY3Rpb25zKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> torch <span class="hljs-keyword">import</span> nn

<span class="hljs-meta">&gt;&gt;&gt; </span>pt_predictions = nn.functional.softmax(pt_outputs.logits, dim=-<span class="hljs-number">1</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(pt_predictions)
tensor([[<span class="hljs-number">0.0021</span>, <span class="hljs-number">0.0018</span>, <span class="hljs-number">0.0115</span>, <span class="hljs-number">0.2121</span>, <span class="hljs-number">0.7725</span>],
        [<span class="hljs-number">0.2084</span>, <span class="hljs-number">0.1826</span>, <span class="hljs-number">0.1969</span>, <span class="hljs-number">0.1755</span>, <span class="hljs-number">0.2365</span>]], grad_fn=&lt;SoftmaxBackward0&gt;)`}}),{c(){s=r("p"),d=o("\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),l=r("code"),m=o("AutoModel"),h=o(" como cargar\xEDas un "),g=r("code"),Z=o("AutoTokenizer"),R=o(". La \xFAnica diferencia es seleccionar el "),C=r("code"),q=o("AutoModel"),W=o(" correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),J=r("code"),z=o("AutoModelForSequenceClassification"),N=o(":"),V=f(),_(x.$$.fragment),b=f(),_(A.$$.fragment),P=f(),I=r("p"),D=o("Ahora puedes pasar tu lote (batch) preprocesado de inputs directamente al modelo. Solo tienes que desempacar el diccionario a\xF1adiendo "),Y=r("code"),ae=o("**"),Q=o(":"),S=f(),_(ee.$$.fragment),H=f(),O=r("p"),me=o("El modelo producir\xE1 las activaciones finales en el atributo "),le=r("code"),$e=o("logits"),oe=o(". Aplica la funci\xF3n softmax a "),te=r("code"),ne=o("logits"),he=o(" para obtener las probabilidades:"),T=f(),_(G.$$.fragment)},l(v){s=i(v,"P",{});var F=p(s);d=n(F,"\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),l=i(F,"CODE",{});var pe=p(l);m=n(pe,"AutoModel"),pe.forEach(t),h=n(F," como cargar\xEDas un "),g=i(F,"CODE",{});var qe=p(g);Z=n(qe,"AutoTokenizer"),qe.forEach(t),R=n(F,". La \xFAnica diferencia es seleccionar el "),C=i(F,"CODE",{});var fe=p(C);q=n(fe,"AutoModel"),fe.forEach(t),W=n(F," correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),J=i(F,"CODE",{});var ve=p(J);z=n(ve,"AutoModelForSequenceClassification"),ve.forEach(t),N=n(F,":"),F.forEach(t),V=$(v),j(x.$$.fragment,v),b=$(v),j(A.$$.fragment,v),P=$(v),I=i(v,"P",{});var ie=p(I);D=n(ie,"Ahora puedes pasar tu lote (batch) preprocesado de inputs directamente al modelo. Solo tienes que desempacar el diccionario a\xF1adiendo "),Y=i(ie,"CODE",{});var xe=p(Y);ae=n(xe,"**"),xe.forEach(t),Q=n(ie,":"),ie.forEach(t),S=$(v),j(ee.$$.fragment,v),H=$(v),O=i(v,"P",{});var ye=p(O);me=n(ye,"El modelo producir\xE1 las activaciones finales en el atributo "),le=i(ye,"CODE",{});var Da=p(le);$e=n(Da,"logits"),Da.forEach(t),oe=n(ye,". Aplica la funci\xF3n softmax a "),te=i(ye,"CODE",{});var ha=p(te);ne=n(ha,"logits"),ha.forEach(t),he=n(ye," para obtener las probabilidades:"),ye.forEach(t),T=$(v),j(G.$$.fragment,v)},m(v,F){u(v,s,F),a(s,d),a(s,l),a(l,m),a(s,h),a(s,g),a(g,Z),a(s,R),a(s,C),a(C,q),a(s,W),a(s,J),a(J,z),a(s,N),u(v,V,F),w(x,v,F),u(v,b,F),w(A,v,F),u(v,P,F),u(v,I,F),a(I,D),a(I,Y),a(Y,ae),a(I,Q),u(v,S,F),w(ee,v,F),u(v,H,F),u(v,O,F),a(O,me),a(O,le),a(le,$e),a(O,oe),a(O,te),a(te,ne),a(O,he),u(v,T,F),w(G,v,F),re=!0},p(v,F){const pe={};F&2&&(pe.$$scope={dirty:F,ctx:v}),A.$set(pe)},i(v){re||(M(x.$$.fragment,v),M(A.$$.fragment,v),M(ee.$$.fragment,v),M(G.$$.fragment,v),re=!0)},o(v){E(x.$$.fragment,v),E(A.$$.fragment,v),E(ee.$$.fragment,v),E(G.$$.fragment,v),re=!1},d(v){v&&t(s),v&&t(V),k(x,v),v&&t(b),k(A,v),v&&t(P),v&&t(I),v&&t(S),k(ee,v),v&&t(H),v&&t(O),v&&t(T),k(G,v)}}}function pc(U){let s,d;return s=new ge({props:{$$slots:{default:[ic]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function cc(U){let s;return{c(){s=o("Ve el [task summary](./task_summary) para revisar qu\xE9 clase del `AutoModel`\n  deber\xEDas usar para cada tarea.")},l(d){s=n(d,"Ve el [task summary](./task_summary) para revisar qu\xE9 clase del `AutoModel`\n  deber\xEDas usar para cada tarea.")},m(d,l){u(d,s,l)},d(d){d&&t(s)}}}function uc(U){let s,d,l,m,h,g,Z,R,C,q,W,J,z,N,V,x,b,A,P,I,D,Y,ae,Q,S,ee,H,O,me,le,$e,oe,te,ne,he;return x=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQW1vZGVsX25hbWUlMjAlM0QlMjAlMjJubHB0b3duJTJGYmVydC1iYXNlLW11bHRpbGluZ3VhbC11bmNhc2VkLXNlbnRpbWVudCUyMiUwQXRmX21vZGVsJTIwJTNEJTIwVEZBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChtb2RlbF9uYW1lKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model_name = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFAutoModelForSequenceClassification.from_pretrained(model_name)`}}),A=new vt({props:{$$slots:{default:[cc]},$$scope:{ctx:U}}}),ae=new X({props:{code:"dGZfb3V0cHV0cyUyMCUzRCUyMHRmX21vZGVsKHRmX2JhdGNoKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_outputs = tf_model(tf_batch)'}}),ne=new X({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEElMEF0Zl9wcmVkaWN0aW9ucyUyMCUzRCUyMHRmLm5uLnNvZnRtYXgodGZfb3V0cHV0cy5sb2dpdHMlMkMlMjBheGlzJTNELTEpJTBBcHJpbnQodGYubWF0aC5yb3VuZCh0Zl9wcmVkaWN0aW9ucyUyMColMjAxMCoqNCklMjAlMkYlMjAxMCoqNCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf

<span class="hljs-meta">&gt;&gt;&gt; </span>tf_predictions = tf.nn.softmax(tf_outputs.logits, axis=-<span class="hljs-number">1</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(tf.math.<span class="hljs-built_in">round</span>(tf_predictions * <span class="hljs-number">10</span>**<span class="hljs-number">4</span>) / <span class="hljs-number">10</span>**<span class="hljs-number">4</span>)
tf.Tensor(
[[<span class="hljs-number">0.0021</span> <span class="hljs-number">0.0018</span> <span class="hljs-number">0.0116</span> <span class="hljs-number">0.2121</span> <span class="hljs-number">0.7725</span>]
 [<span class="hljs-number">0.2084</span> <span class="hljs-number">0.1826</span> <span class="hljs-number">0.1969</span> <span class="hljs-number">0.1755</span>  <span class="hljs-number">0.2365</span>]], shape=(<span class="hljs-number">2</span>, <span class="hljs-number">5</span>), dtype=float32)`}}),{c(){s=r("p"),d=o("\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),l=r("code"),m=o("TFAutoModel"),h=o(" como cargar\xEDas un "),g=r("code"),Z=o("AutoTokenizer"),R=o(". La \xFAnica diferencia es seleccionar el "),C=r("code"),q=o("TFAutoModel"),W=o(" correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),J=r("code"),z=o("TFAutoModelForSequenceClassification"),N=o(":"),V=f(),_(x.$$.fragment),b=f(),_(A.$$.fragment),P=f(),I=r("p"),D=o("Ahora puedes pasar tu lote preprocesado de inputs directamente al modelo pasando las llaves del diccionario directamente a los tensores:"),Y=f(),_(ae.$$.fragment),Q=f(),S=r("p"),ee=o("El modelo producir\xE1 las activaciones finales en el atributo "),H=r("code"),O=o("logits"),me=o(". Aplica la funci\xF3n softmax a "),le=r("code"),$e=o("logits"),oe=o(" para obtener las probabilidades:"),te=f(),_(ne.$$.fragment)},l(T){s=i(T,"P",{});var G=p(s);d=n(G,"\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),l=i(G,"CODE",{});var re=p(l);m=n(re,"TFAutoModel"),re.forEach(t),h=n(G," como cargar\xEDas un "),g=i(G,"CODE",{});var v=p(g);Z=n(v,"AutoTokenizer"),v.forEach(t),R=n(G,". La \xFAnica diferencia es seleccionar el "),C=i(G,"CODE",{});var F=p(C);q=n(F,"TFAutoModel"),F.forEach(t),W=n(G," correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),J=i(G,"CODE",{});var pe=p(J);z=n(pe,"TFAutoModelForSequenceClassification"),pe.forEach(t),N=n(G,":"),G.forEach(t),V=$(T),j(x.$$.fragment,T),b=$(T),j(A.$$.fragment,T),P=$(T),I=i(T,"P",{});var qe=p(I);D=n(qe,"Ahora puedes pasar tu lote preprocesado de inputs directamente al modelo pasando las llaves del diccionario directamente a los tensores:"),qe.forEach(t),Y=$(T),j(ae.$$.fragment,T),Q=$(T),S=i(T,"P",{});var fe=p(S);ee=n(fe,"El modelo producir\xE1 las activaciones finales en el atributo "),H=i(fe,"CODE",{});var ve=p(H);O=n(ve,"logits"),ve.forEach(t),me=n(fe,". Aplica la funci\xF3n softmax a "),le=i(fe,"CODE",{});var ie=p(le);$e=n(ie,"logits"),ie.forEach(t),oe=n(fe," para obtener las probabilidades:"),fe.forEach(t),te=$(T),j(ne.$$.fragment,T)},m(T,G){u(T,s,G),a(s,d),a(s,l),a(l,m),a(s,h),a(s,g),a(g,Z),a(s,R),a(s,C),a(C,q),a(s,W),a(s,J),a(J,z),a(s,N),u(T,V,G),w(x,T,G),u(T,b,G),w(A,T,G),u(T,P,G),u(T,I,G),a(I,D),u(T,Y,G),w(ae,T,G),u(T,Q,G),u(T,S,G),a(S,ee),a(S,H),a(H,O),a(S,me),a(S,le),a(le,$e),a(S,oe),u(T,te,G),w(ne,T,G),he=!0},p(T,G){const re={};G&2&&(re.$$scope={dirty:G,ctx:T}),A.$set(re)},i(T){he||(M(x.$$.fragment,T),M(A.$$.fragment,T),M(ae.$$.fragment,T),M(ne.$$.fragment,T),he=!0)},o(T){E(x.$$.fragment,T),E(A.$$.fragment,T),E(ae.$$.fragment,T),E(ne.$$.fragment,T),he=!1},d(T){T&&t(s),T&&t(V),k(x,T),T&&t(b),k(A,T),T&&t(P),T&&t(I),T&&t(Y),k(ae,T),T&&t(Q),T&&t(S),T&&t(te),k(ne,T)}}}function dc(U){let s,d;return s=new ge({props:{$$slots:{default:[uc]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function mc(U){let s,d,l,m,h;return{c(){s=r("p"),d=o("Todos los modelos de \u{1F917} Transformers (PyTorch o TensorFlow) producir\xE1n los tensores "),l=r("em"),m=o("antes"),h=o(` de la funci\xF3n de activaci\xF3n
final (como softmax) porque la funci\xF3n de activaci\xF3n final es com\xFAnmente fusionada con la p\xE9rdida.`)},l(g){s=i(g,"P",{});var Z=p(s);d=n(Z,"Todos los modelos de \u{1F917} Transformers (PyTorch o TensorFlow) producir\xE1n los tensores "),l=i(Z,"EM",{});var R=p(l);m=n(R,"antes"),R.forEach(t),h=n(Z,` de la funci\xF3n de activaci\xF3n
final (como softmax) porque la funci\xF3n de activaci\xF3n final es com\xFAnmente fusionada con la p\xE9rdida.`),Z.forEach(t)},m(g,Z){u(g,s,Z),a(s,d),a(s,l),a(l,m),a(s,h)},d(g){g&&t(s)}}}function fc(U){let s,d,l,m,h;return{c(){s=r("p"),d=o(`Los outputs del modelo de \u{1F917} Transformers son dataclasses especiales por lo que sus atributos pueden ser completados en un IDE.
Los outputs del modelo tambi\xE9n se comportan como tuplas o diccionarios (e.g., puedes indexar con un entero, un slice o una cadena) en cuyo caso los atributos que son `),l=r("code"),m=o("None"),h=o(" son ignorados.")},l(g){s=i(g,"P",{});var Z=p(s);d=n(Z,`Los outputs del modelo de \u{1F917} Transformers son dataclasses especiales por lo que sus atributos pueden ser completados en un IDE.
Los outputs del modelo tambi\xE9n se comportan como tuplas o diccionarios (e.g., puedes indexar con un entero, un slice o una cadena) en cuyo caso los atributos que son `),l=i(Z,"CODE",{});var R=p(l);m=n(R,"None"),R.forEach(t),h=n(Z," son ignorados."),Z.forEach(t)},m(g,Z){u(g,s,Z),a(s,d),a(s,l),a(l,m),a(s,h)},d(g){g&&t(s)}}}function $c(U){let s,d,l,m,h,g,Z,R,C,q,W,J,z,N,V,x;return Z=new X({props:{code:"cHRfc2F2ZV9kaXJlY3RvcnklMjAlM0QlMjAlMjIuJTJGcHRfc2F2ZV9wcmV0cmFpbmVkJTIyJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZChwdF9zYXZlX2RpcmVjdG9yeSklMEFwdF9tb2RlbC5zYXZlX3ByZXRyYWluZWQocHRfc2F2ZV9kaXJlY3Rvcnkp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_save_directory = <span class="hljs-string">&quot;./pt_save_pretrained&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.save_pretrained(pt_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.save_pretrained(pt_save_directory)`}}),V=new X({props:{code:"cHRfbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZCglMjIuJTJGcHRfc2F2ZV9wcmV0cmFpbmVkJTIyKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = AutoModelForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;./pt_save_pretrained&quot;</span>)'}}),{c(){s=r("p"),d=o("Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),l=r("code"),m=o("PreTrainedModel.save_pretrained()"),h=o(":"),g=f(),_(Z.$$.fragment),R=f(),C=r("p"),q=o("Cuando quieras usar el modelo otra vez c\xE1rgalo con "),W=r("code"),J=o("PreTrainedModel.from_pretrained()"),z=o(":"),N=f(),_(V.$$.fragment)},l(b){s=i(b,"P",{});var A=p(s);d=n(A,"Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),l=i(A,"CODE",{});var P=p(l);m=n(P,"PreTrainedModel.save_pretrained()"),P.forEach(t),h=n(A,":"),A.forEach(t),g=$(b),j(Z.$$.fragment,b),R=$(b),C=i(b,"P",{});var I=p(C);q=n(I,"Cuando quieras usar el modelo otra vez c\xE1rgalo con "),W=i(I,"CODE",{});var D=p(W);J=n(D,"PreTrainedModel.from_pretrained()"),D.forEach(t),z=n(I,":"),I.forEach(t),N=$(b),j(V.$$.fragment,b)},m(b,A){u(b,s,A),a(s,d),a(s,l),a(l,m),a(s,h),u(b,g,A),w(Z,b,A),u(b,R,A),u(b,C,A),a(C,q),a(C,W),a(W,J),a(C,z),u(b,N,A),w(V,b,A),x=!0},p:Ce,i(b){x||(M(Z.$$.fragment,b),M(V.$$.fragment,b),x=!0)},o(b){E(Z.$$.fragment,b),E(V.$$.fragment,b),x=!1},d(b){b&&t(s),b&&t(g),k(Z,b),b&&t(R),b&&t(C),b&&t(N),k(V,b)}}}function hc(U){let s,d;return s=new ge({props:{$$slots:{default:[$c]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function bc(U){let s,d,l,m,h,g,Z,R,C,q,W,J,z,N,V,x;return Z=new X({props:{code:"dGZfc2F2ZV9kaXJlY3RvcnklMjAlM0QlMjAlMjIuJTJGdGZfc2F2ZV9wcmV0cmFpbmVkJTIyJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZCh0Zl9zYXZlX2RpcmVjdG9yeSklMEF0Zl9tb2RlbC5zYXZlX3ByZXRyYWluZWQodGZfc2F2ZV9kaXJlY3Rvcnkp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>tf_save_directory = <span class="hljs-string">&quot;./tf_save_pretrained&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.save_pretrained(tf_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.save_pretrained(tf_save_directory)`}}),V=new X({props:{code:"dGZfbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKCUyMi4lMkZ0Zl9zYXZlX3ByZXRyYWluZWQlMjIp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFAutoModelForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;./tf_save_pretrained&quot;</span>)'}}),{c(){s=r("p"),d=o("Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),l=r("code"),m=o("TFPreTrainedModel.save_pretrained()"),h=o(":"),g=f(),_(Z.$$.fragment),R=f(),C=r("p"),q=o("Cuando quieras usar el modelo otra vez c\xE1rgalo con "),W=r("code"),J=o("TFPreTrainedModel.from_pretrained()"),z=o(":"),N=f(),_(V.$$.fragment)},l(b){s=i(b,"P",{});var A=p(s);d=n(A,"Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),l=i(A,"CODE",{});var P=p(l);m=n(P,"TFPreTrainedModel.save_pretrained()"),P.forEach(t),h=n(A,":"),A.forEach(t),g=$(b),j(Z.$$.fragment,b),R=$(b),C=i(b,"P",{});var I=p(C);q=n(I,"Cuando quieras usar el modelo otra vez c\xE1rgalo con "),W=i(I,"CODE",{});var D=p(W);J=n(D,"TFPreTrainedModel.from_pretrained()"),D.forEach(t),z=n(I,":"),I.forEach(t),N=$(b),j(V.$$.fragment,b)},m(b,A){u(b,s,A),a(s,d),a(s,l),a(l,m),a(s,h),u(b,g,A),w(Z,b,A),u(b,R,A),u(b,C,A),a(C,q),a(C,W),a(W,J),a(C,z),u(b,N,A),w(V,b,A),x=!0},p:Ce,i(b){x||(M(Z.$$.fragment,b),M(V.$$.fragment,b),x=!0)},o(b){E(Z.$$.fragment,b),E(V.$$.fragment,b),x=!1},d(b){b&&t(s),b&&t(g),k(Z,b),b&&t(R),b&&t(C),b&&t(N),k(V,b)}}}function gc(U){let s,d;return s=new ge({props:{$$slots:{default:[bc]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function vc(U){let s,d;return s=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKHRmX3NhdmVfZGlyZWN0b3J5KSUwQXB0X21vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQodGZfc2F2ZV9kaXJlY3RvcnklMkMlMjBmcm9tX3RmJTNEVHJ1ZSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel

<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(tf_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = AutoModelForSequenceClassification.from_pretrained(tf_save_directory, from_tf=<span class="hljs-literal">True</span>)`}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p:Ce,i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function yc(U){let s,d;return s=new ge({props:{$$slots:{default:[vc]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function _c(U){let s,d;return s=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQocHRfc2F2ZV9kaXJlY3RvcnkpJTBBdGZfbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKHB0X3NhdmVfZGlyZWN0b3J5JTJDJTIwZnJvbV9wdCUzRFRydWUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModel

<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(pt_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFAutoModelForSequenceClassification.from_pretrained(pt_save_directory, from_pt=<span class="hljs-literal">True</span>)`}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p:Ce,i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function jc(U){let s,d;return s=new ge({props:{$$slots:{default:[_c]},$$scope:{ctx:U}}}),{c(){_(s.$$.fragment)},l(l){j(s.$$.fragment,l)},m(l,m){w(s,l,m),d=!0},p(l,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:l}),s.$set(h)},i(l){d||(M(s.$$.fragment,l),d=!0)},o(l){E(s.$$.fragment,l),d=!1},d(l){k(s,l)}}}function wc(U){let s,d,l,m,h,g,Z,R,C,q,W,J,z,N,V,x,b,A,P,I,D,Y,ae,Q,S,ee,H,O,me,le,$e,oe,te,ne,he,T,G,re,v,F,pe,qe,fe,ve,ie,xe,ye,Da,ha,B,yt,eo,ao,_t,to,so,jt,lo,oo,wt,no,ro,Mt,io,po,Et,co,uo,kt,mo,fo,Tt,$o,Cs,ba,Jt,ho,bo,qs,_e,Zt,go,vo,Ut,yo,_o,Ct,jo,As,ga,qt,wo,Mo,zs,Ie,At,Eo,ko,zt,To,Rs,Xe,Ws,Ae,Ne,Rt,va,Jo,Wt,Zo,Gs,Se,Uo,Gt,Co,qo,Vs,Qa,Ao,Fs,Be,xs,Pe,zo,Vt,Ro,Wo,Is,ya,Xs,je,Go,_a,Vo,Fo,Ft,xo,Io,Ns,ja,Ss,Ye,Xo,xt,No,So,Bs,we,Bo,It,Po,Yo,wa,Do,Qo,Ps,Ma,Ys,be,Ho,Xt,Oo,Lo,Nt,Ko,en,St,an,tn,Ds,Ea,Qs,Me,sn,ka,ln,on,Ta,nn,rn,Hs,Ja,Os,De,pn,Bt,cn,un,Ls,Za,Ks,Qe,dn,Pt,mn,fn,el,Ua,al,He,$n,Ha,hn,bn,tl,ze,Oe,Yt,Ca,gn,Dt,vn,sl,ce,yn,Qt,_n,jn,qa,wn,Mn,Ht,En,kn,Aa,Tn,Jn,ll,za,ol,Le,nl,Ee,Zn,Ot,Un,Cn,Lt,qn,An,rl,Ra,il,ke,zn,Oa,Rn,Wn,La,Gn,Vn,pl,Re,Ke,Kt,Wa,Fn,es,xn,cl,Ga,ul,L,In,as,Xn,Nn,ts,Sn,Bn,ss,Pn,Yn,Ka,Dn,Qn,ls,Hn,On,os,Ln,Kn,dl,Te,er,ns,ar,tr,rs,sr,lr,ml,We,ea,is,Va,or,ps,nr,fl,Je,rr,cs,ir,pr,et,cr,ur,$l,aa,dr,us,mr,fr,hl,Fa,bl,ta,$r,ds,hr,br,gl,at,gr,vl,xa,yl,tt,vr,_l,sa,st,lt,yr,_r,jr,ot,nt,wr,Mr,jl,la,Er,ms,kr,Tr,wl,oa,Ml,na,Jr,rt,Zr,Ur,El,Ge,ra,fs,Ia,Cr,$s,qr,kl,ia,Tl,pa,Jl,K,Ar,Xa,hs,zr,Rr,Na,bs,Wr,Gr,gs,Vr,Fr,vs,xr,Ir,Sa,Xr,Nr,it,Sr,Br,Zl,ca,Ul,Ve,ua,ys,Ba,Pr,_s,Yr,Cl,da,ql,Ze,Dr,js,Qr,Hr,ws,Or,Lr,Al,ma,zl;return g=new $a({}),W=new Pp({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/es/quicktour.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/es/pytorch/quicktour.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/es/tensorflow/quicktour.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/es/quicktour.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/es/pytorch/quicktour.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/es/tensorflow/quicktour.ipynb"}]}}),Y=new vt({props:{$$slots:{default:[Yp]},$$scope:{ctx:U}}}),H=new $a({}),G=new xp({props:{id:"tiZFewofSLM"}}),Xe=new vt({props:{$$slots:{default:[Dp]},$$scope:{ctx:U}}}),va=new $a({}),Be=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Lp],pytorch:[Hp]},$$scope:{ctx:U}}}),ya=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc2lmaWNhZG9yJTIwJTNEJTIwcGlwZWxpbmUoJTIyc2VudGltZW50LWFuYWx5c2lzJTIyJTJDJTIwbW9kZWwlM0QlMjJweXNlbnRpbWllbnRvJTJGcm9iZXJ0dWl0by1zZW50aW1lbnQtYW5hbHlzaXMlMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>clasificador = pipeline(<span class="hljs-string">&quot;sentiment-analysis&quot;</span>, model=<span class="hljs-string">&quot;pysentimiento/robertuito-sentiment-analysis&quot;</span>)`}}),ja=new X({props:{code:"Y2xhc2lmaWNhZG9yKCUyMkVzdGFtb3MlMjBtdXklMjBmZWxpY2VzJTIwZGUlMjBtb3N0cmFydGUlMjBsYSUyMGJpYmxpb3RlY2ElMjBkZSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>clasificador(<span class="hljs-string">&quot;Estamos muy felices de mostrarte la biblioteca de \u{1F917} Transformers.&quot;</span>)
[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;POS&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9320</span>}]`}}),Ma=new X({props:{code:"cGlwJTIwaW5zdGFsbCUyMGRhdGFzZXRz",highlighted:"pip install datasets"}}),Ea=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwcGlwZWxpbmUlMEElMEFyZWNvbm9jZWRvcl9kZV92b3olMjAlM0QlMjBwaXBlbGluZSglMEElMjAlMjAlMjAlMjAlMjJhdXRvbWF0aWMtc3BlZWNoLXJlY29nbml0aW9uJTIyJTJDJTIwbW9kZWwlM0QlMjJqb25hdGFzZ3Jvc21hbiUyRndhdjJ2ZWMyLWxhcmdlLXhsc3ItNTMtc3BhbmlzaCUyMiUyQyUyMGRldmljZSUzRDAlMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>reconocedor_de_voz = pipeline(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=<span class="hljs-string">&quot;jonatasgrosman/wav2vec2-large-xlsr-53-spanish&quot;</span>, device=<span class="hljs-number">0</span>
<span class="hljs-meta">... </span>)`}}),Ja=new X({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTJDJTIwQXVkaW8lMEElMEFkYXRhc2V0JTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMlBvbHlBSSUyRm1pbmRzMTQlMjIlMkMlMjBuYW1lJTNEJTIyZXMtRVMlMjIlMkMlMjBzcGxpdCUzRCUyMnRyYWluJTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Audio

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, name=<span class="hljs-string">&quot;es-ES&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)`}}),Za=new X({props:{code:"ZGF0YXNldCUyMCUzRCUyMGRhdGFzZXQuY2FzdF9jb2x1bW4oJTIyYXVkaW8lMjIlMkMlMjBBdWRpbyhzYW1wbGluZ19yYXRlJTNEcmVjb25vY2Vkb3JfZGVfdm96LmZlYXR1cmVfZXh0cmFjdG9yLnNhbXBsaW5nX3JhdGUpKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = dataset.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=reconocedor_de_voz.feature_extractor.sampling_rate))'}}),Ua=new X({props:{code:"cmVzdWx0YWRvJTIwJTNEJTIwcmVjb25vY2Vkb3JfZGVfdm96KGRhdGFzZXQlNUIlM0E0JTVEJTVCJTIyYXVkaW8lMjIlNUQpJTBBcHJpbnQoJTVCZCU1QiUyMnRleHQlMjIlNUQlMjBmb3IlMjBkJTIwaW4lMjByZXN1bHRhZG8lNUQp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>resultado = reconocedor_de_voz(dataset[:<span class="hljs-number">4</span>][<span class="hljs-string">&quot;audio&quot;</span>])
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>([d[<span class="hljs-string">&quot;text&quot;</span>] <span class="hljs-keyword">for</span> d <span class="hljs-keyword">in</span> resultado])
[<span class="hljs-string">&#x27;ahora buenas eh a ver tengo un problema con vuestra aplicaci\xF3n resulta que que quiero hacer una transferencia bancaria a una cuenta conocida pero me da error la aplicaci\xF3n a ver que a ver que puede ser&#x27;</span>, <span class="hljs-string">&#x27;la aplicaci\xF3n no cargue saldo de mi nueva cuenta&#x27;</span>, <span class="hljs-string">&#x27;hola tengo un problema con la aplicaci\xF3n no carga y y tampoco veo que carga el saldo de mi cuenta nueva dice que la aplicaci\xF3n est\xE1 siendo reparada y ahora no puedo acceder a mi cuenta no necesito inmediatamente&#x27;</span>, <span class="hljs-string">&#x27;hora buena la aplicaci\xF3n no se carga la vida no carga el saldo de mi cuenta nueva dice que la villadenta siendo reparada y oro no puedo hacer a mi cuenta&#x27;</span>]`}}),Ca=new $a({}),za=new X({props:{code:"bW9kZWxfbmFtZSUyMCUzRCUyMCUyMm5scHRvd24lMkZiZXJ0LWJhc2UtbXVsdGlsaW5ndWFsLXVuY2FzZWQtc2VudGltZW50JTIy",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model_name = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>'}}),Le=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[tc],pytorch:[ec]},$$scope:{ctx:U}}}),Ra=new X({props:{code:"Y2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnNlbnRpbWVudC1hbmFseXNpcyUyMiUyQyUyMG1vZGVsJTNEbW9kZWwlMkMlMjB0b2tlbml6ZXIlM0R0b2tlbml6ZXIpJTBBY2xhc3NpZmllciglMjJOb3VzJTIwc29tbWVzJTIwdHIlQzMlQThzJTIwaGV1cmV1eCUyMGRlJTIwdm91cyUyMHByJUMzJUE5c2VudGVyJTIwbGElMjBiaWJsaW90aCVDMyVBOHF1ZSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>classifier = pipeline(<span class="hljs-string">&quot;sentiment-analysis&quot;</span>, model=model, tokenizer=tokenizer)
<span class="hljs-meta">&gt;&gt;&gt; </span>classifier(<span class="hljs-string">&quot;Nous sommes tr\xE8s heureux de vous pr\xE9senter la biblioth\xE8que \u{1F917} Transformers.&quot;</span>)
[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;5 stars&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.7273</span>}]`}}),Wa=new $a({}),Ga=new xp({props:{id:"AhChOFRegn4"}}),Va=new $a({}),Fa=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFub21icmVfZGVsX21vZGVsbyUyMCUzRCUyMCUyMm5scHRvd24lMkZiZXJ0LWJhc2UtbXVsdGlsaW5ndWFsLXVuY2FzZWQtc2VudGltZW50JTIyJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQobm9tYnJlX2RlbF9tb2RlbG8p",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

<span class="hljs-meta">&gt;&gt;&gt; </span>nombre_del_modelo = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(nombre_del_modelo)`}}),xa=new X({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIoJTIyRXN0YW1vcyUyMG11eSUyMGZlbGljZXMlMjBkZSUyMG1vc3RyYXJ0ZSUyMGxhJTIwYmlibGlvdGVjYSUyMGRlJTIwJUYwJTlGJUE0JTk3JTIwVHJhbnNmb3JtZXJzLiUyMiklMEFwcmludChlbmNvZGluZyk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>encoding = tokenizer(<span class="hljs-string">&quot;Estamos muy felices de mostrarte la biblioteca de \u{1F917} Transformers.&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(encoding)
{<span class="hljs-string">&#x27;input_ids&#x27;</span>: [<span class="hljs-number">101</span>, <span class="hljs-number">10602</span>, <span class="hljs-number">14000</span>, <span class="hljs-number">13653</span>, <span class="hljs-number">43353</span>, <span class="hljs-number">10107</span>, <span class="hljs-number">10102</span>, <span class="hljs-number">47201</span>, <span class="hljs-number">10218</span>, <span class="hljs-number">10106</span>, <span class="hljs-number">18283</span>, <span class="hljs-number">10102</span>, <span class="hljs-number">100</span>, <span class="hljs-number">58263</span>, <span class="hljs-number">119</span>, <span class="hljs-number">102</span>],
 <span class="hljs-string">&#x27;token_type_ids&#x27;</span>: [<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>],
 <span class="hljs-string">&#x27;attention_mask&#x27;</span>: [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>]}`}}),oa=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[nc],pytorch:[lc]},$$scope:{ctx:U}}}),Ia=new $a({}),ia=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[dc],pytorch:[pc]},$$scope:{ctx:U}}}),pa=new vt({props:{$$slots:{default:[mc]},$$scope:{ctx:U}}}),ca=new vt({props:{$$slots:{default:[fc]},$$scope:{ctx:U}}}),Ba=new $a({}),da=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[gc],pytorch:[hc]},$$scope:{ctx:U}}}),ma=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[jc],pytorch:[yc]},$$scope:{ctx:U}}}),{c(){s=r("meta"),d=f(),l=r("h1"),m=r("a"),h=r("span"),_(g.$$.fragment),Z=f(),R=r("span"),C=o("Tour r\xE1pido"),q=f(),_(W.$$.fragment),J=f(),z=r("p"),N=o("\xA1Entra en marcha con los \u{1F917} Transformers! Comienza usando "),V=r("code"),x=o("pipeline()"),b=o(" para una inferencia veloz, carga un modelo preentrenado y un tokenizador con una "),A=r("a"),P=o("AutoClass"),I=o(" para resolver tu tarea de texto, visi\xF3n o audio."),D=f(),_(Y.$$.fragment),ae=f(),Q=r("h2"),S=r("a"),ee=r("span"),_(H.$$.fragment),O=f(),me=r("span"),le=o("Pipeline"),$e=f(),oe=r("p"),te=r("code"),ne=o("pipeline()"),he=o(" es la forma m\xE1s f\xE1cil de usar un modelo preentrenado para una tarea dada."),T=f(),_(G.$$.fragment),re=f(),v=r("p"),F=o("El "),pe=r("code"),qe=o("pipeline()"),fe=o(" soporta muchas tareas comunes listas para usar:"),ve=f(),ie=r("p"),xe=r("strong"),ye=o("Texto"),Da=o(":"),ha=f(),B=r("ul"),yt=r("li"),eo=o("An\xE1lisis de Sentimiento (Sentiment Analysis, en ingl\xE9s): clasifica la polaridad de un texto dado."),ao=f(),_t=r("li"),to=o("Generaci\xF3n de Texto (Text Generation, en ingl\xE9s): genera texto a partir de un input dado."),so=f(),jt=r("li"),lo=o("Reconocimiento de Entidades (Name Entity Recognition o NER, en ingl\xE9s): etiqueta cada palabra con la entidad que representa (persona, fecha, ubicaci\xF3n, etc.)."),oo=f(),wt=r("li"),no=o("Responder Preguntas (Question answering, en ingl\xE9s): extrae la respuesta del contexto dado un contexto y una pregunta."),ro=f(),Mt=r("li"),io=o("Rellenar M\xE1scara (Fill-mask, en ingl\xE9s): rellena el espacio faltante dado un texto con palabras enmascaradas."),po=f(),Et=r("li"),co=o("Resumir (Summarization, en ingl\xE9s): genera un resumen de una secuencia larga de texto o un documento."),uo=f(),kt=r("li"),mo=o("Traducci\xF3n (Translation, en ingl\xE9s): traduce un texto a otro idioma."),fo=f(),Tt=r("li"),$o=o("Extracci\xF3n de Caracter\xEDsticas (Feature Extraction, en ingl\xE9s): crea una representaci\xF3n tensorial del texto."),Cs=f(),ba=r("p"),Jt=r("strong"),ho=o("Imagen"),bo=o(":"),qs=f(),_e=r("ul"),Zt=r("li"),go=o("Clasificaci\xF3n de Im\xE1genes (Image Classification, en ingl\xE9s): clasifica una imagen."),vo=f(),Ut=r("li"),yo=o("Segmentaci\xF3n de Im\xE1genes (Image Segmentation, en ingl\xE9s): clasifica cada pixel de una imagen."),_o=f(),Ct=r("li"),jo=o("Detecci\xF3n de Objetos (Object Detection, en ingl\xE9s): detecta objetos dentro de una imagen."),As=f(),ga=r("p"),qt=r("strong"),wo=o("Audio"),Mo=o(":"),zs=f(),Ie=r("ul"),At=r("li"),Eo=o("Clasificaci\xF3n de Audios (Audio Classification, en ingl\xE9s): asigna una etiqueta a un segmento de audio."),ko=f(),zt=r("li"),To=o("Reconocimiento de Voz Autom\xE1tico (Automatic Speech Recognition o ASR, en ingl\xE9s): transcribe datos de audio a un texto."),Rs=f(),_(Xe.$$.fragment),Ws=f(),Ae=r("h3"),Ne=r("a"),Rt=r("span"),_(va.$$.fragment),Jo=f(),Wt=r("span"),Zo=o("Uso del Pipeline"),Gs=f(),Se=r("p"),Uo=o("En el siguiente ejemplo, usar\xE1s el "),Gt=r("code"),Co=o("pipeline()"),qo=o(" para an\xE1lisis de sentimiento."),Vs=f(),Qa=r("p"),Ao=o("Instala las siguientes dependencias si a\xFAn no lo has hecho:"),Fs=f(),_(Be.$$.fragment),xs=f(),Pe=r("p"),zo=o("Importa "),Vt=r("code"),Ro=o("pipeline()"),Wo=o(" y especifica la tarea que deseas completar:"),Is=f(),_(ya.$$.fragment),Xs=f(),je=r("p"),Go=o("El pipeline descarga y almacena en cach\xE9 el "),_a=r("a"),Vo=o("modelo preentrenado"),Fo=o(" y tokeniza para an\xE1lisis de sentimiento. Si no hubieramos elegido un modelo el pipeline habr\xEDa elegido uno por defecto. Ahora puedes usar "),Ft=r("code"),xo=o("clasificador"),Io=o(" en tu texto objetivo:"),Ns=f(),_(ja.$$.fragment),Ss=f(),Ye=r("p"),Xo=o("Para m\xE1s de un enunciado, entrega una lista al "),xt=r("code"),No=o("pipeline()"),So=o(" que devolver\xE1 una lista de diccionarios:"),Bs=f(),we=r("p"),Bo=o("El "),It=r("code"),Po=o("pipeline()"),Yo=o(" tambi\xE9n puede iterar sobre un dataset entero. Comienza instalando la biblioteca "),wa=r("a"),Do=o("\u{1F917} Datasets"),Qo=o(":"),Ps=f(),_(Ma.$$.fragment),Ys=f(),be=r("p"),Ho=o("Crea un "),Xt=r("code"),Oo=o("pipeline()"),Lo=o(" con la tarea que deseas resolver y el modelo que quieres usar. Coloca el par\xE1metro "),Nt=r("code"),Ko=o("device"),en=o(" a "),St=r("code"),an=o("0"),tn=o(" para poner los tensores en un dispositivo CUDA:"),Ds=f(),_(Ea.$$.fragment),Qs=f(),Me=r("p"),sn=o("A continuaci\xF3n, carga el dataset (ve \u{1F917} Datasets "),ka=r("a"),ln=o("Quick Start"),on=o(" para m\xE1s detalles) sobre el que quisieras iterar. Por ejemplo, vamos a cargar el dataset "),Ta=r("a"),nn=o("MInDS-14"),rn=o(":"),Hs=f(),_(Ja.$$.fragment),Os=f(),De=r("p"),pn=o("Debemos asegurarnos de que la frecuencia de muestreo del conjunto de datos coincide con la frecuencia de muestreo con la que se entren\xF3 "),Bt=r("code"),cn=o("jonatasgrosman/wav2vec2-large-xlsr-53-spanish"),un=o("."),Ls=f(),_(Za.$$.fragment),Ks=f(),Qe=r("p"),dn=o("Los archivos de audio se cargan y remuestrean autom\xE1ticamente cuando llamamos a la columna "),Pt=r("code"),mn=o('"audio"'),fn=o(`.
Extraigamos las matrices de onda cruda (raw waveform, en ingl\xE9s) de las primeras 4 muestras y pas\xE9mosla como una lista al pipeline:`),el=f(),_(Ua.$$.fragment),al=f(),He=r("p"),$n=o("Para un dataset m\xE1s grande, donde los inputs son de mayor tama\xF1o (como en habla/audio o visi\xF3n), querr\xE1s pasar un generador en lugar de una lista que carga todos los inputs en memoria. Ve la "),Ha=r("a"),hn=o("documentaci\xF3n del pipeline"),bn=o(" para m\xE1s informaci\xF3n."),tl=f(),ze=r("h3"),Oe=r("a"),Yt=r("span"),_(Ca.$$.fragment),gn=f(),Dt=r("span"),vn=o("Usa otro modelo y otro tokenizador en el pipeline"),sl=f(),ce=r("p"),yn=o("El "),Qt=r("code"),_n=o("pipeline()"),jn=o(" puede acomodarse a cualquier modelo del "),qa=r("a"),wn=o("Model Hub"),Mn=o(" haciendo m\xE1s f\xE1cil adaptar el "),Ht=r("code"),En=o("pipeline()"),kn=o(" para otros casos de uso. Por ejemplo, si quisieras un modelo capaz de manejar texto en franc\xE9s, usa los tags en el Model Hub para filtrar entre los modelos apropiados. El resultado mejor filtrado devuelve un "),Aa=r("a"),Tn=o("modelo BERT"),Jn=o(" multilingual fine-tuned para el an\xE1lisis de sentimiento. Genial, \xA1vamos a usar este modelo!"),ll=f(),_(za.$$.fragment),ol=f(),_(Le.$$.fragment),nl=f(),Ee=r("p"),Zn=o("Despu\xE9s puedes especificar el modelo y el tokenizador en el "),Ot=r("code"),Un=o("pipeline()"),Cn=o(", y aplicar el "),Lt=r("code"),qn=o("classifier"),An=o(" en tu texto objetivo:"),rl=f(),_(Ra.$$.fragment),il=f(),ke=r("p"),zn=o("Si no pudieras encontrar el modelo para tu caso respectivo de uso necesitar\xE1s ajustar un modelo preentrenado a tus datos. Mira nuestro "),Oa=r("a"),Rn=o("tutorial de fine-tuning"),Wn=o(" para aprender c\xF3mo. Finalmente, despu\xE9s de que has ajustado tu modelo preentrenado, \xA1por favor considera compartirlo (ve el tutorial "),La=r("a"),Gn=o("aqu\xED"),Vn=o(") con la comunidad en el Model Hub para democratizar el NLP! \u{1F917}"),pl=f(),Re=r("h2"),Ke=r("a"),Kt=r("span"),_(Wa.$$.fragment),Fn=f(),es=r("span"),xn=o("AutoClass"),cl=f(),_(Ga.$$.fragment),ul=f(),L=r("p"),In=o("Por debajo, las clases "),as=r("code"),Xn=o("AutoModelForSequenceClassification"),Nn=o(" y "),ts=r("code"),Sn=o("AutoTokenizer"),Bn=o(" trabajan juntas para dar poder al "),ss=r("code"),Pn=o("pipeline()"),Yn=o(". Una "),Ka=r("a"),Dn=o("AutoClass"),Qn=o(" es un atajo que autom\xE1ticamente recupera la arquitectura de un modelo preentrenado con su nombre o el path. S\xF3lo necesitar\xE1s seleccionar el "),ls=r("code"),Hn=o("AutoClass"),On=o(" apropiado para tu tarea y tu tokenizador asociado con "),os=r("code"),Ln=o("AutoTokenizer"),Kn=o("."),dl=f(),Te=r("p"),er=o("Regresemos a nuestro ejemplo y veamos c\xF3mo puedes usar el "),ns=r("code"),ar=o("AutoClass"),tr=o(" para reproducir los resultados del "),rs=r("code"),sr=o("pipeline()"),lr=o("."),ml=f(),We=r("h3"),ea=r("a"),is=r("span"),_(Va.$$.fragment),or=f(),ps=r("span"),nr=o("AutoTokenizer"),fl=f(),Je=r("p"),rr=o("Un tokenizador es responsable de procesar el texto a un formato que sea entendible para el modelo. Primero, el tokenizador separar\xE1 el texto en palabras llamadas "),cs=r("em"),ir=o("tokens"),pr=o(". Hay m\xFAltiples reglas que gobiernan el proceso de tokenizaci\xF3n incluyendo el c\xF3mo separar una palabra y en qu\xE9 nivel (aprende m\xE1s sobre tokenizaci\xF3n "),et=r("a"),cr=o("aqu\xED"),ur=o("). Lo m\xE1s importante es recordar que necesitar\xE1s instanciar el tokenizador con el mismo nombre del modelo para asegurar que est\xE1s usando las mismas reglas de tokenizaci\xF3n con las que el modelo fue preentrenado."),$l=f(),aa=r("p"),dr=o("Carga un tokenizador con "),us=r("code"),mr=o("AutoTokenizer"),fr=o(":"),hl=f(),_(Fa.$$.fragment),bl=f(),ta=r("p"),$r=o("Despu\xE9s, el tokenizador convierte los tokens a n\xFAmeros para construir un tensor que servir\xE1 como input para el modelo. Esto es conocido como el "),ds=r("em"),hr=o("vocabulario"),br=o(" del modelo."),gl=f(),at=r("p"),gr=o("Pasa tu texto al tokenizador:"),vl=f(),_(xa.$$.fragment),yl=f(),tt=r("p"),vr=o("El tokenizador devolver\xE1 un diccionario conteniendo:"),_l=f(),sa=r("ul"),st=r("li"),lt=r("a"),yr=o("input_ids"),_r=o(": representaciones num\xE9ricas de los tokens."),jr=f(),ot=r("li"),nt=r("a"),wr=o("atttention_mask"),Mr=o(": indica cu\xE1les tokens deben ser atendidos."),jl=f(),la=r("p"),Er=o("Como con el "),ms=r("code"),kr=o("pipeline()"),Tr=o(", el tokenizador aceptar\xE1 una lista de inputs. Adem\xE1s, el tokenizador tambi\xE9n puede rellenar (pad, en ingl\xE9s) y truncar el texto para devolver un lote (batch, en ingl\xE9s) de longitud uniforme:"),wl=f(),_(oa.$$.fragment),Ml=f(),na=r("p"),Jr=o("Lee el tutorial de "),rt=r("a"),Zr=o("preprocessing"),Ur=o(" para m\xE1s detalles acerca de la tokenizaci\xF3n."),El=f(),Ge=r("h3"),ra=r("a"),fs=r("span"),_(Ia.$$.fragment),Cr=f(),$s=r("span"),qr=o("AutoModel"),kl=f(),_(ia.$$.fragment),Tl=f(),_(pa.$$.fragment),Jl=f(),K=r("p"),Ar=o("Los modelos son "),Xa=r("a"),hs=r("code"),zr=o("torch.nn.Module"),Rr=o(" o "),Na=r("a"),bs=r("code"),Wr=o("tf.keras.Model"),Gr=o(" est\xE1ndares as\xED que podr\xE1s usarlos en tu training loop usual. Sin embargo, para facilitar las cosas, \u{1F917} Transformers provee una clase "),gs=r("code"),Vr=o("Trainer"),Fr=o(" para PyTorch que a\xF1ade funcionalidades para entrenamiento distribuido, precici\xF3n mixta, y m\xE1s. Para TensorFlow, puedes usar el m\xE9todo "),vs=r("code"),xr=o("fit"),Ir=o(" desde "),Sa=r("a"),Xr=o("Keras"),Nr=o(". Consulta el "),it=r("a"),Sr=o("tutorial de entrenamiento"),Br=o(" para m\xE1s detalles."),Zl=f(),_(ca.$$.fragment),Ul=f(),Ve=r("h3"),ua=r("a"),ys=r("span"),_(Ba.$$.fragment),Pr=f(),_s=r("span"),Yr=o("Guarda un modelo"),Cl=f(),_(da.$$.fragment),ql=f(),Ze=r("p"),Dr=o("Una caracter\xEDstica particularmente interesante de \u{1F917} Transformers es la habilidad de guardar el modelo y cargarlo como un modelo de PyTorch o TensorFlow. El par\xE1metro "),js=r("code"),Qr=o("from_pt"),Hr=o(" o "),ws=r("code"),Or=o("from_tf"),Lr=o(" puede convertir el modelo de un framework al otro:"),Al=f(),_(ma.$$.fragment),this.h()},l(e){const c=Sp('[data-svelte="svelte-1phssyn"]',document.head);s=i(c,"META",{name:!0,content:!0}),c.forEach(t),d=$(e),l=i(e,"H1",{class:!0});var Pa=p(l);m=i(Pa,"A",{id:!0,class:!0,href:!0});var Ms=p(m);h=i(Ms,"SPAN",{});var Es=p(h);j(g.$$.fragment,Es),Es.forEach(t),Ms.forEach(t),Z=$(Pa),R=i(Pa,"SPAN",{});var ks=p(R);C=n(ks,"Tour r\xE1pido"),ks.forEach(t),Pa.forEach(t),q=$(e),j(W.$$.fragment,e),J=$(e),z=i(e,"P",{});var Fe=p(z);N=n(Fe,"\xA1Entra en marcha con los \u{1F917} Transformers! Comienza usando "),V=i(Fe,"CODE",{});var Ts=p(V);x=n(Ts,"pipeline()"),Ts.forEach(t),b=n(Fe," para una inferencia veloz, carga un modelo preentrenado y un tokenizador con una "),A=i(Fe,"A",{href:!0});var Js=p(A);P=n(Js,"AutoClass"),Js.forEach(t),I=n(Fe," para resolver tu tarea de texto, visi\xF3n o audio."),Fe.forEach(t),D=$(e),j(Y.$$.fragment,e),ae=$(e),Q=i(e,"H2",{class:!0});var Ya=p(Q);S=i(Ya,"A",{id:!0,class:!0,href:!0});var Zs=p(S);ee=i(Zs,"SPAN",{});var Us=p(ee);j(H.$$.fragment,Us),Us.forEach(t),Zs.forEach(t),O=$(Ya),me=i(Ya,"SPAN",{});var oi=p(me);le=n(oi,"Pipeline"),oi.forEach(t),Ya.forEach(t),$e=$(e),oe=i(e,"P",{});var Kr=p(oe);te=i(Kr,"CODE",{});var ni=p(te);ne=n(ni,"pipeline()"),ni.forEach(t),he=n(Kr," es la forma m\xE1s f\xE1cil de usar un modelo preentrenado para una tarea dada."),Kr.forEach(t),T=$(e),j(G.$$.fragment,e),re=$(e),v=i(e,"P",{});var Rl=p(v);F=n(Rl,"El "),pe=i(Rl,"CODE",{});var ri=p(pe);qe=n(ri,"pipeline()"),ri.forEach(t),fe=n(Rl," soporta muchas tareas comunes listas para usar:"),Rl.forEach(t),ve=$(e),ie=i(e,"P",{});var ei=p(ie);xe=i(ei,"STRONG",{});var ii=p(xe);ye=n(ii,"Texto"),ii.forEach(t),Da=n(ei,":"),ei.forEach(t),ha=$(e),B=i(e,"UL",{});var se=p(B);yt=i(se,"LI",{});var pi=p(yt);eo=n(pi,"An\xE1lisis de Sentimiento (Sentiment Analysis, en ingl\xE9s): clasifica la polaridad de un texto dado."),pi.forEach(t),ao=$(se),_t=i(se,"LI",{});var ci=p(_t);to=n(ci,"Generaci\xF3n de Texto (Text Generation, en ingl\xE9s): genera texto a partir de un input dado."),ci.forEach(t),so=$(se),jt=i(se,"LI",{});var ui=p(jt);lo=n(ui,"Reconocimiento de Entidades (Name Entity Recognition o NER, en ingl\xE9s): etiqueta cada palabra con la entidad que representa (persona, fecha, ubicaci\xF3n, etc.)."),ui.forEach(t),oo=$(se),wt=i(se,"LI",{});var di=p(wt);no=n(di,"Responder Preguntas (Question answering, en ingl\xE9s): extrae la respuesta del contexto dado un contexto y una pregunta."),di.forEach(t),ro=$(se),Mt=i(se,"LI",{});var mi=p(Mt);io=n(mi,"Rellenar M\xE1scara (Fill-mask, en ingl\xE9s): rellena el espacio faltante dado un texto con palabras enmascaradas."),mi.forEach(t),po=$(se),Et=i(se,"LI",{});var fi=p(Et);co=n(fi,"Resumir (Summarization, en ingl\xE9s): genera un resumen de una secuencia larga de texto o un documento."),fi.forEach(t),uo=$(se),kt=i(se,"LI",{});var $i=p(kt);mo=n($i,"Traducci\xF3n (Translation, en ingl\xE9s): traduce un texto a otro idioma."),$i.forEach(t),fo=$(se),Tt=i(se,"LI",{});var hi=p(Tt);$o=n(hi,"Extracci\xF3n de Caracter\xEDsticas (Feature Extraction, en ingl\xE9s): crea una representaci\xF3n tensorial del texto."),hi.forEach(t),se.forEach(t),Cs=$(e),ba=i(e,"P",{});var ai=p(ba);Jt=i(ai,"STRONG",{});var bi=p(Jt);ho=n(bi,"Imagen"),bi.forEach(t),bo=n(ai,":"),ai.forEach(t),qs=$(e),_e=i(e,"UL",{});var pt=p(_e);Zt=i(pt,"LI",{});var gi=p(Zt);go=n(gi,"Clasificaci\xF3n de Im\xE1genes (Image Classification, en ingl\xE9s): clasifica una imagen."),gi.forEach(t),vo=$(pt),Ut=i(pt,"LI",{});var vi=p(Ut);yo=n(vi,"Segmentaci\xF3n de Im\xE1genes (Image Segmentation, en ingl\xE9s): clasifica cada pixel de una imagen."),vi.forEach(t),_o=$(pt),Ct=i(pt,"LI",{});var yi=p(Ct);jo=n(yi,"Detecci\xF3n de Objetos (Object Detection, en ingl\xE9s): detecta objetos dentro de una imagen."),yi.forEach(t),pt.forEach(t),As=$(e),ga=i(e,"P",{});var ti=p(ga);qt=i(ti,"STRONG",{});var _i=p(qt);wo=n(_i,"Audio"),_i.forEach(t),Mo=n(ti,":"),ti.forEach(t),zs=$(e),Ie=i(e,"UL",{});var Wl=p(Ie);At=i(Wl,"LI",{});var ji=p(At);Eo=n(ji,"Clasificaci\xF3n de Audios (Audio Classification, en ingl\xE9s): asigna una etiqueta a un segmento de audio."),ji.forEach(t),ko=$(Wl),zt=i(Wl,"LI",{});var wi=p(zt);To=n(wi,"Reconocimiento de Voz Autom\xE1tico (Automatic Speech Recognition o ASR, en ingl\xE9s): transcribe datos de audio a un texto."),wi.forEach(t),Wl.forEach(t),Rs=$(e),j(Xe.$$.fragment,e),Ws=$(e),Ae=i(e,"H3",{class:!0});var Gl=p(Ae);Ne=i(Gl,"A",{id:!0,class:!0,href:!0});var Mi=p(Ne);Rt=i(Mi,"SPAN",{});var Ei=p(Rt);j(va.$$.fragment,Ei),Ei.forEach(t),Mi.forEach(t),Jo=$(Gl),Wt=i(Gl,"SPAN",{});var ki=p(Wt);Zo=n(ki,"Uso del Pipeline"),ki.forEach(t),Gl.forEach(t),Gs=$(e),Se=i(e,"P",{});var Vl=p(Se);Uo=n(Vl,"En el siguiente ejemplo, usar\xE1s el "),Gt=i(Vl,"CODE",{});var Ti=p(Gt);Co=n(Ti,"pipeline()"),Ti.forEach(t),qo=n(Vl," para an\xE1lisis de sentimiento."),Vl.forEach(t),Vs=$(e),Qa=i(e,"P",{});var Ji=p(Qa);Ao=n(Ji,"Instala las siguientes dependencias si a\xFAn no lo has hecho:"),Ji.forEach(t),Fs=$(e),j(Be.$$.fragment,e),xs=$(e),Pe=i(e,"P",{});var Fl=p(Pe);zo=n(Fl,"Importa "),Vt=i(Fl,"CODE",{});var Zi=p(Vt);Ro=n(Zi,"pipeline()"),Zi.forEach(t),Wo=n(Fl," y especifica la tarea que deseas completar:"),Fl.forEach(t),Is=$(e),j(ya.$$.fragment,e),Xs=$(e),je=i(e,"P",{});var ct=p(je);Go=n(ct,"El pipeline descarga y almacena en cach\xE9 el "),_a=i(ct,"A",{href:!0,rel:!0});var Ui=p(_a);Vo=n(Ui,"modelo preentrenado"),Ui.forEach(t),Fo=n(ct," y tokeniza para an\xE1lisis de sentimiento. Si no hubieramos elegido un modelo el pipeline habr\xEDa elegido uno por defecto. Ahora puedes usar "),Ft=i(ct,"CODE",{});var Ci=p(Ft);xo=n(Ci,"clasificador"),Ci.forEach(t),Io=n(ct," en tu texto objetivo:"),ct.forEach(t),Ns=$(e),j(ja.$$.fragment,e),Ss=$(e),Ye=i(e,"P",{});var xl=p(Ye);Xo=n(xl,"Para m\xE1s de un enunciado, entrega una lista al "),xt=i(xl,"CODE",{});var qi=p(xt);No=n(qi,"pipeline()"),qi.forEach(t),So=n(xl," que devolver\xE1 una lista de diccionarios:"),xl.forEach(t),Bs=$(e),we=i(e,"P",{});var ut=p(we);Bo=n(ut,"El "),It=i(ut,"CODE",{});var Ai=p(It);Po=n(Ai,"pipeline()"),Ai.forEach(t),Yo=n(ut," tambi\xE9n puede iterar sobre un dataset entero. Comienza instalando la biblioteca "),wa=i(ut,"A",{href:!0,rel:!0});var zi=p(wa);Do=n(zi,"\u{1F917} Datasets"),zi.forEach(t),Qo=n(ut,":"),ut.forEach(t),Ps=$(e),j(Ma.$$.fragment,e),Ys=$(e),be=i(e,"P",{});var fa=p(be);Ho=n(fa,"Crea un "),Xt=i(fa,"CODE",{});var Ri=p(Xt);Oo=n(Ri,"pipeline()"),Ri.forEach(t),Lo=n(fa," con la tarea que deseas resolver y el modelo que quieres usar. Coloca el par\xE1metro "),Nt=i(fa,"CODE",{});var Wi=p(Nt);Ko=n(Wi,"device"),Wi.forEach(t),en=n(fa," a "),St=i(fa,"CODE",{});var Gi=p(St);an=n(Gi,"0"),Gi.forEach(t),tn=n(fa," para poner los tensores en un dispositivo CUDA:"),fa.forEach(t),Ds=$(e),j(Ea.$$.fragment,e),Qs=$(e),Me=i(e,"P",{});var dt=p(Me);sn=n(dt,"A continuaci\xF3n, carga el dataset (ve \u{1F917} Datasets "),ka=i(dt,"A",{href:!0,rel:!0});var Vi=p(ka);ln=n(Vi,"Quick Start"),Vi.forEach(t),on=n(dt," para m\xE1s detalles) sobre el que quisieras iterar. Por ejemplo, vamos a cargar el dataset "),Ta=i(dt,"A",{href:!0,rel:!0});var Fi=p(Ta);nn=n(Fi,"MInDS-14"),Fi.forEach(t),rn=n(dt,":"),dt.forEach(t),Hs=$(e),j(Ja.$$.fragment,e),Os=$(e),De=i(e,"P",{});var Il=p(De);pn=n(Il,"Debemos asegurarnos de que la frecuencia de muestreo del conjunto de datos coincide con la frecuencia de muestreo con la que se entren\xF3 "),Bt=i(Il,"CODE",{});var xi=p(Bt);cn=n(xi,"jonatasgrosman/wav2vec2-large-xlsr-53-spanish"),xi.forEach(t),un=n(Il,"."),Il.forEach(t),Ls=$(e),j(Za.$$.fragment,e),Ks=$(e),Qe=i(e,"P",{});var Xl=p(Qe);dn=n(Xl,"Los archivos de audio se cargan y remuestrean autom\xE1ticamente cuando llamamos a la columna "),Pt=i(Xl,"CODE",{});var Ii=p(Pt);mn=n(Ii,'"audio"'),Ii.forEach(t),fn=n(Xl,`.
Extraigamos las matrices de onda cruda (raw waveform, en ingl\xE9s) de las primeras 4 muestras y pas\xE9mosla como una lista al pipeline:`),Xl.forEach(t),el=$(e),j(Ua.$$.fragment,e),al=$(e),He=i(e,"P",{});var Nl=p(He);$n=n(Nl,"Para un dataset m\xE1s grande, donde los inputs son de mayor tama\xF1o (como en habla/audio o visi\xF3n), querr\xE1s pasar un generador en lugar de una lista que carga todos los inputs en memoria. Ve la "),Ha=i(Nl,"A",{href:!0});var Xi=p(Ha);hn=n(Xi,"documentaci\xF3n del pipeline"),Xi.forEach(t),bn=n(Nl," para m\xE1s informaci\xF3n."),Nl.forEach(t),tl=$(e),ze=i(e,"H3",{class:!0});var Sl=p(ze);Oe=i(Sl,"A",{id:!0,class:!0,href:!0});var Ni=p(Oe);Yt=i(Ni,"SPAN",{});var Si=p(Yt);j(Ca.$$.fragment,Si),Si.forEach(t),Ni.forEach(t),gn=$(Sl),Dt=i(Sl,"SPAN",{});var Bi=p(Dt);vn=n(Bi,"Usa otro modelo y otro tokenizador en el pipeline"),Bi.forEach(t),Sl.forEach(t),sl=$(e),ce=i(e,"P",{});var Ue=p(ce);yn=n(Ue,"El "),Qt=i(Ue,"CODE",{});var Pi=p(Qt);_n=n(Pi,"pipeline()"),Pi.forEach(t),jn=n(Ue," puede acomodarse a cualquier modelo del "),qa=i(Ue,"A",{href:!0,rel:!0});var Yi=p(qa);wn=n(Yi,"Model Hub"),Yi.forEach(t),Mn=n(Ue," haciendo m\xE1s f\xE1cil adaptar el "),Ht=i(Ue,"CODE",{});var Di=p(Ht);En=n(Di,"pipeline()"),Di.forEach(t),kn=n(Ue," para otros casos de uso. Por ejemplo, si quisieras un modelo capaz de manejar texto en franc\xE9s, usa los tags en el Model Hub para filtrar entre los modelos apropiados. El resultado mejor filtrado devuelve un "),Aa=i(Ue,"A",{href:!0,rel:!0});var Qi=p(Aa);Tn=n(Qi,"modelo BERT"),Qi.forEach(t),Jn=n(Ue," multilingual fine-tuned para el an\xE1lisis de sentimiento. Genial, \xA1vamos a usar este modelo!"),Ue.forEach(t),ll=$(e),j(za.$$.fragment,e),ol=$(e),j(Le.$$.fragment,e),nl=$(e),Ee=i(e,"P",{});var mt=p(Ee);Zn=n(mt,"Despu\xE9s puedes especificar el modelo y el tokenizador en el "),Ot=i(mt,"CODE",{});var Hi=p(Ot);Un=n(Hi,"pipeline()"),Hi.forEach(t),Cn=n(mt,", y aplicar el "),Lt=i(mt,"CODE",{});var Oi=p(Lt);qn=n(Oi,"classifier"),Oi.forEach(t),An=n(mt," en tu texto objetivo:"),mt.forEach(t),rl=$(e),j(Ra.$$.fragment,e),il=$(e),ke=i(e,"P",{});var ft=p(ke);zn=n(ft,"Si no pudieras encontrar el modelo para tu caso respectivo de uso necesitar\xE1s ajustar un modelo preentrenado a tus datos. Mira nuestro "),Oa=i(ft,"A",{href:!0});var Li=p(Oa);Rn=n(Li,"tutorial de fine-tuning"),Li.forEach(t),Wn=n(ft," para aprender c\xF3mo. Finalmente, despu\xE9s de que has ajustado tu modelo preentrenado, \xA1por favor considera compartirlo (ve el tutorial "),La=i(ft,"A",{href:!0});var Ki=p(La);Gn=n(Ki,"aqu\xED"),Ki.forEach(t),Vn=n(ft,") con la comunidad en el Model Hub para democratizar el NLP! \u{1F917}"),ft.forEach(t),pl=$(e),Re=i(e,"H2",{class:!0});var Bl=p(Re);Ke=i(Bl,"A",{id:!0,class:!0,href:!0});var ep=p(Ke);Kt=i(ep,"SPAN",{});var ap=p(Kt);j(Wa.$$.fragment,ap),ap.forEach(t),ep.forEach(t),Fn=$(Bl),es=i(Bl,"SPAN",{});var tp=p(es);xn=n(tp,"AutoClass"),tp.forEach(t),Bl.forEach(t),cl=$(e),j(Ga.$$.fragment,e),ul=$(e),L=i(e,"P",{});var ue=p(L);In=n(ue,"Por debajo, las clases "),as=i(ue,"CODE",{});var sp=p(as);Xn=n(sp,"AutoModelForSequenceClassification"),sp.forEach(t),Nn=n(ue," y "),ts=i(ue,"CODE",{});var lp=p(ts);Sn=n(lp,"AutoTokenizer"),lp.forEach(t),Bn=n(ue," trabajan juntas para dar poder al "),ss=i(ue,"CODE",{});var op=p(ss);Pn=n(op,"pipeline()"),op.forEach(t),Yn=n(ue,". Una "),Ka=i(ue,"A",{href:!0});var np=p(Ka);Dn=n(np,"AutoClass"),np.forEach(t),Qn=n(ue," es un atajo que autom\xE1ticamente recupera la arquitectura de un modelo preentrenado con su nombre o el path. S\xF3lo necesitar\xE1s seleccionar el "),ls=i(ue,"CODE",{});var rp=p(ls);Hn=n(rp,"AutoClass"),rp.forEach(t),On=n(ue," apropiado para tu tarea y tu tokenizador asociado con "),os=i(ue,"CODE",{});var ip=p(os);Ln=n(ip,"AutoTokenizer"),ip.forEach(t),Kn=n(ue,"."),ue.forEach(t),dl=$(e),Te=i(e,"P",{});var $t=p(Te);er=n($t,"Regresemos a nuestro ejemplo y veamos c\xF3mo puedes usar el "),ns=i($t,"CODE",{});var pp=p(ns);ar=n(pp,"AutoClass"),pp.forEach(t),tr=n($t," para reproducir los resultados del "),rs=i($t,"CODE",{});var cp=p(rs);sr=n(cp,"pipeline()"),cp.forEach(t),lr=n($t,"."),$t.forEach(t),ml=$(e),We=i(e,"H3",{class:!0});var Pl=p(We);ea=i(Pl,"A",{id:!0,class:!0,href:!0});var up=p(ea);is=i(up,"SPAN",{});var dp=p(is);j(Va.$$.fragment,dp),dp.forEach(t),up.forEach(t),or=$(Pl),ps=i(Pl,"SPAN",{});var mp=p(ps);nr=n(mp,"AutoTokenizer"),mp.forEach(t),Pl.forEach(t),fl=$(e),Je=i(e,"P",{});var ht=p(Je);rr=n(ht,"Un tokenizador es responsable de procesar el texto a un formato que sea entendible para el modelo. Primero, el tokenizador separar\xE1 el texto en palabras llamadas "),cs=i(ht,"EM",{});var fp=p(cs);ir=n(fp,"tokens"),fp.forEach(t),pr=n(ht,". Hay m\xFAltiples reglas que gobiernan el proceso de tokenizaci\xF3n incluyendo el c\xF3mo separar una palabra y en qu\xE9 nivel (aprende m\xE1s sobre tokenizaci\xF3n "),et=i(ht,"A",{href:!0});var $p=p(et);cr=n($p,"aqu\xED"),$p.forEach(t),ur=n(ht,"). Lo m\xE1s importante es recordar que necesitar\xE1s instanciar el tokenizador con el mismo nombre del modelo para asegurar que est\xE1s usando las mismas reglas de tokenizaci\xF3n con las que el modelo fue preentrenado."),ht.forEach(t),$l=$(e),aa=i(e,"P",{});var Yl=p(aa);dr=n(Yl,"Carga un tokenizador con "),us=i(Yl,"CODE",{});var hp=p(us);mr=n(hp,"AutoTokenizer"),hp.forEach(t),fr=n(Yl,":"),Yl.forEach(t),hl=$(e),j(Fa.$$.fragment,e),bl=$(e),ta=i(e,"P",{});var Dl=p(ta);$r=n(Dl,"Despu\xE9s, el tokenizador convierte los tokens a n\xFAmeros para construir un tensor que servir\xE1 como input para el modelo. Esto es conocido como el "),ds=i(Dl,"EM",{});var bp=p(ds);hr=n(bp,"vocabulario"),bp.forEach(t),br=n(Dl," del modelo."),Dl.forEach(t),gl=$(e),at=i(e,"P",{});var gp=p(at);gr=n(gp,"Pasa tu texto al tokenizador:"),gp.forEach(t),vl=$(e),j(xa.$$.fragment,e),yl=$(e),tt=i(e,"P",{});var vp=p(tt);vr=n(vp,"El tokenizador devolver\xE1 un diccionario conteniendo:"),vp.forEach(t),_l=$(e),sa=i(e,"UL",{});var Ql=p(sa);st=i(Ql,"LI",{});var si=p(st);lt=i(si,"A",{href:!0});var yp=p(lt);yr=n(yp,"input_ids"),yp.forEach(t),_r=n(si,": representaciones num\xE9ricas de los tokens."),si.forEach(t),jr=$(Ql),ot=i(Ql,"LI",{});var li=p(ot);nt=i(li,"A",{href:!0});var _p=p(nt);wr=n(_p,"atttention_mask"),_p.forEach(t),Mr=n(li,": indica cu\xE1les tokens deben ser atendidos."),li.forEach(t),Ql.forEach(t),jl=$(e),la=i(e,"P",{});var Hl=p(la);Er=n(Hl,"Como con el "),ms=i(Hl,"CODE",{});var jp=p(ms);kr=n(jp,"pipeline()"),jp.forEach(t),Tr=n(Hl,", el tokenizador aceptar\xE1 una lista de inputs. Adem\xE1s, el tokenizador tambi\xE9n puede rellenar (pad, en ingl\xE9s) y truncar el texto para devolver un lote (batch, en ingl\xE9s) de longitud uniforme:"),Hl.forEach(t),wl=$(e),j(oa.$$.fragment,e),Ml=$(e),na=i(e,"P",{});var Ol=p(na);Jr=n(Ol,"Lee el tutorial de "),rt=i(Ol,"A",{href:!0});var wp=p(rt);Zr=n(wp,"preprocessing"),wp.forEach(t),Ur=n(Ol," para m\xE1s detalles acerca de la tokenizaci\xF3n."),Ol.forEach(t),El=$(e),Ge=i(e,"H3",{class:!0});var Ll=p(Ge);ra=i(Ll,"A",{id:!0,class:!0,href:!0});var Mp=p(ra);fs=i(Mp,"SPAN",{});var Ep=p(fs);j(Ia.$$.fragment,Ep),Ep.forEach(t),Mp.forEach(t),Cr=$(Ll),$s=i(Ll,"SPAN",{});var kp=p($s);qr=n(kp,"AutoModel"),kp.forEach(t),Ll.forEach(t),kl=$(e),j(ia.$$.fragment,e),Tl=$(e),j(pa.$$.fragment,e),Jl=$(e),K=i(e,"P",{});var de=p(K);Ar=n(de,"Los modelos son "),Xa=i(de,"A",{href:!0,rel:!0});var Tp=p(Xa);hs=i(Tp,"CODE",{});var Jp=p(hs);zr=n(Jp,"torch.nn.Module"),Jp.forEach(t),Tp.forEach(t),Rr=n(de," o "),Na=i(de,"A",{href:!0,rel:!0});var Zp=p(Na);bs=i(Zp,"CODE",{});var Up=p(bs);Wr=n(Up,"tf.keras.Model"),Up.forEach(t),Zp.forEach(t),Gr=n(de," est\xE1ndares as\xED que podr\xE1s usarlos en tu training loop usual. Sin embargo, para facilitar las cosas, \u{1F917} Transformers provee una clase "),gs=i(de,"CODE",{});var Cp=p(gs);Vr=n(Cp,"Trainer"),Cp.forEach(t),Fr=n(de," para PyTorch que a\xF1ade funcionalidades para entrenamiento distribuido, precici\xF3n mixta, y m\xE1s. Para TensorFlow, puedes usar el m\xE9todo "),vs=i(de,"CODE",{});var qp=p(vs);xr=n(qp,"fit"),qp.forEach(t),Ir=n(de," desde "),Sa=i(de,"A",{href:!0,rel:!0});var Ap=p(Sa);Xr=n(Ap,"Keras"),Ap.forEach(t),Nr=n(de,". Consulta el "),it=i(de,"A",{href:!0});var zp=p(it);Sr=n(zp,"tutorial de entrenamiento"),zp.forEach(t),Br=n(de," para m\xE1s detalles."),de.forEach(t),Zl=$(e),j(ca.$$.fragment,e),Ul=$(e),Ve=i(e,"H3",{class:!0});var Kl=p(Ve);ua=i(Kl,"A",{id:!0,class:!0,href:!0});var Rp=p(ua);ys=i(Rp,"SPAN",{});var Wp=p(ys);j(Ba.$$.fragment,Wp),Wp.forEach(t),Rp.forEach(t),Pr=$(Kl),_s=i(Kl,"SPAN",{});var Gp=p(_s);Yr=n(Gp,"Guarda un modelo"),Gp.forEach(t),Kl.forEach(t),Cl=$(e),j(da.$$.fragment,e),ql=$(e),Ze=i(e,"P",{});var bt=p(Ze);Dr=n(bt,"Una caracter\xEDstica particularmente interesante de \u{1F917} Transformers es la habilidad de guardar el modelo y cargarlo como un modelo de PyTorch o TensorFlow. El par\xE1metro "),js=i(bt,"CODE",{});var Vp=p(js);Qr=n(Vp,"from_pt"),Vp.forEach(t),Hr=n(bt," o "),ws=i(bt,"CODE",{});var Fp=p(ws);Or=n(Fp,"from_tf"),Fp.forEach(t),Lr=n(bt," puede convertir el modelo de un framework al otro:"),bt.forEach(t),Al=$(e),j(ma.$$.fragment,e),this.h()},h(){y(s,"name","hf:doc:metadata"),y(s,"content",JSON.stringify(Mc)),y(m,"id","tour-rpido"),y(m,"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"),y(m,"href","#tour-rpido"),y(l,"class","relative group"),y(A,"href","./model_doc/auto"),y(S,"id","pipeline"),y(S,"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"),y(S,"href","#pipeline"),y(Q,"class","relative group"),y(Ne,"id","uso-del-pipeline"),y(Ne,"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"),y(Ne,"href","#uso-del-pipeline"),y(Ae,"class","relative group"),y(_a,"href","https://huggingface.co/pysentimiento/robertuito-sentiment-analysis"),y(_a,"rel","nofollow"),y(wa,"href","https://huggingface.co/docs/datasets/"),y(wa,"rel","nofollow"),y(ka,"href","https://huggingface.co/docs/datasets/quickstart.html"),y(ka,"rel","nofollow"),y(Ta,"href","https://huggingface.co/datasets/PolyAI/minds14"),y(Ta,"rel","nofollow"),y(Ha,"href","./main_classes/pipelines"),y(Oe,"id","usa-otro-modelo-y-otro-tokenizador-en-el-pipeline"),y(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"),y(Oe,"href","#usa-otro-modelo-y-otro-tokenizador-en-el-pipeline"),y(ze,"class","relative group"),y(qa,"href","https://huggingface.co/models"),y(qa,"rel","nofollow"),y(Aa,"href","https://huggingface.co/nlptown/bert-base-multilingual-uncased-sentiment"),y(Aa,"rel","nofollow"),y(Oa,"href","./training"),y(La,"href","./model_sharing"),y(Ke,"id","autoclass"),y(Ke,"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"),y(Ke,"href","#autoclass"),y(Re,"class","relative group"),y(Ka,"href","./model_doc/auto"),y(ea,"id","autotokenizer"),y(ea,"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"),y(ea,"href","#autotokenizer"),y(We,"class","relative group"),y(et,"href","./tokenizer_summary"),y(lt,"href","./glossary#input-ids"),y(nt,"href",".glossary#attention-mask"),y(rt,"href","./preprocessing"),y(ra,"id","automodel"),y(ra,"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"),y(ra,"href","#automodel"),y(Ge,"class","relative group"),y(Xa,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),y(Xa,"rel","nofollow"),y(Na,"href","https://www.tensorflow.org/api_docs/python/tf/keras/Model"),y(Na,"rel","nofollow"),y(Sa,"href","https://keras.io/"),y(Sa,"rel","nofollow"),y(it,"href","./training"),y(ua,"id","guarda-un-modelo"),y(ua,"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"),y(ua,"href","#guarda-un-modelo"),y(Ve,"class","relative group")},m(e,c){a(document.head,s),u(e,d,c),u(e,l,c),a(l,m),a(m,h),w(g,h,null),a(l,Z),a(l,R),a(R,C),u(e,q,c),w(W,e,c),u(e,J,c),u(e,z,c),a(z,N),a(z,V),a(V,x),a(z,b),a(z,A),a(A,P),a(z,I),u(e,D,c),w(Y,e,c),u(e,ae,c),u(e,Q,c),a(Q,S),a(S,ee),w(H,ee,null),a(Q,O),a(Q,me),a(me,le),u(e,$e,c),u(e,oe,c),a(oe,te),a(te,ne),a(oe,he),u(e,T,c),w(G,e,c),u(e,re,c),u(e,v,c),a(v,F),a(v,pe),a(pe,qe),a(v,fe),u(e,ve,c),u(e,ie,c),a(ie,xe),a(xe,ye),a(ie,Da),u(e,ha,c),u(e,B,c),a(B,yt),a(yt,eo),a(B,ao),a(B,_t),a(_t,to),a(B,so),a(B,jt),a(jt,lo),a(B,oo),a(B,wt),a(wt,no),a(B,ro),a(B,Mt),a(Mt,io),a(B,po),a(B,Et),a(Et,co),a(B,uo),a(B,kt),a(kt,mo),a(B,fo),a(B,Tt),a(Tt,$o),u(e,Cs,c),u(e,ba,c),a(ba,Jt),a(Jt,ho),a(ba,bo),u(e,qs,c),u(e,_e,c),a(_e,Zt),a(Zt,go),a(_e,vo),a(_e,Ut),a(Ut,yo),a(_e,_o),a(_e,Ct),a(Ct,jo),u(e,As,c),u(e,ga,c),a(ga,qt),a(qt,wo),a(ga,Mo),u(e,zs,c),u(e,Ie,c),a(Ie,At),a(At,Eo),a(Ie,ko),a(Ie,zt),a(zt,To),u(e,Rs,c),w(Xe,e,c),u(e,Ws,c),u(e,Ae,c),a(Ae,Ne),a(Ne,Rt),w(va,Rt,null),a(Ae,Jo),a(Ae,Wt),a(Wt,Zo),u(e,Gs,c),u(e,Se,c),a(Se,Uo),a(Se,Gt),a(Gt,Co),a(Se,qo),u(e,Vs,c),u(e,Qa,c),a(Qa,Ao),u(e,Fs,c),w(Be,e,c),u(e,xs,c),u(e,Pe,c),a(Pe,zo),a(Pe,Vt),a(Vt,Ro),a(Pe,Wo),u(e,Is,c),w(ya,e,c),u(e,Xs,c),u(e,je,c),a(je,Go),a(je,_a),a(_a,Vo),a(je,Fo),a(je,Ft),a(Ft,xo),a(je,Io),u(e,Ns,c),w(ja,e,c),u(e,Ss,c),u(e,Ye,c),a(Ye,Xo),a(Ye,xt),a(xt,No),a(Ye,So),u(e,Bs,c),u(e,we,c),a(we,Bo),a(we,It),a(It,Po),a(we,Yo),a(we,wa),a(wa,Do),a(we,Qo),u(e,Ps,c),w(Ma,e,c),u(e,Ys,c),u(e,be,c),a(be,Ho),a(be,Xt),a(Xt,Oo),a(be,Lo),a(be,Nt),a(Nt,Ko),a(be,en),a(be,St),a(St,an),a(be,tn),u(e,Ds,c),w(Ea,e,c),u(e,Qs,c),u(e,Me,c),a(Me,sn),a(Me,ka),a(ka,ln),a(Me,on),a(Me,Ta),a(Ta,nn),a(Me,rn),u(e,Hs,c),w(Ja,e,c),u(e,Os,c),u(e,De,c),a(De,pn),a(De,Bt),a(Bt,cn),a(De,un),u(e,Ls,c),w(Za,e,c),u(e,Ks,c),u(e,Qe,c),a(Qe,dn),a(Qe,Pt),a(Pt,mn),a(Qe,fn),u(e,el,c),w(Ua,e,c),u(e,al,c),u(e,He,c),a(He,$n),a(He,Ha),a(Ha,hn),a(He,bn),u(e,tl,c),u(e,ze,c),a(ze,Oe),a(Oe,Yt),w(Ca,Yt,null),a(ze,gn),a(ze,Dt),a(Dt,vn),u(e,sl,c),u(e,ce,c),a(ce,yn),a(ce,Qt),a(Qt,_n),a(ce,jn),a(ce,qa),a(qa,wn),a(ce,Mn),a(ce,Ht),a(Ht,En),a(ce,kn),a(ce,Aa),a(Aa,Tn),a(ce,Jn),u(e,ll,c),w(za,e,c),u(e,ol,c),w(Le,e,c),u(e,nl,c),u(e,Ee,c),a(Ee,Zn),a(Ee,Ot),a(Ot,Un),a(Ee,Cn),a(Ee,Lt),a(Lt,qn),a(Ee,An),u(e,rl,c),w(Ra,e,c),u(e,il,c),u(e,ke,c),a(ke,zn),a(ke,Oa),a(Oa,Rn),a(ke,Wn),a(ke,La),a(La,Gn),a(ke,Vn),u(e,pl,c),u(e,Re,c),a(Re,Ke),a(Ke,Kt),w(Wa,Kt,null),a(Re,Fn),a(Re,es),a(es,xn),u(e,cl,c),w(Ga,e,c),u(e,ul,c),u(e,L,c),a(L,In),a(L,as),a(as,Xn),a(L,Nn),a(L,ts),a(ts,Sn),a(L,Bn),a(L,ss),a(ss,Pn),a(L,Yn),a(L,Ka),a(Ka,Dn),a(L,Qn),a(L,ls),a(ls,Hn),a(L,On),a(L,os),a(os,Ln),a(L,Kn),u(e,dl,c),u(e,Te,c),a(Te,er),a(Te,ns),a(ns,ar),a(Te,tr),a(Te,rs),a(rs,sr),a(Te,lr),u(e,ml,c),u(e,We,c),a(We,ea),a(ea,is),w(Va,is,null),a(We,or),a(We,ps),a(ps,nr),u(e,fl,c),u(e,Je,c),a(Je,rr),a(Je,cs),a(cs,ir),a(Je,pr),a(Je,et),a(et,cr),a(Je,ur),u(e,$l,c),u(e,aa,c),a(aa,dr),a(aa,us),a(us,mr),a(aa,fr),u(e,hl,c),w(Fa,e,c),u(e,bl,c),u(e,ta,c),a(ta,$r),a(ta,ds),a(ds,hr),a(ta,br),u(e,gl,c),u(e,at,c),a(at,gr),u(e,vl,c),w(xa,e,c),u(e,yl,c),u(e,tt,c),a(tt,vr),u(e,_l,c),u(e,sa,c),a(sa,st),a(st,lt),a(lt,yr),a(st,_r),a(sa,jr),a(sa,ot),a(ot,nt),a(nt,wr),a(ot,Mr),u(e,jl,c),u(e,la,c),a(la,Er),a(la,ms),a(ms,kr),a(la,Tr),u(e,wl,c),w(oa,e,c),u(e,Ml,c),u(e,na,c),a(na,Jr),a(na,rt),a(rt,Zr),a(na,Ur),u(e,El,c),u(e,Ge,c),a(Ge,ra),a(ra,fs),w(Ia,fs,null),a(Ge,Cr),a(Ge,$s),a($s,qr),u(e,kl,c),w(ia,e,c),u(e,Tl,c),w(pa,e,c),u(e,Jl,c),u(e,K,c),a(K,Ar),a(K,Xa),a(Xa,hs),a(hs,zr),a(K,Rr),a(K,Na),a(Na,bs),a(bs,Wr),a(K,Gr),a(K,gs),a(gs,Vr),a(K,Fr),a(K,vs),a(vs,xr),a(K,Ir),a(K,Sa),a(Sa,Xr),a(K,Nr),a(K,it),a(it,Sr),a(K,Br),u(e,Zl,c),w(ca,e,c),u(e,Ul,c),u(e,Ve,c),a(Ve,ua),a(ua,ys),w(Ba,ys,null),a(Ve,Pr),a(Ve,_s),a(_s,Yr),u(e,Cl,c),w(da,e,c),u(e,ql,c),u(e,Ze,c),a(Ze,Dr),a(Ze,js),a(js,Qr),a(Ze,Hr),a(Ze,ws),a(ws,Or),a(Ze,Lr),u(e,Al,c),w(ma,e,c),zl=!0},p(e,[c]){const Pa={};c&2&&(Pa.$$scope={dirty:c,ctx:e}),Y.$set(Pa);const Ms={};c&2&&(Ms.$$scope={dirty:c,ctx:e}),Xe.$set(Ms);const Es={};c&2&&(Es.$$scope={dirty:c,ctx:e}),Be.$set(Es);const ks={};c&2&&(ks.$$scope={dirty:c,ctx:e}),Le.$set(ks);const Fe={};c&2&&(Fe.$$scope={dirty:c,ctx:e}),oa.$set(Fe);const Ts={};c&2&&(Ts.$$scope={dirty:c,ctx:e}),ia.$set(Ts);const Js={};c&2&&(Js.$$scope={dirty:c,ctx:e}),pa.$set(Js);const Ya={};c&2&&(Ya.$$scope={dirty:c,ctx:e}),ca.$set(Ya);const Zs={};c&2&&(Zs.$$scope={dirty:c,ctx:e}),da.$set(Zs);const Us={};c&2&&(Us.$$scope={dirty:c,ctx:e}),ma.$set(Us)},i(e){zl||(M(g.$$.fragment,e),M(W.$$.fragment,e),M(Y.$$.fragment,e),M(H.$$.fragment,e),M(G.$$.fragment,e),M(Xe.$$.fragment,e),M(va.$$.fragment,e),M(Be.$$.fragment,e),M(ya.$$.fragment,e),M(ja.$$.fragment,e),M(Ma.$$.fragment,e),M(Ea.$$.fragment,e),M(Ja.$$.fragment,e),M(Za.$$.fragment,e),M(Ua.$$.fragment,e),M(Ca.$$.fragment,e),M(za.$$.fragment,e),M(Le.$$.fragment,e),M(Ra.$$.fragment,e),M(Wa.$$.fragment,e),M(Ga.$$.fragment,e),M(Va.$$.fragment,e),M(Fa.$$.fragment,e),M(xa.$$.fragment,e),M(oa.$$.fragment,e),M(Ia.$$.fragment,e),M(ia.$$.fragment,e),M(pa.$$.fragment,e),M(ca.$$.fragment,e),M(Ba.$$.fragment,e),M(da.$$.fragment,e),M(ma.$$.fragment,e),zl=!0)},o(e){E(g.$$.fragment,e),E(W.$$.fragment,e),E(Y.$$.fragment,e),E(H.$$.fragment,e),E(G.$$.fragment,e),E(Xe.$$.fragment,e),E(va.$$.fragment,e),E(Be.$$.fragment,e),E(ya.$$.fragment,e),E(ja.$$.fragment,e),E(Ma.$$.fragment,e),E(Ea.$$.fragment,e),E(Ja.$$.fragment,e),E(Za.$$.fragment,e),E(Ua.$$.fragment,e),E(Ca.$$.fragment,e),E(za.$$.fragment,e),E(Le.$$.fragment,e),E(Ra.$$.fragment,e),E(Wa.$$.fragment,e),E(Ga.$$.fragment,e),E(Va.$$.fragment,e),E(Fa.$$.fragment,e),E(xa.$$.fragment,e),E(oa.$$.fragment,e),E(Ia.$$.fragment,e),E(ia.$$.fragment,e),E(pa.$$.fragment,e),E(ca.$$.fragment,e),E(Ba.$$.fragment,e),E(da.$$.fragment,e),E(ma.$$.fragment,e),zl=!1},d(e){t(s),e&&t(d),e&&t(l),k(g),e&&t(q),k(W,e),e&&t(J),e&&t(z),e&&t(D),k(Y,e),e&&t(ae),e&&t(Q),k(H),e&&t($e),e&&t(oe),e&&t(T),k(G,e),e&&t(re),e&&t(v),e&&t(ve),e&&t(ie),e&&t(ha),e&&t(B),e&&t(Cs),e&&t(ba),e&&t(qs),e&&t(_e),e&&t(As),e&&t(ga),e&&t(zs),e&&t(Ie),e&&t(Rs),k(Xe,e),e&&t(Ws),e&&t(Ae),k(va),e&&t(Gs),e&&t(Se),e&&t(Vs),e&&t(Qa),e&&t(Fs),k(Be,e),e&&t(xs),e&&t(Pe),e&&t(Is),k(ya,e),e&&t(Xs),e&&t(je),e&&t(Ns),k(ja,e),e&&t(Ss),e&&t(Ye),e&&t(Bs),e&&t(we),e&&t(Ps),k(Ma,e),e&&t(Ys),e&&t(be),e&&t(Ds),k(Ea,e),e&&t(Qs),e&&t(Me),e&&t(Hs),k(Ja,e),e&&t(Os),e&&t(De),e&&t(Ls),k(Za,e),e&&t(Ks),e&&t(Qe),e&&t(el),k(Ua,e),e&&t(al),e&&t(He),e&&t(tl),e&&t(ze),k(Ca),e&&t(sl),e&&t(ce),e&&t(ll),k(za,e),e&&t(ol),k(Le,e),e&&t(nl),e&&t(Ee),e&&t(rl),k(Ra,e),e&&t(il),e&&t(ke),e&&t(pl),e&&t(Re),k(Wa),e&&t(cl),k(Ga,e),e&&t(ul),e&&t(L),e&&t(dl),e&&t(Te),e&&t(ml),e&&t(We),k(Va),e&&t(fl),e&&t(Je),e&&t($l),e&&t(aa),e&&t(hl),k(Fa,e),e&&t(bl),e&&t(ta),e&&t(gl),e&&t(at),e&&t(vl),k(xa,e),e&&t(yl),e&&t(tt),e&&t(_l),e&&t(sa),e&&t(jl),e&&t(la),e&&t(wl),k(oa,e),e&&t(Ml),e&&t(na),e&&t(El),e&&t(Ge),k(Ia),e&&t(kl),k(ia,e),e&&t(Tl),k(pa,e),e&&t(Jl),e&&t(K),e&&t(Zl),k(ca,e),e&&t(Ul),e&&t(Ve),k(Ba),e&&t(Cl),k(da,e),e&&t(ql),e&&t(Ze),e&&t(Al),k(ma,e)}}}const Mc={local:"tour-rpido",sections:[{local:"pipeline",sections:[{local:"uso-del-pipeline",title:"Uso del Pipeline"},{local:"usa-otro-modelo-y-otro-tokenizador-en-el-pipeline",title:"Usa otro modelo y otro tokenizador en el pipeline"}],title:"Pipeline"},{local:"autoclass",sections:[{local:"autotokenizer",title:"AutoTokenizer"},{local:"automodel",title:"AutoModel"},{local:"guarda-un-modelo",title:"Guarda un modelo"}],title:"AutoClass"}],title:"Tour r\xE1pido"};function Ec(U){return Bp(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class zc extends Ip{constructor(s){super();Xp(this,s,Ec,wc,Np,{})}}export{zc as default,Mc as metadata};
