<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Descripción general on CoMLRL</title><link>https://openmlrl.github.io/CoMLRL/es/</link><description>Recent content in Descripción general on CoMLRL</description><generator>Hugo</generator><language>es-ES</language><copyright>© {year} OpenMLRL. All rights reserved.</copyright><atom:link href="https://openmlrl.github.io/CoMLRL/es/index.xml" rel="self" type="application/rss+xml"/><item><title>Entrenamiento basado en la relación de longitud</title><link>https://openmlrl.github.io/CoMLRL/es/docs/examples/quick-start/length-ratio-training/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/examples/quick-start/length-ratio-training/</guid><description>&lt;p&gt;Este tutorial demuestra una tarea de entrenamiento simple con dos agentes, utilizando una recompensa basada en la relación de longitud. Ambos agentes reciben la misma instrucción y generan de forma independiente; el segundo agente no ve la respuesta del primer agente. La recompensa incentiva que la segunda salida contenga 2–3× más caracteres que la primera. No evalúa la calidad de la historia ni la colaboración semántica.&lt;/p&gt;
&lt;p&gt;Los usuarios pueden ejecutar el ejemplo desde una copia de código instalada:&lt;/p&gt;</description></item><item><title>Escritura</title><link>https://openmlrl.github.io/CoMLRL/es/docs/env/writing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/env/writing/</guid><description>&lt;!-- External link entry --&gt;</description></item><item><title>Instalación</title><link>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/installation/</guid><description>&lt;p&gt;CoMLRL se puede instalar desde PyPI, conda-forge, o desde la fuente y soporta Python 3.10 o posterior. Los usuarios también deben instalar una versión de PyTorch compatible con su dispositivo.&lt;/p&gt;
&lt;h2 id="install-from-pypi"&gt;Instalación desde PyPI&lt;a class="anchor" href="#install-from-pypi"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install comlrl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Install PyTorch compatible with your device.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="install-from-conda-forge"&gt;Instalación desde conda-forge&lt;a class="anchor" href="#install-from-conda-forge"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;conda install -c conda-forge comlrl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Install PyTorch compatible with your device.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="install-from-source"&gt;Instalación desde la fuente&lt;a class="anchor" href="#install-from-source"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Los usuarios también pueden clonar el repositorio e instalar CoMLRL en modo editable para acceder a las últimas funciones o desarrollarlo localmente:&lt;/p&gt;</description></item><item><title>Multi-agente REINFORCE</title><link>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-agent-reinforce/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-agent-reinforce/</guid><description>&lt;p&gt;REINFORCE es una clase de métodos de gradiente de política que optimiza la política directamente utilizando recompensas muestreadas.
Estos métodos se utilizan ampliamente para el ajuste fino de LLM debido a su simplicidad y eficiencia. Ejemplos incluyen &lt;a href="https://arxiv.org/pdf/2402.03300"&gt;GRPO&lt;/a&gt;, &lt;a href="https://arxiv.org/abs/2503.20783"&gt;Dr. GRPO&lt;/a&gt;, &lt;a href="https://openreview.net/forum?id=r1lgTGL5DE"&gt;RLOO&lt;/a&gt;, &lt;a href="https://arxiv.org/abs/2310.10505"&gt;ReMax&lt;/a&gt;, &lt;a href="https://arxiv.org/abs/2506.05183"&gt;TreeRPO&lt;/a&gt;, y &lt;a href="https://arxiv.org/abs/2501.03262"&gt;REINFORCE++&lt;/a&gt;.
REINFORCE se puede extender a entornos multi-agente, donde múltiples agentes LLM responden en cada turno y sus respuestas conjuntas reciben una recompensa compartida.&lt;/p&gt;
&lt;p&gt;Todos los MAREINFORCE trainers comparten un único bucle de entrenamiento. En cada nodo rollout, cada agente muestrea respuestas &lt;span class="book-katex"&gt;\( K \)&lt;/span&gt;, el trainer puntúa las respuestas conjuntas alineadas con índices utilizando una recompensa compartida, y cada agente pondera sus propias probabilidades logarítmicas por las ventajas compartidas resultantes antes de un paso optimizador en búfer.&lt;/p&gt;</description></item><item><title>Reanudar Entrenamiento</title><link>https://openmlrl.github.io/CoMLRL/es/docs/examples/advanced/resume-training/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/examples/advanced/resume-training/</guid><description>&lt;p&gt;Este ejemplo entrena dos agentes pequeños para dos epochs, luego continúa la misma ejecución para dos epochs adicionales a partir de un punto de control. Ambas partes se registran en una única ejecución de W&amp;amp;B.&lt;/p&gt;
&lt;h2 id="setup"&gt;Configuración&lt;a class="anchor" href="#setup"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La tarea pide al segundo agente que escriba una respuesta de 2 a 3 veces más larga que la respuesta del primer agente.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datasets&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;comlrl.trainers.reinforce&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MAGRPOConfig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;MAGRPOTrainer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;comlrl.utils&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;read_checkpoint_metadata&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Qwen/Qwen2.5-0.5B&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;train_dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_dict&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;prompt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Describe a city in the clouds:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Invent a new holiday and explain it:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Write a bedtime story for a dragon:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Design a playground on Mars:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;length_ratio_reward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;completions1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;completions2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;rewards&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;completions1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;completions2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;rewards&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;rewards&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La misma función construye trainer para ambas partes de la ejecución, por lo que los dos trainers coinciden.&lt;/p&gt;</description></item><item><title>Soporte</title><link>https://openmlrl.github.io/CoMLRL/es/docs/dev/support/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/dev/support/</guid><description>&lt;h1 id="support"&gt;Soporte&lt;a class="anchor" href="#support"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Nos complace ayudar con los problemas que se encuentren al utilizar CoMLRL.&lt;/p&gt;
&lt;h2 id="report-issues"&gt;Informar problemas&lt;a class="anchor" href="#report-issues"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Los siguientes pasos pueden ayudar a los usuarios a resolver o informar un problema:&lt;/p&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Los usuarios pueden consultar primero la documentación, incluyendo la función de búsqueda (Ctrl + K).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Una búsqueda de problemas existentes &lt;a href="https://github.com/OpenMLRL/CoMLRL/issues"&gt;GitHub&lt;/a&gt; puede revelar informes del mismo problema.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un ejemplo mínimo reproducible ayuda a diagnosticar el problema. Algunas líneas de código que demuestren el problema pueden conducir a una respuesta más rápida.&lt;/p&gt;</description></item><item><title>Aprendizaje multiagente Actor-Critic</title><link>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-agent-actor-critic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-agent-actor-critic/</guid><description>&lt;p&gt;Los métodos Actor-Critic (AC) son ampliamente utilizados métodos de gradiente de política que utilizan critics para apoyar el entrenamiento.
Los métodos AC pueden lograr una varianza más baja y una mejor eficiencia de muestreo que REINFORCE, pero esto requiere un diseño y ajuste cuidadosos de critic para garantizar un entrenamiento estable.
En el Aprendizaje por Refuerzo Multiagente (MARL), Actor-Critic incluyen Multiagente Actor-Critic (MAAC) y Independiente Actor-Critic (IAC).&lt;/p&gt;
&lt;p&gt;Ambos lanzan los agentes conjuntamente y puntúan su respuesta conjunta con la función de recompensa, pero utilizan critics de forma diferente. MAAC entrena un critic con la historia conjunta, de modo que cada agente comparte su TD error. IAC entrena un critic por agente con la historia de ese agente, de modo que cada agente obtiene su propio TD error.&lt;/p&gt;</description></item><item><title>Contribuyendo</title><link>https://openmlrl.github.io/CoMLRL/es/docs/dev/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/dev/contributing/</guid><description>&lt;h1 id="contributing"&gt;Contribuyendo&lt;a class="anchor" href="#contributing"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Las contribuciones a CoMLRL son bienvenidas. Esta guía cubre los cambios de código y el mantenimiento del código base.&lt;/p&gt;
&lt;h2 id="development-guidelines"&gt;Directrices de desarrollo&lt;a class="anchor" href="#development-guidelines"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;Los colaboradores pueden bifurcar el repositorio principal.&lt;/li&gt;
&lt;li&gt;Los siguientes comandos clonan la bifurcación y la sincronizan con el repositorio principal:
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git clone https://github.com/&amp;lt;your-username&amp;gt;/CoMLRL.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; CoMLRL
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git remote add upstream https://github.com/OpenMLRL/CoMLRL.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git fetch upstream
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git checkout -b feature/&amp;lt;short-description&amp;gt; upstream/main
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git fetch upstream &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git rebase upstream/main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Los colaboradores pueden implementar nuevas funciones o corregir errores y actualizar la documentación según sea necesario.&lt;/li&gt;
&lt;li&gt;Los cambios se pueden enviar al repositorio principal como una solicitud de extracción para su revisión.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Entidades de entrenamiento</title><link>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/training-entities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/training-entities/</guid><description>&lt;p&gt;CoMLRL soporta el entrenamiento de LLM y facilita su entrenamiento con modelos de recompensa basados en LLM o critics. Los agentes y critics pueden ser modelos homogéneos o heterogéneos provenientes de Hugging Face o directorios locales.
Los usuarios pueden especificar &lt;a href="https://huggingface.co/models"&gt;identificadores de modelo Hugging Face&lt;/a&gt; a través de &lt;code&gt;agent_model&lt;/code&gt;/&lt;code&gt;critic_model&lt;/code&gt; para configuraciones homogéneas, o proporcionar listas &lt;code&gt;agents&lt;/code&gt;/&lt;code&gt;critics&lt;/code&gt; para configuraciones heterogéneas. Las entidades entrenadas pueden guardarse y cargarse en un nuevo trainer para un entrenamiento adicional.&lt;/p&gt;</description></item><item><title>Programación</title><link>https://openmlrl.github.io/CoMLRL/es/docs/env/coding/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/env/coding/</guid><description>&lt;!-- External link entry --&gt;</description></item><item><title>Retroalimentación en Múltiples Turnos</title><link>https://openmlrl.github.io/CoMLRL/es/docs/examples/advanced/multi-turn-feedback/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/examples/advanced/multi-turn-feedback/</guid><description>&lt;p&gt;En este ejemplo, dos agentes responden a una tarea, reciben retroalimentación sobre sus respuestas y luego responden de nuevo.&lt;/p&gt;
&lt;h2 id="setup"&gt;Configuración&lt;a class="anchor" href="#setup"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La tarea pide al segundo agente que escriba una respuesta de 2 a 3 veces más larga que la respuesta del primer agente.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datasets&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;comlrl.trainers.reinforce&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MAGRPOConfig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;MAGRPOTrainer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Qwen/Qwen2.5-0.5B&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;train_dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_dict&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;prompt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Describe a city in the clouds:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Invent a new holiday and explain it:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Write a bedtime story for a dragon:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Design a playground on Mars:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;length_ratio_reward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;completions1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;completions2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;rewards&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;completions1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;completions2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;rewards&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;rewards&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="feedback-between-turns"&gt;Retroalimentación entre Turnos&lt;a class="anchor" href="#feedback-between-turns"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Después del primer turno, esta función escribe una nueva instrucción para cada agente. La instrucción informa sobre la longitud de las respuestas.&lt;/p&gt;</description></item><item><title>Completar código</title><link>https://openmlrl.github.io/CoMLRL/es/docs/env/code-completion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/env/code-completion/</guid><description>&lt;!-- External link entry --&gt;</description></item><item><title>Inicialización del entrenamiento</title><link>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/training-initialization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/training-initialization/</guid><description>&lt;p&gt;El entrenamiento se inicializa a partir de un conjunto de tareas, un conjunto de tareas que comparten un formato de entrada y una recompensa. Los formatters convierten cada tarea en indicaciones para el agente, y una función de recompensa evalúa las respuestas conjuntas de los agentes.&lt;/p&gt;
&lt;h2 id="task-sets"&gt;Conjuntos de tareas&lt;a class="anchor" href="#task-sets"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un conjunto de tareas es un Hugging Face &lt;code&gt;Dataset&lt;/code&gt; o &lt;code&gt;IterableDataset&lt;/code&gt; cuyos elementos de fila son elementos de tarea, cada uno un diccionario. El formatteur predeterminado lee el campo &lt;code&gt;prompt&lt;/code&gt;; campos adicionales pueden contener objetivos, etiquetas, casos de prueba u otra información requerida por la función de recompensa. Trainers pasa el elemento de tarea original a la función de recompensa a través de &lt;code&gt;batch_items&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Multi-LLM PbRL</title><link>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-llm-pbrl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-llm-pbrl/</guid><description>&lt;p&gt;Multi-agente PbRL entrena agentes colaborativos LLM a partir de preferencias entre sus respuestas conjuntas. CoMLRL construye los datos de preferencia a partir de elementos de la tarea y aprende con uno de dos algoritmos: MARLHF ajusta un modelo de recompensa conjunto y luego entrena las políticas con RL, mientras que MADPO optimiza las políticas directamente a partir de las preferencias. &lt;code&gt;MARLHFTrainer&lt;/code&gt;, &lt;code&gt;MADPOTrainer&lt;/code&gt;, y sus variantes iterativas &lt;code&gt;MARLHFIterTrainer&lt;/code&gt; y &lt;code&gt;MADPOIterTrainer&lt;/code&gt; están disponibles de &lt;code&gt;comlrl.trainers.preference&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Registro de cambios</title><link>https://openmlrl.github.io/CoMLRL/es/docs/dev/changelog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/dev/changelog/</guid><description>&lt;h1 id="changelog"&gt;Registro de cambios&lt;a class="anchor" href="#changelog"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="version-143"&gt;Versión 1.4.3&lt;a class="anchor" href="#version-143"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Soporte para algoritmos MAPL, incluyendo MARLHF y MADPO (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/72"&gt;#72&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Soporte para el entrenamiento de sistemas multi-agente centralizados (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/72"&gt;#72&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Refinar la documentación.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-142"&gt;Versión 1.4.2&lt;a class="anchor" href="#version-142"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Soporte para más modelos de comparador (commit &lt;a href="https://github.com/OpenMLRL/CoMLRL/commit/e1b3d8065eeddaad9d857d10e0d21764cb1f3270"&gt;e1b3d80&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Solucionar el problema de generación homogénea (commit &lt;a href="https://github.com/OpenMLRL/CoMLRL/commit/11d89a933a40d0d31e60c09491eb699e007b3cf9"&gt;11d89a9&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-141"&gt;Versión 1.4.1&lt;a class="anchor" href="#version-141"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Soporte para utilizar el comparador como coordinador centralizado (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/69"&gt;#69&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Permitir el despliegue de agentes LLM, el modelo de recompensa y el comparador en diferentes dispositivos (commit &lt;a href="https://github.com/OpenMLRL/CoMLRL/commit/7cbb7928e4569359021f094686d3a01c197e2223"&gt;7cbb792&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Permit la copia de modelos actuales como comparadores en nuevos dispositivos (commit &lt;a href="https://github.com/OpenMLRL/CoMLRL/commit/d8d493a044d6a0b7b5d6aaaea2bf8bca2bfca81f"&gt;d8d493a&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Optimizar el uso de memoria de GPU liberando rápidamente los modelos no utilizados (commit &lt;a href="https://github.com/OpenMLRL/CoMLRL/commit/d0c6376cf843aaa9eb14e4c9f94cdf43a7a85f30"&gt;d0c6376&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-140"&gt;Versión 1.4.0&lt;a class="anchor" href="#version-140"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Añadir métodos online de PbRL (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/68"&gt;#68&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Añadir registrador de deriva de conjuntos de datos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-139"&gt;Versión 1.3.9&lt;a class="anchor" href="#version-139"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Añadir métodos offline de PbRL como MADPO y MARLHF (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/67"&gt;#67&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-138"&gt;Versión 1.3.8&lt;a class="anchor" href="#version-138"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Permitir el uso de un modelo de referencia para todos los algoritmos (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/65"&gt;#65&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Unificar el registrador entre diferentes trainers (PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/66"&gt;#66&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-137"&gt;Versión 1.3.7&lt;a class="anchor" href="#version-137"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Eliminar los hiperparámetros de muestreo redundantes en los algoritmos.&lt;/li&gt;
&lt;li&gt;Permit el entrenamiento con múltiples GPU utilizando MP (ver resultados en PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/62"&gt;#62&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-136"&gt;Versión 1.3.6&lt;a class="anchor" href="#version-136"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Solucionar un fallo crítico al cargar modelos heterogéneos y refactorizar la lógica de carga del modelo (ver resultados en PR &lt;a href="https://github.com/OpenMLRL/CoMLRL/pull/60"&gt;#60&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Pulir la documentación.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-135"&gt;Versión 1.3.5&lt;a class="anchor" href="#version-135"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Añadir pruebas unitarias para restricciones de hiperparámetros.&lt;/li&gt;
&lt;li&gt;Limpiar interfaces heredadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-134"&gt;Versión 1.3.4&lt;a class="anchor" href="#version-134"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Solucionar el fallo al cargar modelos heterogéneos y refactorizar la lógica de carga.&lt;/li&gt;
&lt;li&gt;Habilitar MBGD en MAGRPO para alinearse con MAAC y IAC.&lt;/li&gt;
&lt;li&gt;Eliminar hiperparámetros redundantes y heredados (p. ej., parámetros kwargs del modelo, hiperparámetros de parcheo).&lt;/li&gt;
&lt;li&gt;Limpiar código heredado de múltiples dispositivos, como &lt;code&gt;drop_last&lt;/code&gt; y &lt;code&gt;num_workers&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Añadir pruebas unitarias para la carga del modelo y separarlas de CI como un distintivo.&lt;/li&gt;
&lt;li&gt;Limpiar funciones cortas.&lt;/li&gt;
&lt;li&gt;Reorganizar la documentación y alinear los parámetros.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-133"&gt;Versión 1.3.3&lt;a class="anchor" href="#version-133"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Compactar la derivación de MAREINFORCETrainer y moverla a la nueva carpeta.&lt;/li&gt;
&lt;li&gt;Unificar la interfaz para diferentes trainers.&lt;/li&gt;
&lt;li&gt;Eliminar parches y envoltorios redundantes.&lt;/li&gt;
&lt;li&gt;Reorganizar las variables en los archivos de configuración YAML.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-132"&gt;Versión 1.3.2&lt;a class="anchor" href="#version-132"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Solucionar el problema de registro de wandb en MAGRPOTrainer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-131"&gt;Versión 1.3.1&lt;a class="anchor" href="#version-131"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Permitir el entrenamiento por lotes en MAGRPOTrainer, IACTrainer y MAACTrainer.&lt;/li&gt;
&lt;li&gt;Permit el entrenamiento en múltiples turnos en IACTrainer y MAACTrainer.&lt;/li&gt;
&lt;li&gt;Cambiar el eje x de &lt;code&gt;data_step&lt;/code&gt; a &lt;code&gt;env_step&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-130"&gt;Versión 1.3.0&lt;a class="anchor" href="#version-130"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Utilizar TD como el critic objetivo de actualización en IACTrainer y MAACTrainer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-129"&gt;Versión 1.2.9&lt;a class="anchor" href="#version-129"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Añadir MAACTrainer (centralizado critic); tanto IACTrainer como MAACTrainer ahora admiten el entrenamiento de un solo turno.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-128"&gt;Versión 1.2.8&lt;a class="anchor" href="#version-128"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;El critic en IACTrainer ahora estima V en lugar de Q.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-127"&gt;Versión 1.2.7&lt;a class="anchor" href="#version-127"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Cambiar IPPOTrainer a IACTrainer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="version-126"&gt;Versión 1.2.6&lt;a class="anchor" href="#version-126"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Incluir MAGRPO, MAREINFORCE, MARLOO, MAREMAX y IPPO trainers para el aprendizaje por refuerzo multiagente con LLMs.&lt;/li&gt;
&lt;li&gt;Soporte para el entrenamiento en múltiples turnos con mecanismos de retroalimentación externa personalizados.&lt;/li&gt;
&lt;li&gt;Entornos de colaboración LLM para diversas tareas.&lt;/li&gt;
&lt;li&gt;Documentación y ejemplos completos para comenzar.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Interacción en múltiples turnos</title><link>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-turn-interaction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/marl/multi-turn-interaction/</guid><description>&lt;p&gt;Muchos problemas complejos requieren más de un turno para resolver. Los agentes LLM interactúan con el entorno para obtener comentarios útiles de otros modelos o herramientas en el sistema.&lt;/p&gt;
&lt;h2 id="multi-turn-magrpo"&gt;Respuesta conjunta MAGRPO&lt;a class="anchor" href="#multi-turn-magrpo"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La respuesta conjunta MAGRPO construye un árbol rollout cuyas ramas representan diferentes respuestas conjuntas (&lt;a href="https://arxiv.org/abs/2506.05183"&gt;TreeRPO&lt;/a&gt;).&lt;/p&gt;
&lt;figure class="docs-rollout" data-rollout data-diagram="joint-tree" data-direction="down" aria-labelledby="rollout-joint-tree-0-title"&gt;
 &lt;figcaption class="docs-rollout-caption"&gt;
 &lt;span class="docs-rollout-title" id="rollout-joint-tree-0-title"&gt;Árbol conjunto rollout&lt;/span&gt;
 &lt;span class="docs-rollout-description" id="rollout-joint-tree-0-description"&gt;Observaciones y acciones conjuntas se ramifican en rollouts independientes.&lt;/span&gt;
 &lt;/figcaption&gt;
 &lt;div class="docs-rollout-stage"&gt;
&lt;svg role="img" aria-labelledby="rollout-joint-tree-0-title rollout-joint-tree-0-description" focusable="false" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="274.186pt" height="118.439pt" viewBox="0 0 274.186 118.439"&gt;
&lt;defs&gt;
&lt;g&gt;
&lt;g id="rollout-joint-tree-0-glyph-0-0"&gt;
&lt;path d="M 5.40625 -2.171875 C 5.40625 -3.515625 4.484375 -4.515625 2.859375 -4.515625 C 1.21875 -4.515625 0.3125 -3.5 0.3125 -2.171875 C 0.3125 -0.9375 1.203125 0.0625 2.859375 0.0625 C 4.53125 0.0625 5.40625 -0.953125 5.40625 -2.171875 Z M 2.859375 -0.34375 C 1.59375 -0.34375 1.59375 -1.421875 1.59375 -2.28125 C 1.59375 -2.734375 1.59375 -3.234375 1.765625 -3.578125 C 1.953125 -3.953125 2.375 -4.15625 2.859375 -4.15625 C 3.28125 -4.15625 3.703125 -4 3.921875 -3.65625 C 4.125 -3.3125 4.125 -2.765625 4.125 -2.28125 C 4.125 -1.421875 4.125 -0.34375 2.859375 -0.34375 Z M 2.859375 -0.34375 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-0-1"&gt;
&lt;path d="M 3.734375 -0.765625 C 3.734375 -0.453125 3.734375 0 4.765625 0 L 5.25 0 C 5.4375 0 5.5625 0 5.5625 -0.234375 C 5.5625 -0.46875 5.4375 -0.46875 5.296875 -0.46875 C 4.6875 -0.484375 4.6875 -0.609375 4.6875 -0.84375 L 4.6875 -2.984375 C 4.6875 -3.875 3.984375 -4.515625 2.5 -4.515625 C 1.9375 -4.515625 0.71875 -4.46875 0.71875 -3.59375 C 0.71875 -3.15625 1.0625 -2.96875 1.328125 -2.96875 C 1.640625 -2.96875 1.96875 -3.1875 1.96875 -3.59375 C 1.96875 -3.890625 1.78125 -4.0625 1.75 -4.09375 C 2.03125 -4.140625 2.34375 -4.15625 2.46875 -4.15625 C 3.203125 -4.15625 3.5625 -3.734375 3.5625 -2.984375 L 3.5625 -2.640625 C 2.84375 -2.609375 0.3125 -2.515625 0.3125 -1.078125 C 0.3125 -0.125 1.5625 0.0625 2.25 0.0625 C 3.046875 0.0625 3.515625 -0.34375 3.734375 -0.765625 Z M 3.5625 -2.328125 L 3.5625 -1.390625 C 3.5625 -0.421875 2.640625 -0.296875 2.390625 -0.296875 C 1.890625 -0.296875 1.484375 -0.640625 1.484375 -1.09375 C 1.484375 -2.15625 3.0625 -2.296875 3.5625 -2.328125 Z M 3.5625 -2.328125 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-1-0"&gt;
&lt;path d="M 3.59375 -2.21875 C 3.59375 -2.984375 3.5 -3.546875 3.1875 -4.03125 C 2.96875 -4.34375 2.53125 -4.625 1.984375 -4.625 C 0.359375 -4.625 0.359375 -2.71875 0.359375 -2.21875 C 0.359375 -1.71875 0.359375 0.140625 1.984375 0.140625 C 3.59375 0.140625 3.59375 -1.71875 3.59375 -2.21875 Z M 1.984375 -0.0625 C 1.65625 -0.0625 1.234375 -0.25 1.09375 -0.8125 C 1 -1.21875 1 -1.796875 1 -2.3125 C 1 -2.828125 1 -3.359375 1.09375 -3.734375 C 1.25 -4.28125 1.6875 -4.4375 1.984375 -4.4375 C 2.359375 -4.4375 2.71875 -4.203125 2.84375 -3.796875 C 2.953125 -3.421875 2.96875 -2.921875 2.96875 -2.3125 C 2.96875 -1.796875 2.96875 -1.28125 2.875 -0.84375 C 2.734375 -0.203125 2.265625 -0.0625 1.984375 -0.0625 Z M 1.984375 -0.0625 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-1-1"&gt;
&lt;path d="M 2.46875 -5.21875 C 1.15625 -4.296875 0.796875 -2.8125 0.796875 -1.75 C 0.796875 -0.765625 1.09375 0.765625 2.46875 1.734375 C 2.53125 1.734375 2.609375 1.734375 2.609375 1.65625 C 2.609375 1.609375 2.59375 1.59375 2.546875 1.546875 C 1.609375 0.703125 1.28125 -0.46875 1.28125 -1.734375 C 1.28125 -3.625 2 -4.546875 2.5625 -5.0625 C 2.59375 -5.09375 2.609375 -5.109375 2.609375 -5.140625 C 2.609375 -5.21875 2.53125 -5.21875 2.46875 -5.21875 Z M 2.46875 -5.21875 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-1-2"&gt;
&lt;path d="M 2.328125 -4.4375 C 2.328125 -4.625 2.328125 -4.625 2.125 -4.625 C 1.671875 -4.1875 1.046875 -4.1875 0.765625 -4.1875 L 0.765625 -3.9375 C 0.921875 -3.9375 1.390625 -3.9375 1.765625 -4.125 L 1.765625 -0.578125 C 1.765625 -0.34375 1.765625 -0.25 1.078125 -0.25 L 0.8125 -0.25 L 0.8125 0 C 0.9375 0 1.796875 -0.03125 2.046875 -0.03125 C 2.265625 -0.03125 3.140625 0 3.296875 0 L 3.296875 -0.25 L 3.03125 -0.25 C 2.328125 -0.25 2.328125 -0.34375 2.328125 -0.578125 Z M 2.328125 -4.4375 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-1-3"&gt;
&lt;path d="M 0.625 -5.21875 C 0.578125 -5.21875 0.5 -5.21875 0.5 -5.140625 C 0.5 -5.109375 0.515625 -5.09375 0.5625 -5.03125 C 1.15625 -4.484375 1.828125 -3.546875 1.828125 -1.75 C 1.828125 -0.296875 1.375 0.8125 0.625 1.484375 C 0.5 1.609375 0.5 1.609375 0.5 1.65625 C 0.5 1.6875 0.515625 1.734375 0.578125 1.734375 C 0.671875 1.734375 1.328125 1.28125 1.796875 0.40625 C 2.09375 -0.171875 2.296875 -0.921875 2.296875 -1.734375 C 2.296875 -2.71875 2 -4.25 0.625 -5.21875 Z M 0.625 -5.21875 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-2-0"&gt;
&lt;path d="M 5.875 -4.8125 C 5.875 -4.84375 5.859375 -4.90625 5.78125 -4.90625 C 5.734375 -4.90625 5.71875 -4.890625 5.65625 -4.8125 L 5.15625 -4.28125 C 5.09375 -4.359375 4.703125 -4.90625 3.84375 -4.90625 C 2.140625 -4.90625 0.484375 -3.40625 0.484375 -1.828125 C 0.484375 -0.75 1.3125 0.140625 2.640625 0.140625 C 3.265625 0.140625 3.90625 -0.015625 4.265625 -0.40625 C 4.34375 -0.265625 4.53125 0 4.609375 0 C 4.671875 0 4.6875 -0.03125 4.71875 -0.1875 L 4.859375 -0.71875 C 4.890625 -0.84375 4.984375 -1.265625 5.015625 -1.34375 C 5.09375 -1.65625 5.09375 -1.671875 5.515625 -1.671875 C 5.5625 -1.671875 5.671875 -1.671875 5.671875 -1.8125 C 5.671875 -1.890625 5.609375 -1.921875 5.5625 -1.921875 C 5.328125 -1.921875 5.03125 -1.890625 4.796875 -1.890625 C 4.625 -1.890625 4.390625 -1.890625 4.21875 -1.90625 C 4.046875 -1.90625 3.84375 -1.921875 3.671875 -1.921875 C 3.609375 -1.921875 3.515625 -1.921875 3.515625 -1.765625 C 3.515625 -1.671875 3.59375 -1.671875 3.765625 -1.671875 C 3.890625 -1.671875 4.03125 -1.671875 4.171875 -1.65625 C 4.390625 -1.640625 4.390625 -1.609375 4.390625 -1.53125 C 4.390625 -1.5 4.390625 -1.484375 4.34375 -1.296875 C 4.296875 -1.109375 4.21875 -0.796875 4.1875 -0.71875 C 4 -0.296875 3.34375 -0.109375 2.796875 -0.109375 C 2.109375 -0.109375 1.1875 -0.453125 1.1875 -1.625 C 1.1875 -2.375 1.546875 -3.296875 2.0625 -3.828125 C 2.78125 -4.53125 3.515625 -4.640625 3.90625 -4.640625 C 4.71875 -4.640625 5.1875 -4.0625 5.1875 -3.28125 C 5.1875 -3.09375 5.171875 -3.03125 5.171875 -3 C 5.171875 -2.90625 5.265625 -2.90625 5.296875 -2.90625 C 5.40625 -2.90625 5.40625 -2.921875 5.4375 -3.0625 Z M 5.875 -4.8125 "/&gt;
&lt;/g&gt;
&lt;g id="rollout-joint-tree-0-glyph-3-0"&gt;
&lt;path d="M 2.75 -3.578125 C 2.75 -4 2.40625 -4.34375 2 -4.34375 C 1.578125 -4.34375 1.234375 -4 1.234375 -3.578125 C 1.234375 -3.171875 1.578125 -2.828125 2 -2.828125 C 2.40625 -2.828125 2.75 -3.171875 2.75 -3.578125 Z M 2.75 -3.578125 "/&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/defs&gt;
&lt;path data-rollout-stage="0" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.007062 -8.503844 L 17.008563 -8.503844 L 17.008563 8.503969 L -17.007062 8.503969 Z M -17.007062 -8.503844 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="0" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-0" x="131.994" y="13.553"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="0" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-0" x="137.723" y="15.047"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="1" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(79.998779%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -58.112531 -35.308531 L -21.260969 -35.308531 L -21.260969 -20.253844 L -58.112531 -20.253844 Z M -58.112531 -35.308531 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-1" x="89.276" y="43.74"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="94.845" y="38.565"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="97.958104" y="38.565"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="101.929683" y="38.565"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-0" x="94.845" y="46.396"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="1" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 79.998779%)" stroke-opacity="1" stroke-miterlimit="10" d="M 21.258563 -35.308531 L 58.110125 -35.308531 L 58.110125 -20.253844 L 21.258563 -20.253844 Z M 21.258563 -35.308531 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-1" x="167.53" y="43.74"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="173.099" y="38.565"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-2-0" x="176.212" y="38.565"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="182.415" y="38.565"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-0" x="173.099" y="46.396"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="128.725" y="45.038"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="135.10619" y="45.038"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="1" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="141.473033" y="45.038"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="1" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(79.998779%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 0.00075 -9.249937 L -39.68675 -19.503844 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="1" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 79.998779%)" stroke-opacity="1" stroke-miterlimit="10" d="M 0.00075 -9.249937 L 39.684344 -19.503844 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="2" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(79.998779%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -92.409406 -75.968687 L -58.393781 -75.968687 L -58.393781 -58.960875 L -92.409406 -58.960875 Z M -92.409406 -75.968687 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-0" x="53.48" y="83.425"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="59.208" y="78.25"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="62.321104" y="78.25"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="66.292683" y="78.25"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="59.208" y="86.081"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="2" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 79.998779%)" stroke-opacity="1" stroke-miterlimit="10" d="M 58.395281 -75.968687 L 92.410906 -75.968687 L 92.410906 -58.960875 L 58.395281 -58.960875 Z M 58.395281 -75.968687 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-0" x="203.166" y="83.425"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="208.895" y="78.25"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-2-0" x="212.008" y="78.25"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="218.211" y="78.25"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="208.895" y="86.081"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="128.725" y="78.77"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="135.10619" y="78.77"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="2" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="141.473033" y="78.77"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="2" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(79.998779%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -39.68675 -36.054625 L -75.4055 -58.214781 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="2" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 79.998779%)" stroke-opacity="1" stroke-miterlimit="10" d="M 39.684344 -36.054625 L 75.403094 -58.214781 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(100%, 54.902649%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -133.514875 -102.773375 L -96.663312 -102.773375 L -96.663312 -87.718687 L -133.514875 -87.718687 Z M -133.514875 -102.773375 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-1" x="13.874" y="111.204"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="19.444" y="106.029"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="22.557104" y="106.029"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="26.528683" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="19.444" y="113.861"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(100%, 70.588684%, 78.431702%)" stroke-opacity="1" stroke-miterlimit="10" d="M -66.046125 -102.773375 L -29.198469 -102.773375 L -29.198469 -87.718687 L -66.046125 -87.718687 Z M -66.046125 -102.773375 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-1" x="80.223" y="111.204"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="85.792" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-2-0" x="88.906" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="95.108" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="85.792" y="113.861"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="47.37" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="53.75119" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="60.118033" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="128.725" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="135.10619" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="141.473033" y="110.518"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 70.588684%, 39.216614%)" stroke-opacity="1" stroke-miterlimit="10" d="M 29.196063 -102.773375 L 66.047625 -102.773375 L 66.047625 -87.718687 L 29.196063 -87.718687 Z M 29.196063 -102.773375 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-1" x="176.582" y="111.204"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="182.151" y="106.029"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="185.264104" y="106.029"/&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="189.235683" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="182.151" y="113.861"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="node" fill="none" stroke-width="1.49442" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 70.588684%, 86.274719%)" stroke-opacity="1" stroke-miterlimit="10" d="M 96.660906 -102.773375 L 133.512469 -102.773375 L 133.512469 -87.718687 L 96.660906 -87.718687 Z M 96.660906 -102.773375 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-0-1" x="242.931" y="111.204"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-1" x="248.5" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-2-0" x="251.613" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-3" x="257.816" y="106.029"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-1-2" x="248.5" y="113.861"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="210.079" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="216.46019" y="110.518"/&gt;
&lt;/g&gt;
&lt;g data-rollout-stage="3" data-rollout-kind="node" fill="rgb(0%, 0%, 0%)" fill-opacity="1"&gt;
&lt;use xlink:href="#rollout-joint-tree-0-glyph-3-0" x="222.827033" y="110.518"/&gt;
&lt;/g&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(100%, 54.902649%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -75.4055 -76.718687 L -115.089094 -86.972594 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(100%, 70.588684%, 78.431702%)" stroke-opacity="1" stroke-miterlimit="10" d="M -75.4055 -76.718687 L -47.62425 -86.972594 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 70.588684%, 39.216614%)" stroke-opacity="1" stroke-miterlimit="10" d="M 75.403094 -76.718687 L 47.621844 -86.972594 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;path data-rollout-stage="3" data-rollout-kind="edge" fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 70.588684%, 86.274719%)" stroke-opacity="1" stroke-miterlimit="10" d="M 75.403094 -76.718687 L 115.090594 -86.972594 " transform="matrix(1, 0, 0, -1, 137.093, 12.086)"/&gt;
&lt;/svg&gt;
&lt;/div&gt;
 &lt;div class="docs-rollout-controls" hidden&gt;
 &lt;div class="docs-rollout-progress"&gt;
 &lt;progress data-rollout-progress max="1" value="1" aria-label="Diagram animation progress"&gt;&lt;/progress&gt;
 &lt;span data-rollout-status&gt;Complete diagram&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="docs-rollout-actions"&gt;
 &lt;button type="button" data-rollout-play aria-label="Play diagram animation"&gt;
 &lt;svg class="docs-rollout-play-icon" viewBox="0 0 16 16" aria-hidden="true"&gt;&lt;path d="m5 3 7 5-7 5Z" fill="currentColor"/&gt;&lt;/svg&gt;
 &lt;svg class="docs-rollout-pause-icon" viewBox="0 0 16 16" aria-hidden="true"&gt;&lt;path d="M5.5 3v10m5-10v10" stroke="currentColor" stroke-width="2"/&gt;&lt;/svg&gt;
 &lt;span data-rollout-play-label&gt;Play&lt;/span&gt;
 &lt;/button&gt;
 &lt;button type="button" data-rollout-replay aria-label="Replay diagram animation"&gt;
 &lt;svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"&gt;&lt;path d="M3.5 5.5a5 5 0 1 1-.3 4M3.5 2.5v3h3"/&gt;&lt;/svg&gt;
 &lt;span&gt;Replay&lt;/span&gt;
 &lt;/button&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;Cada episode comienza con una tarea muestreada del conjunto de datos, que proporciona las observaciones iniciales &lt;span class="book-katex"&gt;\( \mathbf{o}_0=\{o_{1, 0}, \cdots, o_{n, 0}\} \)&lt;/span&gt; e historias &lt;span class="book-katex"&gt;\( \mathbf{h}_0=\{h_{1, 0}, \cdots, h_{n, 0}\} \)&lt;/span&gt; para todos los agentes. En cada turno, los agentes generan un grupo de respuestas conjuntas &lt;span class="book-katex"&gt;\( \mathbf{a}^{\mathcal{G}}_t\gets\boldsymbol{\pi}^{\mathcal{G}}(\cdot|\mathbf{h}_t) \)&lt;/span&gt; a partir de su historial de observación-acción actual &lt;span class="book-katex"&gt;\( \mathbf{h}_t \)&lt;/span&gt;. Cada respuesta inicia una rama distinta rollout. Los agentes reciben recompensas conjuntas &lt;span class="book-katex"&gt;\( r^{(g)}_{t} \)&lt;/span&gt; para cada respuesta, en función del historial acumulado y la acción conjunta actual &lt;span class="book-katex"&gt;\( \mathbf{a}^{(g)}_{t} \in \mathbf{a}^{\mathcal{G}}_{t} \)&lt;/span&gt;. &lt;strong&gt;Cada rollout evoluciona de forma independiente&lt;/strong&gt;, produciendo nuevas observaciones conjuntas &lt;span class="book-katex"&gt;\( \mathbf{o}^{\mathcal{G}}_{t&amp;#43;1} \)&lt;/span&gt; a medida que cambia el entorno y se ramifica en nuevas ramas rollouts en el siguiente turno &lt;span class="book-katex"&gt;\( t&amp;#43;1 \)&lt;/span&gt;. Este proceso continúa hasta el turno terminal &lt;span class="book-katex"&gt;\( H \)&lt;/span&gt;.&lt;/p&gt;</description></item><item><title>Viaje</title><link>https://openmlrl.github.io/CoMLRL/es/docs/env/travel/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/env/travel/</guid><description>&lt;!-- External link entry --&gt;</description></item><item><title>Paralelización del entrenamiento</title><link>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/training-parallelization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/training-parallelization/</guid><description>&lt;p&gt;CoMLRL puede colocar diferentes modelos en diferentes GPUs. Con &lt;code&gt;parallel_training=&amp;quot;mp&amp;quot;&lt;/code&gt;, cada agente se ejecuta en su propio dispositivo de &lt;code&gt;agent_devices&lt;/code&gt;, y los agentes generan simultáneamente; critics, modelos de recompensa, comparadores y modelos de referencia tienen sus propias configuraciones de dispositivo. El modo predeterminado, &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt;, mantiene a los agentes en un solo dispositivo. Ambos modos se ejecutan en una sola máquina y no requieren un programador de trabajos.&lt;/p&gt;
&lt;p&gt;Cada modelo se ejecuta completamente en su dispositivo asignado y no se divide entre GPUs. Los índices de dispositivo se refieren a los GPUs visibles a través de &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;. Una configuración para varios modelos utiliza un dispositivo por modelo o un solo dispositivo para todos, para que los usuarios puedan adaptar la colocación a los GPUs disponibles y a la memoria de cada modelo. La colocación de dispositivos y la programación en paralelo pueden afectar a los resultados del entrenamiento numérico.&lt;/p&gt;</description></item><item><title>Uso de herramientas</title><link>https://openmlrl.github.io/CoMLRL/es/docs/env/bfcl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/env/bfcl/</guid><description>&lt;!-- External link entry --&gt;</description></item><item><title>Preguntas y respuestas</title><link>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/qa/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openmlrl.github.io/CoMLRL/es/docs/user-guide/qa/</guid><description>&lt;details class="docs-qa-item"id="what-are-the-differences-between-comlrl-and-other-multi-llm-training-frameworks"&gt;&lt;summary&gt;¿Cuáles son las diferencias entre CoMLRL y otros marcos de entrenamiento multi-LLM?&lt;/summary&gt;&lt;div class="markdown-inner"&gt;
&lt;p&gt;Muchas plataformas de desarrollo soportan el entrenamiento de sistemas multi-agente basados en LLM, específicos para cada rol (&lt;a href="https://github.com/pettingllms-ai/PettingLLMs"&gt;PettingLLMs&lt;/a&gt;, &lt;a href="https://github.com/langfengQ/DrMAS"&gt;Dr. MAS&lt;/a&gt;, &lt;a href="https://github.com/TsinghuaC3I/MARTI"&gt;MARTI&lt;/a&gt;). La mayoría están formuladas como juegos estocásticos parcialmente observables (POSGs), en los que cada agente tiene su propia recompensa. Las reglas de recompensa creadas manualmente para cada agente o rol hacen que las señales de entrenamiento sean más densas, pero son difíciles de diseñar.&lt;/p&gt;</description></item></channel></rss>