Ejecutar un pequeño modelo de lenguaje dentro de un sector de arranque de 510 bytes
Un nuevo proyecto llamado bootgpt ejecuta una red neuronal a nivel de carácter en el Registro de Arranque Maestro (MBR), generando falsos registros de Linux en hardware desnudo sin sistema operativo.
Traducido automáticamente del original en inglés.
El desarrollador kerlenton ha lanzado bootgpt, un proyecto que ejecuta un pequeño modelo de lenguaje directamente desde el Registro de Arranque Maestro (MBR) de un ordenador. Publicado a finales de octubre de 2026, esta herramienta funciona completamente en modo real de 16 bits sobre hardware BIOS heredado, sin requerir sistema operativo ni entorno de ejecución C para funcionar.
Qué ocurrió
El proyecto demuestra una red neuronal que se activa con la máquina y genera registros de arranque de Linux alucinados. En lugar de cargar un sistema operativo tradicional, el código lee sus propios sectores del disco, carga un modelo de 11,5 KB almacenado en los sectores siguientes y comienza a imprimir texto en pantalla utilizando interrupciones básicas de BIOS. La salida imita marcas de tiempo, direcciones de bus PCI y eventos ACPI para hardware que no existe realmente en la máquina anfitriona.
Este enfoque difiere significativamente de los intentos recientes de ejecutar modelos más grandes como Llama-2 durante el proceso de arranque. Mientras que otros proyectos como sectorllm utilizan más de 1,2 KB de ensamblador para ejecutar modelos transformer con mecanismos de atención, bootgpt se limita estrictamente al límite de 510 bytes del espacio de código del MBR. Los pesos y las tablas de vocabulario se mantienen en sectores de datos, lo que permite que el motor de inferencia permanezca increíblemente compacto mientras sigue produciendo mensajes de sistema coherentes, aunque sin sentido.
El repositorio incluye herramientas para generar datos de entrenamiento, entrenar el modelo y grabar demostraciones. Los usuarios pueden escribir la imagen de disco proporcionada en una memoria USB y arrancar cualquier equipo compatible con BIOS para ver el efecto. El sistema está diseñado para ser autónomo, leyendo solo sus propios sectores y reiniciándose ante cualquier pulsación de tecla.
Cómo funciona
El núcleo del sistema es una red neuronal a nivel de carácter con una sola capa oculta. Para ajustarse a las severas restricciones del sector de arranque, el desarrollador cuantificó todos los parámetros del modelo al formato int8 utilizando escalas de potencias de dos. Esta elección específica permite que el procesador en modo real de 16 bits ejecute todo el paso hacia adelante utilizando únicamente multiplicación entera (imul) y una sola instrucción de división entera (idiv), evitando la necesidad de emulación compleja de punto flotante.
El entrenamiento se gestiona mediante un script de Python que genera 3 MB de falsos registros dmesg. El generador varía las versiones del kernel y las configuraciones de disco por sesión para evitar que el modelo simplemente memorice cadenas repetitivas. Esta variación fuerza a la pequeña red a aprender los patrones estructurales de los registros de arranque en lugar de solo repetir texto estático. El script de entrenamiento también simula exactamente las matemáticas enteras que ejecutará el código ensamblador, incluyendo un Generador Congruencial Lineal (LCG) para el muestreo. Esto garantiza que la salida del entorno de entrenamiento en Python coincida con la salida del sector de arranque carácter por carácter.
El código ensamblador de tiempo de ejecución, contenido en boot.asm, realiza el trabajo pesado. Utiliza la interrupción 13h para cargar los pesos desde el disco y la interrupción 10h para imprimir caracteres en el búfer de vídeo. Las funciones de activación se implementan mediante softclip usando instrucciones cdq e idiv, mientras que el muestreo depende de ruido sembrado por el temporizador del sistema. Dado que el MBR está limitado a 512 bytes, con los últimos dos bytes reservados para la firma de arranque, el código ejecutable debe caber dentro de 510 bytes.
Detalles clave
- El motor de inferencia cabe completamente dentro del límite de código de 510 bytes del Registro de Arranque Maestro.
- El modelo utiliza cuantización int8 con escalas de potencias de dos para habilitar operaciones matemáticas eficientes solo con enteros en hardware de la era 386.
- Los datos de entrenamiento consisten en 3 MB de registros sintéticos de arranque de Linux con versiones de kernel y configuraciones de disco variadas.
- El sistema se ejecuta en modo real de 16 bits, utilizando interrupciones de BIOS para E/S de disco y salida de vídeo.
- Los pesos, cadenas y la tabla de vocabulario se almacenan en los 23 sectores que siguen al MBR, sumando un total de 11,5 KB.
- Cualquier pulsación de tecla provoca un reinicio, y la demo puede grabarse sin interfaz gráfica mediante sockets de monitor QEMU.
Por qué importa
Para ingenieros que trabajan en IA de borde y sistemas embebidos, bootgpt sirve como un ejemplo extremo de inferencia con recursos restringidos. Demuestra cómo una cuantización cuidadosa y la simplificación arquitectónica pueden permitir que redes neuronales funcionen en hardware con memoria y potencia de procesamiento insignificantes. Mientras que la mayoría de los despliegues modernos de IA se centran en GPUs y grandes huellas de RAM, este proyecto destaca la viabilidad de operaciones solo con enteros en CPUs heredadas, lo cual sigue siendo relevante para microcontroladores de bajo consumo y dispositivos IoT especializados.
El proyecto también subraya la importancia de la fidelidad de simulación en el desarrollo de ML embebido. Al garantizar que el bucle de entrenamiento en Python imite exactamente la aritmética entera del entorno de ensamblador objetivo, el desarrollador evitó bugs sutiles que a menudo plagan el despliegue de modelos entre plataformas. Este método de verificar que el entrenamiento y la inferencia producen resultados idénticos es una práctica valiosa para cualquiera que despliegue modelos en entornos de hardware no estándar o restringidos donde el soporte de punto flotante está ausente o es inconsistente.
Qué puedes hacer
- Clona el repositorio bootgpt e inspecciona los scripts de compilación para entender el pipeline de cuantización.
- Usa el corpus_gen.py proporcionado para crear conjuntos de datos sintéticos para otras tareas de generación de texto estructurado.
- Experimenta con la estrategia de cuantización int8 en tus propios proyectos embebidos para reducir el tamaño del modelo.
- Ejecuta la imagen de disco en QEMU para observar el proceso de arranque sin arriesgar el hardware físico.
- Estudia el código fuente de boot.asm para aprender cómo las interrupciones de BIOS manejan la E/S en entornos de modo real.
- Compara la arquitectura con sectorllm para entender los compromisos entre complejidad del modelo y tamaño del código.



