Qu’est-ce qu’Ollama ?
Ollama est une plateforme open-source qui permet d’exécuter localement de grands modèles de langage (LLM) sur votre ordinateur personnel, même avec des ressources limitées. C’est une solution idéale pour travailler avec des modèles tels que Llama 3, Mistral ou Falcon sans dépendance au cloud.
Fonctionnalités principales :
- Exécution locale des LLM : Utilisez des modèles comme Llama 3 directement sur votre machine pour une meilleure confidentialité.
- Gestion simplifiée des modèles : Ollama utilise un fichier unique, appelé Modelfile, pour regrouper tous les éléments nécessaires à l’exécution d’un modèle.
- Optimisation des ressources : Grâce à
llama.cpp
, les modèles 7B peuvent tourner avec seulement 8 Go de RAM. - Compatibilité multiplateforme : Fonctionne sur Linux, macOS et Windows, avec une intégration Docker pour un déploiement simplifié.
Alors, qu’est-ce qu’Ollama et quel est son lien avec les LLMs ?
Pour faire simple, c’est comme un système de contrôle de version pour les modèles de langage (LLMs). C’est une solution légère, conviviale et conteneurisée (Docker) pour héberger des LLMs localement sur vos appareils.
Avantages de l’utilisation d’Ollama
- Facilité d’installation : Avec Ollama, la configuration de votre propre chatbot de console LLM est remarquablement plus facile que les méthodes traditionnelles. Cette simplicité rend le développement de l’IA plus accessible aux développeurs et aux passionnés.
- Interface conviviale : Ollama offre une interface conviviale qui facilite la gestion des modèles, réduisant ainsi le besoin d’une expertise technique approfondie.
- Gestion efficace des ressources : Il gère efficacement les ressources, garantissant que votre LLM fonctionne avec des performances optimales.
- Portabilité: Comme Ollama utilise Docker, les environnements créés sont portables et reproductibles sur différents systèmes supportant Docker.
- Communauté et support: Ollama bénéficie d’une communauté active, ce qui signifie une meilleure documentation, plus de tutoriels et une résolution de problèmes plus rapide.
- Sécurité: En exécutant des LLMs localement, vous gardez le contrôle total de vos données. Ceci est particulièrement important pour les applications traitant des informations sensibles.
Imaginons que vous souhaitiez votre propre chatbot de console LLM hébergé localement. Comment faire ?
Sans Ollama : Écrire un script Python en utilisant Langchain, maintenir une copie locale du LLM et exécuter le script.
Voici le code pour cela :
- Initialiser un environnement virtuel Python, installer les packages requis.
# Créer un répertoire de projet
$ mkdir llm_chatbot
$ cd llm_chatbot
$ mkdir models
# Initialiser un environnement virtuel
$ python3 -m venv venv
$ source venv/bin/activate
# Installer les packages requis
$ pip install langchain llama-cpp-python
- Télécharger un fichier de modèle LLAMA2 dans le répertoire
models
. Par exemple, le modèle Llama-2-7B-Chat-GGUF de TheBloke, qui est un modèle relativement compact de 7 milliards de paramètres.
llm_chatbot.py
:
from langchain_community.llms import LlamaCpp
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
# Charger le modèle de langage LlamaCpp, ajuster l'utilisation du GPU en fonction de votre matériel
llm = LlamaCpp(
model_path="models/llama-2-7b-chat.Q4_0.gguf",
n_gpu_layers=40, # Nombre de couches à utiliser sur le GPU
n_batch=512, # Taille du lot pour le traitement du modèle
verbose=False, # Activer la journalisation détaillée pour le débogage
n_ctx=2048 # Augmentation de la taille du contexte
)
# Définir le modèle de prompt avec un espace réservé pour la question
template = """
Question: {question}
Answer:
"""
prompt = PromptTemplate(template=template, input_variables=["question"])
# Créer une LLMChain pour gérer les interactions avec le prompt et le modèle
llm_chain = LLMChain(prompt=prompt, llm=llm)
print("Chatbot démarré ...")
while True:
question = input("> ")
if question.lower() == 'exit': # Ajout d'une condition de sortie
print("Arrêt du chatbot...")
break
answer = llm_chain.run(question)
print(answer, '\n')
Avec Ollama :
Utiliser Ollama est beaucoup plus simple que la configuration ci-dessus. Voici un guide étape par étape :
Installer Ollama sur votre système :
- Mac OS : Utiliser
brew
pour installer :$ brew install ollama
- Windows : Télécharger et installer depuis le site officiel Ollama.
- Linux : Exécuter le script d’installation en utilisant
curl
:$ curl -fsSL https://ollama.com/install.sh | sh
Télécharger le modèle de votre choix :
Vous pouvez trouver différents modèles sur https://ollama.com/library. L’exemple ci-dessous utilise Llama 2, mais vous pouvez également utiliser Llama 3.
$ ollama pull llama2
Vous pouvez aussi utiliser la commande ollama list
pour lister les modèles téléchargés.
Exécuter le modèle :
$ ollama run llama2
>>> what is the age of elon musk
As of my knowledge cutoff in December 2023, Elon Musk's age was 51 years
old. He was born on June 28, 1971.
>>> Send a message (/? for help)
Vous pouvez également démarrer le serveur Ollama en arrière-plan avec la commande ollama serve
.
Voilà ! Et c’est tout ! Votre chatbot de console est maintenant opérationnel. Mais vous vous demandez peut-être… comment pouvons-nous passer à la vitesse supérieure et créer une expérience utilisateur similaire à celle de ChatGPT ?
La réponse réside dans l’exploitation de projets open-source comme Open-WebUI. En quelques clics, vous pouvez intégrer ce puissant framework d’interface utilisateur à votre image Docker, ouvrant ainsi un monde de possibilités. Open-WebUI fournit une interface web conviviale et intuitive qui permet d’interagir avec les LLMs hébergés par Ollama de manière plus naturelle et visuelle, similaire à l’interface de ChatGPT.
Informations Supplémentaires:
- Intégration avec Open-WebUI: Pour intégrer Open-WebUI avec Ollama, vous pouvez lancer Open-WebUI dans un conteneur Docker et le connecter au serveur Ollama. Vous devrez ensuite configurer l’adresse du serveur Ollama dans les paramètres d’Open-WebUI.
- Personnalisation d’Ollama: Ollama permet de personnaliser les modèles de langage en utilisant des “Modelfiles”. Les Modelfiles permettent de définir des paramètres spécifiques au modèle, tels que la température, le top-k, le top-p, qui influencent la créativité et la cohérence des réponses générées.
- API Ollama: Ollama fournit une API REST qui permet d’interagir avec les modèles de langage par programme. Cela offre une grande flexibilité pour intégrer les LLMs dans des applications personnalisées.
- Autres Modèles: Outre Llama 2 et Llama 3, Ollama supporte de nombreux autres modèles de langage, tels que Mistral, Codellama, Phi-2, etc. Vous pouvez consulter la liste complète sur le site officiel d’Ollama.
En conclusion, Ollama simplifie grandement le déploiement et la gestion des LLMs localement. Associé à des interfaces utilisateur comme Open-WebUI, il offre une alternative puissante et accessible aux solutions basées sur le cloud comme ChatGPT, tout en garantissant un meilleur contrôle sur vos données et une plus grande flexibilité.