Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"El momento «¡Ajá!» en el artículo de DeepSeek R1","local":"el-momento-aja-en-el-articulo-de-deepseek-r1","sections":[{"title":"El gran avance: El momento «¡Ajá!» ( Aha Moment )","local":"el-gran-avance-el-momento-ajá--aha-moment-","sections":[],"depth":2},{"title":"El proceso de entrenamiento","local":"el-proceso-de-entrenamiento","sections":[{"title":"Fase de inicio en frío (Base de calidad)","local":"fase-de-inicio-en-frío-base-de-calidad","sections":[],"depth":3},{"title":"Fase de RL de razonamiento (Desarrollo de capacidades)","local":"fase-de-rl-de-razonamiento-desarrollo-de-capacidades","sections":[],"depth":3},{"title":"Fase de muestreo por rechazo (Control de calidad)","local":"fase-de-muestreo-por-rechazo-control-de-calidad","sections":[],"depth":3},{"title":"Fase de RL diverso (Alineación amplia)","local":"fase-de-rl-diverso-alineación-amplia","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: Creación de múltiples soluciones","local":"formación-de-grupos-creación-de-múltiples-soluciones","sections":[],"depth":3},{"title":"Aprendizaje de preferencias: Comprender qué hace que una solución sea buena","local":"aprendizaje-de-preferencias-comprender-qué-hace-que-una-solución-sea-buena","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":"Cuestionario","local":"cuestionario","sections":[{"title":"1. ¿Cuál es la principal innovación del artículo de DeepSeek R1?","local":"1-cuál-es-la-principal-innovación-del-artículo-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 ¡Ajá!» en el entrenamiento de R1-Zero?","local":"3-qué-es-el-fenómeno-del-momento-ajá-en-el-entrenamiento-de-r1-zero","sections":[],"depth":3},{"title":"4. ¿Cómo funciona la formación de grupos de GRPO?","local":"4-cómo-funciona-la-formación-de-grupos-de-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_1355/es/_app/immutable/entry/start.T3MdRQ4G.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/CivBXi9B.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/aP6dK4KL.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/entry/app.SbMH_Gmo.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/BHbZrLhT.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/WRTwIY3l.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/BCjy32dI.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/DsnmJJEf.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/nodes/0.fyWjN1ae.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/DgfoQnTk.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/nodes/15.KAwyAHX4.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/Bp_5I6pm.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/DoT0wG71.js" rel="modulepreload"> | |
| <link href="/docs/course/pr_1355/es/_app/immutable/chunks/W9J4dBtK.js" rel="modulepreload"> | |
| <!--1hrs6xn--><meta name="hf:doc:metadata" content="{"title":"El momento «¡Ajá!» en el artículo de DeepSeek R1","local":"el-momento-aja-en-el-articulo-de-deepseek-r1","sections":[{"title":"El gran avance: El momento «¡Ajá!» ( Aha Moment )","local":"el-gran-avance-el-momento-ajá--aha-moment-","sections":[],"depth":2},{"title":"El proceso de entrenamiento","local":"el-proceso-de-entrenamiento","sections":[{"title":"Fase de inicio en frío (Base de calidad)","local":"fase-de-inicio-en-frío-base-de-calidad","sections":[],"depth":3},{"title":"Fase de RL de razonamiento (Desarrollo de capacidades)","local":"fase-de-rl-de-razonamiento-desarrollo-de-capacidades","sections":[],"depth":3},{"title":"Fase de muestreo por rechazo (Control de calidad)","local":"fase-de-muestreo-por-rechazo-control-de-calidad","sections":[],"depth":3},{"title":"Fase de RL diverso (Alineación amplia)","local":"fase-de-rl-diverso-alineación-amplia","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: Creación de múltiples soluciones","local":"formación-de-grupos-creación-de-múltiples-soluciones","sections":[],"depth":3},{"title":"Aprendizaje de preferencias: Comprender qué hace que una solución sea buena","local":"aprendizaje-de-preferencias-comprender-qué-hace-que-una-solución-sea-buena","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":"Cuestionario","local":"cuestionario","sections":[{"title":"1. ¿Cuál es la principal innovación del artículo de DeepSeek R1?","local":"1-cuál-es-la-principal-innovación-del-artículo-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 ¡Ajá!» en el entrenamiento de R1-Zero?","local":"3-qué-es-el-fenómeno-del-momento-ajá-en-el-entrenamiento-de-r1-zero","sections":[],"depth":3},{"title":"4. ¿Cómo funciona la formación de grupos de GRPO?","local":"4-cómo-funciona-la-formación-de-grupos-de-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_1355/es/_app/immutable/assets/0.tn0RQdqM.css" rel="modulepreload"> <!--[--><!--[0--><!--[--><!--[0--><!--[--><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> <!--[-1--><!--]--></div><!----> <!--[0--><h1 class="relative group"><a id="el-momento-aja-en-el-articulo-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="#el-momento-aja-en-el-articulo-de-deepseek-r1"><span><svg 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 momento «¡Ajá!» en el artículo de DeepSeek R1</span></h1><!--]--><!----> <p>Este capítulo es una lectura intensiva del artículo. Analizaremos el artículo en términos sencillos y luego desglosaremos los conceptos y conclusiones clave.</p> <p>DeepSeek R1 representa un avance significativo en el entrenamiento de modelos de lenguaje, particularmente en el desarrollo de capacidades de razonamiento a través del aprendizaje por refuerzo. El artículo presenta un nuevo algoritmo de aprendizaje por refuerzo llamado Optimización de Política Relativa de Grupo (GRPO, por sus siglas en inglés: <em>Group Relative Policy Optimization</em>).</p> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/4.png" alt="Descripción general de DeepSeek R1"/></p> <p>En el próximo capítulo, nos basaremos en este conocimiento e implementaremos GRPO en la práctica.</p> <p>El objetivo inicial del artículo era explorar si el aprendizaje por refuerzo puro podía desarrollar capacidades de razonamiento sin ajuste fino supervisado.</p> <blockquote class="tip"><p>Hasta ese momento, todos los LLMs populares requerían algún tipo de ajuste fino supervisado, que exploramos en el <a href="/course/chapter11/1">capítulo 11</a>.</p></blockquote> <!--[1--><h2 class="relative group"><a id="el-gran-avance-el-momento-ajá--aha-moment-" 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-avance-el-momento-ajá--aha-moment-"><span><svg 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 avance: El momento «¡Ajá!» ( Aha Moment )</span></h2><!--]--><!----> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/9.png" alt="El momento «¡Ajá!»"/></p> <p>Uno de los descubrimientos más notables en el entrenamiento de R1-Zero fue la aparición de un fenómeno conocido como el momento «¡Ajá!» (<em>Aha Moment</em>). Este fenómeno es similar a la forma en que los humanos experimentan revelaciones repentinas al resolver problemas. Así es como funciona:</p> <ol><li>Intento inicial: El modelo realiza un intento inicial para resolver un problema</li> <li>Reconocimiento: Reconoce posibles errores o inconsistencias</li> <li>Autocorrección: Ajusta su enfoque en función de este reconocimiento</li> <li>Explicación: Puede explicar por qué el nuevo enfoque es mejor</li></ol> <p>Este avance resuena en los aprendices y se siente como un momento “Eureka”. Demuestra aprendizaje en lugar de mera memorización, así que tomémonos un momento para imaginar cómo se siente tener un momento «¡Ajá!».</p> <p>Por ejemplo, imagina que estás intentando resolver un rompecabezas:</p> <ul><li>Primer intento: “Esta pieza debería ir aquí según el color”</li> <li>Reconocimiento: “Pero espera, la forma no encaja del todo”</li> <li>Corrección: “Ah, en realidad pertenece allá”</li> <li>Explicación: “Porque tanto el patrón de color como el de forma coinciden en esta posición”</li></ul> <p>Esta capacidad surgió naturalmente del entrenamiento con RL, sin haber sido programada explícitamente, demostrando aprendizaje en lugar de la mera memorización de un proceso a partir de los datos de entrenamiento.</p> <p>La forma más sencilla de comprender el momento «¡Ajá!» es verlo en acción. Veamos un ejemplo. En el chat a continuación, le pedimos al modelo que resuelva un problema y la interfaz muestra el proceso de pensamiento del modelo a medida que lo resuelve.</p> <iframe src="https://reasoning-course-deepseek-ai-deepseek-r1-distill-0f5fad4.hf.space/" frameborder="0" width="850" height="450"></iframe> <p>Si quieres probar R1 de DeepSeek, también puedes consultar <a href="https://huggingface.co/chat/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" rel="nofollow">Hugging Chat</a>.</p> <!--[1--><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 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>Entrenar a R1 fue un proceso de varias fases. Desglosemos las fases y las innovaciones clave en cada una de ellas.</p> <p>El proceso final da como resultado dos modelos:</p> <ul><li>DeepSeek-R1-Zero: Un modelo entrenado exclusivamente mediante aprendizaje por refuerzo.</li> <li>DeepSeek-R1: Un modelo que se basa en los cimientos de DeepSeek-R1-Zero y añade ajuste fino supervisado.</li></ul> <table><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>Fuerte razonamiento pero problemas de legibilidad</td><td>Mejor consistencia lingüística y legibilidad</td></tr></tbody></table> <p>Si bien DeepSeek-R1-Zero demuestra el potencial del aprendizaje por refuerzo puro para desarrollar capacidades de razonamiento, DeepSeek-R1 se basa en esta base con un enfoque más equilibrado que prioriza tanto el rendimiento del razonamiento como la usabilidad.</p> <p>El proceso de entrenamiento involucra cuatro fases:</p> <ol><li>Fase de inicio en frío (<em>Cold Start Phase</em>)</li> <li>Fase de RL de razonamiento (<em>Reasoning RL Phase</em>)</li> <li>Fase de muestreo por rechazo (<em>Rejection Sampling Phase</em>)</li> <li>Fase de RL diverso (<em>Diverse RL Phase</em>)</li></ol> <p>Desglosemos cada fase:</p> <!--[2--><h3 class="relative group"><a id="fase-de-inicio-en-frío-base-de-calidad" 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-inicio-en-frío-base-de-calidad"><span><svg 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 inicio en frío (Base de calidad)</span></h3><!--]--><!----> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/5.png" alt="Fase de inicio en frío"/></p> <p>Esta fase está diseñada para establecer una base sólida para la legibilidad y la calidad de respuesta del modelo. Utiliza un pequeño conjunto de datos de muestras de alta calidad de R1-Zero para ajustar el modelo V3-Base. Comenzando con el modelo DeepSeek-V3-Base, el equipo utilizó miles de muestras validadas y de alta calidad de R1-Zero para el ajuste fino supervisado. Este enfoque innovador utiliza un conjunto de datos pequeño pero de alta calidad para establecer una sólida línea de base de legibilidad y calidad de respuesta.</p> <!--[2--><h3 class="relative group"><a id="fase-de-rl-de-razonamiento-desarrollo-de-capacidades" 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-desarrollo-de-capacidades"><span><svg 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 (Desarrollo de capacidades)</span></h3><!--]--><!----> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/6.png" alt="Fase de RL de razonamiento"/></p> <p>La fase de RL de razonamiento se centra en desarrollar capacidades centrales de razonamiento en dominios que incluyen matemáticas, programación, ciencias y lógica. Esta fase emplea aprendizaje por refuerzo basado en reglas, con recompensas directamente vinculadas a la corrección de la solución.</p> <p>Crucialmente, todas las tareas en esta fase son «verificables», por lo que podemos comprobar si la respuesta del modelo es correcta o no. Por ejemplo, en el caso de las matemáticas, podemos comprobar si la respuesta del modelo es correcta utilizando un solucionador matemático.</p> <p>Lo que hace que esta fase sea particularmente innovadora es su enfoque de optimización directa que elimina la necesidad de un modelo de recompensa independiente, agilizando el proceso de entrenamiento.</p> <!--[2--><h3 class="relative group"><a id="fase-de-muestreo-por-rechazo-control-de-calidad" 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-control-de-calidad"><span><svg 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 (Control de calidad)</span></h3><!--]--><!----> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/7.png" alt="Fase de muestreo por rechazo"/></p> <p>Durante la fase de muestreo por rechazo, el modelo genera muestras que luego se filtran mediante un proceso de control de calidad. DeepSeek-V3 sirve como juez de calidad, evaluando las respuestas en un amplio espectro que se extiende más allá de las tareas de razonamiento puro. Los datos filtrados se utilizan luego para el ajuste fino supervisado. La innovación de esta fase radica en su capacidad para combinar múltiples señales de calidad para garantizar salidas de alto nivel.</p> <!--[2--><h3 class="relative group"><a id="fase-de-rl-diverso-alineación-amplia" 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-diverso-alineación-amplia"><span><svg 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 diverso (Alineación amplia)</span></h3><!--]--><!----> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/8.png" alt="Fase de RL diverso"/></p> <p>La fase final de RL diverso aborda múltiples tipos de tareas mediante un enfoque híbrido sofisticado. Para tareas deterministas, emplea recompensas basadas en reglas, mientras que las tareas subjetivas se evalúan mediante retroalimentación de LLMs. Esta fase tiene como objetivo lograr la alineación con las preferencias humanas a través de su enfoque de recompensa híbrido innovador, combinando la precisión de los sistemas basados en reglas con la flexibilidad de la evaluación de modelos de lenguaje.</p> <!--[1--><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 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>Ahora que tenemos una buena comprensión del proceso de entrenamiento, veamos el algoritmo que se utilizó para entrenar el modelo.</p> <p>Los autores describen GRPO como un gran avance en el ajuste fino de modelos:</p> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/10.png" alt="Proceso de GRPO"/></p> <p>La novedad de GRPO radica en su capacidad para “optimizar directamente para la rectificación de preferencias”. Esto significa una vía más directa y eficiente para alinear el modelo con las salidas deseadas, en contraste con los algoritmos tradicionales de aprendizaje por refuerzo como PPO. Desglosemos cómo funciona GRPO a través de sus tres componentes principales.</p> <!--[2--><h3 class="relative group"><a id="formación-de-grupos-creación-de-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-creación-de-múltiples-soluciones"><span><svg 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: Creación de múltiples soluciones</span></h3><!--]--><!----> <p>El primer paso en GRPO es notablemente intuitivo: es similar a cómo un estudiante podría resolver un problema difícil probando múltiples enfoques. Ante un prompt, el modelo no solo genera una respuesta; en su lugar, crea múltiples intentos para resolver el mismo problema (generalmente 4, 8 o 16 intentos diferentes).</p> <p>Imagina que le estás enseñando a un modelo a resolver problemas matemáticos. Para una pregunta sobre el conteo de pollos en una granja, el modelo podría generar varias soluciones diferentes:</p> <ul><li>Una solución podría desglosar el problema paso a paso: primero contando el total de pollos, luego restando los gallos y finalmente contabilizando las gallinas que no ponen huevos</li> <li>Otra podría utilizar un enfoque diferente pero igualmente válido</li> <li>Algunos intentos pueden contener errores o soluciones menos eficientes</li></ul> <p>Todos estos intentos se mantienen juntos como un grupo, de manera similar a tener las soluciones de varios estudiantes para comparar y aprender de ellas.</p> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/11.jpg" alt="Formación de grupos"/></p> <!--[2--><h3 class="relative group"><a id="aprendizaje-de-preferencias-comprender-qué-hace-que-una-solución-sea-buena" 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-comprender-qué-hace-que-una-solución-sea-buena"><span><svg 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: Comprender qué hace que una solución sea buena</span></h3><!--]--><!----> <p>Aquí es donde GRPO realmente destaca por su simplicidad. A diferencia de otros métodos para RLHF que siempre requieren un modelo de recompensa independiente para predecir qué tan buena puede ser una solución, GRPO puede utilizar cualquier función o modelo para evaluar la calidad de una solución. Por ejemplo, podríamos usar una función de longitud para recompensar respuestas más cortas o un solucionador matemático para recompensar soluciones matemáticas precisas.</p> <p>El proceso de evaluación analiza varios aspectos de cada solución:</p> <ul><li>¿Es correcta la respuesta final?</li> <li>¿Siguió la solución el formato adecuado (como usar las etiquetas XML correctas)?</li> <li>¿Coincide el razonamiento con la respuesta proporcionada?</li></ul> <p>Lo que hace que este enfoque sea particularmente ingenioso es cómo maneja la puntuación. En lugar de dar únicamente puntuaciones absolutas, GRPO normaliza las recompensas dentro de cada grupo. Utiliza una fórmula simple pero eficaz para la estimación de la ventaja relativa del 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 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=" "><!----><span class="hljs-variable">Ventaja</span> = (<span class="hljs-variable">recompensa</span> - <span class="hljs-function"><span class="hljs-title">media</span>(<span class="hljs-variable">recompensas_del_grupo</span>)) / <span class="hljs-title">desv_est</span>(<span class="hljs-variable">recompensas_del_grupo</span>)</span><!----></pre></div><!----> <p><img src="https://huggingface.co/reasoning-course/images/resolve/main/grpo/12.jpg" alt="Aprendizaje de preferencias"/></p> <p>Esta normalización es como calificar según una curva estadística, pero para IA. Ayuda al modelo a comprender qué soluciones dentro del grupo fueron mejores o peores en comparación con sus pares, en lugar de limitarse a observar puntuaciones absolutas.</p> <!--[2--><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 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>El paso final es donde GRPO le enseña al modelo a mejorar en función de lo que aprendió al evaluar el grupo de soluciones. Este proceso es tanto potente como estable, y utiliza dos principios principales:</p> <ol><li>Anima al modelo a producir más soluciones similares a las exitosas mientras se aleja de los enfoques menos efectivos</li> <li>Incluye un mecanismo de seguridad (denominado penalización por divergencia KL) que evita que el modelo cambie de manera demasiado drástica de una sola vez</li></ol> <p>Este enfoque resulta más estable que los métodos tradicionales porque:</p> <ul><li>Analiza múltiples soluciones juntas en lugar de comparar solo dos a la vez</li> <li>La normalización basada en grupos ayuda a prevenir problemas con el escalado de recompensas</li> <li>La penalización KL actúa como una red de seguridad, asegurando que el modelo no olvide lo que ya sabe mientras aprende cosas nuevas</li></ul> <blockquote class="tip"><p>Las innovaciones clave de GRPO son:</p> <ul><li>Aprender directamente de cualquier función o modelo, eliminando la dependencia de un modelo de recompensa independiente.</li> <li>Aprendizaje basado en grupos, que es más estable y eficiente que los métodos tradicionales como las comparaciones por pares.</li></ul></blockquote> <p>Este desglose es complejo, pero la conclusión clave es que GRPO es una forma más eficiente y estable de entrenar un modelo para que razone.</p> <!--[2--><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 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>Ahora que comprendemos los componentes clave de GRPO, veamos el algoritmo en pseudocódigo. Esta es una versión simplificada del algoritmo, pero captura las ideas clave:</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 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=" "><!---->Entrada: | |
| - initial_policy: Modelo inicial a entrenar | |
| - reward_function: Funció<span class="hljs-keyword">n</span> <span class="hljs-keyword">que</span> evalúa las salidas | |
| - training_prompts: Conjunto <span class="hljs-keyword">de</span> ejemplos <span class="hljs-keyword">de</span> entrenamiento | |
| - group_size: <span class="hljs-keyword">N</span>úmero <span class="hljs-keyword">de</span> salidas por prompt (típicamente 4-16) | |
| Algoritmo GRPO: | |
| 1. Para cada iteració<span class="hljs-keyword">n</span> <span class="hljs-keyword">de</span> entrenamiento: | |
| a. Establecer reference_policy = initial_policy (instantánea <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> política actual) | |
| b. Para cada prompt <span class="hljs-keyword">en</span> el lote: | |
| i. Generar group_size salidas diferentes utilizando initial_policy | |
| ii. Calcular las recompensas para cada salida utilizando reward_function | |
| iii. Normalizar las recompensas dentro del grupo: | |
| normalized_advantage = (reward - <span class="hljs-keyword">mean</span>(rewards)) / std(rewards) | |
| iv. Actualizar <span class="hljs-keyword">la</span> política maximizando <span class="hljs-keyword">la</span> razó<span class="hljs-keyword">n</span> recortada (clipped <span class="hljs-keyword">ratio</span>): | |
| <span class="hljs-built_in">min</span>(prob_ratio * normalized_advantage, | |
| <span class="hljs-built_in">clip</span>(prob_ratio, 1-epsilon, 1+epsilon) * normalized_advantage) | |
| - kl_weight * KL(initial_policy || reference_policy) | |
| donde prob_ratio es current_prob / reference_prob | |
| Salida: Modelo <span class="hljs-keyword">de</span> política optimizado<!----></pre></div><!----> <p>Este algoritmo muestra cómo GRPO combina la estimación de ventajas basada en grupos con la optimización de políticas manteniendo la estabilidad mediante recorte y restricciones de divergencia KL.</p> <!--[1--><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 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>Ahora que hemos explorado el algoritmo, veamos los resultados. DeepSeek R1 logra un rendimiento de vanguardia en múltiples dominios:</p> <table><thead><tr><th>Dominio</th><th>Resultados clave</th></tr></thead><tbody><tr><td>Matemáticas</td><td>• 79.8% en AIME 2024<br/>• 97.3% en MATH-500</td></tr><tr><td>Programación</td><td>• Clasificación Codeforces: 2029<br/>• LiveCodeBench: 65.9%</td></tr><tr><td>Conocimiento general</td><td>• MMLU: 90.8%<br/>• GPQA Diamond: 71.5%</td></tr><tr><td>Tareas del lenguaje</td><td>• AlpacaEval 2.0: 87.6% de tasa de victoria<br/>• FRAMES: 82.5%</td></tr></tbody></table> <p>El impacto práctico del modelo se extiende más allá de los puntos de referencia gracias a los precios rentables de su API ($0,14 por millón de tokens de entrada) y la destilación exitosa del modelo en varios tamaños (desde 1.5B hasta 70B de parámetros). En particular, incluso el modelo de 7B alcanza el 55.5% en AIME 2024, mientras que la versión destilada de 70B se acerca al rendimiento de o1-mini en MATH-500 (94.5%), demostrando una preservación efectiva de la capacidad a diferentes escalas.</p> <!--[1--><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 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>Si bien GRPO representa un avance significativo en el aprendizaje por refuerzo para modelos de lenguaje, es importante comprender sus limitaciones y desafíos:</p> <ul><li><strong>Costo de generación</strong>: Generar múltiples terminaciones (4-16) para cada prompt aumenta los requisitos computacionales en comparación con los métodos que generan solo una o dos terminaciones.</li> <li><strong>Restricciones del tamaño de lote</strong>: La necesidad de procesar grupos de terminaciones juntos puede limitar los tamaños de lote efectivos, agregando complejidad al proceso de entrenamiento y potencialmente ralentizándolo.</li> <li><strong>Diseño de la función de recompensa</strong>: La calidad del entrenamiento depende en gran medida de funciones de recompensa bien diseñadas. Recompensas mal diseñadas pueden provocar comportamientos no deseados u optimización para objetivos incorrectos.</li> <li><strong>Compromisos del tamaño de grupo</strong>: Elegir el tamaño de grupo óptimo implica equilibrar la diversidad de soluciones frente al costo computacional. Muy pocas muestras pueden no proporcionar suficiente diversidad, mientras que demasiadas aumentan el tiempo de entrenamiento y los requisitos de recursos.</li> <li><strong>Ajuste de la divergencia KL</strong>: Encontrar el equilibrio adecuado para la penalización por divergencia KL requiere un ajuste cuidadoso: si es demasiado alta, el modelo no aprenderá eficazmente; si es demasiado baja, puede divergir demasiado de sus capacidades iniciales.</li></ul> <!--[1--><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 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>El artículo de DeepSeek R1 representa un hito importante en el desarrollo de modelos de lenguaje. El algoritmo Group Relative Policy Optimization (GRPO) ha demostrado que el aprendizaje por refuerzo puro puede efectivamente desarrollar sólidas capacidades de razonamiento, desafiando suposiciones previas sobre la necesidad del ajuste fino supervisado.</p> <p>Quizás lo más importante es que DeepSeek R1 ha demostrado que es posible equilibrar el alto rendimiento con consideraciones prácticas como la rentabilidad y la accesibilidad. La exitosa destilación de las capacidades del modelo en diferentes tamaños, de 1.5B a 70B de parámetros, muestra un camino a seguir para que las capacidades avanzadas de IA estén más ampliamente disponibles.</p> <hr/> <p>En la siguiente sección, exploraremos implementaciones prácticas de estos conceptos, centrándonos en cómo aprovechar GRPO en tus propios proyectos de desarrollo de modelos de lenguaje.</p> <!--[1--><h2 class="relative group"><a id="cuestionario" 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="#cuestionario"><span><svg 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>Cuestionario</span></h2><!--]--><!----> <!--[2--><h3 class="relative group"><a id="1-cuál-es-la-principal-innovación-del-artículo-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-artículo-de-deepseek-r1"><span><svg 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 artículo 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"/> <!---->El algoritmo GRPO que permite aprender a partir de preferencias con y sin un modelo de recompensa<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"/> <!---->Utilizar más GPUs para el entrenamiento que cualquier modelo anterior<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"/> <!---->Crear un modelo de lenguaje más grande que los existentes<!----></label> <!--[-1--><!--]--><!--]--> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled="">Submit</button> <!--[-1--><!--]--></div></form></div><!----> <!--[2--><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 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"/> <!---->Inicio en frío (Cold Start), RL de razonamiento, Muestreo por rechazo y RL diverso<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"/> <!---->Preentrenamiento, Ajuste fino, Pruebas y Despliegue<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"/> <!---->Recopilación de datos, Entrenamiento del modelo, Evaluación y Optimización<!----></label> <!--[-1--><!--]--><!--]--> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled="">Submit</button> <!--[-1--><!--]--></div></form></div><!----> <!--[2--><h3 class="relative group"><a id="3-qué-es-el-fenómeno-del-momento-ajá-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-ajá-en-el-entrenamiento-de-r1-zero"><span><svg 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 ¡Ajá!» 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"/> <!---->Un proceso en el que el modelo reconoce errores, se autocorrige y explica sus correcciones<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"/> <!---->El punto en el que el modelo alcanza el rendimiento a nivel humano<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"/> <!---->Cuando el modelo completa su proceso de entrenamiento<!----></label> <!--[-1--><!--]--><!--]--> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled="">Submit</button> <!--[-1--><!--]--></div></form></div><!----> <!--[2--><h3 class="relative group"><a id="4-cómo-funciona-la-formación-de-grupos-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="#4-cómo-funciona-la-formación-de-grupos-de-grpo"><span><svg 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 de 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"/> <!---->Genera múltiples soluciones (4-16) para el mismo problema y las evalúa juntas<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"/> <!---->Combina múltiples modelos en un ensamble<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"/> <!---->Divide los datos de entrenamiento en diferentes grupos<!----></label> <!--[-1--><!--]--><!--]--> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled="">Submit</button> <!--[-1--><!--]--></div></form></div><!----> <!--[2--><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 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"/> <!---->R1-Zero utiliza RL puro mientras que R1 combina RL con ajuste fino supervisado<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="1"/> <!---->R1-Zero es más pequeño que R1<!----></label> <!--[-1--><!--]--><label class="block"><input autocomplete="off" class="form-input -mt-1.5 mr-2" name="choice" type="checkbox" value="2"/> <!---->R1-Zero fue entrenado con menos datos<!----></label> <!--[-1--><!--]--><!--]--> <div class="flex flex-row items-center mt-3"><button class="btn px-4 mr-4" type="submit" disabled="">Submit</button> <!--[-1--><!--]--></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><span class="underline">Update</span> on GitHub</span></a><!----> <p></p><!--]--><!----><!--]--><!--]--><!--]--> <!--[-1--><!--]--><!--]--> | |
| <script> | |
| { | |
| __sveltekit_mq53rw = { | |
| base: "/docs/course/pr_1355/es", | |
| assets: "/docs/course/pr_1355/es" | |
| }; | |
| const element = document.currentScript.parentElement; | |
| Promise.all([ | |
| import("/docs/course/pr_1355/es/_app/immutable/entry/start.T3MdRQ4G.js"), | |
| import("/docs/course/pr_1355/es/_app/immutable/entry/app.SbMH_Gmo.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 15], | |
| data: [null,null], | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 63.2 kB
- Xet hash:
- b95dc9cb1aa5204df198a79df477d17b54e5a1ef614dd4232ade21f42f533fd8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.