Inicio / Artículos / Crear un clon local de Angry Birds con Qwen3.8-27B y Pi

Crear un clon local de Angry Birds con Qwen3.8-27B y Pi

Aprenda cómo configurar un flujo de trabajo de programación con IA completamente local utilizando LM Studio y el agente Pi para crear un nivel jugable de Angry Birds con Qwen3.8-27B.

1952 palabras

Hace unas semanas, un pequeño proyecto paralelo se propuso responder a una pregunta algo absurda: ¿se podría crear un único nivel jugable de Angry Birds — motor físico, mecánica de honda, torres que se derrumban, todo el conjunto — utilizando únicamente un modelo local ejecutado en hardware común de consumo? Sin claves API en la nube, sin facturación por uso, sin código que salga de la máquina.

Funcionó. Las aves volaban por la pantalla, los bloques de madera se derribaban y los cerdos eran aplastados al chocar. El modelo que impulsaba todo esto era Qwen3.8-27B, que funcionaba dentro de LM Studio y era gestionado por Pi, un agente de programación basado en terminal de código abierto. A continuación se presenta la configuración completa: una introducción al modelo y las razones por las que supera con creces sus expectativas a pesar de caber en un único Mac, además de los pasos exactos para instalar LM Studio, instalar Pi y conectarlos de modo que Pi dirija sus solicitudes al modelo local en lugar de a un proveedor alojado.

¿Por qué optar por una solución local?

La motivación principal es el costo y el control. Al ejecutar todo localmente obtendrá:

  • Cero costos de API, sin importar cuántas horas pase iterando en un proyecto aficionado.
  • Código que nunca sale de su propia máquina: una verdadera ventaja si está trabajando en algo que prefiere no subir a un tercero.
  • Sin límites de velocidad y sin interrupciones tipo “se alcanzó el límite de uso” durante la sesión.
  • Lo que debe sacrificar es la velocidad bruta de generación y, tradicionalmente, la calidad del resultado. Sin embargo, esa brecha se ha reducido mucho más rápido de lo que la mayoría de las personas imagina, y Qwen3.8-27B es una demostración sólida de cuán capaz puede llegar a ser un modelo de aproximadamente 27 mil millones de parámetros una vez que se entrena cuidadosamente y se cuantiza adecuadamente para hardware de nivel consumidor.

    Conozca el modelo: Qwen3.8–27B

    Qwen3.8-27B proviene del equipo Qwen de Alibaba. Es un modelo denso con soporte para visión, publicado bajo la licencia Apache 2.0, por lo que se puede utilizar gratuitamente incluso en proyectos comerciales. Antes de decidirse a descargarlo (requiere más de 16 GB), aquí están las especificaciones importantes:

    Arquitectura

    • 27 mil millones de parámetros, distribuidos en 64 capas con un tamaño oculto de 5,120 dimensiones
    • Un esquema híbrido de atención: bloques repetidos que combinan la atención lineal “Gated DeltaNet” con una capa estándar de atención con control, lo que ayuda al modelo a mantenerse rápido incluso a medida que crece el contexto
    • Una ventana de contexto nativa de 262,144 tokens, ampliable hasta 1,000,000
    • Entrenamiento que incorpora predicción de múltiples tokens, lo cual mejora significativamente la velocidad de inferencia local

    Resultados de pruebas de rendimiento (según lo reportado por Qwen, con comparaciones con Opus 4.6 Max de Anthropic cuando es relevante):

    La conclusión principal es que un modelo de 27 mil millones logra igualar o incluso superar a un modelo de peso cerrado de vanguardia en pruebas de codificación y de agencia, lo que explica por qué es una opción viable para el uso diario en algo como el agente Pi. Se trata de cifras reportadas por los propios desarrolladores, por lo que es lógico tener cierto escepticismo hasta que se realicen pruebas independientes; sin embargo, los resultados prácticos obtenidos con la implementación de Angry Birds descrita más adelante coinciden con estas afirmaciones.

    Algo que debe tener en cuenta desde el principio: Qwen3.8-27B tiene habilitado de forma predeterminada un “pensamiento” (razonamiento) extendido, con un nivel de esfuerzo establecido en xhigh. Esto es útil para tareas realmente difíciles, pero también significa que el modelo puede consumir miles de tokens de razonamiento en solicitudes triviales que no requieren tanta reflexión. Para trabajos rutinarios de agente de programación, reducir el nivel de esfuerzo del razonamiento a medium o low en la configuración del modelo de LM Studio hace que las respuestas sean notablemente más rápidas sin perder demasiado en calidad. Reserve xhigh para los problemas que realmente lo exigen.

    Cuantizaciones disponibles para ejecutar el modelo localmente incluyen GGUF y MLX, ambas ofrecidas con precisión de 4 bits, 5 bits, 6 bits y 8 bits. MLX es la variante desarrollada específicamente para Apple Silicon.

    Para los usuarios de Mac, los requisitos de memoria se desglosan aproximadamente de la siguiente manera, lo que debería ayudar a determinar qué nivel de cuantización es adecuado para su hardware:

    Como punto de referencia, un Mac mini equipado con el chip M4 y 32 gigabytes de memoria del sistema compartida puede ejecutar la versión cuantizada a 4 bits generando entre 5 y 6 tokens por segundo. Eso no es rápido en términos absolutos, pero es completamente viable para un agente cuya tarea es escribir y editar código en lugar de transmitir texto en vivo. Con chips Apple Silicon más potentes —de las series Max o Ultra— o con una GPU Nvidia capaz, el rendimiento aumenta considerablemente; algunos informes indican que en configuraciones de consumo más potentes el rendimiento cuantizado se sitúa entre 15 y 30 tokens por segundo.

    Paso 1: Instalar LM Studio

    LM Studio es la aplicación de escritorio encargada de cargar el modelo localmente y exponerlo a través de un servidor API compatible con OpenAI. Ese servidor es el con el que Pi se comunicará realmente.

    Descárguelo desde la página oficial de descarga; están disponibles versiones para macOS, Windows y Linux.

    Instálelo como lo haría con cualquier otro programa de escritorio y luego ábralo.

    Paso 2: Descargar Qwen3.8–27B dentro de LM Studio

    1. Dentro de LM Studio, abra el panel de búsqueda/descubrimiento de modelos.
    2. Búsquelo por qwen/qwen3.8-27b, o vaya directamente a su página de modelo en el sitio de LM Studio.
  • Elija el nivel de cuantización que se adapte a su hardware según el desglose de memoria mencionado anteriormente: para la mayoría de las máquinas con 24 a 32 GB de RAM, la versión MLX de 4 bits ofrece el equilibrio adecuado. Si desea inspeccionar los pesos antes de descargarlos, los mismos archivos cuantizados por la comunidad pueden consultarse directamente en Hugging Face.
  • Descargue el modelo y luego cárguelo desde la pestaña Chat o la pestaña Mis modelos. Mientras se carga, establezca una longitud de contexto que quepa cómodamente en su memoria disponible; 16K es un valor por defecto razonable, y puede aumentarlo si tiene espacio adicional.
  • Antes de continuar, abra el panel de configuraciones del modelo y reduzca el nivel de esfuerzo de razonamiento de xhigh a medium o low para tareas de programación y de agente, por las mismas razones discutidas anteriormente.
  • Paso 3: Iniciar el servidor local de LM Studio

    Este paso confunde a mucha gente: cargar un modelo en la interfaz de chat no lo hace automáticamente disponible como API.

    1. Pasar a la pestaña Desarrollador en LM Studio.
    2. Habilitar la opción Iniciar servidor.
    3. Por defecto, esto publica un endpoint compatible con OpenAI en http://localhost:1234/v1.

    Puede confirmar que está en ejecución desde una terminal:

    curl http://localhost:1234/v1/models
    

    La respuesta JSON debe listar qwen/qwen3.8-27b (o cualquiera que sea el identificador exacto) — anote esa cadena con precisión, ya que la necesitará pronto.

    Paso 4: Instalar Pi

    Pi es un agente de programación de código abierto basado en la terminal. Es compatible con el método “trae tu propia clave” y es agnóstico a los modelos, diseñado desde el principio para funcionar igualmente bien con proveedores en la nube y con servidores locales compatibles con OpenAI como LM Studio u Ollama.

    El instalador oficial:

    curl -fsSL https://pi.dev/install.sh | sh
    

    O, si prefiere usar npm:

    npm install -g @earendil-works/pi-coding-agent
    

    Confirme que la instalación se realizó con éxito:

    pi --version
    

    La documentación completa está disponible en pi.dev/docs/latest.

    Paso 5: Dirija Pi hacia su modelo local de LM Studio

    Pi almacena la configuración de su proveedor en ~/.pi/agent/models.json. Abra ese archivo (creándolo si aún no existe) y agregue una entrada que haga referencia al servidor local de LM Studio:

    {
      "providers": {
        "lmstudio": {
          "baseUrl": "http://localhost:1234/v1",
          "api": "openai-completions",
          "apiKey": "lm-studio",
          "models": [
            {
              "id": "qwen/qwen3.8-27b",
              "input": ["text"],
              "contextWindow": 65536,
              "reasoning": true
            }
          ]
        }
      }
    }
    

    Algunos detalles aquí son fáciles de error:

    • baseUrl debe coincidir exactamente con la dirección que se muestra en la pestaña Desarrollador de LM Studio, la cual es http://localhost:1234/v1 por defecto.
    • apiKey puede contener cualquier texto de marcador de posición; el servidor local de LM Studio no lo validará, pero Pi no mostrará el modelo a menos que este campo esté completado.
    • models[].id debe coincidir, carácter por carácter, con lo que LM Studio devuelve al ejecutar curl http://localhost:1234/v1/models. Una pequeña discrepancia es la causa más frecuente de que un modelo local no aparezca donde se espera.
    • contextWindow debería reflejar la longitud de contexto que realmente configuró al cargar el modelo, y no su máximo absoluto.

    También puede establecerlo como proveedor predeterminado editando ~/.pi/agent/settings.json:

    {
      "defaultProvider": "lmstudio",
      "defaultModel": "qwen/qwen3.8-27b"
    }
    

    Después de reiniciar Pi, o al ejecutar /model dentro de una sesión ya abierta, seleccione lmstudio / qwen/qwen3.8-27b. A partir de ese momento, todas las solicitudes que envíe Pi permanecerán en su propia máquina; nada se enviará fuera de su red local.

    Creación de la etapa de Angry Birds

    Una vez que todo estuvo conectado, el siguiente paso fue darle a Pi una instrucción deliberadamente vaga: crear un nivel jugable en el navegador al estilo de Angry Birds, con una mecánica de honda, física de proyectiles, un montón de bloques que se pueden derribar y un cerdo que derribar, todo ello en una sola página HTML/JS/Canvas autónoma.

    Lo interesante no fue solo que generó una versión funcional en el primer intento real, algo que ocurrió únicamente después de reducir el esfuerzo de razonamiento a medium. Con xhigh, el modelo consumió una enorme cantidad de tokens cuestionando constantes básicas de la física antes incluso de escribir una sola línea de código. Una vez ajustado correctamente, razonó de manera sólida sobre:

    • La mecánica de lanzamiento mediante arrastre y el movimiento de los proyectiles en la catapulta
    • Un ciclo físico básico que abarcaba la gravedad, las colisiones y el vuelco de los bloques
    • Mantener todo en un único archivo JavaScript limpio que pudiera revisar en varias iteraciones sin perder de vista lo ya escrito

    Este es exactamente el tipo de trabajo de programación autónoma que los benchmarks como SWE-bench Pro, Terminal-Bench y LiveCodeBench están diseñados para medir, y su comportamiento coincide con lo que esos resultados sugieren. No se trata de un truco superficial de chatbot, sino de un modelo capaz de mantener una sesión de programación con múltiples archivos y turnos, desde el principio hasta el final, completamente sin conexión, en el hardware que ya tienes sobre tu escritorio.

    Consejos prácticos si lo vas a configurar tú mismo

    • Usa por defecto un esfuerzo de razonamiento medio. Reserva xhigh para desafíos arquitectónicos o algorítmicos realmente difíciles. En los ciclos habituales de agentes de programación, esto generalmente solo añade latencia sin mejorar los resultados.
  • Ajuste la ventana de contexto según la RAM disponible, y no según el límite teórico del modelo. Una ventana de contexto de 262K, o la opción ampliada de 1M, parece impresionante en teoría, pero al requerir aproximadamente 64 KB de caché KV por token, los contextos largos consumen memoria extremadamente rápido. Un rango de 16K–64K es un objetivo más realista para la mayoría de las máquinas con una sola GPU o configuraciones Apple Silicon.
  • Verifique cuidadosamente el identificador del modelo. La razón más común por la que falla una configuración local es una entrada en models.json que no coincide con precisión con el ID indicado por LM Studio.
  • Calibre sus expectativas de rendimiento. Debe esperar velocidades en el rango de los dígitos individuales hasta mediados de los dígitos dobles de tokens por segundo, y no la velocidad de una API en la nube. Eso representa un equilibrio razonable para operar sin costo alguno y sin que los datos salgan de su equipo, pero merece ser tenido en cuenta, especialmente con hardware de gama baja.
  • Conclusión

    Hace no mucho tiempo, pedirle a un modelo completamente local que creara un juego basado en física jugable habría sonado ambicioso. Ahora, un modelo de 27 mil millones de parámetros cuantizado para funcionar cómodamente en una sola Mac, combinado con un agente de terminal de código abierto ligero, logró hacerlo en una tarde. Si cuenta con 24 GB o más de memoria unificada, o con una GPU razonablemente potente que de lo contrario permanecería inactiva, esta configuración es una forma realmente agradable y sin costos adicionales de comprobar hasta dónde han llegado las herramientas de programación con IA local.

    Recursos mencionados en esta guía:

    La página de descarga de LM Studio se encuentra en lmstudio.ai/download, y su ficha correspondiente a este modelo específico está disponible en lmstudio.ai/models/qwen/qwen3.8-27b. Los pesos MLX cuantizados se almacenan en Hugging Face bajo el espacio de nombres lmstudio-community, listados como Qwen3.8-27B-MLX-4bit. El agente de programación Pi tiene su propio sitio en pi.dev, con documentación adjunta en pi.dev/docs/latest.

    Lecturas relacionadas

  • ReAct explicado: Cómo los agentes de IA combinan el razonamiento con acciones del mundo real — Aprenda cómo el marco ReAct integra el razonamiento y el uso de herramientas para potenciar a los agentes de IA, y cómo difiere de Chain-of-Thought, RL y los modelos de razonamiento.