L’objectif de ce tutoriel est de montrer comment réaliser une installation d’un serveur local Ollama. Une fois le serveur fonctionnel, nous verrons également la méthode à suivre qui nous permettra de télécharger et d’exécuter un LLM sur les clusters.
Avant de procéder à l’installation du serveur, nous allons définir plus précisément ce qu’est Ollama, et ce que ce serveur nous permettra de faire. Ollama est un outil permettant d’exécuter des modèles de langage localement. Lorsque nous installons Ollama localement, nous avons la possibilité de créer un pont entre le serveur distant où se situent toutes les informations des modèles, et notre serveur local. Grâce à ce serveur local, nous pouvons télécharger et exécuter tous les modèles disponibles dans la base de données d’Ollama. Il est donc possible de télécharger plusieurs modèles, et d’ouvrir un chat avec tous ceux installés localement.
Si ces deux prérequis ne sont pas remplis, vous pouvez consulter la documentation pour la création d’un compte Perseus et pour la connexion aux clusters. Pour ce tutoriel, nous travaillerons sur le cluster Bigfoot.
Les étapes à suivre qui sont décrites dans ce tutoriel peuvent s’avérer lourdes en terme d’utilisation de ressources. Il est donc nécessaire de se connecter à un nœud interactif Bigfoot. Pour cela, utilisez la ligne suivante depuis la frontale de Bigfoot :
oarsub -l /nodes=1/gpu=1/migdevice=1 --project project_name -t devel -I
Ensuite, il faudra se rendre dans le dossier du projet dans lequel l’installation sera réalisée. Il est possible de faire une installation dans le dossier commun de chaque projet, ou dans votre dossier personnel du projet. L’exemple ci-dessous montre comment vous pouvez vous rendre sur un noeud de développement Bigfoot et accéder à votre dossier personnel dans le projet de votre choix.
Linux bigfoot 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
Welcome to Bigfoot cluster!
: :
.' :
_.-" :
_.-" '.
..__...____...-" :
: \_\ :
: .--" :
`.__/ .-" _ :
/ / ," ,- .'
(_)(`,(_,'L_,_____ ____....__ _.'
"' " """"""" """
GPU, GPU, GPU, ... ;-)
Type 'chandler' to get cluster status
Type 'recap.py' to get cluster properties
Please, read the doc:
https://gricad-doc.univ-grenoble-alpes.fr/hpc/joblaunch/
Sample OAR submissions:
# Get a A100 GPU and all associated cpu and memory resources:
oarsub -l /nodes=1/gpu=1 --project test -p "gpumodel='A100'" "nvidia-smi -L"
# Get a MIG partition of an A100 on a devel node, to make some tests
oarsub -l /nodes=1/gpu=1/migdevice=1 --project test -t devel "nvidia-smi -L"
Last login: Fri Jul 25 11:52:44 2025 from 129.88.196.128
login@bigfoot:~$ oarsub -l /nodes=1/gpu=1/migdevice=1 --project project_name -t devel -I
[DEVEL] Adding devel resource constraints
[MIG] Automatically adding the mig constraint
[WARNING] 'gpumodel' not specified!
[WARNING] it is recommended to specify the gpumodel to use, for example:
[WARNING] -p "gpumodel='A100' or gpumodel='V100'"
[WARNING] or:
[WARNING] -p "gpumodel!='T4'"
[ADMISSION RULE] Adding gpubrand=nvidia constraint by default
[ADMISSION RULE] Use -t amd if you want to use AMD GPUs
[ADMISSION RULE] Set default walltime to 7200.
[ADMISSION RULE] Modify resource description with type constraints
OAR_JOB_ID=3461326
Interactive mode: waiting...
[2025-07-25 13:11:41] Start prediction: 2025-07-25 13:11:41 (R=4,W=2:0:0,J=I,P=project_name,T=devel (Karma=0.038,quota_ok))
Starting...
Connect to OAR job 3461326 via the node bigfoot7
login@bigfoot7:~$ cd /bettik/PROJECTS/project_name/login
Nous allons maintenant pouvoir créer un dossier qui sera celui dans lequel nous réaliserons toutes les installations. Il suffit d’exécuter la commande suivante en y ajoutant vos noms de projets et login.
OLLAMA_ROOT=/bettik/PROJECTS/project_name/login/ollama
mkdir -p ${OLLAMA_ROOT}
Il existe de nombreuses releases d’Ollama, et nous allons devoir sélectionner celle que nous souhaitons installer. Afin de se simplifier la tache, vous pouvez accèder directement à la dernière release sortie, ou naviguer parmi toutes les releases existantes. Au moment de l’écriture de ce tutoriel, la dernière release est la 0.9.6. En insérant la version souhaitée, vous allez pouvoir jouer les commandes ci-dessous :
OLLAMA_VERSION=v0.9.6
OLLAMA_VERSION_URL=https://github.com/ollama/ollama/releases/download/${OLLAMA_VERSION}/ollama-linux-amd64.tgz
mkdir -p ${OLLAMA_ROOT}/${OLLAMA_VERSION} && wget -O - ${OLLAMA_VERSION_URL} 2>wget.err | tar xzvf - -C ${OLLAMA_ROOT}/${OLLAMA_VERSION}
Les modèles installés peuvent être dépendant de la version d’Ollama choisie. On créera donc un espace de stockage pour l’installation de chaque version, dans le répertoire .ollama. On pourra utiliser la variable d’environnement d’Ollama que l’on définira :
export OLLAMA_MODELS=${OLLAMA_ROOT}/${OLLAMA_VERSION}/.ollama
Ensuite, nous allons faire en sorte, grâce aux fichiers précédemment téléchargés, d’ajouter les commandes Ollama à notre environnement grâce à un fichier Shell. Nous allons donc créer le fichier, l’ouvrir et y ajouter du contenu. Pour commencer, en étant situé dans le dossier ollama, créez le fichier grâce à la commande :
login@bigfoot7:/bettik/PROJECTS/project_name/login/ollama$ touch env_ollama-${OLLAMA_VERSION}.sh
Puis, ouvrez le fichier dans vim grâce à la commande vim env_ollama-${OLLAMA_VERSION}.sh
, appuyez sur la touche i de votre clavier pour pouvoir insérer du texte et collez le texte du dessous, en le modifiant selon vos besoins.
OLLAMA_VERSION=your_ollama_version
OLLAMA_ROOT=/bettik/PROJECTS/project_name/login/ollama
# Ollama environment
export LD_LIBRARY_PATH=${OLLAMA_ROOT}/${OLLAMA_VERSION}/lib:${LD_LIBRARY_PATH}
export PATH=${OLLAMA_ROOT}/${OLLAMA_VERSION}/bin:${PATH}
export OLLAMA_MODELS=${OLLAMA_ROOT}/${OLLAMA_VERSION}/.ollama
Une fois tout le contenu ajouté au fichier, appuyez sur la touche Echap, écrivez :wq et appuyez sur la touche Entrée. Vous pouvez vérifier le contenu du fichier en écrivant cat env_ollama-${OLLAMA_VERSION}.sh
.
Enfin, nous allons rendre ce fichier exécutable, grâce à la commande chmod +x env_ollama-${OLLAMA_VERSION}.sh
.
A ce stade, nous avons tous les fichiers nécessaires pour pouvoir démarrer notre serveur. Toutes les étapes précedemment mentionnées ne doivent être réalisées qu’une seule fois par version d’Ollama. Nous allons maintenant démarrer le serveur et charger des modèles, toutes ces étapes doivent obligatoirement être faites depuis un noeud de développement Bigfoot. Afin d’avoir accès aux commandes spécifiques de Ollama, il nous faut commencer par sourcer le fichier Shell :
login@bigfoot7:/bettik/PROJECTS/project_name/login/ollama$ source env_ollama-your_ollama_version.sh
Vous pouvez ensuite démarrer le serveur en tâche de fond grâce à la commande :
ollama serve &>ollama-server.log &
A partir de ce point, le serveur Ollama tourne en arrière plan, et nous pouvons exécuter toutes les commandes pour la gestion des modèles. La liste des commandes disponibles est accesible grâce à ollama help
. Les commandes les plus utiles sont :
ollama list
pour lister tous les modèles téléchargés.ollama pull mistral
pour télécharger un modèle, par exemple mistral.ollama run mistral
afin de démarrer l’agent conversationnel avec le LLM sélectionné, par exemple mistral.Lorsque l’agent conversationnel est lancé, il est alors possible de converser avec le LLM. Pour quitter cet agent conversationnel, il suffit d’écrire \bye. Enfin, le serveur sera automatiquement éteint lorsque vous vous déconnecterez du noeud sur lequel vous êtes.