Llama.cpp : Faire tourner un modèle (LLM) sur son IBM i

24 Mar 2026 | Développement, IA, Open Source

On parle beaucoup d’IA et de LLM. Sachez que l’IBM i n’est pas en reste ! Il est possible de faire tourner des LLM localement sur notre IBM i. 

Cela est rendu accessible grâce à un package open source : llama-cpp. 

Llama CPP (Llama C++) est un outil qui facilite l’inférence avec un LLM. C’est bien beau mais l’inférence, qu’est-ce que c’est ? 

Il s’agit de l’interrogation d’un modèle, quand on interroge un LLM (et qu’il nous répond, c’est mieux…) il s’agit d’inférence  

Llama CPP est un logiciel Open Source conçu pour être universel : il est censé s’intégrer facilement quel que soit son environnement. 

Voyons voir comment l’intégrer sur un IBM i. 

Un package RPM

Qui dit open source sur l’IBM i dit package RPM et dit YUM. Disponible dans le repo de base IBM, il est compatible pour les versions 7.3 et +. 

Pour l’installer, on peut choisir notre mode favori : 

En ligne de commande :

yum install llama-cpp 

Ou depuis le gestionnaire de package open source d’ACS : 

L’affaire est réglée ! On peut vérifier que tout fonctionne avec : llama-cli –help 

Si ça ne fonctionne pas, vérifier que le PATH contient bien : /QOpenSys/pkgs/bin 

Le modèle

On a notre Llama.cpp, il ne nous manque « plus que » le modèle, le LLM avec qui on va interagir. 

Pour cela, on est assez limité, il faut trouver un modèle compatible avec l’IBM i, on trouve ce repo Hugging Face qui les liste :  

https://huggingface.co/models-for-i 

Il suffit d’en télécharger un sur notre IBM i. On peut le faire par exemple en SSH avec curl : 

curl -L -o Llama-3.2-1B-Instruct-f32-be.gguf \ 

  https://huggingface.co/models-for-i/Llama-3.2-1B-Instruct/resolve/main/Llama-3.2-1B-Instruct-f32-be.gguf 

On retrouve ce lien dans l’onglet « files and versions » du modèle choisi sur Hugging Face, puis en cliquant sur l’option « copy download link » du modèle choisi.

Et maintenant, le test

On a toutes les briques : llama.cpp, le modèle. Il n’y a plus qu’à tester, pour cela llama-cli –help nous propose la commande suivante :  

llama-cli -m your_model.gguf -p « I believe the meaning of life is » -n 128 -no-cnv 

On remplace ça par les bonnes informations :  

llama-cli -m models/Llama-3.2-1B-Instruct-f32-be.gguf -p « I believe the meaning of life is » -n 128 -no-cnv 

Et on attend la réponse !  

Si ça fonctionne mais que c’est long : C’est parce que le modèle est en float32 (on voit f32 dans le nom du modèle) ce qui est très lourd et qui ne représente pas de gain direct pour de l’inférence.  

Petit point, quand on parle de float32, on parle de la précision des paramètres d’un LLM, ce LLM est « petit » : il n’a qu’un milliard de paramètres. Si on baisse la précision de ces paramètres nous allons grandement gagner en vitesse ! 

Pour cela on « quantize », c’est-à-dire qu’on quantifie en français.

« Quantizer » (ou quantifier) un modèle

Llama CPP permet de quantifier un modèle : On précise le modèle et le niveau de quantification : 

llama-quantize models/Llama-3.2-1B-Instruct-f32-be.gguf Llama-3.2-1B-Instruct-Q4_K_M.gguf Q4_K_M 

Ici on passe de 32 bits à 4 bits, on réduit donc d’un facteur 8 le nombre de bits par paramètre. C’est souvent ce qui est utilisé pour conserver un bon ratio vitesse/précision. 

En relançant la commande, la réponse devrait être beaucoup plus rapide : 

llama-cli -m models/Llama-3.2-1B-Instruct-Q4_K_M.gguf -p « I believe the meaning of life is » -n 128 -no-cnv

Pour aller plus loin

L’intérêt de faire tourner un modèle local est le plus souvent lié à des problématiques de confidentialité. En effet, tout ce qui est demandé localement à un modèle ne sortira jamais de ce cadre. 

L’IBM i étant connu et reconnu pour sa robustesse et sa sécurité, c’est l’endroit le plus sûr pour nos données. Donc faire tourner un modèle en local sur notre IBM i est la manière la plus sûre de contrôler nos données.  

On peut aussi lancer un serveur en utilisant le modèle. Pour cela Llama cpp nous fournit llama-server, un serveur HTTP léger qui permet d’exécuter localement des modèles et de les exposer via une API. On doit préciser le nom du modèle et le port : 

llama-server -m models/Llama-3.2-1B-Instruct-Q4_K_M.gguf –port 8085 

Pour le tester on peut utiliser curl : 

curl http://127.0.0.1:8085/v1/chat/completions \ 
-H « Content-Type: application/json » \ 
-d ‘{ 
« messages »: [{« role »: « user », « content »: « Hello »}] 
}’ 

On peut donc imaginer un chatbot entièrement IBM i : sur nos écrans 5250, développé en RPG et utilisant un modèle local !  

Cependant les modèles disponibles sur l’IBM i ne sont pas encore très puissants et limités par la puissance accessible. On pourrait les rendre plus performants avec un RAG par exemple. 

Le RAG (Retrieval Augmented Generation) est un pattern très répandu dans le monde de l’intelligence artificiel, vous pouvez retrouver un lien vers une présentation de la power-week 2025 sur l’utilisation de ces derniers pour améliorer les performances d’un LLM sur des sujets spécifiques à l’IBM i. 

Remerciements

Un grand merci à l’ensemble des contributeurs des projets pour leur travail et leur engagement en faveur de l’ouverture de l’IBM i au monde moderne. Merci aussi à Adam Shedivy pour ces nombreux articles et travaux à propos d’IA sur l’IBM i. Vous pouvez retrouver ici un lien vers son blog. 

Envie d’en savoir plus sur l’intelligence artificielle sur IBM i, Llama CPP ou besoin d’accompagnement sur ces sujets ?