import{s as yl,o as Il,n as $e}from"../chunks/scheduler.36a0863c.js";import{S as Ul,i as fl,g as p,s as n,r as m,A as Cl,h as r,f as l,c as t,j as Jl,u as M,x as u,k as hl,y as Zl,a,v as d,d as i,t as j,w}from"../chunks/index.9c13489a.js";import{T as Re}from"../chunks/Tip.3b06990e.js";import{C as b}from"../chunks/CodeBlock.05d8ec32.js";import{H as Be}from"../chunks/Heading.7a254a62.js";function Al(h){let c,T="Esta función está disponible actualmente sólo para PyTorch.";return{c(){c=p("p"),c.textContent=T},l(o){c=r(o,"P",{"data-svelte-h":!0}),u(c)!=="svelte-ymsays"&&(c.textContent=T)},m(o,J){a(o,c,J)},p:$e,d(o){o&&l(c)}}}function Gl(h){let c,T="Para el entrenamiento multi-GPU, requiere DDP (<code>torch.distributed.launch</code>).";return{c(){c=p("p"),c.innerHTML=T},l(o){c=r(o,"P",{"data-svelte-h":!0}),u(c)!=="svelte-1svbjk8"&&(c.innerHTML=T)},m(o,J){a(o,c,J)},p:$e,d(o){o&&l(c)}}}function vl(h){let c,T="Esta función puede utilizarse con cualquier modelo basado en <code>nn.Module</code>.";return{c(){c=p("p"),c.innerHTML=T},l(o){c=r(o,"P",{"data-svelte-h":!0}),u(c)!=="svelte-16216u7"&&(c.innerHTML=T)},m(o,J){a(o,c,J)},p:$e,d(o){o&&l(c)}}}function Vl(h){let c,T,o,J,f,Zs,C,As,Z,ke="Cuando entrenas o infieres con <code>DistributedDataParallel</code> y varias GPUs, si encuentras problemas de intercomunicación entre procesos y/o nodos, puedes usar el siguiente script para diagnosticar problemas de red.",Gs,A,vs,G,_e="Por ejemplo, para probar cómo interactúan 2 GPUs, haz lo siguiente:",Vs,v,Bs,V,Le="Si ambos procesos pueden hablar entre sí y asignar la memoria de la GPU, cada uno imprimirá un status OK.",Rs,B,Ne="Para más GPUs o nodos, ajusta los argumentos en el script.",$s,R,ge="Encontrarás muchos más detalles dentro del script de diagnóstico e incluso una receta de cómo ejecutarlo en un entorno SLURM.",ks,$,We="Un nivel adicional de debug es agregar la variable de entorno <code>NCCL_DEBUG=INFO</code> de la siguiente manera:",_s,k,Ls,_,xe="Esto mostrará mucha información de debug relacionada con NCCL, que luego puedes buscar online si encuentras que reporta algún problema. O si no estás seguro de cómo interpretar el output, puedes compartir el archivo de log en un Issue.",Ns,L,gs,y,Ws,I,xs,U,Es,N,Ee=`Si empiezas a obtener <code>loss=NaN</code> o el modelo muestra algún otro comportamiento anormal debido a <code>inf</code> o <code>nan</code> en
activations o weights hay que descubrir dónde se produce el primer underflow o overflow y qué lo ha provocado. Por suerte
puedes lograrlo fácilmente activando un módulo especial que hará la detección automáticamente.`,Xs,g,Xe="Si estás usando <code>Trainer</code>, solo necesitas añadir:",Qs,W,Ds,x,Qe="a los argumentos normales de la línea de comandos, o pasar <code>debug=&quot;underflow_overflow&quot;</code> al crear el objeto <code>TrainingArguments</code>.",Hs,E,De="Si estás usando tu propio bucle de entrenamiento u otro Trainer puedes lograr lo mismo con:",Ss,X,Ys,Q,He=`<code>DebugUnderflowOverflow</code> inserta hooks en el modelo que inmediatamente después de cada forward
testeará las variables de input y output y también los weights del módulo correspondiente. Tan pronto como se detecte <code>inf</code> o
<code>nan</code> se detecta en al menos un elemento de las activations o weights, el programa afirmará e imprimirá un informe
como este (esto fue capturado con <code>google/mt5-small</code> bajo fp16 mixed precision):`,zs,D,Fs,H,Se="El output del ejemplo se ha recortado en el centro por razones de brevedad.",qs,S,Ye=`La segunda columna muestra el valor del elemento más grande en términos absolutos, por lo que si observas con detenimiento los últimos fotogramas,
los inputs y outputs estaban en el rango de <code>1e4</code>. Así que cuando este entrenamiento se hizo con fp16 mixed precision,
el último paso sufrió overflow (ya que bajo <code>fp16</code> el mayor número antes de <code>inf</code> es <code>64e3</code>). Para evitar overflows en
<code>fp16</code> las activations deben permanecer muy por debajo de <code>1e4</code>, porque <code>1e4 * 1e4 = 1e8</code> por lo que cualquier matrix multiplication con
grandes activations va a llevar a una condición de overflow numérico.`,Ps,Y,ze="Al principio del output puedes descubrir en qué número de batch se produjo el problema (aquí <code>Detected inf/nan during batch_number=0</code> significa que el problema se produjo en el primer batch).",Ks,z,Fe=`Cada frame del informe comienza declarando la entrada completamente calificada para el módulo correspondiente que este frame está reportando.
Si nos fijamos sólo en este frame:`,Os,F,se,q,qe=`Aquí, <code>encoder.block.2.layer.1.layer_norm</code> indica que era una layer norm para la primera capa, del segundo
block del encoder. Y la call específica del <code>forward</code> es <code>T5LayerNorm</code>.`,ee,P,Pe="Veamos los últimos frames de ese informe:",le,K,ae,O,Ke=`El último frame informa para la función <code>Dropout.forward</code> con la primera entrada para el único input y la segunda para el
único output. Puedes ver que fue llamada desde un atributo <code>dropout</code> dentro de la clase <code>DenseReluDense</code>. Podemos ver
que ocurrió durante la primera capa, del segundo block, durante el primer batch. Por último, el mayor absoluto
elementos de input fue <code>6.27e+04</code> y el mismo para el output fue <code>inf</code>.`,ne,ss,Oe=`Puedes ver aquí, que <code>T5DenseGatedGeluDense.forward</code> resultó en output activations, cuyo valor máximo absoluto fue
alrededor de 62.7K, que está muy cerca del límite máximo de fp16 de 64K. En el siguiente frame tenemos <code>Dropout</code>, el cual renormaliza
los weights, después de poner a cero algunos de los elementos, lo que empuja el valor máximo absoluto a más de 64K, y obtenemos un
overflow (<code>inf</code>).`,te,es,sl="Como puedes ver son los frames anteriores los que tenemos que mirar cuando los números empiezan a ser muy grandes para números fp16.",pe,ls,el="Combinemos el informe con el código de <code>models/t5/modeling_t5.py</code>:",re,as,ue,ns,ll="Ahora es fácil ver la call <code>dropout</code>, y también todas las calls anteriores.",ce,ts,al=`Dado que la detección se produce en un forward hook, estos informes se imprimen inmediatamente después de que cada <code>forward</code>
responda.`,oe,ps,nl=`Volviendo al informe completo, para actuar sobre él y arreglar el problema, tenemos que subir unos cuantos frames donde los números
empezaron a subir y probablemente cambiar al modo <code>fp32</code> aquí, para que los números no sufran overflow cuando se multipliquen
o al sumarlos. Por supuesto, puede haber otras soluciones. Por ejemplo, podríamos desactivar <code>amp</code> temporalmente si está
activado, después de mover el original <code>forward</code> dentro de un helper wrapper, así:`,me,rs,Me,us,tl=`Como el detector automático sólo informa de los inputs y outputs de los frames completos, una vez que sepas dónde buscar, puedes
analizar también las etapas intermedias de una función específica de <code>forward</code>. En este caso, puede utilizar la función
función de ayuda <code>detect_overflow</code> para inyectar el detector donde quieras, por ejemplo:`,de,cs,ie,os,pl=`Puedes ver que hemos añadido 2 de estos y ahora se trackea si <code>inf</code> o <code>nan</code> para <code>forwarded_states</code> fue detectado
en algún punto intermedio.`,je,ms,rl=`De hecho, el detector ya informa de esto porque cada una de las llamadas en el ejemplo anterior es un <code>nn.Module</code>, pero
digamos que si tuvieras algunos cálculos directos locales, así es como lo harías.`,we,Ms,ul=`Además, si estás instanciando el debugger en tu propio código, puedes ajustar el número de frames impresos de
su valor por defecto, por ejemplo:`,be,ds,Te,is,Je,js,cl="La misma clase de debugging se puede utilizar para el rastreo por batches con la función de detección de underflow/overflow desactivada.",he,ws,ol=`Digamos que quieres ver los valores mínimos y máximos absolutos de todos los ingredientes de cada call <code>forward</code> de un determinado
batch, y sólo hacerlo para los batches 1 y 3. Entonces instancias esta clase como:`,ye,bs,Ie,Ts,ml="Y ahora los batches 1 y 3 completos serán rastreados usando el mismo formato que el detector de underflow/overflow.",Ue,Js,Ml="Los batches son 0-index.",fe,hs,dl=`Esto es muy útil si sabes que el programa empieza a comportarse mal después de un determinado número de batch, para que puedas avanzar rápidamente
hasta esa área. Aquí hay un ejemplo de output recortado para tal configuración:`,Ce,ys,Ze,Is,il=`Aquí obtendrás un gran número de frames mostrados - tantos como forward calls haya en tu modelo, por lo que puede o no ser lo que quieras, pero a veces puede ser más fácil de usar para debug que un debugger normal.
Por ejemplo, si un problema comienza a ocurrir en el batch 150. Entonces puedes mostrar las trazas de los batches 149 y 150 y comparar dónde
los números empezaron a divergir.`,Ae,Us,jl="También puedes especificar el número de batch después del cual se debe detener el entrenamiento, con:",Ge,fs,ve,Cs,Ve;return f=new Be({props:{title:"Debugging",local:"debugging",headingTag:"h1"}}),C=new Be({props:{title:"Debug de problemas de Network multi-GPU",local:"debug-de-problemas-de-network-multi-gpu",headingTag:"h2"}}),A=new b({props:{code:"d2dldCUyMGh0dHBzJTNBJTJGJTJGcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSUyRmh1Z2dpbmdmYWNlJTJGdHJhbnNmb3JtZXJzJTJGbWFpbiUyRnNjcmlwdHMlMkZkaXN0cmlidXRlZCUyRnRvcmNoLWRpc3RyaWJ1dGVkLWdwdS10ZXN0LnB5",highlighted:"wget https://raw.githubusercontent.com/huggingface/transformers/main/scripts/distributed/torch-distributed-gpu-test.py",wrap:!1}}),v=new b({props:{code:"cHl0aG9uJTIwLW0lMjB0b3JjaC5kaXN0cmlidXRlZC5ydW4lMjAtLW5wcm9jX3Blcl9ub2RlJTIwMiUyMC0tbm5vZGVzJTIwMSUyMHRvcmNoLWRpc3RyaWJ1dGVkLWdwdS10ZXN0LnB5",highlighted:"python -m torch.distributed.run --nproc_per_node 2 --nnodes 1 torch-distributed-gpu-test.py",wrap:!1}}),k=new b({props:{code:"TkNDTF9ERUJVRyUzRElORk8lMjBweXRob24lMjAtbSUyMHRvcmNoLmRpc3RyaWJ1dGVkLnJ1biUyMC0tbnByb2NfcGVyX25vZGUlMjAyJTIwLS1ubm9kZXMlMjAxJTIwdG9yY2gtZGlzdHJpYnV0ZWQtZ3B1LXRlc3QucHk=",highlighted:"NCCL_DEBUG=INFO python -m torch.distributed.run --nproc_per_node 2 --nnodes 1 torch-distributed-gpu-test.py",wrap:!1}}),L=new Be({props:{title:"Detección de Underflow y Overflow",local:"detección-de-underflow-y-overflow",headingTag:"h2"}}),y=new Re({props:{$$slots:{default:[Al]},$$scope:{ctx:h}}}),I=new Re({props:{$$slots:{default:[Gl]},$$scope:{ctx:h}}}),U=new Re({props:{$$slots:{default:[vl]},$$scope:{ctx:h}}}),W=new b({props:{code:"LS1kZWJ1ZyUyMHVuZGVyZmxvd19vdmVyZmxvdw==",highlighted:"--debug underflow_overflow",wrap:!1}}),X=new b({props:{code:"ZnJvbSUyMC5kZWJ1Z191dGlscyUyMGltcG9ydCUyMERlYnVnVW5kZXJmbG93T3ZlcmZsb3clMEElMEFkZWJ1Z19vdmVyZmxvdyUyMCUzRCUyMERlYnVnVW5kZXJmbG93T3ZlcmZsb3cobW9kZWwp",highlighted:`<span class="hljs-keyword">from</span> .debug_utils <span class="hljs-keyword">import</span> DebugUnderflowOverflow

debug_overflow = DebugUnderflowOverflow(model)`,wrap:!1}}),D=new b({props:{code:"RGV0ZWN0ZWQlMjBpbmYlMkZuYW4lMjBkdXJpbmclMjBiYXRjaF9udW1iZXIlM0QwJTBBTGFzdCUyMDIxJTIwZm9yd2FyZCUyMGZyYW1lcyUzQSUwQWFicyUyMG1pbiUyMCUyMGFicyUyMG1heCUyMCUyMG1ldGFkYXRhJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4xLmxheWVyLjEuRGVuc2VSZWx1RGVuc2UuZHJvcG91dCUyMERyb3BvdXQlMEEwLjAwZSUyQjAwJTIwMi41N2UlMkIwMiUyMGlucHV0JTVCMCU1RCUwQTAuMDBlJTJCMDAlMjAyLjg1ZSUyQjAyJTIwb3V0cHV0JTBBJTVCLi4uJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjAlMjBUNUxheWVyU2VsZkF0dGVudGlvbiUwQTYuNzhlLTA0JTIwMy4xNWUlMkIwMyUyMGlucHV0JTVCMCU1RCUwQTIuNjVlLTA0JTIwMy40MmUlMkIwMyUyMG91dHB1dCU1QjAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBOb25lJTIwb3V0cHV0JTVCMSU1RCUwQTIuMjVlLTAxJTIwMS4wMGUlMkIwNCUyMG91dHB1dCU1QjIlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5sYXllcl9ub3JtJTIwVDVMYXllck5vcm0lMEE4LjY5ZS0wMiUyMDQuMThlLTAxJTIwd2VpZ2h0JTBBMi42NWUtMDQlMjAzLjQyZSUyQjAzJTIwaW5wdXQlNUIwJTVEJTBBMS43OWUtMDYlMjA0LjY1ZSUyQjAwJTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEuRGVuc2VSZWx1RGVuc2Uud2lfMCUyMExpbmVhciUwQTIuMTdlLTA3JTIwNC41MGUlMkIwMCUyMHdlaWdodCUwQTEuNzllLTA2JTIwNC42NWUlMkIwMCUyMGlucHV0JTVCMCU1RCUwQTIuNjhlLTA2JTIwMy43MGUlMkIwMSUyMG91dHB1dCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGVuY29kZXIuYmxvY2suMi5sYXllci4xLkRlbnNlUmVsdURlbnNlLndpXzElMjBMaW5lYXIlMEE4LjA4ZS0wNyUyMDIuNjZlJTJCMDElMjB3ZWlnaHQlMEExLjc5ZS0wNiUyMDQuNjVlJTJCMDAlMjBpbnB1dCU1QjAlNUQlMEExLjI3ZS0wNCUyMDIuMzdlJTJCMDIlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5EZW5zZVJlbHVEZW5zZS5kcm9wb3V0JTIwRHJvcG91dCUwQTAuMDBlJTJCMDAlMjA4Ljc2ZSUyQjAzJTIwaW5wdXQlNUIwJTVEJTBBMC4wMGUlMkIwMCUyMDkuNzRlJTJCMDMlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5EZW5zZVJlbHVEZW5zZS53byUyMExpbmVhciUwQTEuMDFlLTA2JTIwNi40NGUlMkIwMCUyMHdlaWdodCUwQTAuMDBlJTJCMDAlMjA5Ljc0ZSUyQjAzJTIwaW5wdXQlNUIwJTVEJTBBMy4xOGUtMDQlMjA2LjI3ZSUyQjA0JTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEuRGVuc2VSZWx1RGVuc2UlMjBUNURlbnNlR2F0ZWRHZWx1RGVuc2UlMEExLjc5ZS0wNiUyMDQuNjVlJTJCMDAlMjBpbnB1dCU1QjAlNUQlMEEzLjE4ZS0wNCUyMDYuMjdlJTJCMDQlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5kcm9wb3V0JTIwRHJvcG91dCUwQTMuMThlLTA0JTIwNi4yN2UlMkIwNCUyMGlucHV0JTVCMCU1RCUwQTAuMDBlJTJCMDAlMjAlMjAlMjAlMjAlMjAlMjBpbmYlMjBvdXRwdXQ=",highlighted:`<span class="hljs-attribute">Detected</span> inf/nan during batch_number=<span class="hljs-number">0</span>
<span class="hljs-attribute">Last</span> <span class="hljs-number">21</span> forward frames:
<span class="hljs-attribute">abs</span> min  abs max  metadata
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">1</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.dropout Dropout
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">2</span>.<span class="hljs-number">57</span>e+<span class="hljs-number">02</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">2</span>.<span class="hljs-number">85</span>e+<span class="hljs-number">02</span> output<span class="hljs-meta">
[...]</span>
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">0</span> T5LayerSelfAttention
<span class="hljs-attribute">6</span>.<span class="hljs-number">78</span>e-<span class="hljs-number">04</span> <span class="hljs-number">3</span>.<span class="hljs-number">15</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">2</span>.<span class="hljs-number">65</span>e-<span class="hljs-number">04</span> <span class="hljs-number">3</span>.<span class="hljs-number">42</span>e+<span class="hljs-number">03</span> output[<span class="hljs-number">0</span>]
             <span class="hljs-attribute">None</span> output[<span class="hljs-number">1</span>]
<span class="hljs-attribute">2</span>.<span class="hljs-number">25</span>e-<span class="hljs-number">01</span> <span class="hljs-number">1</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">04</span> output[<span class="hljs-number">2</span>]
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.layer_norm T5LayerNorm
<span class="hljs-attribute">8</span>.<span class="hljs-number">69</span>e-<span class="hljs-number">02</span> <span class="hljs-number">4</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">01</span> weight
<span class="hljs-attribute">2</span>.<span class="hljs-number">65</span>e-<span class="hljs-number">04</span> <span class="hljs-number">3</span>.<span class="hljs-number">42</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wi_0 Linear
<span class="hljs-attribute">2</span>.<span class="hljs-number">17</span>e-<span class="hljs-number">07</span> <span class="hljs-number">4</span>.<span class="hljs-number">50</span>e+<span class="hljs-number">00</span> weight
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">2</span>.<span class="hljs-number">68</span>e-<span class="hljs-number">06</span> <span class="hljs-number">3</span>.<span class="hljs-number">70</span>e+<span class="hljs-number">01</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wi_1 Linear
<span class="hljs-attribute">8</span>.<span class="hljs-number">08</span>e-<span class="hljs-number">07</span> <span class="hljs-number">2</span>.<span class="hljs-number">66</span>e+<span class="hljs-number">01</span> weight
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">1</span>.<span class="hljs-number">27</span>e-<span class="hljs-number">04</span> <span class="hljs-number">2</span>.<span class="hljs-number">37</span>e+<span class="hljs-number">02</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.dropout Dropout
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">8</span>.<span class="hljs-number">76</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">9</span>.<span class="hljs-number">74</span>e+<span class="hljs-number">03</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wo Linear
<span class="hljs-attribute">1</span>.<span class="hljs-number">01</span>e-<span class="hljs-number">06</span> <span class="hljs-number">6</span>.<span class="hljs-number">44</span>e+<span class="hljs-number">00</span> weight
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">9</span>.<span class="hljs-number">74</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense T5DenseGatedGeluDense
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.dropout Dropout
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span>      inf output`,wrap:!1}}),F=new b({props:{code:"JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEubGF5ZXJfbm9ybSUyMFQ1TGF5ZXJOb3JtJTBBOC42OWUtMDIlMjA0LjE4ZS0wMSUyMHdlaWdodCUwQTIuNjVlLTA0JTIwMy40MmUlMkIwMyUyMGlucHV0JTVCMCU1RCUwQTEuNzllLTA2JTIwNC42NWUlMkIwMCUyMG91dHB1dA==",highlighted:`                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.layer_norm T5LayerNorm
<span class="hljs-attribute">8</span>.<span class="hljs-number">69</span>e-<span class="hljs-number">02</span> <span class="hljs-number">4</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">01</span> weight
<span class="hljs-attribute">2</span>.<span class="hljs-number">65</span>e-<span class="hljs-number">04</span> <span class="hljs-number">3</span>.<span class="hljs-number">42</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> output`,wrap:!1}}),K=new b({props:{code:"RGV0ZWN0ZWQlMjBpbmYlMkZuYW4lMjBkdXJpbmclMjBiYXRjaF9udW1iZXIlM0QwJTBBTGFzdCUyMDIxJTIwZm9yd2FyZCUyMGZyYW1lcyUzQSUwQWFicyUyMG1pbiUyMCUyMGFicyUyMG1heCUyMCUyMG1ldGFkYXRhJTBBJTVCLi4uJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEuRGVuc2VSZWx1RGVuc2Uud2lfMCUyMExpbmVhciUwQTIuMTdlLTA3JTIwNC41MGUlMkIwMCUyMHdlaWdodCUwQTEuNzllLTA2JTIwNC42NWUlMkIwMCUyMGlucHV0JTVCMCU1RCUwQTIuNjhlLTA2JTIwMy43MGUlMkIwMSUyMG91dHB1dCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGVuY29kZXIuYmxvY2suMi5sYXllci4xLkRlbnNlUmVsdURlbnNlLndpXzElMjBMaW5lYXIlMEE4LjA4ZS0wNyUyMDIuNjZlJTJCMDElMjB3ZWlnaHQlMEExLjc5ZS0wNiUyMDQuNjVlJTJCMDAlMjBpbnB1dCU1QjAlNUQlMEExLjI3ZS0wNCUyMDIuMzdlJTJCMDIlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5EZW5zZVJlbHVEZW5zZS53byUyMExpbmVhciUwQTEuMDFlLTA2JTIwNi40NGUlMkIwMCUyMHdlaWdodCUwQTAuMDBlJTJCMDAlMjA5Ljc0ZSUyQjAzJTIwaW5wdXQlNUIwJTVEJTBBMy4xOGUtMDQlMjA2LjI3ZSUyQjA0JTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEuRGVuc2VSZWx1RGVuc2UlMjBUNURlbnNlR2F0ZWRHZWx1RGVuc2UlMEExLjc5ZS0wNiUyMDQuNjVlJTJCMDAlMjBpbnB1dCU1QjAlNUQlMEEzLjE4ZS0wNCUyMDYuMjdlJTJCMDQlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5kcm9wb3V0JTIwRHJvcG91dCUwQTMuMThlLTA0JTIwNi4yN2UlMkIwNCUyMGlucHV0JTVCMCU1RCUwQTAuMDBlJTJCMDAlMjAlMjAlMjAlMjAlMjAlMjBpbmYlMjBvdXRwdXQ=",highlighted:`<span class="hljs-attribute">Detected</span> inf/nan during batch_number=<span class="hljs-number">0</span>
<span class="hljs-attribute">Last</span> <span class="hljs-number">21</span> forward frames:
<span class="hljs-attribute">abs</span> min  abs max  metadata<span class="hljs-meta">
[...]</span>
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wi_0 Linear
<span class="hljs-attribute">2</span>.<span class="hljs-number">17</span>e-<span class="hljs-number">07</span> <span class="hljs-number">4</span>.<span class="hljs-number">50</span>e+<span class="hljs-number">00</span> weight
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">2</span>.<span class="hljs-number">68</span>e-<span class="hljs-number">06</span> <span class="hljs-number">3</span>.<span class="hljs-number">70</span>e+<span class="hljs-number">01</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wi_1 Linear
<span class="hljs-attribute">8</span>.<span class="hljs-number">08</span>e-<span class="hljs-number">07</span> <span class="hljs-number">2</span>.<span class="hljs-number">66</span>e+<span class="hljs-number">01</span> weight
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">1</span>.<span class="hljs-number">27</span>e-<span class="hljs-number">04</span> <span class="hljs-number">2</span>.<span class="hljs-number">37</span>e+<span class="hljs-number">02</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wo Linear
<span class="hljs-attribute">1</span>.<span class="hljs-number">01</span>e-<span class="hljs-number">06</span> <span class="hljs-number">6</span>.<span class="hljs-number">44</span>e+<span class="hljs-number">00</span> weight
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">9</span>.<span class="hljs-number">74</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense T5DenseGatedGeluDense
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.dropout Dropout
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span>      inf output`,wrap:!1}}),as=new b({props:{code:"Y2xhc3MlMjBUNURlbnNlR2F0ZWRHZWx1RGVuc2Uobm4uTW9kdWxlKSUzQSUwQSUyMCUyMCUyMCUyMGRlZiUyMF9faW5pdF9fKHNlbGYlMkMlMjBjb25maWcpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3VwZXIoKS5fX2luaXRfXygpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi53aV8wJTIwJTNEJTIwbm4uTGluZWFyKGNvbmZpZy5kX21vZGVsJTJDJTIwY29uZmlnLmRfZmYlMkMlMjBiaWFzJTNERmFsc2UpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi53aV8xJTIwJTNEJTIwbm4uTGluZWFyKGNvbmZpZy5kX21vZGVsJTJDJTIwY29uZmlnLmRfZmYlMkMlMjBiaWFzJTNERmFsc2UpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi53byUyMCUzRCUyMG5uLkxpbmVhcihjb25maWcuZF9mZiUyQyUyMGNvbmZpZy5kX21vZGVsJTJDJTIwYmlhcyUzREZhbHNlKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNlbGYuZHJvcG91dCUyMCUzRCUyMG5uLkRyb3BvdXQoY29uZmlnLmRyb3BvdXRfcmF0ZSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzZWxmLmdlbHVfYWN0JTIwJTNEJTIwQUNUMkZOJTVCJTIyZ2VsdV9uZXclMjIlNUQlMEElMEElMjAlMjAlMjAlMjBkZWYlMjBmb3J3YXJkKHNlbGYlMkMlMjBoaWRkZW5fc3RhdGVzKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGhpZGRlbl9nZWx1JTIwJTNEJTIwc2VsZi5nZWx1X2FjdChzZWxmLndpXzAoaGlkZGVuX3N0YXRlcykpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaGlkZGVuX2xpbmVhciUyMCUzRCUyMHNlbGYud2lfMShoaWRkZW5fc3RhdGVzKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGhpZGRlbl9zdGF0ZXMlMjAlM0QlMjBoaWRkZW5fZ2VsdSUyMColMjBoaWRkZW5fbGluZWFyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaGlkZGVuX3N0YXRlcyUyMCUzRCUyMHNlbGYuZHJvcG91dChoaWRkZW5fc3RhdGVzKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGhpZGRlbl9zdGF0ZXMlMjAlM0QlMjBzZWxmLndvKGhpZGRlbl9zdGF0ZXMpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwaGlkZGVuX3N0YXRlcw==",highlighted:`<span class="hljs-keyword">class</span> <span class="hljs-title class_">T5DenseGatedGeluDense</span>(nn.Module):
    <span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self, config</span>):
        <span class="hljs-built_in">super</span>().__init__()
        self.wi_0 = nn.Linear(config.d_model, config.d_ff, bias=<span class="hljs-literal">False</span>)
        self.wi_1 = nn.Linear(config.d_model, config.d_ff, bias=<span class="hljs-literal">False</span>)
        self.wo = nn.Linear(config.d_ff, config.d_model, bias=<span class="hljs-literal">False</span>)
        self.dropout = nn.Dropout(config.dropout_rate)
        self.gelu_act = ACT2FN[<span class="hljs-string">&quot;gelu_new&quot;</span>]

    <span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, hidden_states</span>):
        hidden_gelu = self.gelu_act(self.wi_0(hidden_states))
        hidden_linear = self.wi_1(hidden_states)
        hidden_states = hidden_gelu * hidden_linear
        hidden_states = self.dropout(hidden_states)
        hidden_states = self.wo(hidden_states)
        <span class="hljs-keyword">return</span> hidden_states`,wrap:!1}}),rs=new b({props:{code:"ZGVmJTIwX2ZvcndhcmQoc2VsZiUyQyUyMGhpZGRlbl9zdGF0ZXMpJTNBJTBBJTIwJTIwJTIwJTIwaGlkZGVuX2dlbHUlMjAlM0QlMjBzZWxmLmdlbHVfYWN0KHNlbGYud2lfMChoaWRkZW5fc3RhdGVzKSklMEElMjAlMjAlMjAlMjBoaWRkZW5fbGluZWFyJTIwJTNEJTIwc2VsZi53aV8xKGhpZGRlbl9zdGF0ZXMpJTBBJTIwJTIwJTIwJTIwaGlkZGVuX3N0YXRlcyUyMCUzRCUyMGhpZGRlbl9nZWx1JTIwKiUyMGhpZGRlbl9saW5lYXIlMEElMjAlMjAlMjAlMjBoaWRkZW5fc3RhdGVzJTIwJTNEJTIwc2VsZi5kcm9wb3V0KGhpZGRlbl9zdGF0ZXMpJTBBJTIwJTIwJTIwJTIwaGlkZGVuX3N0YXRlcyUyMCUzRCUyMHNlbGYud28oaGlkZGVuX3N0YXRlcyklMEElMjAlMjAlMjAlMjByZXR1cm4lMjBoaWRkZW5fc3RhdGVzJTBBJTBBJTBBaW1wb3J0JTIwdG9yY2glMEElMEElMEFkZWYlMjBmb3J3YXJkKHNlbGYlMkMlMjBoaWRkZW5fc3RhdGVzKSUzQSUwQSUyMCUyMCUyMCUyMGlmJTIwdG9yY2guaXNfYXV0b2Nhc3RfZW5hYmxlZCgpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2l0aCUyMHRvcmNoLmN1ZGEuYW1wLmF1dG9jYXN0KGVuYWJsZWQlM0RGYWxzZSklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBzZWxmLl9mb3J3YXJkKGhpZGRlbl9zdGF0ZXMpJTBBJTIwJTIwJTIwJTIwZWxzZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHNlbGYuX2ZvcndhcmQoaGlkZGVuX3N0YXRlcyk=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">_forward</span>(<span class="hljs-params">self, hidden_states</span>):
    hidden_gelu = self.gelu_act(self.wi_0(hidden_states))
    hidden_linear = self.wi_1(hidden_states)
    hidden_states = hidden_gelu * hidden_linear
    hidden_states = self.dropout(hidden_states)
    hidden_states = self.wo(hidden_states)
    <span class="hljs-keyword">return</span> hidden_states


<span class="hljs-keyword">import</span> torch


<span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, hidden_states</span>):
    <span class="hljs-keyword">if</span> torch.is_autocast_enabled():
        <span class="hljs-keyword">with</span> torch.cuda.amp.autocast(enabled=<span class="hljs-literal">False</span>):
            <span class="hljs-keyword">return</span> self._forward(hidden_states)
    <span class="hljs-keyword">else</span>:
        <span class="hljs-keyword">return</span> self._forward(hidden_states)`,wrap:!1}}),cs=new b({props:{code:"ZnJvbSUyMGRlYnVnX3V0aWxzJTIwaW1wb3J0JTIwZGV0ZWN0X292ZXJmbG93JTBBJTBBJTBBY2xhc3MlMjBUNUxheWVyRkYobm4uTW9kdWxlKSUzQSUwQSUyMCUyMCUyMCUyMCU1Qi4uLiU1RCUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMGZvcndhcmQoc2VsZiUyQyUyMGhpZGRlbl9zdGF0ZXMpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZm9yd2FyZGVkX3N0YXRlcyUyMCUzRCUyMHNlbGYubGF5ZXJfbm9ybShoaWRkZW5fc3RhdGVzKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRldGVjdF9vdmVyZmxvdyhmb3J3YXJkZWRfc3RhdGVzJTJDJTIwJTIyYWZ0ZXIlMjBsYXllcl9ub3JtJTIyKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZvcndhcmRlZF9zdGF0ZXMlMjAlM0QlMjBzZWxmLkRlbnNlUmVsdURlbnNlKGZvcndhcmRlZF9zdGF0ZXMpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGV0ZWN0X292ZXJmbG93KGZvcndhcmRlZF9zdGF0ZXMlMkMlMjAlMjJhZnRlciUyMERlbnNlUmVsdURlbnNlJTIyKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGhpZGRlbl9zdGF0ZXMlMjAlMkIlMjBzZWxmLmRyb3BvdXQoZm9yd2FyZGVkX3N0YXRlcyk=",highlighted:`<span class="hljs-keyword">from</span> debug_utils <span class="hljs-keyword">import</span> detect_overflow


<span class="hljs-keyword">class</span> <span class="hljs-title class_">T5LayerFF</span>(nn.Module):
    [...]

    <span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, hidden_states</span>):
        forwarded_states = self.layer_norm(hidden_states)
        detect_overflow(forwarded_states, <span class="hljs-string">&quot;after layer_norm&quot;</span>)
        forwarded_states = self.DenseReluDense(forwarded_states)
        detect_overflow(forwarded_states, <span class="hljs-string">&quot;after DenseReluDense&quot;</span>)
        <span class="hljs-keyword">return</span> hidden_states + self.dropout(forwarded_states)`,wrap:!1}}),ds=new b({props:{code:"ZnJvbSUyMC5kZWJ1Z191dGlscyUyMGltcG9ydCUyMERlYnVnVW5kZXJmbG93T3ZlcmZsb3clMEElMEFkZWJ1Z19vdmVyZmxvdyUyMCUzRCUyMERlYnVnVW5kZXJmbG93T3ZlcmZsb3cobW9kZWwlMkMlMjBtYXhfZnJhbWVzX3RvX3NhdmUlM0QxMDAp",highlighted:`<span class="hljs-keyword">from</span> .debug_utils <span class="hljs-keyword">import</span> DebugUnderflowOverflow

debug_overflow = DebugUnderflowOverflow(model, max_frames_to_save=<span class="hljs-number">100</span>)`,wrap:!1}}),is=new Be({props:{title:"Rastreo de valores mínimos y máximos absolutos de batches específicos",local:"rastreo-de-valores-mínimos-y-máximos-absolutos-de-batches-específicos",headingTag:"h3"}}),bs=new b({props:{code:"ZGVidWdfb3ZlcmZsb3clMjAlM0QlMjBEZWJ1Z1VuZGVyZmxvd092ZXJmbG93KG1vZGVsJTJDJTIwdHJhY2VfYmF0Y2hfbnVtcyUzRCU1QjElMkMlMjAzJTVEKQ==",highlighted:'debug_overflow = DebugUnderflowOverflow(model, trace_batch_nums=[<span class="hljs-number">1</span>, <span class="hljs-number">3</span>])',wrap:!1}}),ys=new b({props:{code:"JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKioqJTIwU3RhcnRpbmclMjBiYXRjaCUyMG51bWJlciUzRDElMjAqKiolMEFhYnMlMjBtaW4lMjAlMjBhYnMlMjBtYXglMjAlMjBtZXRhZGF0YSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNoYXJlZCUyMEVtYmVkZGluZyUwQTEuMDFlLTA2JTIwNy45MmUlMkIwMiUyMHdlaWdodCUwQTAuMDBlJTJCMDAlMjAyLjQ3ZSUyQjA0JTIwaW5wdXQlNUIwJTVEJTBBNS4zNmUtMDUlMjA3LjkyZSUyQjAyJTIwb3V0cHV0JTBBJTVCLi4uJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGVjb2Rlci5kcm9wb3V0JTIwRHJvcG91dCUwQTEuNjBlLTA3JTIwMi4yN2UlMkIwMSUyMGlucHV0JTVCMCU1RCUwQTAuMDBlJTJCMDAlMjAyLjUyZSUyQjAxJTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZGVjb2RlciUyMFQ1U3RhY2slMEElMjAlMjAlMjAlMjAlMjBub3QlMjBhJTIwdGVuc29yJTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG1faGVhZCUyMExpbmVhciUwQTEuMDFlLTA2JTIwNy45MmUlMkIwMiUyMHdlaWdodCUwQTAuMDBlJTJCMDAlMjAxLjExZSUyQjAwJTIwaW5wdXQlNUIwJTVEJTBBNi4wNmUtMDIlMjA4LjM5ZSUyQjAxJTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVDVGb3JDb25kaXRpb25hbEdlbmVyYXRpb24lMEElMjAlMjAlMjAlMjAlMjBub3QlMjBhJTIwdGVuc29yJTIwb3V0cHV0JTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKioqJTIwU3RhcnRpbmclMjBiYXRjaCUyMG51bWJlciUzRDMlMjAqKiolMEFhYnMlMjBtaW4lMjAlMjBhYnMlMjBtYXglMjAlMjBtZXRhZGF0YSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNoYXJlZCUyMEVtYmVkZGluZyUwQTEuMDFlLTA2JTIwNy45MmUlMkIwMiUyMHdlaWdodCUwQTAuMDBlJTJCMDAlMjAyLjc4ZSUyQjA0JTIwaW5wdXQlNUIwJTVEJTBBNS4zNmUtMDUlMjA3LjkyZSUyQjAyJTIwb3V0cHV0JTBBJTVCLi4uJTVE",highlighted:`                  *** Starting batch number=1 ***
abs min  abs max  metadata
                  shared Embedding
1.01e<span class="hljs-string">-06</span> 7.92e<span class="hljs-string">+02</span> weight
0.00e<span class="hljs-string">+00</span> 2.47e<span class="hljs-string">+04</span> input[0]
5.36e<span class="hljs-string">-05</span> 7.92e<span class="hljs-string">+02</span> output
[...]
                  decoder.dropout Dropout
1.60e<span class="hljs-string">-07</span> 2.27e<span class="hljs-string">+01</span> input[0]
0.00e<span class="hljs-string">+00</span> 2.52e<span class="hljs-string">+01</span> output
                  decoder T5Stack
     not a tensor output
                  lm_head Linear
1.01e<span class="hljs-string">-06</span> 7.92e<span class="hljs-string">+02</span> weight
0.00e<span class="hljs-string">+00</span> 1.11e<span class="hljs-string">+00</span> input[0]
6.06e<span class="hljs-string">-02</span> 8.39e<span class="hljs-string">+01</span> output
                   T5ForConditionalGeneration
     not a tensor output

                  *** Starting batch number=3 ***
abs min  abs max  metadata
                  shared Embedding
1.01e<span class="hljs-string">-06</span> 7.92e<span class="hljs-string">+02</span> weight
0.00e<span class="hljs-string">+00</span> 2.78e<span class="hljs-string">+04</span> input[0]
5.36e<span class="hljs-string">-05</span> 7.92e<span class="hljs-string">+02</span> output
[...]`,wrap:!1}}),fs=new b({props:{code:"ZGVidWdfb3ZlcmZsb3clMjAlM0QlMjBEZWJ1Z1VuZGVyZmxvd092ZXJmbG93KG1vZGVsJTJDJTIwdHJhY2VfYmF0Y2hfbnVtcyUzRCU1QjElMkMlMjAzJTVEJTJDJTIwYWJvcnRfYWZ0ZXJfYmF0Y2hfbnVtJTNEMyk=",highlighted:'debug_overflow = DebugUnderflowOverflow(model, trace_batch_nums=[<span class="hljs-number">1</span>, <span class="hljs-number">3</span>], abort_after_batch_num=<span class="hljs-number">3</span>)',wrap:!1}}),{c(){c=p("meta"),T=n(),o=p("p"),J=n(),m(f.$$.fragment),Zs=n(),m(C.$$.fragment),As=n(),Z=p("p"),Z.innerHTML=ke,Gs=n(),m(A.$$.fragment),vs=n(),G=p("p"),G.textContent=_e,Vs=n(),m(v.$$.fragment),Bs=n(),V=p("p"),V.textContent=Le,Rs=n(),B=p("p"),B.textContent=Ne,$s=n(),R=p("p"),R.textContent=ge,ks=n(),$=p("p"),$.innerHTML=We,_s=n(),m(k.$$.fragment),Ls=n(),_=p("p"),_.textContent=xe,Ns=n(),m(L.$$.fragment),gs=n(),m(y.$$.fragment),Ws=n(),m(I.$$.fragment),xs=n(),m(U.$$.fragment),Es=n(),N=p("p"),N.innerHTML=Ee,Xs=n(),g=p("p"),g.innerHTML=Xe,Qs=n(),m(W.$$.fragment),Ds=n(),x=p("p"),x.innerHTML=Qe,Hs=n(),E=p("p"),E.textContent=De,Ss=n(),m(X.$$.fragment),Ys=n(),Q=p("p"),Q.innerHTML=He,zs=n(),m(D.$$.fragment),Fs=n(),H=p("p"),H.textContent=Se,qs=n(),S=p("p"),S.innerHTML=Ye,Ps=n(),Y=p("p"),Y.innerHTML=ze,Ks=n(),z=p("p"),z.textContent=Fe,Os=n(),m(F.$$.fragment),se=n(),q=p("p"),q.innerHTML=qe,ee=n(),P=p("p"),P.textContent=Pe,le=n(),m(K.$$.fragment),ae=n(),O=p("p"),O.innerHTML=Ke,ne=n(),ss=p("p"),ss.innerHTML=Oe,te=n(),es=p("p"),es.textContent=sl,pe=n(),ls=p("p"),ls.innerHTML=el,re=n(),m(as.$$.fragment),ue=n(),ns=p("p"),ns.innerHTML=ll,ce=n(),ts=p("p"),ts.innerHTML=al,oe=n(),ps=p("p"),ps.innerHTML=nl,me=n(),m(rs.$$.fragment),Me=n(),us=p("p"),us.innerHTML=tl,de=n(),m(cs.$$.fragment),ie=n(),os=p("p"),os.innerHTML=pl,je=n(),ms=p("p"),ms.innerHTML=rl,we=n(),Ms=p("p"),Ms.textContent=ul,be=n(),m(ds.$$.fragment),Te=n(),m(is.$$.fragment),Je=n(),js=p("p"),js.textContent=cl,he=n(),ws=p("p"),ws.innerHTML=ol,ye=n(),m(bs.$$.fragment),Ie=n(),Ts=p("p"),Ts.textContent=ml,Ue=n(),Js=p("p"),Js.textContent=Ml,fe=n(),hs=p("p"),hs.textContent=dl,Ce=n(),m(ys.$$.fragment),Ze=n(),Is=p("p"),Is.textContent=il,Ae=n(),Us=p("p"),Us.textContent=jl,Ge=n(),m(fs.$$.fragment),ve=n(),Cs=p("p"),this.h()},l(s){const e=Cl("svelte-u9bgzb",document.head);c=r(e,"META",{name:!0,content:!0}),e.forEach(l),T=t(s),o=r(s,"P",{}),Jl(o).forEach(l),J=t(s),M(f.$$.fragment,s),Zs=t(s),M(C.$$.fragment,s),As=t(s),Z=r(s,"P",{"data-svelte-h":!0}),u(Z)!=="svelte-b2gmoe"&&(Z.innerHTML=ke),Gs=t(s),M(A.$$.fragment,s),vs=t(s),G=r(s,"P",{"data-svelte-h":!0}),u(G)!=="svelte-1936y28"&&(G.textContent=_e),Vs=t(s),M(v.$$.fragment,s),Bs=t(s),V=r(s,"P",{"data-svelte-h":!0}),u(V)!=="svelte-1m3rn6q"&&(V.textContent=Le),Rs=t(s),B=r(s,"P",{"data-svelte-h":!0}),u(B)!=="svelte-1qjrb86"&&(B.textContent=Ne),$s=t(s),R=r(s,"P",{"data-svelte-h":!0}),u(R)!=="svelte-1ku6vfi"&&(R.textContent=ge),ks=t(s),$=r(s,"P",{"data-svelte-h":!0}),u($)!=="svelte-deyufk"&&($.innerHTML=We),_s=t(s),M(k.$$.fragment,s),Ls=t(s),_=r(s,"P",{"data-svelte-h":!0}),u(_)!=="svelte-114ng1i"&&(_.textContent=xe),Ns=t(s),M(L.$$.fragment,s),gs=t(s),M(y.$$.fragment,s),Ws=t(s),M(I.$$.fragment,s),xs=t(s),M(U.$$.fragment,s),Es=t(s),N=r(s,"P",{"data-svelte-h":!0}),u(N)!=="svelte-7sit9h"&&(N.innerHTML=Ee),Xs=t(s),g=r(s,"P",{"data-svelte-h":!0}),u(g)!=="svelte-j3cpcs"&&(g.innerHTML=Xe),Qs=t(s),M(W.$$.fragment,s),Ds=t(s),x=r(s,"P",{"data-svelte-h":!0}),u(x)!=="svelte-15ev0q2"&&(x.innerHTML=Qe),Hs=t(s),E=r(s,"P",{"data-svelte-h":!0}),u(E)!=="svelte-wqtp9c"&&(E.textContent=De),Ss=t(s),M(X.$$.fragment,s),Ys=t(s),Q=r(s,"P",{"data-svelte-h":!0}),u(Q)!=="svelte-1jo5kre"&&(Q.innerHTML=He),zs=t(s),M(D.$$.fragment,s),Fs=t(s),H=r(s,"P",{"data-svelte-h":!0}),u(H)!=="svelte-x04aaj"&&(H.textContent=Se),qs=t(s),S=r(s,"P",{"data-svelte-h":!0}),u(S)!=="svelte-4r89ln"&&(S.innerHTML=Ye),Ps=t(s),Y=r(s,"P",{"data-svelte-h":!0}),u(Y)!=="svelte-6zf2z9"&&(Y.innerHTML=ze),Ks=t(s),z=r(s,"P",{"data-svelte-h":!0}),u(z)!=="svelte-1opunmv"&&(z.textContent=Fe),Os=t(s),M(F.$$.fragment,s),se=t(s),q=r(s,"P",{"data-svelte-h":!0}),u(q)!=="svelte-dwkjw4"&&(q.innerHTML=qe),ee=t(s),P=r(s,"P",{"data-svelte-h":!0}),u(P)!=="svelte-1l806z7"&&(P.textContent=Pe),le=t(s),M(K.$$.fragment,s),ae=t(s),O=r(s,"P",{"data-svelte-h":!0}),u(O)!=="svelte-15sbs2p"&&(O.innerHTML=Ke),ne=t(s),ss=r(s,"P",{"data-svelte-h":!0}),u(ss)!=="svelte-1h0cfpa"&&(ss.innerHTML=Oe),te=t(s),es=r(s,"P",{"data-svelte-h":!0}),u(es)!=="svelte-6rkr7t"&&(es.textContent=sl),pe=t(s),ls=r(s,"P",{"data-svelte-h":!0}),u(ls)!=="svelte-1odtud2"&&(ls.innerHTML=el),re=t(s),M(as.$$.fragment,s),ue=t(s),ns=r(s,"P",{"data-svelte-h":!0}),u(ns)!=="svelte-pypfv9"&&(ns.innerHTML=ll),ce=t(s),ts=r(s,"P",{"data-svelte-h":!0}),u(ts)!=="svelte-14ofdnz"&&(ts.innerHTML=al),oe=t(s),ps=r(s,"P",{"data-svelte-h":!0}),u(ps)!=="svelte-p0ujj7"&&(ps.innerHTML=nl),me=t(s),M(rs.$$.fragment,s),Me=t(s),us=r(s,"P",{"data-svelte-h":!0}),u(us)!=="svelte-1nnn3eq"&&(us.innerHTML=tl),de=t(s),M(cs.$$.fragment,s),ie=t(s),os=r(s,"P",{"data-svelte-h":!0}),u(os)!=="svelte-ewhn06"&&(os.innerHTML=pl),je=t(s),ms=r(s,"P",{"data-svelte-h":!0}),u(ms)!=="svelte-1psj6in"&&(ms.innerHTML=rl),we=t(s),Ms=r(s,"P",{"data-svelte-h":!0}),u(Ms)!=="svelte-vdijwi"&&(Ms.textContent=ul),be=t(s),M(ds.$$.fragment,s),Te=t(s),M(is.$$.fragment,s),Je=t(s),js=r(s,"P",{"data-svelte-h":!0}),u(js)!=="svelte-12vhr9v"&&(js.textContent=cl),he=t(s),ws=r(s,"P",{"data-svelte-h":!0}),u(ws)!=="svelte-4ky2ig"&&(ws.innerHTML=ol),ye=t(s),M(bs.$$.fragment,s),Ie=t(s),Ts=r(s,"P",{"data-svelte-h":!0}),u(Ts)!=="svelte-1deawea"&&(Ts.textContent=ml),Ue=t(s),Js=r(s,"P",{"data-svelte-h":!0}),u(Js)!=="svelte-1d0mz9t"&&(Js.textContent=Ml),fe=t(s),hs=r(s,"P",{"data-svelte-h":!0}),u(hs)!=="svelte-1gv06dh"&&(hs.textContent=dl),Ce=t(s),M(ys.$$.fragment,s),Ze=t(s),Is=r(s,"P",{"data-svelte-h":!0}),u(Is)!=="svelte-k61p1e"&&(Is.textContent=il),Ae=t(s),Us=r(s,"P",{"data-svelte-h":!0}),u(Us)!=="svelte-1vqwv9x"&&(Us.textContent=jl),Ge=t(s),M(fs.$$.fragment,s),ve=t(s),Cs=r(s,"P",{}),Jl(Cs).forEach(l),this.h()},h(){hl(c,"name","hf:doc:metadata"),hl(c,"content",Bl)},m(s,e){Zl(document.head,c),a(s,T,e),a(s,o,e),a(s,J,e),d(f,s,e),a(s,Zs,e),d(C,s,e),a(s,As,e),a(s,Z,e),a(s,Gs,e),d(A,s,e),a(s,vs,e),a(s,G,e),a(s,Vs,e),d(v,s,e),a(s,Bs,e),a(s,V,e),a(s,Rs,e),a(s,B,e),a(s,$s,e),a(s,R,e),a(s,ks,e),a(s,$,e),a(s,_s,e),d(k,s,e),a(s,Ls,e),a(s,_,e),a(s,Ns,e),d(L,s,e),a(s,gs,e),d(y,s,e),a(s,Ws,e),d(I,s,e),a(s,xs,e),d(U,s,e),a(s,Es,e),a(s,N,e),a(s,Xs,e),a(s,g,e),a(s,Qs,e),d(W,s,e),a(s,Ds,e),a(s,x,e),a(s,Hs,e),a(s,E,e),a(s,Ss,e),d(X,s,e),a(s,Ys,e),a(s,Q,e),a(s,zs,e),d(D,s,e),a(s,Fs,e),a(s,H,e),a(s,qs,e),a(s,S,e),a(s,Ps,e),a(s,Y,e),a(s,Ks,e),a(s,z,e),a(s,Os,e),d(F,s,e),a(s,se,e),a(s,q,e),a(s,ee,e),a(s,P,e),a(s,le,e),d(K,s,e),a(s,ae,e),a(s,O,e),a(s,ne,e),a(s,ss,e),a(s,te,e),a(s,es,e),a(s,pe,e),a(s,ls,e),a(s,re,e),d(as,s,e),a(s,ue,e),a(s,ns,e),a(s,ce,e),a(s,ts,e),a(s,oe,e),a(s,ps,e),a(s,me,e),d(rs,s,e),a(s,Me,e),a(s,us,e),a(s,de,e),d(cs,s,e),a(s,ie,e),a(s,os,e),a(s,je,e),a(s,ms,e),a(s,we,e),a(s,Ms,e),a(s,be,e),d(ds,s,e),a(s,Te,e),d(is,s,e),a(s,Je,e),a(s,js,e),a(s,he,e),a(s,ws,e),a(s,ye,e),d(bs,s,e),a(s,Ie,e),a(s,Ts,e),a(s,Ue,e),a(s,Js,e),a(s,fe,e),a(s,hs,e),a(s,Ce,e),d(ys,s,e),a(s,Ze,e),a(s,Is,e),a(s,Ae,e),a(s,Us,e),a(s,Ge,e),d(fs,s,e),a(s,ve,e),a(s,Cs,e),Ve=!0},p(s,[e]){const wl={};e&2&&(wl.$$scope={dirty:e,ctx:s}),y.$set(wl);const bl={};e&2&&(bl.$$scope={dirty:e,ctx:s}),I.$set(bl);const Tl={};e&2&&(Tl.$$scope={dirty:e,ctx:s}),U.$set(Tl)},i(s){Ve||(i(f.$$.fragment,s),i(C.$$.fragment,s),i(A.$$.fragment,s),i(v.$$.fragment,s),i(k.$$.fragment,s),i(L.$$.fragment,s),i(y.$$.fragment,s),i(I.$$.fragment,s),i(U.$$.fragment,s),i(W.$$.fragment,s),i(X.$$.fragment,s),i(D.$$.fragment,s),i(F.$$.fragment,s),i(K.$$.fragment,s),i(as.$$.fragment,s),i(rs.$$.fragment,s),i(cs.$$.fragment,s),i(ds.$$.fragment,s),i(is.$$.fragment,s),i(bs.$$.fragment,s),i(ys.$$.fragment,s),i(fs.$$.fragment,s),Ve=!0)},o(s){j(f.$$.fragment,s),j(C.$$.fragment,s),j(A.$$.fragment,s),j(v.$$.fragment,s),j(k.$$.fragment,s),j(L.$$.fragment,s),j(y.$$.fragment,s),j(I.$$.fragment,s),j(U.$$.fragment,s),j(W.$$.fragment,s),j(X.$$.fragment,s),j(D.$$.fragment,s),j(F.$$.fragment,s),j(K.$$.fragment,s),j(as.$$.fragment,s),j(rs.$$.fragment,s),j(cs.$$.fragment,s),j(ds.$$.fragment,s),j(is.$$.fragment,s),j(bs.$$.fragment,s),j(ys.$$.fragment,s),j(fs.$$.fragment,s),Ve=!1},d(s){s&&(l(T),l(o),l(J),l(Zs),l(As),l(Z),l(Gs),l(vs),l(G),l(Vs),l(Bs),l(V),l(Rs),l(B),l($s),l(R),l(ks),l($),l(_s),l(Ls),l(_),l(Ns),l(gs),l(Ws),l(xs),l(Es),l(N),l(Xs),l(g),l(Qs),l(Ds),l(x),l(Hs),l(E),l(Ss),l(Ys),l(Q),l(zs),l(Fs),l(H),l(qs),l(S),l(Ps),l(Y),l(Ks),l(z),l(Os),l(se),l(q),l(ee),l(P),l(le),l(ae),l(O),l(ne),l(ss),l(te),l(es),l(pe),l(ls),l(re),l(ue),l(ns),l(ce),l(ts),l(oe),l(ps),l(me),l(Me),l(us),l(de),l(ie),l(os),l(je),l(ms),l(we),l(Ms),l(be),l(Te),l(Je),l(js),l(he),l(ws),l(ye),l(Ie),l(Ts),l(Ue),l(Js),l(fe),l(hs),l(Ce),l(Ze),l(Is),l(Ae),l(Us),l(Ge),l(ve),l(Cs)),l(c),w(f,s),w(C,s),w(A,s),w(v,s),w(k,s),w(L,s),w(y,s),w(I,s),w(U,s),w(W,s),w(X,s),w(D,s),w(F,s),w(K,s),w(as,s),w(rs,s),w(cs,s),w(ds,s),w(is,s),w(bs,s),w(ys,s),w(fs,s)}}}const Bl='{"title":"Debugging","local":"debugging","sections":[{"title":"Debug de problemas de Network multi-GPU","local":"debug-de-problemas-de-network-multi-gpu","sections":[],"depth":2},{"title":"Detección de Underflow y Overflow","local":"detección-de-underflow-y-overflow","sections":[{"title":"Rastreo de valores mínimos y máximos absolutos de batches específicos","local":"rastreo-de-valores-mínimos-y-máximos-absolutos-de-batches-específicos","sections":[],"depth":3}],"depth":2}],"depth":1}';function Rl(h){return Il(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class gl extends Ul{constructor(c){super(),fl(this,c,Rl,Vl,yl,{})}}export{gl as component};
