Sobre el proyecto
Reinfors es un framework de aprendizaje por refuerzo que ejecuta la simulación de juegos, la búsqueda en árbol, la orquestación de episodios y el ensamblaje de lotes en un backend de Rust en paralelo. El límite entre el motor de Rust y el usuario es una callback de inferencia: recibe observaciones de NumPy agrupadas y devuelve las salidas del modelo, dejando la arquitectura de la red, el framework de entrenamiento, el optimizador, el buffer de repetición, la ubicación del hardware y la topología distribuida totalmente bajo el control del llamante.
La biblioteca incluye un amplio catálogo de juegos que cubren tareas de un solo agente y multijugador, de suma cero, cooperativas y de suma general, con soporte para turnos o decisiones simultáneas, eventos de azar explícitos, e información perfecta e imperfecta. Los algoritmos abarcan el aprendizaje de valores basado en políticas, el aprendizaje guiado por búsqueda y métodos independientes de resolución de teoría de juegos.
La instalación se realiza mediante pip con `pip install reinfors`, con extras opcionales para adaptadores de Gymnasium/PettingZoo (`reinfors[gym]`) y ejemplos de entrenamiento con PyTorch (`reinfors[train]`). Un ejemplo sencillo crea un motor de Connect4 y recopila lotes de entrenamiento proporcionando una función de inferencia.
Las pruebas de rendimiento muestran ganancias de rendimiento significativas frente a bibliotecas de aprendizaje por refuerzo puramente en Python como Gymnasium, con aceleraciones reportadas de aproximadamente 14 a 20 veces en el paso de entornos de un solo hilo. Reinfors también busca un equilibrio práctico entre el rendimiento de simulación nativo y la modularidad para permitir una experimentación amplia en juegos, algoritmos, redes y configuraciones de despliegue.
El proyecto se encuentra en una versión anterior a la 1.0, lo que significa que las APIs, los comportamientos y los formatos serializados pueden cambiar entre lanzamientos de la serie 0.x sin avisos de obsolescencia. Se recomienda a los usuarios fijar versiones exactas y consultar las notas de lanzamiento al actualizar. Cuenta con doble licencia MIT y Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.