LLM sur IBM i via PASE — Sans Linux ni GPU

IBM i · Mars 2026

On a exécuté un LLM sur IBM i. Sans Linux. Sans cloud. Sans GPU.

llama.cpp est désormais livré dans le dépôt PASE de base d'IBM et tourne nativement sur IBM i. Vos programmes RPG peuvent appeler un LLM local sans infrastructure supplémentaire et sans envoyer vos données à l'extérieur.

Mars 20268 min de lectureVérifié sur IBM i V7R5 et 7.6

Si vous administrez un IBM i, vous connaissez bien la réponse habituelle quand quelqu'un pose la question de l'IA : « montez un LPAR Linux », « utilisez OpenAI », « regardez Wallaroo ». Toutes ces options impliquent de sortir de la plateforme, d'ajouter des couches, et à un moment ou un autre d'envoyer des données métier sur un serveur que vous ne contrôlez pas.

Il y a 150 000 systèmes IBM i qui traitent des transactions bancaires, d'assurance et de santé dans le monde. La réponse ne peut pas toujours être « ajoutez de l'infrastructure ». On a donc essayé autre chose.

L'expérience

Ce qu'on a fait exactement

On a pris llama.cpp — le moteur d'inférence LLM open source le plus utilisé — on l'a installé directement depuis le dépôt PASE de base d'IBM sur une partition IBM i V7R5 et on lui a passé un modèle GGUF big-endian. Ça a fonctionné du premier coup. On l'a également vérifié depuis sur IBM i 7.6.

$ 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 sur pub400.com — un système IBM i public. Big-endian, powerpc-64bit, OS400. Pas Linux, pas AIX. IBM i.

Le type de binaire

$ file /QOpenSys/pkgs/bin/llama-cli
/QOpenSys/pkgs/bin/llama-cli: 64-bit XCOFF executable or object module

Un binaire XCOFF 64 bits — le format exécutable natif d'AIX, que PASE exécute tel quel. Sur IBM i, le binaire vient directement du dépôt PASE de base d'IBM (yum install llama-cpp) ; sur AIX, nous maintenons toujours notre propre build à côté des modèles GGUF big-endian sur aix.librepower.org et huggingface.co/librepowerai.

Première exécution

$ llama-cli --help
usage: llama-cli [options]

  -m, --model FNAME       chemin du modèle
  -p, --prompt STRING     prompt de départ
  --no-cnv                désactive le mode conversation (one-shot)
  ...

Le binaire charge, lie libggml et libllama, analyse les arguments et répond. Tout à l'intérieur de PASE. Pour lancer une vraie inférence, on lui passe un modèle GGUF big-endian :

$ llama-cli \
    -m models/tinyllama-1.1b-chat-be.gguf \
    -p "Qu'est-ce qu'IBM i ?" -n 100 -t 4 --no-cnv
Terminal IBM i PASE exécutant llama.cpp : le binaire XCOFF charge, lie les bibliothèques et répond à un prompt en temps réel
Le contexte

Pourquoi ça a du sens pour un environnement IBM i

En 2026, la conversation sur l'IA dans la communauté IBM i est plus active que jamais. IBM vient de lancer Bob (le successeur de WCA for i), un assistant de codage pour les développeurs RPG. 70 % des clients IBM i prévoient des mises à jour matérielles cette année. Et pourtant, une question reste sans réponse claire :

Comment intégrer un modèle de langage dans mes applications IBM i sans dépendre d'un service externe ?

Les options habituelles aujourd'hui :

OptionCe que ça impliqueLe problème
LPAR LinuxMonter une partition séparée, y faire tourner le LLM, l'appeler depuis RPG via APIInfrastructure supplémentaire, coût additionnel, les données transitent entre partitions
API cloudAppeler OpenAI, Azure ou AWS depuis RPGLes données métier quittent la machine. Problème sérieux en banque, assurance, santé — et potentiellement incompatible avec le RGPD
WallarooL'option 1 packagée comme service500 $/mois. C'est toujours un LPAR Linux avec une étiquette
PASE + llama.cppLe LLM tourne directement dans IBM i via PASEPas de matériel supplémentaire. Les données ne quittent pas la partition.
Et IBM Bob ?
Bob est fait pour le développeur : il aide à comprendre, documenter et générer du code RPG depuis l'IDE. Ce qu'on décrit ici concerne l'application en production : un LLM qui tourne dans la même partition et que n'importe quel programme RPG peut appeler comme une simple API locale. Ce sont des outils complémentaires, pas concurrents.
RGPD et résidence des données

Pour les organisations belges et françaises soumises au RGPD, la question de la résidence des données est non négociable. Une inférence LLM qui s'exécute en local sur IBM i, sans aucun transfert vers un service cloud tiers, est par construction conforme sur ce point. Aucune donnée ne sort de votre infrastructure.

La base technique

PASE : le pont que vous aviez déjà

PASE (Portable Application Solutions Environment) est un environnement d'exécution intégré à IBM i qui exécute des binaires AIX de façon native. Ce n'est pas de l'émulation — c'est une couche qui expose les appels système AIX directement sur le noyau IBM i. Si quelque chose tourne sur AIX, ça peut tourner sur IBM i via PASE.

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

Sur IBM i, llama.cpp est déjà dans le dépôt PASE de base d'IBM — pas besoin d'un port tiers. Pour les systèmes AIX, on maintient toujours notre propre build via le dépôt AIX de LibrePower, avec plus de 30 paquets open source installables via DNF. PASE fait le reste.

Pour les administrateurs IBM i

Vous n'avez rien de spécial à installer sur le système d'exploitation. PASE est déjà actif. Sur IBM i, yum install llama-cpp récupère le binaire directement depuis le dépôt PASE d'IBM. Ajoutez un modèle GGUF big-endian et c'est prêt — le LLM tourne comme n'importe quel processus PASE, sans toucher à l'environnement natif IBM i.

L'obstacle technique

Le problème du big-endian (et comment on l'a résolu)

Il y a une raison pour laquelle personne n'avait fait ça proprement avant : l'ordre des octets. IBM i et AIX sont big-endian. La quasi-totalité des logiciels d'IA — x86, ARM, Linux ppc64le — suppose un ordre little-endian. Un fichier GGUF téléchargé directement depuis HuggingFace ne fonctionne pas sur IBM i : les octets sont dans le mauvais sens.

On avait déjà résolu ce problème dans notre travail sur AIX. La solution : convertir les modèles avant de les distribuer. On les publie sur huggingface.co/librepowerai, validés sur du vrai matériel AIX et prêts à être chargés directement dans IBM i PASE.

ModèleTailleQuantisation
TinyLlama 1.1B Chat668 MoQ4_K_M
LFM 1.2B Instruct695 MoQ4_K_M
LFM 1.2B Thinking731 MoQ4_K_M
7 autres modèles disponibles

Ce sont les mêmes modèles qu'on fait tourner sur AIX POWER, qui se chargent sans conversion sur IBM i via PASE. Sur IBM i POWER10, l'accélération matérielle MMA est disponible via OpenBLAS. Les benchmarks seront publiés séparément une fois les chiffres validés de bout en bout.

De la PoC à la production

De la preuve de concept à la production

Exécuter --help prouve que le binaire charge. Le chemin réel vers quelque chose d'utile pour vos applications comporte trois étapes — et la première est déjà disponible.

Étape 1 : Inférence directe (disponible maintenant)

Depuis n'importe quelle session SSH ou QSH sur l'IBM i :

# Inférence one-shot en ligne de commande
llama-cli \
    -m /chemin/vers/modele.gguf \
    -p "Résume ce bon de commande" -n 200 -t 8 --no-cnv

--no-cnv désactive le mode conversation — à utiliser pour des prompts one-shot dans un script (jobs batch, appels depuis CL, cron). Utile pour les scripts CL, les jobs en batch, ou simplement pour vérifier que le modèle charge et répond correctement sur votre matériel avant d'aller plus loin.

Étape 2 : Serveur API compatible OpenAI (prochainement)

llama.cpp inclut llama-server, qui expose un endpoint HTTP compatible avec l'API OpenAI. Une fois actif dans PASE, n'importe quel programme RPG peut l'appeler via QSYS2.HTTP_POST — comme n'importe quelle autre API :

# Démarrer le serveur d'inférence sur IBM i via PASE
llama-server \
    -m /chemin/vers/modele.gguf \
    --host 0.0.0.0 --port 8080 -t 8
// Appel depuis RPG — le LLM est sur localhost
dcl-s url varchar(256) inz('http://localhost:8080/v1/chat/completions');
dcl-s corps varchar(65535);
dcl-s reponse varchar(65535);
// QSYS2.HTTP_POST — aucune donnée ne quitte IBM i

L'essentiel : localhost. Le modèle est sur la même machine. Les données ne quittent pas la partition.

Étape 3 : Intégration applicative métier (en développement)

  • Analyse de documents : passer des rapports Db2 au LLM pour générer des résumés automatiques
  • Requêtes en langage naturel : l'utilisateur écrit en français, le LLM renvoie du SQL
  • Modernisation du code RPG : le LLM analyse et documente les programmes existants sans quitter IBM i
  • Supervision intelligente : analyser les messages QSYSOPR et les journaux de travaux avec un contexte sémantique
Une note sur les performances : les petits modèles (1–2 milliards de paramètres) dans PASE sont largement suffisants pour la classification, le résumé, l'extraction de données structurées et les réponses à format fixe. Pour la génération de texte plus longue ou le raisonnement complexe, les modèles 7B+ scalent bien avec davantage de threads. Les benchmarks sur matériel IBM i de production sont en cours de préparation.
Hands-on

Comment l'essayer vous-même

Si vous avez accès à un IBM i avec PASE actif, c'est trois étapes.

1. Installer llama.cpp

Sur IBM i : llama.cpp est déjà dans le dépôt PASE de base d'IBM — pas besoin d'un port tiers.

# Depuis QSH ou SSH sur l'IBM i
yum install llama-cpp

Sur AIX : utilisez notre port depuis aix.librepower.org (sources et packaging sur gitlab.com/librepower/aix, sous llama-aix/RPMS/).

# Sur AIX avec DNF configuré contre aix.librepower.org
dnf install llama-cpp

2. Télécharger un modèle big-endian

# Dépôt du modèle : https://huggingface.co/librepowerai/tinyllama-1.1b-chat-be
# Récupérez le lien du .gguf depuis l'onglet "Files", puis :
curl -LO https://huggingface.co/librepowerai/tinyllama-1.1b-chat-be/resolve/main/<fichier>.gguf

TinyLlama est un bon point de départ : petit, chargement rapide, suffisant pour vérifier que tout fonctionne avant de passer à des modèles plus grands.

3. Lancer l'inférence

llama-cli \
    -m tinyllama-1.1b-chat-be.gguf \
    -p "Qu'est-ce qu'IBM i ?" \
    -n 150 -t 4 --no-cnv
Avertissement de démarrage inoffensif

Au premier lancement, vous verrez quelque chose comme ggml_backend_load_best: search path does not exist. C'est cosmétique — llama.cpp cherche des backends optionnels qui ne sont pas installés. L'inférence tourne normalement, ignorez ce message.

Des systèmes IBM i en production ?

SIXE accompagne des organisations belges et françaises dans la gestion de leurs environnements IBM i depuis des années. Si vous voulez évaluer si cette approche correspond à votre architecture — ou comprendre ce qu'elle implique pour vos applications RPG — contactez-nous, sans engagement.

Feuille de route

La suite

C'est une preuve de concept solide, pas un produit fini. Voici ce qu'on prévoit de faire ensuite :

  • llama-server sur IBM i — le serveur API HTTP dans PASE, documenté et packagé pour que vous puissiez le lancer en quelques minutes
  • Exemples d'intégration RPG — du vrai code d'appel au LLM depuis des programmes RPG via QSYS2.HTTP_POST
  • Benchmarks IBM i POWER10/POWER11 — des mesures sur du matériel de production
  • Modèles plus grands — tests avec des modèles 7B+ sur des partitions avec suffisamment de mémoire
  • vLLM pour IBM i — notre paquet vLLM pour ppc64le, adapté pour tourner dans PASE

Autres projets LibrePower

ProjetCe qu'il fait
aix.librepower.orgPlus de 30 paquets open source pour AIX (llama.cpp inclus), installables via DNF
huggingface.co/librepoweraiModèles GGUF big-endian prêts pour AIX et IBM i PASE
linux.librepower.orgDépôt APT avec vLLM pour Linux ppc64le (Ubuntu/Debian)
gitlab.com/librepower/aixSources, patches et packaging du port AIX (RPM dans llama-aix/RPMS/)

IBM i avec PASE ?

Testez le LLM sur votre propre partition

Sur IBM i, llama.cpp est à un yum install llama-cpp — il est livré dans le dépôt PASE de base d'IBM. Les modèles big-endian sont sur HuggingFace. Si vous avez accès à PASE et quelques minutes, vous pouvez reproduire exactement ce qu'on décrit ici :)