Listado de la etiqueta: IBMi

LLM en IBM i sin Linux ni GPU: llama.cpp vía PASE

IBM i · Marzo 2026

Ejecutamos un LLM en IBM i. Sin Linux. Sin nube. Sin GPU.

llama.cpp compilado para AIX corre directamente en IBM i vía PASE. Tus programas RPG pueden llamar a un modelo de lenguaje local sin añadir infraestructura y sin enviar datos a la nube. En SIXE te enseñamos a hacerlo ;)

Marzo 20268 min lectura

Si administras un IBM i, ya sabes lo que viene cada vez que alguien pregunta por inteligencia artificial: "monta un LPAR Linux", "usa OpenAI", "mira Wallaroo". Todas las respuestas implican salir del entorno, añadir capas, y en algún momento enviar datos de negocio a un servidor que no controlas.

Hay 150.000 sistemas IBM i procesando transacciones de banca, seguros y sanidad. La respuesta no puede ser siempre "añade más infraestructura". Así que probamos otra cosa.

El experimento

Qué hicimos exactamente

Tomamos llama.cpp — el motor de inferencia LLM open source más usado — lo compilamos para AIX y copiamos el binario a una partición IBM i V7R5. Lo ejecutamos vía PASE. Funcionó al primer intento.

$ uname -a
OS400 WWW 5 7 007800001B91

$ /QOpenSys/pkgs/bin/python3 -c "import platform; print(platform.platform())"
OS400-5-007800001B91-powerpc-64bit

$ /QOpenSys/pkgs/bin/python3 -c "import sys; print('Byte order:', sys.byteorder)"
Byte order: big

IBM i V7R5 en pub400.com — un sistema IBM i público. Big-endian, powerpc-64bit, OS400. No Linux, no AIX. IBM i.

Qué tipo de binario es

$ file llama/llama-simple
llama/llama-simple: 64-bit XCOFF executable or object module

XCOFF de 64 bits: el formato ejecutable nativo de AIX. Compilado en AIX 7.3 POWER con GCC 13.3 y extensiones vectoriales VSX. Es el mismo binario de nuestro proyecto llama-aix, que ya distribuye 10 modelos GGUF big-endian en HuggingFace.

Primera ejecución

$ LIBPATH=/home/HBSIXE/llama /home/HBSIXE/llama/llama-simple --help

example usage:

    /home/HBSIXE/llama/llama-simple -m model.gguf [-n n_predict] [prompt]

El binario carga, enlaza libggml y libllama, parsea argumentos y responde. Todo dentro de PASE. Para lanzar inferencia real, le pasas un modelo GGUF big-endian:

$ LIBPATH=/home/HBSIXE/llama /home/HBSIXE/llama/llama-simple \
    -m models/tinyllama-1.1b-q4_k_m-be.gguf \
    -p "What is IBM i?" -n 100 -t 4
Terminal IBM i PASE ejecutando llama.cpp: el binario XCOFF carga, enlaza librerías y responde a un prompt en tiempo real
El contexto

Por qué tiene sentido para un equipo IBM i

En 2026 la conversación sobre IA en IBM i está más viva que nunca. IBM acaba de lanzar Bob (el sucesor de WCA for i), un asistente de codificación para desarrolladores RPG. El 70% de los clientes IBM i prevé actualizaciones de hardware este año. Y hay una pregunta que sigue sin tener respuesta directa:

¿Cómo integro un modelo de lenguaje en mis aplicaciones IBM i sin depender de servicios externos?

Las opciones habituales, a día de hoy:

OpciónQué implicaEl problema
LPAR LinuxMontar un LPAR aparte, ejecutar el LLM ahí, llamarlo desde RPG vía APIInfraestructura nueva, coste adicional, los datos viajan entre particiones
API cloudLlamar a OpenAI, Azure o AWS desde RPGLos datos de negocio salen de la máquina. En banca, seguros o sanidad esto es un problema serio
WallarooLa opción 1 empaquetada como servicio500 $/mes. Sigue siendo un LPAR Linux con marca
PASE + llama.cppEl LLM corre dentro del propio IBM i vía PASESin hardware adicional. Los datos no salen de la partición.
¿Y IBM Bob?
Bob es para el desarrollador: ayuda a entender, documentar y generar código RPG desde el IDE. Lo que describimos aquí es para la aplicación en producción: un LLM corriendo en la misma partición al que cualquier programa RPG puede llamar como si fuera una API local. Son herramientas complementarias, no alternativas.
La base técnica

PASE: el puente que ya tenías instalado

PASE (Portable Application Solutions Environment) es un entorno de ejecución integrado en IBM i que ejecuta binarios AIX de forma nativa. No es emulación — es una capa que expone las llamadas al sistema AIX directamente sobre el kernel de IBM i. Si algo corre en AIX, puede correr en IBM i vía PASE.

┌──────────────────────────────────────────┐ IBM i (OS400) │ ┌──────────────┐ ┌────────────────┐ │ │ │ RPG / CL │ │ PASE │ │ │ │ COBOL / Db2 │───→│ (AIX runtime) │ │ │ │ │ │ │ │ │ │ localhost │ │ llama-server │ │ │ │ :8080 │ │ + GGUF model │ │ │ └──────────────┘ └────────────────┘ │ IBM POWER Hardware └──────────────────────────────────────────┘

Llevamos años compilando paquetes para AIX en LibrePower — más de 30 paquetes open source instalables con DNF. Cuando llama.cpp llegó al repositorio, probar el salto a IBM i era el paso natural. PASE hace el resto.

Para los administradores de IBM i

No necesitas instalar nada especial en el sistema operativo. PASE ya está activo. Solo necesitas el binario XCOFF de llama.cpp y un modelo GGUF big-endian. El LLM corre como cualquier otro proceso PASE, sin tocar el entorno nativo IBM i.

El escollo técnico

El problema del big-endian (y cómo lo resolvimos)

Hay una razón por la que nadie había hecho esto de forma sencilla antes: el orden de bytes. IBM i y AIX son big-endian. La práctica totalidad del software de IA — x86, ARM, Linux ppc64le — asume little-endian. Un archivo GGUF descargado de HuggingFace directamente no funciona en IBM i: los bytes están en el orden equivocado.

Esto ya lo habíamos resuelto en nuestro trabajo con AIX. La solución: convertir los modelos antes de distribuirlos. Los publicamos en huggingface.co/librepowerai, validados en hardware AIX real y listos para cargar directamente en IBM i PASE.

ModeloTamañoCuantización
TinyLlama 1.1B Chat668 MBQ4_K_M
LFM 1.2B Instruct695 MBQ4_K_M
LFM 1.2B Thinking731 MBQ4_K_M
Y 7 modelos más

Son los mismos modelos que alcanzan 10–12 tok/s en AIX POWER. En IBM i POWER10 — con aceleración MMA activa a través de OpenBLAS — el rendimiento debería ser comparable o mejor. Los benchmarks concretos en IBM i están en preparación.

De PoC a producción

Del experimento a producción

Ejecutar --help prueba que el binario carga. El camino real hasta que esto es útil para tus aplicaciones tiene tres pasos, y el primero ya está disponible.

Paso 1: Inferencia directa (ya disponible)

Desde cualquier sesión SSH o QSH en el IBM i:

# Inferencia desde línea de comandos
LIBPATH=/ruta/a/llama /ruta/a/llama/llama-simple \
    -m /ruta/al/modelo.gguf \
    -p "Resume este albarán" -n 200 -t 8

Útil para scripts CL, jobs por lotes, o simplemente para verificar que el modelo carga y responde bien en tu hardware concreto antes de ir más allá.

Paso 2: Servidor con API compatible con OpenAI (a corto plazo)

llama.cpp incluye llama-server, que levanta un endpoint HTTP compatible con la API de OpenAI. Una vez activo en PASE, cualquier programa RPG puede llamarlo usando QSYS2.HTTP_POST como lo haría con cualquier otra API:

# Arrancar el servidor en IBM i vía PASE
LIBPATH=/ruta/a/llama /ruta/a/llama/llama-server \
    -m /ruta/al/modelo.gguf \
    --host 0.0.0.0 --port 8080 -t 8
// Llamada desde RPG — el LLM está en localhost
dcl-s url varchar(256) inz('http://localhost:8080/v1/chat/completions');
dcl-s cuerpo varchar(65535);
dcl-s respuesta varchar(65535);
// QSYS2.HTTP_POST — sin salir de IBM i

La parte importante: localhost. El modelo está en la misma máquina. Los datos no abandonan la partición.

Paso 3: Integración con aplicaciones de negocio (en desarrollo)

  • Análisis de documentos: pasar informes Db2 al LLM para generar resúmenes automáticos
  • Consultas en lenguaje natural: el usuario escribe en español, el LLM devuelve SQL
  • Modernización de código RPG: el LLM analiza y documenta programas existentes sin salir de IBM i
  • Monitorización inteligente: analizar mensajes QSYSOPR y logs de trabajos con contexto semántico
Una nota sobre rendimiento: los modelos pequeños (1–2B parámetros) en PASE son más que suficientes para clasificación, resumen, extracción estructurada de datos y respuestas con formato fijo. Para generación de texto más larga o razonamiento complejo, los modelos de 7B+ escalan bien con más cores. Benchmarks específicos en IBM i POWER10 en preparación.
Hands-on

Cómo probarlo

Si tienes acceso a un IBM i con PASE activo, son tres pasos.

1. Descargar el binario llama.cpp para AIX

Disponible en el gitlab de LibrePower. Si tienes DNF/yum configurado en el sistema:

# Desde AIX (o vía PASE si tienes dnf)
dnf install llama-cpp

2. Descargar un modelo big-endian

curl -L -o tinyllama-be.gguf \
  "https://huggingface.co/librepowerai/TinyLlama-1.1B-Chat-v1.0-GGUF-big-endian/resolve/main/tinyllama-1.1b-q4_k_m-be.gguf"

TinyLlama es un buen punto de partida: 668 MB, carga rápido, y sirve para verificar que todo funciona antes de pasar a modelos más grandes.

3. Lanzar la inferencia

LIBPATH=/ruta/a/llama ./llama-simple \
    -m tinyllama-be.gguf \
    -p "¿Qué es IBM i?" \
    -n 150 -t 4
¿Tienes sistemas IBM i en producción?

En SIXE llevamos años dando soporte a entornos IBM i. Si quieres ver si esta aproximación encaja con tu arquitectura — o entender qué implica para tus aplicaciones RPG — hablemos, sin compromiso.

Hoja de ruta

Qué viene después

Esto es una prueba de concepto, no un producto terminado. Eso sí, tenemos claro qué queremos hacer a continuación:

  • llama-server en IBM i — el servidor API HTTP corriendo en PASE, documentado y empaquetado para que puedas levantarlo en minutos
  • Ejemplos de integración con RPG — código real de llamadas al LLM desde programas RPG con QSYS2.HTTP_POST
  • Benchmarks en IBM i POWER10/POWER11 — mediciones reales de tok/s con PASE en hardware de producción
  • Modelos más grandes — pruebas con modelos 7B+ en particiones con memoria suficiente
  • vLLM para IBM i — nuestro paquete vLLM para ppc64le, adaptado para correr en PASE

Otros proyectos de LibrePower

ProyectoQué hace
llama-aixllama.cpp para AIX con 10 modelos GGUF big-endian listos para descargar
linux.librepower.orgRepositorio APT con vLLM para Linux ppc64le (Ubuntu/Debian)
aix.librepower.orgMás de 30 paquetes open source para AIX, instalables con DNF

¿Tienes IBM i con PASE?

Prueba el LLM en tu propia partición

El binario está en GitLab. Los modelos están en HuggingFace. Si tienes acceso a PASE y unos minutos, puedes replicar exactamente este blog :)

SIXE