Buckets:

rtrm's picture
download
raw
39.7 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;C贸mo resuelven tareas los 馃 Transformers&quot;,&quot;local&quot;:&quot;c贸mo-resuelven-tareas-los--transformers&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Modelos Transformer para lenguaje&quot;,&quot;local&quot;:&quot;modelos-transformer-para-lenguaje&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;C贸mo funcionan los modelos del lenguaje&quot;,&quot;local&quot;:&quot;c贸mo-funcionan-los-modelos-del-lenguaje&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Tipos de modelos del lenguaje&quot;,&quot;local&quot;:&quot;tipos-de-modelos-del-lenguaje&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Generaci贸n de texto&quot;,&quot;local&quot;:&quot;generaci贸n-de-texto&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Clasificaci贸n de texto&quot;,&quot;local&quot;:&quot;clasificaci贸n-de-texto&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Clasificaci贸n de tokens&quot;,&quot;local&quot;:&quot;clasificaci贸n-de-tokens&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Question answering&quot;,&quot;local&quot;:&quot;question-answering&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Resumen autom谩tico&quot;,&quot;local&quot;:&quot;resumen-autom谩tico&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Traducci贸n&quot;,&quot;local&quot;:&quot;traducci贸n&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Modalidades m谩s all谩 del texto&quot;,&quot;local&quot;:&quot;modalidades-m谩s-all谩-del-texto&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Voz y audio&quot;,&quot;local&quot;:&quot;voz-y-audio&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Reconocimiento autom谩tico de voz&quot;,&quot;local&quot;:&quot;reconocimiento-autom谩tico-de-voz&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Visi贸n por computador&quot;,&quot;local&quot;:&quot;visi贸n-por-computador&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Clasificaci贸n de im谩genes&quot;,&quot;local&quot;:&quot;clasificaci贸n-de-im谩genes&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2}],&quot;depth&quot;:1}">
<link href="/docs/course/pr_1213/es/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/entry/start.36d27295.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/scheduler.505acc25.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/singletons.6865fa96.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/index.001f95d5.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/paths.ec28c642.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/entry/app.3b43d7f3.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/preload-helper.8c2bab6b.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/index.e22abd30.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/nodes/0.e2c0ea78.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/each.e59479a4.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/nodes/9.7212c03b.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/MermaidChart.svelte_svelte_type_style_lang.a144e953.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/Youtube.7545e4b1.js">
<link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/CodeBlock.f6688f67.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;C贸mo resuelven tareas los 馃 Transformers&quot;,&quot;local&quot;:&quot;c贸mo-resuelven-tareas-los--transformers&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Modelos Transformer para lenguaje&quot;,&quot;local&quot;:&quot;modelos-transformer-para-lenguaje&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;C贸mo funcionan los modelos del lenguaje&quot;,&quot;local&quot;:&quot;c贸mo-funcionan-los-modelos-del-lenguaje&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Tipos de modelos del lenguaje&quot;,&quot;local&quot;:&quot;tipos-de-modelos-del-lenguaje&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Generaci贸n de texto&quot;,&quot;local&quot;:&quot;generaci贸n-de-texto&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Clasificaci贸n de texto&quot;,&quot;local&quot;:&quot;clasificaci贸n-de-texto&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Clasificaci贸n de tokens&quot;,&quot;local&quot;:&quot;clasificaci贸n-de-tokens&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Question answering&quot;,&quot;local&quot;:&quot;question-answering&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Resumen autom谩tico&quot;,&quot;local&quot;:&quot;resumen-autom谩tico&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Traducci贸n&quot;,&quot;local&quot;:&quot;traducci贸n&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Modalidades m谩s all谩 del texto&quot;,&quot;local&quot;:&quot;modalidades-m谩s-all谩-del-texto&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Voz y audio&quot;,&quot;local&quot;:&quot;voz-y-audio&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Reconocimiento autom谩tico de voz&quot;,&quot;local&quot;:&quot;reconocimiento-autom谩tico-de-voz&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Visi贸n por computador&quot;,&quot;local&quot;:&quot;visi贸n-por-computador&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Clasificaci贸n de im谩genes&quot;,&quot;local&quot;:&quot;clasificaci贸n-de-im谩genes&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2}],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"><div class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg></span> <span>Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg></button></div> </div> <h1 class="relative group"><a id="c贸mo-resuelven-tareas-los--transformers" 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" href="#c贸mo-resuelven-tareas-los--transformers"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>C贸mo resuelven tareas los 馃 Transformers</span></h1> <iframe class="w-full xl:w-4/6 h-80" src="https://www.youtube-nocookie.com/embed/zsfR7eY9Uho" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <p data-svelte-h="svelte-12n928p">En <a href="/course/chapter1/3">Transformers, 驴qu茅 pueden hacer?</a> viste tareas de procesamiento de lenguaje natural, audio y visi贸n por computador. En esta p谩gina veremos con m谩s detalle c贸mo los modelos resuelven esas tareas y qu茅 sucede internamente. Aunque existen muchas formas de abordar una tarea, en los modelos Transformer la idea general suele ser la misma: la mayor铆a son variantes de un encoder, un decoder o una arquitectura encoder-decoder.</p> <blockquote class="tip" data-svelte-h="svelte-1fdbxia"><p>Antes de entrar en variantes arquitect贸nicas concretas, conviene recordar que la mayor铆a de tareas siguen un patr贸n parecido: los datos de entrada pasan por un modelo y la salida se interpreta para una tarea espec铆fica. Lo que cambia es c贸mo se preparan los datos, qu茅 variante arquitect贸nica se usa y c贸mo se procesa la salida.</p></blockquote> <p data-svelte-h="svelte-16z8z8f">Para explicar c贸mo se resuelven las tareas, repasaremos qu茅 ocurre dentro del modelo para producir predicciones 煤tiles. Cubriremos los siguientes modelos y tareas asociadas:</p> <ul data-svelte-h="svelte-yv6twm"><li><a href="https://huggingface.co/docs/transformers/model_doc/wav2vec2" rel="nofollow">Wav2Vec2</a> para clasificaci贸n de audio y reconocimiento autom谩tico de voz.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/vit" rel="nofollow">Vision Transformer (ViT)</a> y <a href="https://huggingface.co/docs/transformers/model_doc/convnext" rel="nofollow">ConvNeXT</a> para clasificaci贸n de im谩genes.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/detr" rel="nofollow">DETR</a> para detecci贸n de objetos.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/mask2former" rel="nofollow">Mask2Former</a> para segmentaci贸n de im谩genes.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/glpn" rel="nofollow">GLPN</a> para estimaci贸n de profundidad.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/bert" rel="nofollow">BERT</a> para tareas de PLN como clasificaci贸n de texto, clasificaci贸n de tokens y question answering.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/gpt2" rel="nofollow">GPT-2</a> para generaci贸n de texto.</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/bart" rel="nofollow">BART</a> para tareas como resumen y traducci贸n.</li></ul> <h2 class="relative group"><a id="modelos-transformer-para-lenguaje" 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" href="#modelos-transformer-para-lenguaje"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Modelos Transformer para lenguaje</span></h2> <p data-svelte-h="svelte-y9fxaf">Los modelos del lenguaje est谩n en el coraz贸n del PLN moderno. Est谩n dise帽ados para entender y generar lenguaje humano aprendiendo patrones estad铆sticos y relaciones entre palabras o tokens.</p> <p data-svelte-h="svelte-177i4jr">El Transformer se dise帽贸 inicialmente para traducci贸n autom谩tica y desde entonces se ha convertido en la arquitectura por defecto para resolver tareas de IA. Algunas tareas se adaptan mejor a la estructura encoder, otras al decoder y otras a una combinaci贸n de ambas.</p> <h3 class="relative group"><a id="c贸mo-funcionan-los-modelos-del-lenguaje" 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" href="#c贸mo-funcionan-los-modelos-del-lenguaje"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>C贸mo funcionan los modelos del lenguaje</span></h3> <p data-svelte-h="svelte-ucx1mz">Los modelos del lenguaje se entrenan para predecir la probabilidad de una palabra dado el contexto que la rodea. Eso les da una comprensi贸n b谩sica del lenguaje que luego puede reutilizarse en otras tareas.</p> <p data-svelte-h="svelte-3gbzkd">Existen dos enfoques principales para entrenar un Transformer:</p> <ol data-svelte-h="svelte-7w4j94"><li><strong>Masked language modeling (MLM)</strong>: lo usan modelos encoder como BERT. Se enmascaran algunos tokens y el modelo aprende a reconstruirlos a partir del contexto de ambos lados.</li> <li><strong>Causal language modeling (CLM)</strong>: lo usan modelos decoder como GPT. El modelo predice el siguiente token a partir de los anteriores de la secuencia.</li></ol> <h3 class="relative group"><a id="tipos-de-modelos-del-lenguaje" 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" href="#tipos-de-modelos-del-lenguaje"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Tipos de modelos del lenguaje</span></h3> <p data-svelte-h="svelte-14hbmqc">En la librer铆a Transformers, los modelos del lenguaje suelen caer en tres categor铆as arquitect贸nicas:</p> <ol data-svelte-h="svelte-1ppkph0"><li><strong>Modelos solo encoder</strong> como BERT: entienden bien el contexto bidireccional y son ideales para clasificaci贸n, reconocimiento de entidades y question answering extractivo.</li> <li><strong>Modelos solo decoder</strong> como GPT o Llama: procesan texto de izquierda a derecha y destacan en tareas de generaci贸n.</li> <li><strong>Modelos encoder-decoder</strong> como T5 o BART: combinan ambas aproximaciones y sobresalen en tareas sequence-to-sequence como traducci贸n y resumen.</li></ol> <p data-svelte-h="svelte-pystqf"><img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter1/transformers_architecture.png" alt="transformer-models-for-language"></p> <p data-svelte-h="svelte-4048kt">Como vimos antes, estos modelos suelen preentrenarse sobre grandes cantidades de texto sin anotaciones humanas y luego se ajustan para tareas espec铆ficas. Este enfoque, conocido como transfer learning, permite adaptar un mismo modelo a muchas tareas con cantidades relativamente peque帽as de datos.</p> <h3 class="relative group"><a id="generaci贸n-de-texto" 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" href="#generaci贸n-de-texto"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Generaci贸n de texto</span></h3> <p data-svelte-h="svelte-1ez2i8m">La generaci贸n de texto consiste en crear texto coherente y contextualmente relevante a partir de un prompt.</p> <p data-svelte-h="svelte-l13tyr"><a href="https://huggingface.co/docs/transformers/model_doc/gpt2" rel="nofollow">GPT-2</a> es un modelo solo decoder preentrenado sobre una gran cantidad de texto. Puede generar texto convincente a partir de un prompt y tambi茅n resolver algunas otras tareas de PLN.</p> <div class="flex justify-center" data-svelte-h="svelte-8822hi"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/gpt2_architecture.png"></div> <p data-svelte-h="svelte-1g9mt8z">GPT-2 usa byte pair encoding para tokenizar, a帽ade codificaciones posicionales y pasa la secuencia por varios bloques decoder. Dentro de cada bloque, usa <em>masked self-attention</em>, lo que significa que no puede atender a tokens futuros. La salida del decoder se pasa a una language modeling head que transforma los hidden states en logits para predecir el siguiente token.</p> <h3 class="relative group"><a id="clasificaci贸n-de-texto" 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" href="#clasificaci贸n-de-texto"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Clasificaci贸n de texto</span></h3> <p data-svelte-h="svelte-16mlpau">La clasificaci贸n de texto asigna categor铆as predefinidas a documentos, como an谩lisis de sentimiento, clasificaci贸n tem谩tica o detecci贸n de spam.</p> <p data-svelte-h="svelte-1cxdwhj"><a href="https://huggingface.co/docs/transformers/model_doc/bert" rel="nofollow">BERT</a> es un modelo solo encoder y fue el primero en implementar con 茅xito una bidireccionalidad profunda para aprender representaciones m谩s ricas del texto atendiendo a palabras a ambos lados.</p> <p data-svelte-h="svelte-td97io">BERT usa tokenizaci贸n WordPiece, a帽ade tokens especiales como <code>[CLS]</code> y <code>[SEP]</code>, y se preentrena con dos objetivos: masked language modeling y next-sentence prediction. Para usarlo en clasificaci贸n de texto se a帽ade una cabeza de clasificaci贸n sobre el modelo base.</p> <h3 class="relative group"><a id="clasificaci贸n-de-tokens" 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" href="#clasificaci贸n-de-tokens"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Clasificaci贸n de tokens</span></h3> <p data-svelte-h="svelte-cnwe8o">La clasificaci贸n de tokens consiste en asignar una etiqueta a cada token de una secuencia, como en named entity recognition o part-of-speech tagging.</p> <p data-svelte-h="svelte-1ph0clb">Para usar BERT en este tipo de tareas, se a帽ade una cabeza de token classification sobre el modelo base, que transforma los hidden states finales en logits para cada token.</p> <h3 class="relative group"><a id="question-answering" 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" href="#question-answering"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Question answering</span></h3> <p data-svelte-h="svelte-ucxif7">Question answering consiste en encontrar la respuesta a una pregunta dentro de un contexto dado.</p> <p data-svelte-h="svelte-3jmemi">Para usar BERT en question answering, se a帽ade una cabeza de clasificaci贸n de spans que calcula logits de inicio y fin para localizar el fragmento de texto correspondiente a la respuesta.</p> <h3 class="relative group"><a id="resumen-autom谩tico" 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" href="#resumen-autom谩tico"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Resumen autom谩tico</span></h3> <p data-svelte-h="svelte-mxexti">El resumen consiste en condensar un texto largo en una versi贸n m谩s corta conservando su informaci贸n principal.</p> <p data-svelte-h="svelte-10oj4s4">Los modelos encoder-decoder como <a href="https://huggingface.co/docs/transformers/model_doc/bart" rel="nofollow">BART</a> y T5 est谩n dise帽ados para el patr贸n sequence-to-sequence que requiere esta tarea.</p> <div class="flex justify-center" data-svelte-h="svelte-1vl5qj0"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bart_architecture.png"></div> <p data-svelte-h="svelte-7nev0y">BART tiene un encoder muy similar a BERT y se preentrena corrompiendo la entrada y reconstruy茅ndola con el decoder. Una estrategia clave es <em>text infilling</em>, donde varios fragmentos se sustituyen por un 煤nico token de m谩scara.</p> <h3 class="relative group"><a id="traducci贸n" 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" href="#traducci贸n"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Traducci贸n</span></h3> <p data-svelte-h="svelte-eie80l">La traducci贸n consiste en convertir texto de un idioma a otro preservando el significado. Tambi茅n es una tarea sequence-to-sequence, por lo que modelos encoder-decoder como BART o T5 son adecuados.</p> <p data-svelte-h="svelte-1kb757a">BART puede adaptarse a traducci贸n a帽adiendo un encoder espec铆fico para el idioma fuente y utilizando el decoder para generar el idioma objetivo. M谩s adelante apareci贸 mBART, una versi贸n multiling眉e pensada expl铆citamente para traducci贸n.</p> <h2 class="relative group"><a id="modalidades-m谩s-all谩-del-texto" 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" href="#modalidades-m谩s-all谩-del-texto"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Modalidades m谩s all谩 del texto</span></h2> <p data-svelte-h="svelte-7sh55w">Los Transformers no se limitan al texto. Tambi茅n pueden aplicarse a voz, audio, im谩genes y video. En este curso nos centraremos en texto, pero conviene tener una visi贸n general de otras modalidades.</p> <h3 class="relative group"><a id="voz-y-audio" 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" href="#voz-y-audio"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Voz y audio</span></h3> <p data-svelte-h="svelte-1b5zm5g"><a href="https://huggingface.co/docs/transformers/main/en/model_doc/whisper" rel="nofollow">Whisper</a> es un Transformer encoder-decoder preentrenado sobre 680.000 horas de audio etiquetado. Gracias a esa escala, logra buen rendimiento zero-shot en tareas de audio en ingl茅s y muchos otros idiomas.</p> <div class="flex justify-center" data-svelte-h="svelte-uttt1g"><img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter1/whisper_architecture.png"></div> <p data-svelte-h="svelte-1c2faz8">Whisper tiene dos componentes principales:</p> <ol data-svelte-h="svelte-povl80"><li>Un <strong>encoder</strong> procesa el audio de entrada, que primero se convierte en un log-Mel spectrogram.</li> <li>Un <strong>decoder</strong> toma la representaci贸n codificada y genera autorregresivamente los tokens de texto correspondientes.</li></ol> <h3 class="relative group"><a id="reconocimiento-autom谩tico-de-voz" 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" href="#reconocimiento-autom谩tico-de-voz"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Reconocimiento autom谩tico de voz</span></h3> <p data-svelte-h="svelte-ug60jk">Para reconocimiento autom谩tico de voz se usa la estructura completa encoder-decoder. El encoder procesa el audio y el decoder genera la transcripci贸n token a token. La manera m谩s sencilla de hacer inferencia es usar un <code>pipeline</code>.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline
transcriber = pipeline(
task=<span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=<span class="hljs-string">&quot;openai/whisper-base.en&quot;</span>
)
transcriber(<span class="hljs-string">&quot;https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac&quot;</span>)<!-- HTML_TAG_END --></pre></div> <h3 class="relative group"><a id="visi贸n-por-computador" 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" href="#visi贸n-por-computador"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Visi贸n por computador</span></h3> <p data-svelte-h="svelte-1ybkutx">Hay dos maneras principales de abordar tareas de visi贸n por computador:</p> <ol data-svelte-h="svelte-1a8bpcn"><li>Dividir una imagen en una secuencia de parches y procesarlos en paralelo con un Transformer.</li> <li>Usar una CNN moderna, como <a href="https://huggingface.co/docs/transformers/model_doc/convnext" rel="nofollow">ConvNeXT</a>, que sigue apoy谩ndose en convoluciones pero adopta dise帽os modernos.</li></ol> <h3 class="relative group"><a id="clasificaci贸n-de-im谩genes" 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" href="#clasificaci贸n-de-im谩genes"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Clasificaci贸n de im谩genes</span></h3> <p data-svelte-h="svelte-fz2r9g">Tanto ViT como ConvNeXT pueden usarse para clasificaci贸n de im谩genes. La diferencia principal es que ViT usa atenci贸n, mientras que ConvNeXT usa convoluciones.</p> <p data-svelte-h="svelte-1e5dhb8"><a href="https://huggingface.co/docs/transformers/model_doc/vit" rel="nofollow">ViT</a> reemplaza por completo las convoluciones con una arquitectura Transformer pura.</p> <div class="flex justify-center" data-svelte-h="svelte-1cij8g4"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/vit_architecture.jpg"></div> <p data-svelte-h="svelte-1s2d4vo">ViT divide la imagen en parches, convierte cada parche en un embedding, a帽ade un token <code>[CLS]</code>, suma embeddings posicionales y pasa la secuencia al encoder Transformer. La salida asociada a <code>[CLS]</code> se usa para clasificar la imagen.</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/course/blob/main/chapters/es/chapter1/5.mdx" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg> <span data-svelte-h="svelte-zjs2n5"><span class="underline">Update</span> on GitHub</span></a> <p></p>
<script>
{
__sveltekit_1nznq34 = {
assets: "/docs/course/pr_1213/es",
base: "/docs/course/pr_1213/es",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/course/pr_1213/es/_app/immutable/entry/start.36d27295.js"),
import("/docs/course/pr_1213/es/_app/immutable/entry/app.3b43d7f3.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 9],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
39.7 kB
Xet hash:
9216dc491d9beeddcfb0081c48b93ce1094603af44545266acc9b1b860f45e1c

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