Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Entender el paper de DeepSeek R1","local":"entender-el-paper-de-deepseek-r1","sections":[{"title":"El gran momento “Aha”","local":"el-gran-momento-aha","sections":[],"depth":2},{"title":"El proceso de entrenamiento","local":"el-proceso-de-entrenamiento","sections":[{"title":"Fase de Cold Start","local":"fase-de-cold-start","sections":[],"depth":3},{"title":"Fase de RL de razonamiento","local":"fase-de-rl-de-razonamiento","sections":[],"depth":3},{"title":"Fase de muestreo por rechazo","local":"fase-de-muestreo-por-rechazo","sections":[],"depth":3},{"title":"Fase de RL diversa","local":"fase-de-rl-diversa","sections":[],"depth":3}],"depth":2},{"title":"El algoritmo: Group Relative Policy Optimization (GRPO)","local":"el-algoritmo-group-relative-policy-optimization-grpo","sections":[{"title":"Formación de grupos: crear múltiples soluciones","local":"formación-de-grupos-crear-múltiples-soluciones","sections":[],"depth":3},{"title":"Aprendizaje de preferencias: entender qué hace buena a una solución","local":"aprendizaje-de-preferencias-entender-qué-hace-buena-a-una-solución","sections":[],"depth":3},{"title":"Optimización: aprender de la experiencia","local":"optimización-aprender-de-la-experiencia","sections":[],"depth":3},{"title":"Algoritmo GRPO en pseudocódigo","local":"algoritmo-grpo-en-pseudocódigo","sections":[],"depth":3}],"depth":2},{"title":"Resultados e impacto","local":"resultados-e-impacto","sections":[],"depth":2},{"title":"Limitaciones y desafíos de GRPO","local":"limitaciones-y-desafíos-de-grpo","sections":[],"depth":2},{"title":"Conclusión","local":"conclusión","sections":[],"depth":2},{"title":"Quiz","local":"quiz","sections":[{"title":"1. ¿Cuál es la principal innovación del paper de DeepSeek R1?","local":"1-cuál-es-la-principal-innovación-del-paper-de-deepseek-r1","sections":[],"depth":3},{"title":"2. ¿Cuáles son las cuatro fases del proceso de entrenamiento de DeepSeek R1?","local":"2-cuáles-son-las-cuatro-fases-del-proceso-de-entrenamiento-de-deepseek-r1","sections":[],"depth":3},{"title":"3. ¿Qué es el fenómeno del momento “Aha” en el entrenamiento de R1-Zero?","local":"3-qué-es-el-fenómeno-del-momento-aha-en-el-entrenamiento-de-r1-zero","sections":[],"depth":3},{"title":"4. ¿Cómo funciona la formación de grupos en GRPO?","local":"4-cómo-funciona-la-formación-de-grupos-en-grpo","sections":[],"depth":3},{"title":"5. ¿Cuál es la diferencia clave entre DeepSeek-R1-Zero y DeepSeek-R1?","local":"5-cuál-es-la-diferencia-clave-entre-deepseek-r1-zero-y-deepseek-r1","sections":[],"depth":3}],"depth":2}],"depth":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/30.a00b317a.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/CodeBlock.f6688f67.js"> | |
| <link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/Question.bc1e0795.js"> | |
| <link rel="modulepreload" href="/docs/course/pr_1213/es/_app/immutable/chunks/stores.f19d72fe.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{"title":"Entender el paper de DeepSeek R1","local":"entender-el-paper-de-deepseek-r1","sections":[{"title":"El gran momento “Aha”","local":"el-gran-momento-aha","sections":[],"depth":2},{"title":"El proceso de entrenamiento","local":"el-proceso-de-entrenamiento","sections":[{"title":"Fase de Cold Start","local":"fase-de-cold-start","sections":[],"depth":3},{"title":"Fase de RL de razonamiento","local":"fase-de-rl-de-razonamiento","sections":[],"depth":3},{"title":"Fase de muestreo por rechazo","local":"fase-de-muestreo-por-rechazo","sections":[],"depth":3},{"title":"Fase de RL diversa","local":"fase-de-rl-diversa","sections":[],"depth":3}],"depth":2},{"title":"El algoritmo: Group Relative Policy Optimization (GRPO)","local":"el-algoritmo-group-relative-policy-optimization-grpo","sections":[{"title":"Formación de grupos: crear múltiples soluciones","local":"formación-de-grupos-crear-múltiples-soluciones","sections":[],"depth":3},{"title":"Aprendizaje de preferencias: entender qué hace buena a una solución","local":"aprendizaje-de-preferencias-entender-qué-hace-buena-a-una-solución","sections":[],"depth":3},{"title":"Optimización: aprender de la experiencia","local":"optimización-aprender-de-la-experiencia","sections":[],"depth":3},{"title":"Algoritmo GRPO en pseudocódigo","local":"algoritmo-grpo-en-pseudocódigo","sections":[],"depth":3}],"depth":2},{"title":"Resultados e impacto","local":"resultados-e-impacto","sections":[],"depth":2},{"title":"Limitaciones y desafíos de GRPO","local":"limitaciones-y-desafíos-de-grpo","sections":[],"depth":2},{"title":"Conclusión","local":"conclusión","sections":[],"depth":2},{"title":"Quiz","local":"quiz","sections":[{"title":"1. ¿Cuál es la principal innovación del paper de DeepSeek R1?","local":"1-cuál-es-la-principal-innovación-del-paper-de-deepseek-r1","sections":[],"depth":3},{"title":"2. ¿Cuáles son las cuatro fases del proceso de entrenamiento de DeepSeek R1?","local":"2-cuáles-son-las-cuatro-fases-del-proceso-de-entrenamiento-de-deepseek-r1","sections":[],"depth":3},{"title":"3. ¿Qué es el fenómeno del momento “Aha” en el entrenamiento de R1-Zero?","local":"3-qué-es-el-fenómeno-del-momento-aha-en-el-entrenamiento-de-r1-zero","sections":[],"depth":3},{"title":"4. ¿Cómo funciona la formación de grupos en GRPO?","local":"4-cómo-funciona-la-formación-de-grupos-en-grpo","sections":[],"depth":3},{"title":"5. ¿Cuál es la diferencia clave entre DeepSeek-R1-Zero y DeepSeek-R1?","local":"5-cuál-es-la-diferencia-clave-entre-deepseek-r1-zero-y-deepseek-r1","sections":[],"depth":3}],"depth":2}],"depth":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="entender-el-paper-de-deepseek-r1" 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="#entender-el-paper-de-deepseek-r1"><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>Entender el paper de DeepSeek R1</span></h1> <p data-svelte-h="svelte-4c4lo5">Este capítulo es una lectura acelerada de un paper. Lo recorreremos en términos sencillos y luego desglosaremos los conceptos clave y las conclusiones principales.</p> <p data-svelte-h="svelte-wo99mk">DeepSeek R1 representa un avance importante en el entrenamiento de modelos de lenguaje, especialmente en el desarrollo de capacidades de razonamiento mediante aprendizaje por refuerzo. El paper introduce un nuevo algoritmo llamado Group Relative Policy Optimization (GRPO).</p> <p data-svelte-h="svelte-12l9lg2"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/4.png" alt="Resumen de DeepSeek R1"></p> <p data-svelte-h="svelte-1lvk6ks">En el siguiente capítulo construiremos sobre este conocimiento e implementaremos GRPO en la práctica.</p> <p data-svelte-h="svelte-1i2gho0">El objetivo inicial del paper era explorar si el aprendizaje por refuerzo puro podía desarrollar capacidades de razonamiento sin ajuste fino supervisado.</p> <blockquote class="tip" data-svelte-h="svelte-1qj7nsr"><p>Hasta ese momento, todos los LLM populares requerían cierto ajuste fino supervisado, que exploramos en el <a href="/course/chapter11/1">capítulo 11</a>.</p></blockquote> <h2 class="relative group"><a id="el-gran-momento-aha" 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="#el-gran-momento-aha"><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>El gran momento “Aha”</span></h2> <p data-svelte-h="svelte-1xl13cu"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/9.png" alt="El momento Aha"></p> <p data-svelte-h="svelte-16391to">Uno de los descubrimientos más notables durante el entrenamiento de R1-Zero fue la aparición de un fenómeno conocido como el “Aha Moment”. Este fenómeno se parece a cómo los humanos experimentan realizaciones repentinas al resolver problemas. Funciona así:</p> <ol data-svelte-h="svelte-1vviene"><li>Intento inicial: el modelo hace un primer intento de resolver un problema.</li> <li>Reconocimiento: detecta posibles errores o inconsistencias.</li> <li>Autocorrección: ajusta su enfoque a partir de ese reconocimiento.</li> <li>Explicación: puede explicar por qué el nuevo enfoque es mejor.</li></ol> <p data-svelte-h="svelte-dbs2dn">Este avance conecta bien con la experiencia de aprendizaje porque demuestra aprendizaje real y no mera memorización. Tomemos un momento para imaginar qué se siente tener un momento “Aha”.</p> <p data-svelte-h="svelte-16ayz4t">Por ejemplo, imagina que estás intentando resolver un rompecabezas:</p> <ul data-svelte-h="svelte-3ejpcz"><li>Primer intento: “Esta pieza debería ir aquí por el color”.</li> <li>Reconocimiento: “Pero espera, la forma no encaja del todo”.</li> <li>Corrección: “Ah, en realidad va allá”.</li> <li>Explicación: “Porque tanto el color como el patrón de la forma coinciden en esta posición”.</li></ul> <p data-svelte-h="svelte-1u97dd4">Esta capacidad surgió de manera natural a partir del entrenamiento con RL, sin ser programada explícitamente, lo que demuestra aprendizaje en lugar de memorización de un proceso visto en los datos de entrenamiento.</p> <p data-svelte-h="svelte-1m6ix4j">La forma más sencilla de entender el momento “Aha” es verlo en acción. En el chat de abajo le pedimos al modelo que resuelva un problema y la interfaz muestra el proceso de pensamiento del modelo mientras lo resuelve.</p> <iframe src="https://reasoning-course-deepseek-ai-deepseek-r1-distill-0f5fad4.hf.space/" frameborder="0" width="850" height="450"></iframe> <p data-svelte-h="svelte-12b169a">Si quieres probar R1 de DeepSeek, también puedes revisar <a href="https://huggingface.co/chat/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" rel="nofollow">Hugging Chat</a>.</p> <h2 class="relative group"><a id="el-proceso-de-entrenamiento" 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="#el-proceso-de-entrenamiento"><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>El proceso de entrenamiento</span></h2> <p data-svelte-h="svelte-1mnrclf">Entrenar R1 fue un proceso multifase. Veamos las fases y las innovaciones clave en cada una.</p> <p data-svelte-h="svelte-18wj3ad">El proceso final produce dos modelos:</p> <ul data-svelte-h="svelte-6tumte"><li>DeepSeek-R1-Zero: un modelo entrenado puramente con aprendizaje por refuerzo.</li> <li>DeepSeek-R1: un modelo que parte de la base de DeepSeek-R1-Zero y añade ajuste fino supervisado.</li></ul> <table data-svelte-h="svelte-1i0sdw5"><thead><tr><th>Característica</th> <th>DeepSeek-R1-Zero</th> <th>DeepSeek-R1</th></tr></thead> <tbody><tr><td>Enfoque de entrenamiento</td> <td>RL puro</td> <td>Multifase (SFT + RL)</td></tr> <tr><td>Ajuste fino</td> <td>Ninguno</td> <td>Ajuste fino supervisado</td></tr> <tr><td>Capacidad de razonamiento</td> <td>Emergente</td> <td>Mejorada</td></tr> <tr><td>Rendimiento en AIME</td> <td>71.0%</td> <td>79.8%</td></tr> <tr><td>Características clave</td> <td>Razonamiento fuerte, pero con problemas de legibilidad</td> <td>Mejor consistencia y legibilidad</td></tr></tbody></table> <p data-svelte-h="svelte-tvu5i3">Aunque DeepSeek-R1-Zero demuestra el potencial del aprendizaje por refuerzo puro para desarrollar razonamiento, DeepSeek-R1 construye sobre esa base con un enfoque más equilibrado que prioriza tanto el rendimiento como la usabilidad.</p> <p data-svelte-h="svelte-191dmrx">El proceso de entrenamiento involucra cuatro fases:</p> <ol data-svelte-h="svelte-j7at4l"><li>Fase de Cold Start.</li> <li>Fase de RL de razonamiento.</li> <li>Fase de muestreo por rechazo.</li> <li>Fase de RL diversa.</li></ol> <h3 class="relative group"><a id="fase-de-cold-start" 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="#fase-de-cold-start"><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>Fase de Cold Start</span></h3> <p data-svelte-h="svelte-n59k0w"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/5.png" alt="Fase de Cold Start"></p> <p data-svelte-h="svelte-1ur8oqc">Esta fase busca establecer una base sólida para la legibilidad del modelo y la calidad de sus respuestas. Usa un conjunto pequeño de muestras de alta calidad procedentes de R1-Zero para ajustar el modelo V3-Base. El enfoque es innovador porque usa un dataset pequeño pero de alta calidad para fijar una base fuerte.</p> <h3 class="relative group"><a id="fase-de-rl-de-razonamiento" 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="#fase-de-rl-de-razonamiento"><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>Fase de RL de razonamiento</span></h3> <p data-svelte-h="svelte-v1g931"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/6.png" alt="Fase de RL de razonamiento"></p> <p data-svelte-h="svelte-p85f2k">Esta fase se centra en desarrollar capacidades de razonamiento en dominios como matemáticas, programación, ciencia y lógica. Emplea aprendizaje por refuerzo basado en reglas, con recompensas directamente vinculadas a la corrección de la solución.</p> <p data-svelte-h="svelte-r9xqbn">De manera crucial, todas las tareas en esta fase son verificables. Eso permite comprobar si la respuesta del modelo es correcta o no. Por ejemplo, en matemáticas podemos validarla con un solucionador matemático.</p> <p data-svelte-h="svelte-1mwq8oh">Lo más innovador de esta fase es que elimina la necesidad de un reward model separado y simplifica el proceso de entrenamiento.</p> <h3 class="relative group"><a id="fase-de-muestreo-por-rechazo" 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="#fase-de-muestreo-por-rechazo"><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>Fase de muestreo por rechazo</span></h3> <p data-svelte-h="svelte-16spmsf"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/7.png" alt="Fase de muestreo por rechazo"></p> <p data-svelte-h="svelte-1vzrjnj">Durante esta fase, el modelo genera muestras que luego se filtran mediante un proceso de control de calidad. DeepSeek-V3 actúa como juez de calidad y evalúa salidas en un espectro amplio que va más allá de las tareas de razonamiento puro. Después, los datos filtrados se usan para ajuste fino supervisado.</p> <h3 class="relative group"><a id="fase-de-rl-diversa" 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="#fase-de-rl-diversa"><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>Fase de RL diversa</span></h3> <p data-svelte-h="svelte-11v0i35"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/8.png" alt="Fase de RL diversa"></p> <p data-svelte-h="svelte-15wtzzj">La fase final aborda múltiples tipos de tareas con un enfoque híbrido. Para tareas deterministas, emplea recompensas basadas en reglas; para tareas subjetivas, usa retroalimentación de LLM. El objetivo es lograr alineación con preferencias humanas combinando precisión y flexibilidad.</p> <h2 class="relative group"><a id="el-algoritmo-group-relative-policy-optimization-grpo" 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="#el-algoritmo-group-relative-policy-optimization-grpo"><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>El algoritmo: Group Relative Policy Optimization (GRPO)</span></h2> <p data-svelte-h="svelte-1vo2s8u">Ahora que entendemos el proceso de entrenamiento, veamos el algoritmo con el que se entrenó el modelo.</p> <p data-svelte-h="svelte-c6ll0v">Los autores describen GRPO como un avance en el ajuste fino de modelos:</p> <p data-svelte-h="svelte-1p59kb4"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/10.png" alt="Proceso de GRPO"></p> <p data-svelte-h="svelte-11pni0e">La novedad de GRPO radica en su capacidad para optimizar directamente la rectificación de preferencias. Esto ofrece una vía más directa y eficiente para alinear el modelo con salidas deseadas frente a algoritmos tradicionales como PPO.</p> <h3 class="relative group"><a id="formación-de-grupos-crear-múltiples-soluciones" 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="#formación-de-grupos-crear-múltiples-soluciones"><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>Formación de grupos: crear múltiples soluciones</span></h3> <p data-svelte-h="svelte-15z7ywe">El primer paso de GRPO es intuitivo: cuando recibe un prompt, el modelo no genera una sola respuesta, sino múltiples intentos para resolver el mismo problema, normalmente 4, 8 o 16.</p> <p data-svelte-h="svelte-9d37zs">Imagina que estás enseñando a un modelo a resolver problemas de matemáticas. Para una pregunta sobre contar gallinas en una granja, podría generar varias soluciones diferentes:</p> <ul data-svelte-h="svelte-ksmrg1"><li>Una solución podría descomponer el problema paso a paso.</li> <li>Otra podría usar un enfoque distinto pero igualmente válido.</li> <li>Algunos intentos podrían contener errores o soluciones menos eficientes.</li></ul> <p data-svelte-h="svelte-1bzvay6">Todos esos intentos se mantienen juntos como un grupo para compararlos entre sí.</p> <p data-svelte-h="svelte-ff2tno"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/11.jpg" alt="Formación de grupos"></p> <h3 class="relative group"><a id="aprendizaje-de-preferencias-entender-qué-hace-buena-a-una-solució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="#aprendizaje-de-preferencias-entender-qué-hace-buena-a-una-solució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>Aprendizaje de preferencias: entender qué hace buena a una solución</span></h3> <p data-svelte-h="svelte-tacr2p">Aquí es donde GRPO destaca por su simplicidad. A diferencia de otros métodos de RLHF que requieren un reward model separado, GRPO puede usar cualquier función o modelo que evalúe la calidad de una solución.</p> <p data-svelte-h="svelte-lv2lfs">El proceso de evaluación analiza varios aspectos de cada solución:</p> <ul data-svelte-h="svelte-2n4xgq"><li>¿La respuesta final es correcta?</li> <li>¿La solución siguió el formato adecuado?</li> <li>¿El razonamiento coincide con la respuesta dada?</li></ul> <p data-svelte-h="svelte-11oqjt4">En lugar de trabajar con puntuaciones absolutas, GRPO normaliza las recompensas dentro de cada grupo:</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 -->Advantage = (reward - mean(group_rewards)) / std(group_rewards)<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1m9psjr"><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/12.jpg" alt="Aprendizaje de preferencias"></p> <p data-svelte-h="svelte-1d0yjiy">Esta normalización ayuda al modelo a entender qué soluciones fueron mejores o peores respecto a sus pares.</p> <h3 class="relative group"><a id="optimización-aprender-de-la-experiencia" 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="#optimización-aprender-de-la-experiencia"><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>Optimización: aprender de la experiencia</span></h3> <p data-svelte-h="svelte-1crvlgk">El paso final es donde GRPO enseña al modelo a mejorar a partir de lo que aprendió al evaluar el grupo de soluciones. Este proceso se apoya en dos ideas principales:</p> <ol data-svelte-h="svelte-h7klvc"><li>Animar al modelo a producir más soluciones parecidas a las exitosas.</li> <li>Incluir una salvaguarda, llamada penalización por divergencia KL, para evitar cambios demasiado bruscos.</li></ol> <p data-svelte-h="svelte-1d2i7ax">Este enfoque es más estable que métodos tradicionales porque:</p> <ul data-svelte-h="svelte-nbt7w0"><li>Considera múltiples soluciones juntas.</li> <li>La normalización por grupos ayuda a evitar problemas de escala en las recompensas.</li> <li>La penalización KL evita que el modelo olvide demasiado de golpe lo que ya sabía.</li></ul> <blockquote class="tip" data-svelte-h="svelte-4x9k6k"><p>Las innovaciones clave de GRPO son:</p> <ul><li>Aprender directamente desde cualquier función o modelo, sin depender de un reward model separado.</li> <li>Aprendizaje basado en grupos, más estable y eficiente que comparaciones por pares.</li></ul></blockquote> <h3 class="relative group"><a id="algoritmo-grpo-en-pseudocódigo" 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="#algoritmo-grpo-en-pseudocódigo"><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>Algoritmo GRPO en pseudocódigo</span></h3> <p data-svelte-h="svelte-m7uysv">Ahora que entendemos sus componentes, veamos GRPO en pseudocódigo:</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 -->Input: | |
| - initial_policy: modelo inicial que se va a entrenar | |
| - reward_function: función que evalúa las salidas | |
| - training_prompts: conjunto de ejemplos de entrenamiento | |
| - group_size: número de salidas por prompt, normalmente entre 4 y 16 | |
| Algorithm GRPO: | |
| 1. For each training iteration: | |
| a. Set reference_policy = initial_policy (snapshot current policy) | |
| b. For each prompt in batch: | |
| i. Generate group_size different outputs using initial_policy | |
| ii. Compute rewards for each output using reward_function | |
| iii. Normalize rewards within group: | |
| normalized_advantage = (reward - mean(rewards)) / std(rewards) | |
| iv. Update policy by maximizing the clipped ratio: | |
| min(prob_ratio * normalized_advantage, | |
| clip(prob_ratio, 1-epsilon, 1+epsilon) * normalized_advantage) | |
| - kl_weight * KL(initial_policy || reference_policy) | |
| where prob_ratio is current_prob / reference_prob | |
| Output: Optimized policy model<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1udbhij">Este algoritmo muestra cómo GRPO combina estimación de ventaja basada en grupos con optimización de política, manteniendo la estabilidad mediante clipping y restricciones de divergencia KL.</p> <h2 class="relative group"><a id="resultados-e-impacto" 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="#resultados-e-impacto"><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>Resultados e impacto</span></h2> <p data-svelte-h="svelte-dl6gng">DeepSeek R1 alcanza rendimiento de estado del arte en múltiples dominios:</p> <table data-svelte-h="svelte-mh93xx"><thead><tr><th>Dominio</th> <th>Resultados clave</th></tr></thead> <tbody><tr><td>Matemáticas</td> <td>79.8% en AIME 2024, 97.3% en MATH-500</td></tr> <tr><td>Programación</td> <td>Rating de 2029 en Codeforces, 65.9% en LiveCodeBench</td></tr> <tr><td>Conocimiento general</td> <td>90.8% en MMLU, 71.5% en GPQA Diamond</td></tr> <tr><td>Tareas de lenguaje</td> <td>87.6% de win rate en AlpacaEval 2.0, 82.5% en FRAMES</td></tr></tbody></table> <p data-svelte-h="svelte-1n67umg">El impacto práctico del modelo va más allá de los benchmarks por su coste accesible de API y por la destilación exitosa del modelo en varios tamaños, desde 1.5B hasta 70B parámetros.</p> <h2 class="relative group"><a id="limitaciones-y-desafíos-de-grpo" 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="#limitaciones-y-desafíos-de-grpo"><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>Limitaciones y desafíos de GRPO</span></h2> <p data-svelte-h="svelte-18nq8d8">Aunque GRPO representa un avance importante, también tiene limitaciones:</p> <ul data-svelte-h="svelte-5fe4tl"><li><strong>Costo de generación</strong>: generar múltiples completions para cada prompt aumenta los requisitos computacionales.</li> <li><strong>Restricciones de tamaño de lote</strong>: procesar grupos de completions juntos puede limitar el batch size efectivo.</li> <li><strong>Diseño de funciones de recompensa</strong>: recompensas mal diseñadas pueden inducir comportamientos no deseados.</li> <li><strong>Compromisos en el tamaño de grupo</strong>: grupos pequeños pueden aportar poca diversidad, mientras que grupos grandes incrementan el coste.</li> <li><strong>Ajuste de la divergencia KL</strong>: si la penalización es demasiado alta, el modelo aprende poco; si es demasiado baja, puede desviarse demasiado.</li></ul> <h2 class="relative group"><a id="conclusió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="#conclusió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>Conclusión</span></h2> <p data-svelte-h="svelte-wupfly">El paper de DeepSeek R1 representa un hito importante en el desarrollo de modelos de lenguaje. El algoritmo GRPO ha demostrado que el aprendizaje por refuerzo puro sí puede desarrollar fuertes capacidades de razonamiento, cuestionando la idea de que el ajuste fino supervisado siempre es imprescindible.</p> <p data-svelte-h="svelte-16w7cis">Quizá lo más importante es que DeepSeek R1 ha demostrado que es posible equilibrar alto rendimiento con consideraciones prácticas como coste y accesibilidad.</p> <hr> <p data-svelte-h="svelte-1wtczem">En la siguiente sección exploraremos implementaciones prácticas de estos conceptos y veremos cómo aprovechar GRPO en tus propios proyectos.</p> <h2 class="relative group"><a id="quiz" 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="#quiz"><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>Quiz</span></h2> <h3 class="relative group"><a id="1-cuál-es-la-principal-innovación-del-paper-de-deepseek-r1" 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="#1-cuál-es-la-principal-innovación-del-paper-de-deepseek-r1"><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>1. ¿Cuál es la principal innovación del paper de DeepSeek R1?</span></h3> <div><form><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="0"> <!-- HTML_TAG_START -->The GRPO algorithm that enables learning from preferences with and without a reward model<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"> <!-- HTML_TAG_START -->Using more GPUs for training than any previous model<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"> <!-- HTML_TAG_START -->Creating a larger language model than existing ones<!-- HTML_TAG_END --></label> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled>Submit</button> </div></form></div> <h3 class="relative group"><a id="2-cuáles-son-las-cuatro-fases-del-proceso-de-entrenamiento-de-deepseek-r1" 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="#2-cuáles-son-las-cuatro-fases-del-proceso-de-entrenamiento-de-deepseek-r1"><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>2. ¿Cuáles son las cuatro fases del proceso de entrenamiento de DeepSeek R1?</span></h3> <div><form><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="0"> <!-- HTML_TAG_START -->Cold Start, Reasoning RL, Rejection Sampling, and Diverse RL<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"> <!-- HTML_TAG_START -->Pre-training, Fine-tuning, Testing, and Deployment<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"> <!-- HTML_TAG_START -->Data Collection, Model Training, Evaluation, and Optimization<!-- HTML_TAG_END --></label> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled>Submit</button> </div></form></div> <h3 class="relative group"><a id="3-qué-es-el-fenómeno-del-momento-aha-en-el-entrenamiento-de-r1-zero" 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="#3-qué-es-el-fenómeno-del-momento-aha-en-el-entrenamiento-de-r1-zero"><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>3. ¿Qué es el fenómeno del momento “Aha” en el entrenamiento de R1-Zero?</span></h3> <div><form><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="0"> <!-- HTML_TAG_START -->A process where the model recognizes errors, self-corrects, and explains its corrections<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"> <!-- HTML_TAG_START -->The point where the model reaches human-level performance<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"> <!-- HTML_TAG_START -->When the model completes its training process<!-- HTML_TAG_END --></label> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled>Submit</button> </div></form></div> <h3 class="relative group"><a id="4-cómo-funciona-la-formación-de-grupos-en-grpo" 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="#4-cómo-funciona-la-formación-de-grupos-en-grpo"><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>4. ¿Cómo funciona la formación de grupos en GRPO?</span></h3> <div><form><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="0"> <!-- HTML_TAG_START -->It generates multiple solutions (4-16) for the same problem and evaluates them together<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"> <!-- HTML_TAG_START -->It combines multiple models into one ensemble<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"> <!-- HTML_TAG_START -->It splits the training data into different groups<!-- HTML_TAG_END --></label> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled>Submit</button> </div></form></div> <h3 class="relative group"><a id="5-cuál-es-la-diferencia-clave-entre-deepseek-r1-zero-y-deepseek-r1" 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="#5-cuál-es-la-diferencia-clave-entre-deepseek-r1-zero-y-deepseek-r1"><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>5. ¿Cuál es la diferencia clave entre DeepSeek-R1-Zero y DeepSeek-R1?</span></h3> <div><form><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="0"> <!-- HTML_TAG_START -->R1-Zero uses pure RL while R1 combines RL with supervised fine-tuning<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"> <!-- HTML_TAG_START -->R1-Zero is smaller than R1<!-- HTML_TAG_END --></label> <label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"> <!-- HTML_TAG_START -->R1-Zero was trained on less data<!-- HTML_TAG_END --></label> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled>Submit</button> </div></form></div> <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/chapter12/3.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, 30], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 58.1 kB
- Xet hash:
- 116bde2b1bcf2336bcbc8f0ac05d149ff9ca3ef292e0caf57984ba917a53904e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.