Buckets:

rtrm's picture
download
raw
24 kB
import{s as nl,o as al}from"../chunks/scheduler.505acc25.js";import{S as ol,i as il,e as b,s as o,c as u,h as rl,a as y,d as s,b as i,f as Oe,g as m,j,k as el,l as pl,m as n,n as M,o as p,q as ll,t as c,p as d,r as sl}from"../chunks/index.ccc5f2c1.js";import{C as cl,E as ul}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.c4116545.js";import{C as T}from"../chunks/CodeBlock.a0433fd4.js";import{C as tl}from"../chunks/CourseFloatingBanner.edb13094.js";import{F as ml}from"../chunks/FrameworkSwitchCourse.aac7137d.js";import{H as Ee}from"../chunks/Heading.666af0ac.js";function Ml(w){let a,r;return a=new tl({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_tf.ipynb"}]}}),{c(){u(a.$$.fragment)},l(t){m(a.$$.fragment,t)},m(t,J){M(a,t,J),r=!0},i(t){r||(c(a.$$.fragment,t),r=!0)},o(t){p(a.$$.fragment,t),r=!1},d(t){d(a,t)}}}function dl(w){let a,r;return a=new tl({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section6_pt.ipynb"}]}}),{c(){u(a.$$.fragment)},l(t){m(a.$$.fragment,t)},m(t,J){M(a,t,J),r=!0},i(t){r||(c(a.$$.fragment,t),r=!0)},o(t){p(a.$$.fragment,t),r=!1},d(t){d(a,t)}}}function bl(w){let a,r;return a=new T({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUyQyUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBc2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEF0b2tlbnMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIydGYlMjIpJTBBb3V0cHV0JTIwJTNEJTIwbW9kZWwoKip0b2tlbnMp",highlighted:`<span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForSequenceClassification
checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint)
sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]
tokens = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;tf&quot;</span>)
output = model(**tokens)`,wrap:!1}}),{c(){u(a.$$.fragment)},l(t){m(a.$$.fragment,t)},m(t,J){M(a,t,J),r=!0},i(t){r||(c(a.$$.fragment,t),r=!0)},o(t){p(a.$$.fragment,t),r=!1},d(t){d(a,t)}}}function yl(w){let a,r;return a=new T({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUyQyUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEFzZXF1ZW5jZXMlMjAlM0QlMjAlNUIlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMkMlMjAlMjJTbyUyMGhhdmUlMjBJISUyMiU1RCUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHRydW5jYXRpb24lM0RUcnVlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEFvdXRwdXQlMjAlM0QlMjBtb2RlbCgqKnRva2Vucyk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForSequenceClassification
checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForSequenceClassification.from_pretrained(checkpoint)
sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]
tokens = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
output = model(**tokens)`,wrap:!1}}),{c(){u(a.$$.fragment)},l(t){m(a.$$.fragment,t)},m(t,J){M(a,t,J),r=!0},i(t){r||(c(a.$$.fragment,t),r=!0)},o(t){p(a.$$.fragment,t),r=!1},d(t){d(a,t)}}}function Jl(w){let a,r,t,J,g,ne,Z,ae,k,oe,f,h,le,V,Ge="En las últimas secciones, hemos hecho nuestro mejor esfuerzo para realizar la mayor parte del trabajo a mano. Exploramos como funcionan los tokenizadores y vimos la tokenización, conversión a IDs de entrada, relleno, truncado, y máscaras de atención.",ie,$,Se="Sin embargo, como vimos en la sección 3, la API de transformadores 🤗 puede manejar todo esto por nosotros con una función de alto nivel la cual trataremos aquí. Cuando llamas a tu <code>tokenizer</code> directamente en una sentencia, obtienes entradas que están lista para pasar a tu modelo:",re,W,pe,z,Ne="Aquí la variable <code>model_inputs</code> contiene todo lo necesario para que un modelo opere bien. Para DistilBERT, que incluye los IDs de entrada también como la máscara de atención. Otros modelos que aceptan entradas adicionales también tendrán las salidas del objeto <code>tokenizer</code>.",ce,X,qe="Como veremos en los ejemplos de abajo, este método es muy poderoso. Primero, puede tokenizar una sola secuencia:",ue,B,me,v,xe="También maneja múltiples secuencias a la vez, sin cambios en la API:",Me,E,de,G,Ye="Puede rellenar de acuerdo a varios objetivos:",be,S,ye,N,_e="También puede truncar secuencias:",Je,q,je,x,Re="El objeto <code>tokenizer</code> puede manejar la conversión a tensores de frameworks específicos, los cuales pueden ser enviados directamente al modelo. Por ejemplo, en el siguiente código de ejemplo estamos solicitando al tokenizer que regrese los tensores de los distintos frameworks — <code>&quot;pt&quot;</code> regresa tensores de PyTorch, <code>&quot;tf&quot;</code> regresa tensores de TensorFlow, y <code>&quot;np&quot;</code> regresa arreglos de NumPy:",Te,Y,we,_,fe,R,Ce="Si damos un vistazo a los IDs de entrada retornados por el tokenizer, veremos que son un poquito diferentes a lo que teníamos anteriormente:",he,C,Ue,Q,Ie,F,Qe="Se agregó un ID de token al principio, y uno al final. Decodifiquemos las dos secuencias de IDs de arriba para ver de que se trata:",ge,H,Ze,A,ke,D,Fe="El tokenizador agregó la palabra especial <code>[CLS]</code> al principio y la palabra especial <code>[SEP]</code> al final. Esto se debe a que el modelo fue preentrenado con esos, así para obtener los mismos resultados por inferencia necesitamos agregarlos también. Nota que algunos modelos no agregan palabras especiales, o agregan unas distintas; los modelos también pueden agregar estas palabras especiales sólo al principio, o sólo al final. En cualquier caso, el tokenizador sabe cuáles son las esperadas y se encargará de ello por tí.",Ve,P,$e,L,He="Ahora que hemos visto todos los pasos individuales que el objeto <code>tokenizer</code> usa cuando se aplica a textos, veamos una última vez cómo maneja varias secuencias (¡relleno!), secuencias muy largas (¡truncado!), y múltiples tipos de tensores con su API principal:",We,U,I,se,K,ze,te,Xe;g=new ml({props:{fw:w[0]}}),Z=new cl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),k=new Ee({props:{title:"Poniendo todo junto",local:"poniendo-todo-junto",headingTag:"h1"}});const Ae=[dl,Ml],O=[];function De(e,l){return e[0]==="pt"?0:1}f=De(w),h=O[f]=Ae[f](w),W=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQSUwQXNlcXVlbmNlJTIwJTNEJTIwJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTBBJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>
model_inputs = tokenizer(sequence)`,wrap:!1}}),B=new T({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2Up",highlighted:`sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>
model_inputs = tokenizer(sequence)`,wrap:!1}}),E=new T({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzKQ==",highlighted:`sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]
model_inputs = tokenizer(sequences)`,wrap:!1}}),S=new T({props:{code:"JTIzJTIwUmVsbGVuYXIlMjBsYXMlMjBzZWN1ZW5jaWFzJTIwaGFzdGElMjBsYSUyMG1heW9yJTIwbG9uZ2l0dWQlMjBkZSUyMHNlY3VlbmNpYSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEJTIybG9uZ2VzdCUyMiklMEElMEElMjMlMjBSZWxsZW5hciUyMGxhcyUyMHNlY3VlbmNpYXMlMjBoYXN0YSUyMGxhJTIwbSVDMyVBMXhpbWElMjBsb25naXR1ZCUyMGRlbCUyMG1vZGVsbyUwQSUyMyUyMCg1MTIlMjBwYXJhJTIwQkVSVCUyMG8lMjBEaXN0aWxCRVJUKSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEJTIybWF4X2xlbmd0aCUyMiklMEElMEElMjMlMjBSZWxsZW5hciUyMGxhcyUyMHNlY3VlbmNpYXMlMjBoYXN0YSUyMGxhJTIwbSVDMyVBMXhpbWElMjBsb25naXR1ZCUyMGVzcGVjaWZpY2FkYSUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEJTIybWF4X2xlbmd0aCUyMiUyQyUyMG1heF9sZW5ndGglM0Q4KQ==",highlighted:`<span class="hljs-comment"># Rellenar las secuencias hasta la mayor longitud de secuencia</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;longest&quot;</span>)
<span class="hljs-comment"># Rellenar las secuencias hasta la máxima longitud del modelo</span>
<span class="hljs-comment"># (512 para BERT o DistilBERT)</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;max_length&quot;</span>)
<span class="hljs-comment"># Rellenar las secuencias hasta la máxima longitud especificada</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-string">&quot;max_length&quot;</span>, max_length=<span class="hljs-number">8</span>)`,wrap:!1}}),q=new T({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEElMjMlMjBUcnVuY2FyJTIwbGFzJTIwc2VjdWVuY2lhcyUyMG0lQzMlQTFzJTIwbGFyZ2FzJTIwcXVlJTIwbGElMjBtJUMzJUExeGltYSUyMGxvbmdpdHVkJTIwZGVsJTIwbW9kZWxvJTBBJTIzJTIwKDUxMiUyMHBhcmElMjBCRVJUJTIwbyUyMERpc3RpbEJFUlQpJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMHRydW5jYXRpb24lM0RUcnVlKSUwQSUwQSUyMyUyMFRydW5jYXIlMjBsYXMlMjBzZWN1ZW5jaWFzJTIwbSVDMyVBMXMlMjBsYXJnYXMlMjBxdWUlMjBsYSUyMGxvbmdpdHVkJTIwZXNwZWNpZmljYWRhJTBBbW9kZWxfaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKHNlcXVlbmNlcyUyQyUyMG1heF9sZW5ndGglM0Q4JTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUp",highlighted:`sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]
<span class="hljs-comment"># Truncar las secuencias más largas que la máxima longitud del modelo</span>
<span class="hljs-comment"># (512 para BERT o DistilBERT)</span>
model_inputs = tokenizer(sequences, truncation=<span class="hljs-literal">True</span>)
<span class="hljs-comment"># Truncar las secuencias más largas que la longitud especificada</span>
model_inputs = tokenizer(sequences, max_length=<span class="hljs-number">8</span>, truncation=<span class="hljs-literal">True</span>)`,wrap:!1}}),Y=new T({props:{code:"c2VxdWVuY2VzJTIwJTNEJTIwJTVCJTIySSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMEh1Z2dpbmdGYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIyJTJDJTIwJTIyU28lMjBoYXZlJTIwSSElMjIlNUQlMEElMEElMjMlMjBEZXZ1ZWx2ZSUyMHRlbnNvcmVzJTIwUHlUb3JjaCUwQW1vZGVsX2lucHV0cyUyMCUzRCUyMHRva2VuaXplcihzZXF1ZW5jZXMlMkMlMjBwYWRkaW5nJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBJTBBJTIzJTIwRGV2dWVsdmUlMjB0ZW5zb3JlcyUyMFRlbnNvckZsb3clMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnRmJTIyKSUwQSUwQSUyMyUyMERldnVlbHZlJTIwYXJyYXlzJTIwTnVtcHklMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMm5wJTIyKQ==",highlighted:`sequences = [<span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>, <span class="hljs-string">&quot;So have I!&quot;</span>]
<span class="hljs-comment"># Devuelve tensores PyTorch</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
<span class="hljs-comment"># Devuelve tensores TensorFlow</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;tf&quot;</span>)
<span class="hljs-comment"># Devuelve arrays Numpy</span>
model_inputs = tokenizer(sequences, padding=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">&quot;np&quot;</span>)`,wrap:!1}}),_=new Ee({props:{title:"Tokens especiales",local:"tokens-especiales",headingTag:"h2"}}),C=new T({props:{code:"c2VxdWVuY2UlMjAlM0QlMjAlMjJJJ3ZlJTIwYmVlbiUyMHdhaXRpbmclMjBmb3IlMjBhJTIwSHVnZ2luZ0ZhY2UlMjBjb3Vyc2UlMjBteSUyMHdob2xlJTIwbGlmZS4lMjIlMEElMEFtb2RlbF9pbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2UpJTBBcHJpbnQobW9kZWxfaW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVEKSUwQSUwQXRva2VucyUyMCUzRCUyMHRva2VuaXplci50b2tlbml6ZShzZXF1ZW5jZSklMEFpZHMlMjAlM0QlMjB0b2tlbml6ZXIuY29udmVydF90b2tlbnNfdG9faWRzKHRva2VucyklMEFwcmludChpZHMp",highlighted:`sequence = <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>
model_inputs = tokenizer(sequence)
<span class="hljs-built_in">print</span>(model_inputs[<span class="hljs-string">&quot;input_ids&quot;</span>])
tokens = tokenizer.tokenize(sequence)
ids = tokenizer.convert_tokens_to_ids(tokens)
<span class="hljs-built_in">print</span>(ids)`,wrap:!1}}),Q=new T({props:{code:"JTVCMTAxJTJDJTIwMTA0NSUyQyUyMDEwMDUlMkMlMjAyMzEwJTJDJTIwMjA0MiUyQyUyMDM0MDMlMkMlMjAyMDA1JTJDJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwMjAyNiUyQyUyMDI4NzglMkMlMjAyMTY2JTJDJTIwMTAxMiUyQyUyMDEwMiU1RCUwQSU1QjEwNDUlMkMlMjAxMDA1JTJDJTIwMjMxMCUyQyUyMDIwNDIlMkMlMjAzNDAzJTJDJTIwMjAwNSUyQyUyMDEwMzclMkMlMjAxNzY2MiUyQyUyMDEyMTcyJTJDJTIwMjYwNyUyQyUyMDIwMjYlMkMlMjAyODc4JTJDJTIwMjE2NiUyQyUyMDEwMTIlNUQ=",highlighted:`[<span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>]
[<span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>]`,wrap:!1}}),H=new T({props:{code:"cHJpbnQodG9rZW5pemVyLmRlY29kZShtb2RlbF9pbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQpKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUoaWRzKSk=",highlighted:`<span class="hljs-built_in">print</span>(tokenizer.decode(model_inputs[<span class="hljs-string">&quot;input_ids&quot;</span>]))
<span class="hljs-built_in">print</span>(tokenizer.decode(ids))`,wrap:!1}}),A=new T({props:{code:"JTIyJTVCQ0xTJTVEJTIwaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIwJTVCU0VQJTVEJTIyJTBBJTIyaSd2ZSUyMGJlZW4lMjB3YWl0aW5nJTIwZm9yJTIwYSUyMGh1Z2dpbmdmYWNlJTIwY291cnNlJTIwbXklMjB3aG9sZSUyMGxpZmUuJTIy",highlighted:`<span class="hljs-string">&quot;[CLS] i&#x27;ve been waiting for a huggingface course my whole life. [SEP]&quot;</span>
<span class="hljs-string">&quot;i&#x27;ve been waiting for a huggingface course my whole life.&quot;</span>`,wrap:!1}}),P=new Ee({props:{title:"Conclusión: Del tokenizador al modelo",local:"conclusión-del-tokenizador-al-modelo",headingTag:"h2"}});const Pe=[yl,bl],ee=[];function Le(e,l){return e[0]==="pt"?0:1}return U=Le(w),I=ee[U]=Pe[U](w),K=new ul({props:{source:"https://github.com/huggingface/course/blob/main/chapters/es/chapter2/6.mdx"}}),{c(){a=b("meta"),r=o(),t=b("p"),J=o(),u(g.$$.fragment),ne=o(),u(Z.$$.fragment),ae=o(),u(k.$$.fragment),oe=o(),h.c(),le=o(),V=b("p"),V.textContent=Ge,ie=o(),$=b("p"),$.innerHTML=Se,re=o(),u(W.$$.fragment),pe=o(),z=b("p"),z.innerHTML=Ne,ce=o(),X=b("p"),X.textContent=qe,ue=o(),u(B.$$.fragment),me=o(),v=b("p"),v.textContent=xe,Me=o(),u(E.$$.fragment),de=o(),G=b("p"),G.textContent=Ye,be=o(),u(S.$$.fragment),ye=o(),N=b("p"),N.textContent=_e,Je=o(),u(q.$$.fragment),je=o(),x=b("p"),x.innerHTML=Re,Te=o(),u(Y.$$.fragment),we=o(),u(_.$$.fragment),fe=o(),R=b("p"),R.textContent=Ce,he=o(),u(C.$$.fragment),Ue=o(),u(Q.$$.fragment),Ie=o(),F=b("p"),F.textContent=Qe,ge=o(),u(H.$$.fragment),Ze=o(),u(A.$$.fragment),ke=o(),D=b("p"),D.innerHTML=Fe,Ve=o(),u(P.$$.fragment),$e=o(),L=b("p"),L.innerHTML=He,We=o(),I.c(),se=o(),u(K.$$.fragment),ze=o(),te=b("p"),this.h()},l(e){const l=rl("svelte-u9bgzb",document.head);a=y(l,"META",{name:!0,content:!0}),l.forEach(s),r=i(e),t=y(e,"P",{}),Oe(t).forEach(s),J=i(e),m(g.$$.fragment,e),ne=i(e),m(Z.$$.fragment,e),ae=i(e),m(k.$$.fragment,e),oe=i(e),h.l(e),le=i(e),V=y(e,"P",{"data-svelte-h":!0}),j(V)!=="svelte-ootnqm"&&(V.textContent=Ge),ie=i(e),$=y(e,"P",{"data-svelte-h":!0}),j($)!=="svelte-12i1fv7"&&($.innerHTML=Se),re=i(e),m(W.$$.fragment,e),pe=i(e),z=y(e,"P",{"data-svelte-h":!0}),j(z)!=="svelte-12obtmm"&&(z.innerHTML=Ne),ce=i(e),X=y(e,"P",{"data-svelte-h":!0}),j(X)!=="svelte-6pjq23"&&(X.textContent=qe),ue=i(e),m(B.$$.fragment,e),me=i(e),v=y(e,"P",{"data-svelte-h":!0}),j(v)!=="svelte-o7u3ew"&&(v.textContent=xe),Me=i(e),m(E.$$.fragment,e),de=i(e),G=y(e,"P",{"data-svelte-h":!0}),j(G)!=="svelte-b3jl4"&&(G.textContent=Ye),be=i(e),m(S.$$.fragment,e),ye=i(e),N=y(e,"P",{"data-svelte-h":!0}),j(N)!=="svelte-wqrurn"&&(N.textContent=_e),Je=i(e),m(q.$$.fragment,e),je=i(e),x=y(e,"P",{"data-svelte-h":!0}),j(x)!=="svelte-1ez2wgj"&&(x.innerHTML=Re),Te=i(e),m(Y.$$.fragment,e),we=i(e),m(_.$$.fragment,e),fe=i(e),R=y(e,"P",{"data-svelte-h":!0}),j(R)!=="svelte-119b45p"&&(R.textContent=Ce),he=i(e),m(C.$$.fragment,e),Ue=i(e),m(Q.$$.fragment,e),Ie=i(e),F=y(e,"P",{"data-svelte-h":!0}),j(F)!=="svelte-yx5fsr"&&(F.textContent=Qe),ge=i(e),m(H.$$.fragment,e),Ze=i(e),m(A.$$.fragment,e),ke=i(e),D=y(e,"P",{"data-svelte-h":!0}),j(D)!=="svelte-1o9pe6g"&&(D.innerHTML=Fe),Ve=i(e),m(P.$$.fragment,e),$e=i(e),L=y(e,"P",{"data-svelte-h":!0}),j(L)!=="svelte-15tut9c"&&(L.innerHTML=He),We=i(e),I.l(e),se=i(e),m(K.$$.fragment,e),ze=i(e),te=y(e,"P",{}),Oe(te).forEach(s),this.h()},h(){el(a,"name","hf:doc:metadata"),el(a,"content",jl)},m(e,l){pl(document.head,a),n(e,r,l),n(e,t,l),n(e,J,l),M(g,e,l),n(e,ne,l),M(Z,e,l),n(e,ae,l),M(k,e,l),n(e,oe,l),O[f].m(e,l),n(e,le,l),n(e,V,l),n(e,ie,l),n(e,$,l),n(e,re,l),M(W,e,l),n(e,pe,l),n(e,z,l),n(e,ce,l),n(e,X,l),n(e,ue,l),M(B,e,l),n(e,me,l),n(e,v,l),n(e,Me,l),M(E,e,l),n(e,de,l),n(e,G,l),n(e,be,l),M(S,e,l),n(e,ye,l),n(e,N,l),n(e,Je,l),M(q,e,l),n(e,je,l),n(e,x,l),n(e,Te,l),M(Y,e,l),n(e,we,l),M(_,e,l),n(e,fe,l),n(e,R,l),n(e,he,l),M(C,e,l),n(e,Ue,l),M(Q,e,l),n(e,Ie,l),n(e,F,l),n(e,ge,l),M(H,e,l),n(e,Ze,l),M(A,e,l),n(e,ke,l),n(e,D,l),n(e,Ve,l),M(P,e,l),n(e,$e,l),n(e,L,l),n(e,We,l),ee[U].m(e,l),n(e,se,l),M(K,e,l),n(e,ze,l),n(e,te,l),Xe=!0},p(e,[l]){const Ke={};l&1&&(Ke.fw=e[0]),g.$set(Ke);let Be=f;f=De(e),f!==Be&&(sl(),p(O[Be],1,1,()=>{O[Be]=null}),ll(),h=O[f],h||(h=O[f]=Ae[f](e),h.c()),c(h,1),h.m(le.parentNode,le));let ve=U;U=Le(e),U!==ve&&(sl(),p(ee[ve],1,1,()=>{ee[ve]=null}),ll(),I=ee[U],I||(I=ee[U]=Pe[U](e),I.c()),c(I,1),I.m(se.parentNode,se))},i(e){Xe||(c(g.$$.fragment,e),c(Z.$$.fragment,e),c(k.$$.fragment,e),c(h),c(W.$$.fragment,e),c(B.$$.fragment,e),c(E.$$.fragment,e),c(S.$$.fragment,e),c(q.$$.fragment,e),c(Y.$$.fragment,e),c(_.$$.fragment,e),c(C.$$.fragment,e),c(Q.$$.fragment,e),c(H.$$.fragment,e),c(A.$$.fragment,e),c(P.$$.fragment,e),c(I),c(K.$$.fragment,e),Xe=!0)},o(e){p(g.$$.fragment,e),p(Z.$$.fragment,e),p(k.$$.fragment,e),p(h),p(W.$$.fragment,e),p(B.$$.fragment,e),p(E.$$.fragment,e),p(S.$$.fragment,e),p(q.$$.fragment,e),p(Y.$$.fragment,e),p(_.$$.fragment,e),p(C.$$.fragment,e),p(Q.$$.fragment,e),p(H.$$.fragment,e),p(A.$$.fragment,e),p(P.$$.fragment,e),p(I),p(K.$$.fragment,e),Xe=!1},d(e){e&&(s(r),s(t),s(J),s(ne),s(ae),s(oe),s(le),s(V),s(ie),s($),s(re),s(pe),s(z),s(ce),s(X),s(ue),s(me),s(v),s(Me),s(de),s(G),s(be),s(ye),s(N),s(Je),s(je),s(x),s(Te),s(we),s(fe),s(R),s(he),s(Ue),s(Ie),s(F),s(ge),s(Ze),s(ke),s(D),s(Ve),s($e),s(L),s(We),s(se),s(ze),s(te)),s(a),d(g,e),d(Z,e),d(k,e),O[f].d(e),d(W,e),d(B,e),d(E,e),d(S,e),d(q,e),d(Y,e),d(_,e),d(C,e),d(Q,e),d(H,e),d(A,e),d(P,e),ee[U].d(e),d(K,e)}}}const jl='{"title":"Poniendo todo junto","local":"poniendo-todo-junto","sections":[{"title":"Tokens especiales","local":"tokens-especiales","sections":[],"depth":2},{"title":"Conclusión: Del tokenizador al modelo","local":"conclusión-del-tokenizador-al-modelo","sections":[],"depth":2}],"depth":1}';function Tl(w,a,r){let t="pt";return al(()=>{const J=new URLSearchParams(window.location.search);r(0,t=J.get("fw")||"pt")}),[t]}class kl extends ol{constructor(a){super(),il(this,a,Tl,Jl,nl,{})}}export{kl as component};

Xet Storage Details

Size:
24 kB
·
Xet hash:
018c6a7970e7c5bb0fdff7f1e23cb3b7c27e0b95612240870b74493a8ce67d1f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.