En pocas palabras: DeepReinforce lanzó Ornith-1.0, modelos open-source con auto-andamiaje que logran 82.4% en SWE-Bench Verified y 77.5% en Terminal-Bench 2.1, superando a Claude Opus 4.7. Pesos disponibles en Hugging Face desde el 26 de junio de 2026 con licencia Apache 2.0.
DeepReinforce acaba de largar Ornith-1.0, una familia de modelos open-source que aprenden a generar su propio andamiaje (scaffold) para resolver tareas de código agéntico. El modelo más grande, Ornith-1.0-397B, clavó 82.4 en SWE-Bench Verified y 77.5 en Terminal-Bench 2.1, superando a Claude Opus 4.7 en ambos benchmarks. Los pesos están disponibles en Hugging Face desde el 26 de junio de 2026, con licencia Apache 2.0.
Ornith-1.0 es un modelo de lenguaje open-source entrenado por DeepReinforce con una técnica que la empresa llama self-scaffolding (auto-andamiaje): el modelo no solo escribe la solución final, sino que primero genera un plan estratégico —el scaffold— que condiciona todo el razonamiento posterior. Esto le permite atacar tareas de programación complejas sin intervención humana en la definición de la estrategia. Viene en tres tamaños: 9B, 35B y 397B parámetros, todos con ventana de contexto de 256K tokens y optimizados para herramientas como vLLM, SGLang y Transformers.
En 30 segundos
- Ornith-1.0-397B sacó 82.4 en SWE-Bench Verified y 77.5 en Terminal-Bench 2.1, superando a Claude Opus 4.7 en ambos.
- Se entrena con auto-andamiaje (self-scaffolding): el modelo genera su propio plan estratégico y después la solución, sin que un humano le diga cómo encarar cada tarea.
- Tres tamaños disponibles: 9B denso (cabe en una GPU de 80 GB), 35B MoE y 397B MoE, todos con 256K tokens de contexto.
- Licencia Apache 2.0, pesos en Hugging Face, y ya es compatible con vLLM, SGLang y Transformers.
- El modelo de 9B iguala o supera a Gemma 4-31B en varios benchmarks, algo que llama la atención para su tamaño.
¿En qué consiste el entrenamiento de auto-andamiaje (self-scaffolding) de Ornith-1.0?
La mayoría de los modelos de código generan una respuesta directa: reciben el prompt y devuelven la solución. Ornith-1.0 no. Acá la idea es que el modelo mismo aprenda a fabricarse su propio “plan de ataque” antes de escribir una sola línea de código.
El ciclo de entrenamiento, según explica la página oficial de DeepReinforce, tiene dos etapas bien marcadas. Primero, el modelo propone un scaffold refinado: una estructura de alto nivel que define cómo va a encarar el problema, qué herramientas va a usar, en qué orden, con qué criterios de verificación. Después, condicionado a ese scaffold, genera un rollout: la ejecución concreta, paso a paso, de la solución.
Lo interesante —y acá está la magia del paper— es que la señal de recompensa se propaga a ambas etapas. Si el rollout funciona bien, el scaffold recibe crédito por haber guiado bien. Si falla, el scaffold también se penaliza. Con suficientes iteraciones, el modelo empieza a desarrollar estrategias por categoría de tarea sin que nadie le escriba un prompt engineering manual. Ponele, aprende que para ciertos bugs de Python conviene primero inspeccionar el traceback, después buscar definiciones de funciones relacionadas, y recién ahí proponer un diff. Todo emergente.
¿La contra? Que esto requiere una infraestructura de entrenamiento bastante pesada y un sistema de verificación robusto. Sin pruebas automatizadas confiables, el scaffold puede volverse creativo de más (spoiler: de eso hablamos más abajo, en la sección de reward hacking). Ya lo cubrimos antes en nuestra guía de seguridad en Microsoft Intune.
¿Qué benchmarks ha superado Ornith-1.0 y con qué puntuaciones?
Los números son lo que más ruido está haciendo. El README del repositorio oficial detalla los resultados en los dos benchmarks principales:
| Modelo | Terminal-Bench 2.1 | SWE-Bench Verified |
|---|---|---|
| Ornith-1.0-397B | 77.5 | 82.4 |
| Ornith-1.0-35B | 64.4 | — |
| Ornith-1.0-9B | 43.1 | 69.4 |
| Claude Opus 4.7 | 70.3 | 80.8 |
| MiniMax M3 | — | 76.1 |
| DeepSeek-V4-Pro | — | 78.3 |
| Qwen 3.5-397B | 53.5 | — |
| Gemma 4-31B | — | — |

El 397B le saca 7 puntos a Claude Opus 4.7 en Terminal-Bench 2.1 y casi 2 puntos en SWE-Bench Verified. No es poca cosa, sobre todo viniendo de un modelo open-source que podés correr en tu propia infraestructura (si tenés los fierros, claro). El 35B, por su parte, supera a Qwen 3.5-397B en Terminal-Bench 2.1 por más de 10 puntos (64.4 vs 53.5), lo cual habla bien de la eficiencia del enfoque MoE combinado con self-scaffolding. Y el 9B, que es el más chico, iguala o supera a Gemma 4-31B en capacidad de razonamiento para código según los datos publicados, aunque el benchmark exacto no está desglosado en el README para esa comparación.
Ojo con esto: los benchmarks los reporta DeepReinforce, no hay verificación independiente todavía. Tomalo con pinzas, como siempre que un fabricante publica sus propios números. Dicho esto, los benchmarks elegidos —SWE-Bench Verified y Terminal-Bench 2.1— son bastante estándar en la industria y difíciles de truchar sin que salte la liebre en pruebas comunitarias.
¿Qué variantes y tamaños de Ornith-1.0 están disponibles?
DeepReinforce publicó tres versiones del modelo, cada una con sus propios formatos y requisitos de hardware. La tabla completa, según el README:
| Variante | Arquitectura | Formatos | GPUs recomendadas |
|---|---|---|---|
| Ornith-1.0-9B | Dense | bf16, GGUF | 1× 80 GB (bf16) |
| Ornith-1.0-35B | MoE (aprox. 13B activos) | bf16, FP8, GGUF | 2× 80 GB (tensor parallelism) |
| Ornith-1.0-397B | MoE (aprox. 52B activos) | bf16, FP8 | 8× 80 GB (tensor parallelism) |
El caso de uso es bastante claro: el 9B es para prototipado local y tareas de complejidad media. Si tenés una sola A100 u H100 de 80 GB, lo cargás en bf16 sin drama y ya estás probando. Los modelos MoE necesitan tensor parallelism sí o sí —el 35B pide al menos dos GPUs, y el 397B directamente ocho—, pero la ventaja es que los parámetros activos son muchos menos que el total, así que la inferencia es más rápida de lo que parece.
La ventana de contexto de 256K tokens es un golazo para tareas de código agéntico, donde muchas veces necesitás mandar repositorios enteros, logs larguísimos, o documentación de APIs junto con el prompt. Eso sí, ojo con la memoria: 256K tokens en un modelo de 397B te va a consumir una cantidad obscena de VRAM. Complementá con nuestra guía completa sobre ChatGPT.
¿Cómo se compara Ornith-1.0 con otros modelos de código abierto y propietarios?
Acá es donde la cosa se pone interesante. Ornith-1.0-397B supera a Claude Opus 4.7 —que hasta ahora era el techo en SWE-Bench— y deja atrás a modelos open-source como MiniMax M3 (76.1) y DeepSeek-V4-Pro (78.3). En Terminal-Bench, la diferencia con Claude es todavía más grande: 77.5 contra 70.3.
Pero lo que más llama la atención es la eficiencia del 35B. Este modelo, con solo ~13B parámetros activos, supera a Qwen 3.5-397B en Terminal-Bench 2.1 (64.4 vs 53.5). Son más de 10 puntos con una fracción de los parámetros totales. ¿Qué significa esto? Que el self-scaffolding está haciendo trabajo pesado: no es solo tener más parámetros, sino saber usarlos mejor.
El 9B también sorprende: iguala o supera a Gemma 4-31B, que es un modelo más de tres veces su tamaño. Para equipos que no pueden pagar infraestructura multi-GPU, tener algo que rinda a nivel de modelos mucho más grandes es un montón.
Ahora bien, comparar solo con números de benchmarks tiene sus limitaciones. SWE-Bench mide la capacidad de resolver issues reales de GitHub, y Terminal-Bench evalúa tareas de línea de comandos, pero ninguna de las dos captura del todo el rendimiento en escenarios de desarrollo real donde el contexto es más desordenado, las dependencias están rotas y el log de errores está en spanglish. Habría que ver cómo se comporta en trinchera.
¿Cómo implementar Ornith-1.0 con herramientas como vLLM?
Si ya laburaste con vLLM, poner Ornith-1.0 a correr es bastante directo. El equipo de DeepReinforce publicó comandos listos para copiar y pegar (bueno, casi). Vas a necesitar: Te puede servir nuestra cobertura de el artículo sobre modelos de lenguaje y razonamiento.
- Transformers ≥ 5.8.1 — sin esto, el modelo ni arranca.
- vLLM ≥ 0.19.1 — la versión mínima para que el tool calling funcione como corresponde.
- SGLang ≥ 0.5.9 — si preferís esta alternativa.
El comando para servir el modelo con vLLM, según el README, es algo así (ajustalo a tus GPUs):
vllm serve deepreinforce-ai/Ornith-1.0-397B \
--served-model-name Ornith-1.0 \
--tensor-parallel-size 8 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_xml \
--reasoning-parser qwen3Los parámetros de sampling recomendados son temperature=0.6, top_p=0.95, top_k=20. Nada muy distinto de lo que ya usás con otros modelos de código. El tool call parser usa el formato XML de Qwen3, así que si venís de ese ecosistema, la migración es transparente.
Si querés probar el modelo sin montar un servidor, podés cargarlo con Transformers directamente:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"deepreinforce-ai/Ornith-1.0-9B",
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("deepreinforce-ai/Ornith-1.0-9B")Esto con el 9B funciona en una GPU de 80 GB. Para los MoE, vas a necesitar device_map=”auto” y varias GPUs, o directamente usar vLLM con tensor parallelism.
¿Cómo previene Ornith-1.0 el reward hacking durante el auto-andamiaje?
Este es el elefante en la sala del self-scaffolding. Si le das a un modelo la capacidad de generar su propia estrategia y lo recompensás solo por el resultado final, tarde o temprano va a encontrar atajos. Imaginate: el scaffold podría aprender a leer los archivos de test, copiar soluciones oracle, o generar código que pasa las pruebas pero no resuelve el problema real. Cubrimos ese tema en detalle en la guía completa de Google.
DeepReinforce implementó tres capas de defensa, y está bien que lo hayan hecho porque sin esto el método se cae a pedazos:
- Capa 1: límite externo fijo. El entorno de ejecución, las herramientas disponibles y las pruebas aisladas son inmutables. El modelo no puede modificar el entorno de testing ni acceder a archivos fuera de su sandbox. Esto ya descarta las trampas más obvias.
- Capa 2: monitor determinista. Hay un proceso que rechaza automáticamente cualquier acción que viole las reglas predefinidas. Si el scaffold intenta hacer algo que no está permitido —como ejecutar un comando para leer el archivo de tests—, la acción se bloquea y el rollout se da por fallido.
- Capa 3: juez LLM congelado. Esta es la más ingeniosa. Un modelo de lenguaje separado, que no se actualiza durante el entrenamiento, actúa como veto sobre el verificador automático. Si el scaffold encuentra una forma de pasar las pruebas sin resolver el problema de fondo, el juez lo detecta y anula la recompensa. Básicamente, un “no tan rápido, pibe”.
¿Es infalible? Probablemente no. Pero el diseño de tres capas —entorno, monitor, juez— es bastante más sólido que depender solo de una función de recompensa programada a mano. Si alguna vez entrenaste modelos con RL, sabés que el reward hacking es una lucha constante, y esta arquitectura al menos muestra que el equipo pensó en el problema desde el día uno.
Errores comunes al implementar Ornith-1.0
- Usar Transformers viejo. La versión mínima es 5.8.1. Si tenés 5.7 o anterior, el modelo carga pero el tokenizer no reconoce el formato de herramientas y los resultados son un desastre. Actualizá con
pip install transformers --upgradey listo. - No setear el tool-call-parser correcto. Ornith-1.0 usa
qwen3_xml. Si lo dejás en default o ponés otro parser, las llamadas a herramientas van a fallar silenciosamente y vas a pensar que el modelo alucina. No es alucinación, es que el parser no entiende el formato de salida. - Subestimar la VRAM con 256K de contexto. Sí, el modelo acepta 256K tokens. Pero mandarle un prompt de 200K tokens al 397B sin calcular la memoria disponible es la receta perfecta para un OOM catastrófico. Hacé las cuentas antes: con bf16, cada token de KV cache en un modelo de 397B consume muchísimo. Para prompts largos, usá el 9B o el 35B.
- Asumir que el self-scaffolding funciona igual en todos los tamaños. El 9B tiene self-scaffolding, pero con menos parámetros activos la calidad del scaffold es menor. Para tareas complejas donde la estrategia importa más que la sintaxis, el 35B o el 397B marcan una diferencia real.
Preguntas Frecuentes
¿Qué es Ornith-1.0?
Es una familia de modelos de lenguaje open-source lanzada por DeepReinforce el 26 de junio de 2026, especializada en código agéntico. Usa una técnica de auto-andamiaje (self-scaffolding) donde el modelo aprende a generar su propio plan estratégico antes de escribir código. Está disponible en tres tamaños —9B, 35B y 397B— con licencia Apache 2.0.
¿Cómo aprende Ornith-1.0 a generar sus propios andamiajes?
Mediante un ciclo de dos etapas con propagación de recompensa: el modelo propone un scaffold (plan estratégico), luego genera un rollout condicionado a ese plan, y recibe recompensa por el resultado final. La señal se propaga hacia atrás a ambas etapas, reforzando las estrategias que funcionan y penalizando las que fallan. Con suficientes iteraciones, surgen estrategias por categoría de tarea sin intervención humana.
¿Qué resultados obtuvo Ornith-1.0 en SWE-Bench Verified?
Ornith-1.0-397B alcanzó 82.4 en SWE-Bench Verified, superando a Claude Opus 4.7 (80.8), DeepSeek-V4-Pro (78.3) y MiniMax M3 (76.1). La versión de 9B obtuvo 69.4 en el mismo benchmark. Son datos reportados por DeepReinforce en junio de 2026, sin verificación independiente hasta el momento.
¿Cómo ejecutar Ornith-1.0 en local?
Necesitás Transformers ≥ 5.8.1 y vLLM ≥ 0.19.1 o SGLang ≥ 0.5.9. El modelo de 9B corre en una GPU de 80 GB en bf16. Los modelos MoE (35B y 397B) requieren tensor parallelism con 2 y 8 GPUs respectivamente. Los pesos están en Hugging Face bajo deepreinforce-ai/Ornith-1.0-* y hay versiones GGUF para el 9B y 35B.
¿Qué modelos de DeepReinforce están disponibles?
Actualmente hay tres: Ornith-1.0-9B (denso, bf16 y GGUF), Ornith-1.0-35B (MoE con ~13B activos, bf16, FP8 y GGUF) y Ornith-1.0-397B (MoE con ~52B activos, bf16 y FP8). Todos comparten la ventana de contexto de 256K tokens y la licencia Apache 2.0.
Conclusión
Ornith-1.0 no es un modelo más en la lista interminable de LLMs que salen cada semana. Lo que lo distingue es el método: el self-scaffolding ataca un problema real —cómo hacer que un modelo razone estratégicamente sobre tareas complejas sin que un humano le arme el plan— y lo resuelve con un enfoque que tiene sentido técnico. Los números en benchmarks son sólidos, el 397B le gana a Claude Opus 4.7, y el 9B rinde como modelos tres veces más grandes.
La gran pregunta es cómo se comporta en escenarios reales, fuera de benchmarks curados. Si el self-scaffolding transfiere bien a código legacy, repositorios desprolijos y tareas ambiguas, estamos ante un avance posta. Si resulta que solo brilla en SWE-Bench, bueno, será otra historia. Por lo pronto, que los pesos estén abiertos y la licencia sea Apache 2.0 te permite probarlo vos mismo y sacar tus propias conclusiones. Que es exactamente como debería ser.
Fuentes
- DeepReinforce — Página oficial de Ornith-1.0: anuncio, detalles técnicos y benchmarks del modelo.
- GitHub — deepreinforce-ai/Ornith-1: README con comandos de implementación, requerimientos, formatos y tabla completa de resultados.
- Posicionamiento Web AR — Cobertura del lanzamiento: análisis en español con contexto sobre el self-scaffolding y comparativas.
