Repolode
doofzoff

doofzoff/SIMURG

Un guardián de Python que solo usa numpy y detecta errores de decodificación de LLM, como bucles de repetición y cambios de idioma durante la generación, para detenerlos antes de mostrar tokens incorrectos.

Estrellas
101
Forks
15
Issues abiertos
0
Último commit
hace 28 días

¿Qué es?

SIMURG supervisa el flujo de tokens de un LLM mientras se genera y detecta errores de decodificación: colapso por repetición, cambios de idioma, repetición de texto genérico, contenido estructural basura y filtraciones de marcadores de plantillas de chat. Retiene los primeros 350 caracteres antes de mostrarlos, vuelve a comprobar el flujo cada 400 caracteres y lo interrumpe al superar un umbral calibrado, para que el usuario no vea texto corrupto. Cada alerta incluye motivos comprensibles y una estimación de dónde empezó el problema.

El núcleo solo necesita numpy; no requiere modelos ni GPU y funciona con cualquier endpoint de chat completions compatible con OpenAI, como vLLM, llama.cpp server, TGI, Ollama u OpenAI. El wrapper GuardedLLM añade lógica de reintentos y de cambio a un modelo alternativo, y una función de autorrecuperación permite continuar desde el prefijo limpio verificado en vez de volver a generar toda la respuesta. Los umbrales se calibran con resultados limpios. El proyecto también incluye un comando para volver a entrenarlo con tu propio tráfico y un panel para la supervisión en vivo y la reproducción de sesiones.

El proyecto aclara que detecta errores en la entrega del texto, no errores factuales: una frase fluida pero falsa no tiene una firma estadística. También incluye una capa opcional basada en un transformer pequeño, una capa de búsqueda web para comprobar la fundamentación y un módulo experimental de aprendizaje por retroalimentación.

Funciones clave

  • 01Detecta bucles de repetición, cambios de idioma, repetición de texto, contenido estructural basura y filtraciones de plantillas en el flujo de salida.
  • 02Retiene los caracteres iniciales e interrumpe el flujo al superar un umbral calibrado para que no se muestre texto corrupto.
  • 03Funciona solo con numpy, sin modelos ni GPU, y es compatible con cualquier endpoint compatible con OpenAI.
  • 04Informa de los motivos de cada alerta en lenguaje claro y estima dónde empezó el problema.
  • 05Reintenta la generación o recurre a otro modelo cuando detecta un intento fallido.
  • 06Permite recalibrar los umbrales con tus propios resultados limpios y ofrece un panel de supervisión en vivo.

Casos de uso

  • Proteger de resultados anómalos los chatbots de cara al usuario basados en modelos cuantizados o autoalojados.
  • Añadir un filtro de calidad durante la generación delante de un servidor de inferencia, antes de que los tokens lleguen a la interfaz.
  • Auditar y reproducir generaciones corruptas de un modelo en producción para encontrar patrones de fallos.
  • Detectar un nuevo modo de fallo en tu propio modelo mediante un detector personalizado entrenado con ejemplos etiquetados.

Inicio rápido

  1. 1

    Instala el paquete desde PyPI

    pip install simurg
  2. 2

    O instálalo desde el código fuente clonando el repositorio

    git clone https://github.com/doofzoff/SIMURG.git
  3. 3

    Entra en la carpeta del proyecto e instálalo en modo editable

    cd SIMURG && pip install -e .
  4. 4

    Ejecuta el benchmark reproducible

    python3 -m simurg.data.evaluate

Antes de usarlo

  • Su calibración está ajustada al benchmark sintético incluido, así que debes volver a entrenarlo con tu propio tráfico antes de confiar en él en producción.
  • La corrupción a mitad del flujo puede dejar una cola defectuosa de hasta unos 900 caracteres hasta que el reintento la sustituya; además, la corrupción que empieza en la ventana hold solo se bloquea por completo en 12 de los 21 casos del benchmark.

Temas

Preguntas frecuentes

¿Qué es SIMURG?
Un guardián de Python que solo usa numpy y detecta errores de decodificación de LLM, como bucles de repetición y cambios de idioma durante la generación, para detenerlos antes de mostrar tokens incorrectos. SIMURG supervisa el flujo de tokens de un LLM mientras se genera y detecta errores de decodificación: colapso por repetición, cambios de idioma, repetición de texto genérico, contenido estructural basura y filtraciones de marcadores de plantillas de chat. Retiene los primeros 350 caracteres antes de mostrarlos, vuelve a comprobar el flujo cada 400 caracteres y lo interrumpe al superar un umbral calibrado, para que el usuario no vea texto corrupto. Cada alerta incluye motivos comprensibles y una estimación de dónde empezó el problema.
¿SIMURG es gratuito? ¿Qué licencia tiene?
SIMURG es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿SIMURG sigue mantenido?
Mantenimiento activo. El último commit de SIMURG fue el 21 sept 2026.
¿Para qué puedo usar SIMURG?
Proteger de resultados anómalos los chatbots de cara al usuario basados en modelos cuantizados o autoalojados. Añadir un filtro de calidad durante la generación delante de un servidor de inferencia, antes de que los tokens lleguen a la interfaz. Auditar y reproducir generaciones corruptas de un modelo en producción para encontrar patrones de fallos. Detectar un nuevo modo de fallo en tu propio modelo mediante un detector personalizado entrenado con ejemplos etiquetados.
¿Cómo se instala SIMURG?
Instala el paquete desde PyPI: pip install simurg O instálalo desde el código fuente clonando el repositorio: git clone https://github.com/doofzoff/SIMURG.git Entra en la carpeta del proyecto e instálalo en modo editable: cd SIMURG && pip install -e . Ejecuta el benchmark reproducible: python3 -m simurg.data.evaluate
¿Dónde consigo SIMURG?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/doofzoff/SIMURG

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados