import{S as Rp,i as Up,s as Hp,e as l,k as f,w as E,t as r,M as Gp,c as i,d as t,m as $,a as p,x as j,h as n,b,G as a,g as u,y as k,q as w,o as y,B as q,v as Vp,L as xe}from"../chunks/vendor-hf-doc-builder.js";import{T as vt}from"../chunks/Tip-hf-doc-builder.js";import{Y as Np}from"../chunks/Youtube-hf-doc-builder.js";import{I as $a}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as U}from"../chunks/CodeBlock-hf-doc-builder.js";import{D as Wp}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(z){let s,d;return{c(){s=l("p"),d=r(`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(o){s=i(o,"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(o,m){u(o,s,m),a(s,d)},d(o){o&&t(s)}}}function Bp(z){let s,d,o,m,h,g,C,F;return{c(){s=l("p"),d=r("Para m\xE1s detalles acerca del "),o=l("code"),m=r("pipeline()"),h=r(" y tareas asociadas, consulta la documentaci\xF3n "),g=l("a"),C=r("aqu\xED"),F=r("."),this.h()},l(x){s=i(x,"P",{});var P=p(s);d=n(P,"Para m\xE1s detalles acerca del "),o=i(P,"CODE",{});var D=p(o);m=n(D,"pipeline()"),D.forEach(t),h=n(P," y tareas asociadas, consulta la documentaci\xF3n "),g=i(P,"A",{href:!0});var T=p(g);C=n(T,"aqu\xED"),T.forEach(t),F=n(P,"."),P.forEach(t),this.h()},h(){b(g,"href","./main_classes/pipelines")},m(x,P){u(x,s,P),a(s,d),a(s,o),a(o,m),a(s,h),a(s,g),a(g,C),a(s,F)},d(x){x&&t(s)}}}function Qp(z){let s,d;return s=new U({props:{code:"pip install torch",highlighted:"pip install torch"}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p:xe,i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function Kp(z){let s,d;return s=new ge({props:{$$slots:{default:[Qp]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function Jp(z){let s,d;return s=new U({props:{code:"pip install tensorflow",highlighted:"pip install tensorflow"}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p:xe,i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function Zp(z){let s,d;return s=new ge({props:{$$slots:{default:[Jp]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function Xp(z){let s,d,o,m,h,g,C,F,x,P,D;return P=new U({props:{code:`from transformers import AutoTokenizer, AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)`,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=l("p"),d=r("Usa "),o=l("code"),m=r("AutoModelForSequenceClassification"),h=r(" y [\u2018AutoTokenizer\u2019] para cargar un modelo preentrenado y un tokenizador asociado (m\xE1s en un "),g=l("code"),C=r("AutoClass"),F=r(" debajo):"),x=f(),E(P.$$.fragment)},l(T){s=i(T,"P",{});var M=p(s);d=n(M,"Usa "),o=i(M,"CODE",{});var H=p(o);m=n(H,"AutoModelForSequenceClassification"),H.forEach(t),h=n(M," y [\u2018AutoTokenizer\u2019] para cargar un modelo preentrenado y un tokenizador asociado (m\xE1s en un "),g=i(M,"CODE",{});var L=p(g);C=n(L,"AutoClass"),L.forEach(t),F=n(M," debajo):"),M.forEach(t),x=$(T),j(P.$$.fragment,T)},m(T,M){u(T,s,M),a(s,d),a(s,o),a(o,m),a(s,h),a(s,g),a(g,C),a(s,F),u(T,x,M),k(P,T,M),D=!0},p:xe,i(T){D||(w(P.$$.fragment,T),D=!0)},o(T){y(P.$$.fragment,T),D=!1},d(T){T&&t(s),T&&t(x),q(P,T)}}}function ec(z){let s,d;return s=new ge({props:{$$slots:{default:[Xp]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function ac(z){let s,d,o,m,h,g,C,F,x,P,D;return P=new U({props:{code:`from transformers import AutoTokenizer, TFAutoModelForSequenceClassification

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

model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
pt_model = AutoModelForSequenceClassification.from_pretrained(model_name)`,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)`}}),S=new vt({props:{$$slots:{default:[lc]},$$scope:{ctx:z}}}),ee=new U({props:{code:"pt_outputs = pt_model(**pt_batch)",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_outputs = pt_model(**pt_batch)'}}),O=new U({props:{code:`from torch import nn

pt_predictions = nn.functional.softmax(pt_outputs.logits, dim=-1)
print(pt_predictions)`,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=l("p"),d=r("\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),o=l("code"),m=r("AutoModel"),h=r(" como cargar\xEDas un "),g=l("code"),C=r("AutoTokenizer"),F=r(". La \xFAnica diferencia es seleccionar el "),x=l("code"),P=r("AutoModel"),D=r(" correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),T=l("code"),M=r("AutoModelForSequenceClassification"),H=r(":"),L=f(),E(N.$$.fragment),_=f(),E(S.$$.fragment),W=f(),R=l("p"),B=r("Ahora puedes pasar tu lote (batch) preprocesado de inputs directamente al modelo. Solo tienes que desempacar el diccionario a\xF1adiendo "),Y=l("code"),ae=r("**"),Q=r(":"),G=f(),E(ee.$$.fragment),K=f(),J=l("p"),me=r("El modelo producir\xE1 las activaciones finales en el atributo "),oe=l("code"),$e=r("logits"),re=r(". Aplica la funci\xF3n softmax a "),te=l("code"),ne=r("logits"),he=r(" para obtener las probabilidades:"),A=f(),E(O.$$.fragment)},l(v){s=i(v,"P",{});var I=p(s);d=n(I,"\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),o=i(I,"CODE",{});var pe=p(o);m=n(pe,"AutoModel"),pe.forEach(t),h=n(I," como cargar\xEDas un "),g=i(I,"CODE",{});var Pe=p(g);C=n(Pe,"AutoTokenizer"),Pe.forEach(t),F=n(I,". La \xFAnica diferencia es seleccionar el "),x=i(I,"CODE",{});var fe=p(x);P=n(fe,"AutoModel"),fe.forEach(t),D=n(I," correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),T=i(I,"CODE",{});var ve=p(T);M=n(ve,"AutoModelForSequenceClassification"),ve.forEach(t),H=n(I,":"),I.forEach(t),L=$(v),j(N.$$.fragment,v),_=$(v),j(S.$$.fragment,v),W=$(v),R=i(v,"P",{});var ie=p(R);B=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 Ne=p(Y);ae=n(Ne,"**"),Ne.forEach(t),Q=n(ie,":"),ie.forEach(t),G=$(v),j(ee.$$.fragment,v),K=$(v),J=i(v,"P",{});var be=p(J);me=n(be,"El modelo producir\xE1 las activaciones finales en el atributo "),oe=i(be,"CODE",{});var Ba=p(oe);$e=n(Ba,"logits"),Ba.forEach(t),re=n(be,". Aplica la funci\xF3n softmax a "),te=i(be,"CODE",{});var ha=p(te);ne=n(ha,"logits"),ha.forEach(t),he=n(be," para obtener las probabilidades:"),be.forEach(t),A=$(v),j(O.$$.fragment,v)},m(v,I){u(v,s,I),a(s,d),a(s,o),a(o,m),a(s,h),a(s,g),a(g,C),a(s,F),a(s,x),a(x,P),a(s,D),a(s,T),a(T,M),a(s,H),u(v,L,I),k(N,v,I),u(v,_,I),k(S,v,I),u(v,W,I),u(v,R,I),a(R,B),a(R,Y),a(Y,ae),a(R,Q),u(v,G,I),k(ee,v,I),u(v,K,I),u(v,J,I),a(J,me),a(J,oe),a(oe,$e),a(J,re),a(J,te),a(te,ne),a(J,he),u(v,A,I),k(O,v,I),le=!0},p(v,I){const pe={};I&2&&(pe.$$scope={dirty:I,ctx:v}),S.$set(pe)},i(v){le||(w(N.$$.fragment,v),w(S.$$.fragment,v),w(ee.$$.fragment,v),w(O.$$.fragment,v),le=!0)},o(v){y(N.$$.fragment,v),y(S.$$.fragment,v),y(ee.$$.fragment,v),y(O.$$.fragment,v),le=!1},d(v){v&&t(s),v&&t(L),q(N,v),v&&t(_),q(S,v),v&&t(W),v&&t(R),v&&t(G),q(ee,v),v&&t(K),v&&t(J),v&&t(A),q(O,v)}}}function pc(z){let s,d;return s=new ge({props:{$$slots:{default:[ic]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function cc(z){let s;return{c(){s=r("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,o){u(d,s,o)},d(d){d&&t(s)}}}function uc(z){let s,d,o,m,h,g,C,F,x,P,D,T,M,H,L,N,_,S,W,R,B,Y,ae,Q,G,ee,K,J,me,oe,$e,re,te,ne,he;return N=new U({props:{code:`from transformers import TFAutoModelForSequenceClassification

model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
tf_model = TFAutoModelForSequenceClassification.from_pretrained(model_name)`,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)`}}),S=new vt({props:{$$slots:{default:[cc]},$$scope:{ctx:z}}}),ae=new U({props:{code:"tf_outputs = tf_model(tf_batch)",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_outputs = tf_model(tf_batch)'}}),ne=new U({props:{code:`import tensorflow as tf

tf_predictions = tf.nn.softmax(tf_outputs.logits, axis=-1)
print(tf.math.round(tf_predictions * 10**4) / 10**4)`,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=l("p"),d=r("\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),o=l("code"),m=r("TFAutoModel"),h=r(" como cargar\xEDas un "),g=l("code"),C=r("AutoTokenizer"),F=r(". La \xFAnica diferencia es seleccionar el "),x=l("code"),P=r("TFAutoModel"),D=r(" correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),T=l("code"),M=r("TFAutoModelForSequenceClassification"),H=r(":"),L=f(),E(N.$$.fragment),_=f(),E(S.$$.fragment),W=f(),R=l("p"),B=r("Ahora puedes pasar tu lote preprocesado de inputs directamente al modelo pasando las llaves del diccionario directamente a los tensores:"),Y=f(),E(ae.$$.fragment),Q=f(),G=l("p"),ee=r("El modelo producir\xE1 las activaciones finales en el atributo "),K=l("code"),J=r("logits"),me=r(". Aplica la funci\xF3n softmax a "),oe=l("code"),$e=r("logits"),re=r(" para obtener las probabilidades:"),te=f(),E(ne.$$.fragment)},l(A){s=i(A,"P",{});var O=p(s);d=n(O,"\u{1F917} Transformers provee una forma simple y unificada de cargar tus instancias preentrenadas. Esto significa que puedes cargar un "),o=i(O,"CODE",{});var le=p(o);m=n(le,"TFAutoModel"),le.forEach(t),h=n(O," como cargar\xEDas un "),g=i(O,"CODE",{});var v=p(g);C=n(v,"AutoTokenizer"),v.forEach(t),F=n(O,". La \xFAnica diferencia es seleccionar el "),x=i(O,"CODE",{});var I=p(x);P=n(I,"TFAutoModel"),I.forEach(t),D=n(O," correcto para la tarea. Ya que est\xE1s clasificando texto, o secuencias, carga "),T=i(O,"CODE",{});var pe=p(T);M=n(pe,"TFAutoModelForSequenceClassification"),pe.forEach(t),H=n(O,":"),O.forEach(t),L=$(A),j(N.$$.fragment,A),_=$(A),j(S.$$.fragment,A),W=$(A),R=i(A,"P",{});var Pe=p(R);B=n(Pe,"Ahora puedes pasar tu lote preprocesado de inputs directamente al modelo pasando las llaves del diccionario directamente a los tensores:"),Pe.forEach(t),Y=$(A),j(ae.$$.fragment,A),Q=$(A),G=i(A,"P",{});var fe=p(G);ee=n(fe,"El modelo producir\xE1 las activaciones finales en el atributo "),K=i(fe,"CODE",{});var ve=p(K);J=n(ve,"logits"),ve.forEach(t),me=n(fe,". Aplica la funci\xF3n softmax a "),oe=i(fe,"CODE",{});var ie=p(oe);$e=n(ie,"logits"),ie.forEach(t),re=n(fe," para obtener las probabilidades:"),fe.forEach(t),te=$(A),j(ne.$$.fragment,A)},m(A,O){u(A,s,O),a(s,d),a(s,o),a(o,m),a(s,h),a(s,g),a(g,C),a(s,F),a(s,x),a(x,P),a(s,D),a(s,T),a(T,M),a(s,H),u(A,L,O),k(N,A,O),u(A,_,O),k(S,A,O),u(A,W,O),u(A,R,O),a(R,B),u(A,Y,O),k(ae,A,O),u(A,Q,O),u(A,G,O),a(G,ee),a(G,K),a(K,J),a(G,me),a(G,oe),a(oe,$e),a(G,re),u(A,te,O),k(ne,A,O),he=!0},p(A,O){const le={};O&2&&(le.$$scope={dirty:O,ctx:A}),S.$set(le)},i(A){he||(w(N.$$.fragment,A),w(S.$$.fragment,A),w(ae.$$.fragment,A),w(ne.$$.fragment,A),he=!0)},o(A){y(N.$$.fragment,A),y(S.$$.fragment,A),y(ae.$$.fragment,A),y(ne.$$.fragment,A),he=!1},d(A){A&&t(s),A&&t(L),q(N,A),A&&t(_),q(S,A),A&&t(W),A&&t(R),A&&t(Y),q(ae,A),A&&t(Q),A&&t(G),A&&t(te),q(ne,A)}}}function dc(z){let s,d;return s=new ge({props:{$$slots:{default:[uc]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function mc(z){let s,d,o,m,h;return{c(){s=l("p"),d=r("Todos los modelos de \u{1F917} Transformers (PyTorch o TensorFlow) producir\xE1n los tensores "),o=l("em"),m=r("antes"),h=r(` 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 C=p(s);d=n(C,"Todos los modelos de \u{1F917} Transformers (PyTorch o TensorFlow) producir\xE1n los tensores "),o=i(C,"EM",{});var F=p(o);m=n(F,"antes"),F.forEach(t),h=n(C,` 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.`),C.forEach(t)},m(g,C){u(g,s,C),a(s,d),a(s,o),a(o,m),a(s,h)},d(g){g&&t(s)}}}function fc(z){let s,d,o,m,h;return{c(){s=l("p"),d=r(`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 `),o=l("code"),m=r("None"),h=r(" son ignorados.")},l(g){s=i(g,"P",{});var C=p(s);d=n(C,`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 `),o=i(C,"CODE",{});var F=p(o);m=n(F,"None"),F.forEach(t),h=n(C," son ignorados."),C.forEach(t)},m(g,C){u(g,s,C),a(s,d),a(s,o),a(o,m),a(s,h)},d(g){g&&t(s)}}}function $c(z){let s,d,o,m,h,g,C,F,x,P,D,T,M,H,L,N;return C=new U({props:{code:`pt_save_directory = "./pt_save_pretrained"
tokenizer.save_pretrained(pt_save_directory)
pt_model.save_pretrained(pt_save_directory)`,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)`}}),L=new U({props:{code:'pt_model = AutoModelForSequenceClassification.from_pretrained("./pt_save_pretrained")',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=l("p"),d=r("Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),o=l("code"),m=r("PreTrainedModel.save_pretrained()"),h=r(":"),g=f(),E(C.$$.fragment),F=f(),x=l("p"),P=r("Cuando quieras usar el modelo otra vez c\xE1rgalo con "),D=l("code"),T=r("PreTrainedModel.from_pretrained()"),M=r(":"),H=f(),E(L.$$.fragment)},l(_){s=i(_,"P",{});var S=p(s);d=n(S,"Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),o=i(S,"CODE",{});var W=p(o);m=n(W,"PreTrainedModel.save_pretrained()"),W.forEach(t),h=n(S,":"),S.forEach(t),g=$(_),j(C.$$.fragment,_),F=$(_),x=i(_,"P",{});var R=p(x);P=n(R,"Cuando quieras usar el modelo otra vez c\xE1rgalo con "),D=i(R,"CODE",{});var B=p(D);T=n(B,"PreTrainedModel.from_pretrained()"),B.forEach(t),M=n(R,":"),R.forEach(t),H=$(_),j(L.$$.fragment,_)},m(_,S){u(_,s,S),a(s,d),a(s,o),a(o,m),a(s,h),u(_,g,S),k(C,_,S),u(_,F,S),u(_,x,S),a(x,P),a(x,D),a(D,T),a(x,M),u(_,H,S),k(L,_,S),N=!0},p:xe,i(_){N||(w(C.$$.fragment,_),w(L.$$.fragment,_),N=!0)},o(_){y(C.$$.fragment,_),y(L.$$.fragment,_),N=!1},d(_){_&&t(s),_&&t(g),q(C,_),_&&t(F),_&&t(x),_&&t(H),q(L,_)}}}function hc(z){let s,d;return s=new ge({props:{$$slots:{default:[$c]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function _c(z){let s,d,o,m,h,g,C,F,x,P,D,T,M,H,L,N;return C=new U({props:{code:`tf_save_directory = "./tf_save_pretrained"
tokenizer.save_pretrained(tf_save_directory)
tf_model.save_pretrained(tf_save_directory)`,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)`}}),L=new U({props:{code:'tf_model = TFAutoModelForSequenceClassification.from_pretrained("./tf_save_pretrained")',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=l("p"),d=r("Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),o=l("code"),m=r("TFPreTrainedModel.save_pretrained()"),h=r(":"),g=f(),E(C.$$.fragment),F=f(),x=l("p"),P=r("Cuando quieras usar el modelo otra vez c\xE1rgalo con "),D=l("code"),T=r("TFPreTrainedModel.from_pretrained()"),M=r(":"),H=f(),E(L.$$.fragment)},l(_){s=i(_,"P",{});var S=p(s);d=n(S,"Una vez que se haya hecho fine-tuning a tu modelo puedes guardarlo con tu tokenizador usando "),o=i(S,"CODE",{});var W=p(o);m=n(W,"TFPreTrainedModel.save_pretrained()"),W.forEach(t),h=n(S,":"),S.forEach(t),g=$(_),j(C.$$.fragment,_),F=$(_),x=i(_,"P",{});var R=p(x);P=n(R,"Cuando quieras usar el modelo otra vez c\xE1rgalo con "),D=i(R,"CODE",{});var B=p(D);T=n(B,"TFPreTrainedModel.from_pretrained()"),B.forEach(t),M=n(R,":"),R.forEach(t),H=$(_),j(L.$$.fragment,_)},m(_,S){u(_,s,S),a(s,d),a(s,o),a(o,m),a(s,h),u(_,g,S),k(C,_,S),u(_,F,S),u(_,x,S),a(x,P),a(x,D),a(D,T),a(x,M),u(_,H,S),k(L,_,S),N=!0},p:xe,i(_){N||(w(C.$$.fragment,_),w(L.$$.fragment,_),N=!0)},o(_){y(C.$$.fragment,_),y(L.$$.fragment,_),N=!1},d(_){_&&t(s),_&&t(g),q(C,_),_&&t(F),_&&t(x),_&&t(H),q(L,_)}}}function gc(z){let s,d;return s=new ge({props:{$$slots:{default:[_c]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function vc(z){let s,d;return s=new U({props:{code:`from transformers import AutoModel

tokenizer = AutoTokenizer.from_pretrained(tf_save_directory)
pt_model = AutoModelForSequenceClassification.from_pretrained(tf_save_directory, from_tf=True)`,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(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p:xe,i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function bc(z){let s,d;return s=new ge({props:{$$slots:{default:[vc]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function Ec(z){let s,d;return s=new U({props:{code:`from transformers import TFAutoModel

tokenizer = AutoTokenizer.from_pretrained(pt_save_directory)
tf_model = TFAutoModelForSequenceClassification.from_pretrained(pt_save_directory, from_pt=True)`,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(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p:xe,i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function jc(z){let s,d;return s=new ge({props:{$$slots:{default:[Ec]},$$scope:{ctx:z}}}),{c(){E(s.$$.fragment)},l(o){j(s.$$.fragment,o)},m(o,m){k(s,o,m),d=!0},p(o,m){const h={};m&2&&(h.$$scope={dirty:m,ctx:o}),s.$set(h)},i(o){d||(w(s.$$.fragment,o),d=!0)},o(o){y(s.$$.fragment,o),d=!1},d(o){q(s,o)}}}function kc(z){let s,d,o,m,h,g,C,F,x,P,D,T,M,H,L,N,_,S,W,R,B,Y,ae,Q,G,ee,K,J,me,oe,$e,re,te,ne,he,A,O,le,v,I,pe,Pe,fe,ve,ie,Ne,be,Ba,ha,V,bt,ar,tr,Et,sr,or,jt,rr,nr,kt,lr,ir,wt,pr,cr,yt,ur,dr,qt,mr,fr,At,$r,xs,_a,Tt,hr,_r,Ps,Ee,Ct,gr,vr,zt,br,Er,xt,jr,Ss,ga,Pt,kr,wr,Ms,Re,St,yr,qr,Mt,Ar,Fs,Ue,Ds,Se,He,Ft,va,Tr,Dt,Cr,Os,Ge,zr,Ot,xr,Pr,Ls,Qa,Sr,Is,Ve,Ns,We,Mr,Lt,Fr,Dr,Rs,ba,Us,je,Or,Ea,Lr,Ir,It,Nr,Rr,Hs,ja,Gs,Ye,Ur,Nt,Hr,Gr,Vs,ke,Vr,Rt,Wr,Yr,ka,Br,Qr,Ws,wa,Ys,_e,Kr,Ut,Jr,Zr,Ht,Xr,en,Gt,an,tn,Bs,ya,Qs,we,sn,qa,on,rn,Aa,nn,ln,Ks,Ta,Js,Be,pn,Vt,cn,un,Zs,Ca,Xs,Qe,dn,Wt,mn,fn,eo,za,ao,Ke,$n,Ka,hn,_n,to,Me,Je,Yt,xa,gn,Bt,vn,so,ce,bn,Qt,En,jn,Pa,kn,wn,Kt,yn,qn,Sa,An,Tn,oo,Ma,ro,Ze,no,ye,Cn,Jt,zn,xn,Zt,Pn,Sn,lo,Fa,io,qe,Mn,Ja,Fn,Dn,Za,On,Ln,po,Fe,Xe,Xt,Da,In,es,Nn,co,Oa,uo,Z,Rn,as,Un,Hn,ts,Gn,Vn,ss,Wn,Yn,Xa,Bn,Qn,os,Kn,Jn,rs,Zn,Xn,mo,Ae,el,ns,al,tl,ls,sl,ol,fo,De,ea,is,La,rl,ps,nl,$o,Te,ll,cs,il,pl,et,cl,ul,ho,aa,dl,us,ml,fl,_o,Ia,go,ta,$l,ds,hl,_l,vo,at,gl,bo,Na,Eo,tt,vl,jo,sa,st,ot,bl,El,jl,rt,nt,kl,wl,ko,oa,yl,ms,ql,Al,wo,ra,yo,na,Tl,lt,Cl,zl,qo,Oe,la,fs,Ra,xl,$s,Pl,Ao,ia,To,pa,Co,X,Sl,Ua,hs,Ml,Fl,Ha,_s,Dl,Ol,gs,Ll,Il,vs,Nl,Rl,Ga,Ul,Hl,it,Gl,Vl,zo,ca,xo,Le,ua,bs,Va,Wl,Es,Yl,Po,da,So,Ce,Bl,js,Ql,Kl,ks,Jl,Zl,Mo,ma,Fo;return g=new $a({}),D=new Wp({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:z}}}),K=new $a({}),O=new Np({props:{id:"tiZFewofSLM"}}),Ue=new vt({props:{$$slots:{default:[Bp]},$$scope:{ctx:z}}}),va=new $a({}),Ve=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Zp],pytorch:[Kp]},$$scope:{ctx:z}}}),ba=new U({props:{code:`from transformers import pipeline

clasificador = pipeline("sentiment-analysis", model="pysentimiento/robertuito-sentiment-analysis")`,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 U({props:{code:'clasificador("Estamos muy felices de mostrarte la biblioteca de \u{1F917} Transformers.")',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.9916</span>}]`}}),wa=new U({props:{code:"pip install datasets",highlighted:"pip install datasets"}}),ya=new U({props:{code:`import torch
from transformers import pipeline

reconocedor_de_voz = pipeline(
    "automatic-speech-recognition", model="jonatasgrosman/wav2vec2-large-xlsr-53-spanish", device=0
)`,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>)`}}),Ta=new U({props:{code:`from datasets import load_dataset, Audio

dataset = load_dataset("PolyAI/minds14", name="es-ES", split="train")`,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>)`}}),Ca=new U({props:{code:'dataset = dataset.cast_column("audio", Audio(sampling_rate=reconocedor_de_voz.feature_extractor.sampling_rate))',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))'}}),za=new U({props:{code:`resultado = reconocedor_de_voz(dataset[:4]["audio"])
print([d["text"] for d in resultado])`,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 vileza no carga el saldo de mi cuenta nueva dice que la villadenta siendo reparada y oro no puedo hacer a mi cuenta&#x27;</span>]`}}),xa=new $a({}),Ma=new U({props:{code:'model_name = "nlptown/bert-base-multilingual-uncased-sentiment"',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model_name = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>'}}),Ze=new gt({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[tc],pytorch:[ec]},$$scope:{ctx:z}}}),Fa=new U({props:{code:`classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
classifier("Nous sommes tr\xE8s heureux de vous pr\xE9senter la biblioth\xE8que \u{1F917} Transformers.")`,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>}]`}}),Da=new $a({}),Oa=new Np({props:{id:"AhChOFRegn4"}}),La=new $a({}),Ia=new U({props:{code:`from transformers import AutoTokenizer

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