2 puntos por GN⁺ 4 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Ornith-1.0 es un modelo open source de automejora para codificación agéntica; ofrece configuraciones 9B Dense, 31B Dense, 35B MoE y 397B MoE, y fue postentrenado sobre Gemma 4 y Qwen 3.5
  • Su framework de entrenamiento usa aprendizaje por refuerzo para aprender a generar no solo rollouts de soluciones, sino también el scaffold que guía esos rollouts, optimizando en conjunto el scaffold y la solución resultante
  • Según el README, Ornith-1.0 logra rendimiento de punta frente a modelos open source de tamaño similar en benchmarks de codificación como Terminal-Bench 2.1, SWE-Bench, NL2Repo y OpenClaw
  • Todos los checkpoints exponen una interfaz compatible con OpenAI y admiten una ventana de contexto de 256K tokens; pueden ejecutarse con vLLM, SGLang, Hugging Face Transformers, llama.cpp, Ollama, entre otros
  • Tiene licencia MIT, es accesible en todo el mundo sin restricciones regionales, y puede conectarse a frameworks agénticos y CLI de codificación separando bloques de razonamiento y llamadas a herramientas mediante reasoning_content y tool_calls

Resumen del modelo y método de entrenamiento

  • Ornith-1.0 es una familia de modelos open source de automejora para codificación agéntica
  • Los tamaños disponibles son 9B Dense, 31B Dense, 35B MoE y 397B MoE, postentrenados sobre Gemma 4 y Qwen 3.5
  • El framework de entrenamiento de automejora usa aprendizaje por refuerzo
    • El modelo aprende a generar no solo rollouts de soluciones, sino también el scaffold que guía esos rollouts
    • Optimiza en conjunto el scaffold y la solución resultante para encontrar mejores trayectorias de búsqueda y soluciones de mayor calidad
  • La licencia es MIT, con acceso global y sin restricciones regionales

Resultados de benchmarks

  • Cada modelo se comparó con modelos de referencia acordes a su tamaño, y los tres modelos usaron el mismo harness y la misma configuración de decodificación
  • Ornith-1.0-9B

    • En Terminal-Bench 2.1 registró 43.1 con referencia Terminus-2 y 40.6 con referencia Claude Code
    • Registró 69.4 en SWE-bench Verified, 42.9 en SWE-bench Pro y 52 en SWE-bench Multilingual
    • Registró 27.2 en NL2Repo y 63.1 de promedio en Claw-eval
    • En SWE Atlas registró 17.9 en QnA, 16.6 en RF y 15.3 en TW
  • Ornith-1.0-35B

    • En Terminal-Bench 2.1 registró 64.2 con referencia Terminus-2 y 62.8 con referencia Claude Code
    • Registró 75.6 en SWE-bench Verified, 50.4 en SWE-bench Pro y 69.3 en SWE-bench Multilingual
    • Registró 34.6 en NL2Repo y 69.8 de promedio en Claw-eval
    • En SWE Atlas registró 37.1 en QnA, 29.7 en RF y 27.8 en TW
  • Ornith-1.0-397B

    • En Terminal-Bench 2.1 registró 77.5 con referencia Terminus-2 y 78.2 con referencia Claude Code
    • Registró 82.4 en SWE-bench Verified, 62.2 en SWE-bench Pro y 78.9 en SWE-bench Multilingual
    • Registró 48.2 en NL2Repo y 77.1 de promedio en Claw-eval
    • En SWE Atlas registró 41.2 en QnA, 42.6 en RF y 39.1 en TW

Configuración de evaluación

  • La evaluación Terminal-Bench 2.1 Terminus-2 usa el framework Harbor/Terminus-2, parser=json, temperature=1.0, top_p=1.0 y una ventana de contexto de 128K
    • Cada ejecución usa un timeout de 4 horas, 32 núcleos de CPU y 48 GB de RAM, y el resultado es el promedio de 5 ejecuciones
    • El Qwen chat template se ajustó para mantener la consistencia entre entrenamiento e inferencia, y Harbor se modificó para alinearse con la clave reasoning_content de vLLM
  • La evaluación Terminal-Bench 2.1 Claude Code usa Claude Code 2.1.126, parser=json, temperature=1.0, top_p=1.0, max_new_tokens=131072, y reporta el promedio de 5 ejecuciones
  • SWE-bench Verified / Pro / Multilingual usa el harness OpenHands, temperature=1.0, top_p=0.95 y una ventana de contexto de 256K
  • SWE Atlas QnA / RF / TW usa el harness mini-SWE-agent, temperature=1.0, top_p=0.95 y una ventana de contexto de 128K, con promedio de 5 ejecuciones
  • NL2Repo usa temperature=1.0, top_p=1.0, contexto de 400K, salida de 48K y anti-hacking filters
  • ClawEval es un benchmark de código agéntico basado en la distribución de tareas reales de usuarios, y usa temperature=0.6 y contexto de 256K

Ejecución y checkpoints

  • Ornith-1.0 es un reasoning model y, por defecto, el turno del assistant empieza con un bloque <think> … </think> antes de devolver la respuesta final
  • La receta de serving activa el reasoning parser para devolver el chain-of-thought en un campo separado reasoning_content, y activa el tool-call parser para exponer los bloques <tool_call> como tool_calls al estilo OpenAI
  • Las versiones de runtime requeridas son las siguientes
    • Transformers ≥ 5.8.1
    • vLLM ≥ 0.19.1
    • SGLang ≥ 0.5.9
  • Los parámetros de muestreo recomendados son temperature=0.6, top_p=0.95, top_k=20
    • Para reproducir la configuración de los benchmarks reportados se usa temperature=1.0
  • Todos los checkpoints exponen la misma interfaz compatible con OpenAI y admiten una ventana de contexto de 256K, es decir, 262,144 tokens
    • Dense 9B es adecuado para una sola GPU de 80 GB
    • Los checkpoints MoE se dividen en shards en nodos multi-GPU mediante tensor parallelism
  • Checkpoints disponibles
    • Ornith-1.0-9B: Dense de aproximadamente 9B, bf16, para serving en una sola GPU y fine-tuning
    • Ornith-1.0-9B-GGUF: Dense de aproximadamente 9B, cuantización GGUF, para inferencia local con llama.cpp / Ollama
    • Ornith-1.0-35B: MoE 35B, bf16, para serving multi-GPU en full precision
    • Ornith-1.0-35B-FP8: MoE 35B, FP8, para serving que reduce la VRAM aproximadamente a la mitad en GPU con soporte FP8
    • Ornith-1.0-35B-GGUF: MoE 35B, cuantización GGUF, para inferencia local con llama.cpp / Ollama
    • Ornith-1.0-397B: MoE 397B, bf16, para serving multi-GPU en full precision
    • Ornith-1.0-397B-FP8: MoE 397B, FP8, para serving eficiente en memoria en GPU con soporte FP8

API compatible con OpenAI y uso agéntico

  • Cuando se ejecuta un servidor vLLM o SGLang, se puede llamar al endpoint /v1/chat/completions con un cliente compatible con OpenAI
  • El ejemplo de servidor local usa base_url="http://localhost:8000/v1";, api_key="EMPTY", model="Ornith-1.0"
  • En el mensaje de respuesta, reasoning_content contiene el trace de razonamiento de <think>, y content contiene la respuesta final
  • Si se pasan herramientas, Ornith-1.0 genera llamadas a funciones bien formadas, y el servidor las parsea al campo estándar tool_calls
  • Los SDK compatibles con OpenAI pueden usar el mismo endpoint desde Python, Node.js, curl, etc.

Frameworks compatibles y CLI de codificación

  • Ornith-1.0 está optimizado para llamadas a herramientas y funciones de codificación agéntica
  • Al ofrecer endpoint compatible con OpenAI y tool calling, puede usarse con frameworks agénticos estándar
  • El README incluye ejemplos de conexión de herramientas mediante un servidor MCP y ejemplos de llamadas a herramienta de función run_shell
  • Los harnesses y runtimes agénticos mostrados como ejemplo son los siguientes
    • Hermes Agent: configuración de OPENAI_BASE_URL, OPENAI_API_KEY, MODEL="Ornith-1.0"
    • OpenHands: uso de la ruta openai/Ornith-1.0 de LiteLLM y una base URL local
    • llama.cpp / Ollama: carga de builds GGUF de 9B y 35B para inferencia local
    • Unsloth Studio: inferencia local o fine-tuning con FastLanguageModel.from_pretrained
    • OpenClaw: configuración de un endpoint compatible con OpenAI apuntando al servidor Ornith
  • Las CLI de codificación pueden conectarse configurando OPENAI_BASE_URL y OPENAI_API_KEY hacia el endpoint de Ornith-1.0
  • El ejemplo de OpenCode registra un provider local de Ornith en ~/.config/opencode/opencode.json y usa el modelo Ornith-1.0

1 comentarios

 
GN⁺ 4 시간 전
Comentarios de Hacker News
  • Discusión anterior: https://news.ycombinator.com/item?id=48709744
    https://swelljoe.com/post/will-it-mythos/: “El rendimiento no es muy bueno; solo encontró un bug que casi todos los modelos encontraron. Aun así, su desempeño en otros benchmarks en relación con su tamaño es sobresaliente. […] Incluso en chat sin herramientas rinde mal y alucina bastante. Ahora mismo estoy reproduciendo las pruebas con acceso completo a herramientas, incluyendo bash/Python; en ese caso este modelo podría ser competitivo”

    • Es raro que en 2026 se diga en serio “rinde mal en chat sin herramientas”. No sé si este fine-tuning sea bueno porque no lo he usado personalmente, pero probar claramente un modelo orientado a agentes sin acceso a herramientas y esperar que salga bien no tiene sentido, ¿no? Ni idea de qué estaban probando exactamente
    • Ese benchmark deja a Kimi K2.6 y K2.7 Code casi hasta abajo. Ambos quedan por debajo de Ornith 35B, y además califica a Gemma 4 26B muy por encima de GLM-5.2. Los resultados no me terminan de convencer
  • Este es el primer fine-tuning de Qwen que no fue rechazado de inmediato por la comunidad de LLMs locales, e incluso en algunos casos lo recomiendan. Por el uso limitado que le di, está bien y propone soluciones creativas para problemas de programación. No esperaría que modelos de 9~35B te construyan una app completa con un clic. Parece que la mayoría de las quejas venían de esa expectativa

    • A la comunidad de LLMs locales llegaron en masa antiguos vendedores de humo de cripto/NFT, trayéndose también la cultura de exageración de esas comunidades. Todavía quedan técnicos con profundidad, pero cada vez quedan más tapados por voces de marketing vacías
    • Lamentablemente ha sido así desde el principio. No tiene nada de malo probar modelos locales para tareas locales con salvaguardas razonables
      Con la mayoría de los modelos como Qwen, Gemma, Llama y gpt-oss, ahora mismo es realmente tedioso descubrir pequeñas trampas como tokens especiales, estructura del prompt y preferencias del modelo. Aun así, si te tomas el trabajo de ajustar un entorno de ejecución de agentes con prompts y parámetros bien aprendidos, puedes conseguir modelos que funcionen muy bien
    • No ha mejorado. A la mayoría de la comunidad de LocalLLama esto no le gusta mucho, y solo unos cuantos recién llegados son los que publican sobre ello
    • Debemos estar en comunidades distintas. Los modelos Qwen son de los más recomendados entre los que realmente se pueden ejecutar en hardware local accesible para la gente
  • ¿Por qué estos modelos de “auto-mejora” nunca terminan mejorando hasta superar a los modelos de punta?

  • En mis pruebas, Ornith-1.0 35B fue un poco mejor que Qwen-3.6 35B
    Mis pruebas consisten en agregar o modificar funcionalidades en una base de código grande en C++. Lo interesante es que este modelo es mucho más rápido que Qwen3.6 35B. Parece que Ornith genera procesos de razonamiento más cortos
    En mis pruebas, la velocidad para producir respuestas fue hasta 3 veces mayor. Lo estoy usando con llamacpp y codex-cli

  • Probé Ornith-1.0 35B con una cuantización por bloques FP8 hecha por mí y me gustó. En una RTX PRO 6000(sm120), con vLLM, da más de 200 tokens/s, y en los últimos días le he pasado más de 140 millones de tokens en caché en tareas de programación tipo agente
    Diría que queda más o menos entre Qwen 3.6 35B-A3B y 27B, pero lo bueno es que, comparado con Qwen 3.6, tiende mucho menos a pensar de más o a quedarse atorado en el mismo loop. Viendo el rastro de razonamiento, me gusta su plantilla de enfoque por descomposición
    En una base de código Go de tamaño medio hizo bien análisis básicos, manejo de tareas y algunos cambios de frontend/backend, pero en tareas más largas de implementación simple de kernel chocó por completo con su límite. Lo repetí unas 100 veces en el entorno de ejecución Pi Agent y falló; este tipo de tareas sí las pueden resolver modelos abiertos más fuertes como Kimi K2.6 o GLM 5.2

    • En este tamaño de modelo, el entorno de ejecución me pareció más importante. Personalmente, en qwen3.6 27b me pasé de pi puro a little-coder; vale la pena echarle un vistazo
  • ¿Alguien puede explicar qué pasó aquí? ¿Solo le cambiaron la apariencia a Qwen? ¿Quién es deepreinforce-ai y por qué este modelo no aparece en su sitio web?
    Me da curiosidad cómo se supone que hace auto-mejora. ¿Cambia el modelo en disco, o solo mejora durante una sola ejecución dentro del contexto?

    • No hace auto-mejora. El título es engañoso
      Por lo que veo, parece que entrenaron con su propio aprendizaje por refuerzo encima de Qwen y Gemma 4. No sé cómo combinaron los pesos de ambos, y tampoco me queda claro si usaron Qwen como base y Gemma 4 como apoyo para el entrenamiento. Aquí “auto-mejora” parece referirse al proceso de entrenamiento, no a la forma en que usa los pesos
  • Esto parece simplemente una versión de Qwen o Gemma 4 optimizada para benchmarks

    • Si es así, impresiona que hayan logrado exprimir todavía más a Qwen, que ya de por sí está bastante optimizado para benchmarks
  • “Un 9B denso cabe en una sola GPU de 80GB”
    La gente normal como nosotros no lo puede usar

    • Suena raro. Un modelo 9B normalmente cabe sin cuantizar en una GPU de 24GB
    • Ya existen versiones cuantizadas
  • He usado muchos modelos locales y todos me parecían juguetes. Pero este sí me dio la impresión de ser realmente útil. También escuché que Qwen 36-A3B es bueno, aunque todavía no lo pruebo

  • Los sistemas de auto-mejora son interesantes, pero hacen mucho más difícil el rastreo de procedencia y la gobernanza. Si permites que un agente cambie su propio comportamiento con el tiempo, se vuelve cada vez más importante entender por qué actuó de cierta manera