Accéder au contenu principal

Comment configurer et faire fonctionner Gemma 3 localement avec Ollama

Apprenez à installer, configurer et exécuter Gemma 3 localement avec Ollama et créez un assistant de fichiers simple sur votre propre appareil.
Actualisé 17 mars 2025  · 12 min de lecture

Google DeepMind vient de publier Gemma 3, la prochaine itération de ses modèles open-source. Gemma 3 est conçu pour fonctionner directement sur des appareils à faibles ressources comme les téléphones et les ordinateurs portables. Ces modèles sont optimisés pour des performances rapides sur un seul GPU ou TPU et sont disponibles en différentes tailles pour répondre à différents besoins matériels.

Dans ce tutoriel, je vais vous expliquer pas à pas comment configurer et exécuter Gemma 3 localement à l'aide d'Ollama. Une fois que nous aurons fait cela, je vous montrerai comment vous pouvez utiliser Gemma 3 et Python pour construire un assistant de fichiers.

Pourquoi faire fonctionner Gemma 3 localement ?

L'exécution locale d'un grand modèle linguistique (LLM) tel que Gemma 3 présente plusieurs avantages majeurs :

  • Vie privée : Les données restent sur l'appareil, protégeant ainsi les informations sensibles.
  • Faible latence : Élimine la nécessité d'une transmission par internet, ce qui permet d'obtenir des réponses plus rapides.
  • Personnalisation : Les modèles peuvent être adaptés aux besoins et aux expériences spécifiques.
  • Le rapport coût-efficacité : Réduit les frais d'utilisation du cloud en utilisant le matériel existant.
  • Accès hors ligne : Les applications restent opérationnelles sans connectivité internet.
  • Contrôle : Renforcement de la sécurité et du contrôle de notre environnement informatique.

Installer Gemma 3 localement avec Ollama

Installation d'Ollama

Ollama est une plateforme disponible pour Windows, Mac et Linux qui permet d'exécuter et de distribuer des modèles d'IA, facilitant ainsi l'intégration de ces modèles dans les projets des développeurs. Nous l'utiliserons pour télécharger et exécuter Gemma 3 localement.

La première étape consiste à le télécharger et à l'installer à partir du le site officiel d'Ollama.

Télécharger Ollama pour utiliser gemma 3 localement

Lors de l'installation, assurez-vous d'installer la ligne de commande :

Installer Ollama en ligne de commande

Une fois l'installation terminée, nous pouvons vérifier qu'elle s'est déroulée correctement à l'aide de la commande ollama dans le terminal. Voici ce que devrait être le résultat :

Vérification de l'installation d'Ollama

Télécharger Gemma 3

Pour télécharger un modèle avec Ollama, utilisez la commande pull:

ollama pull <model_name>:<model_version>

La liste des modèles disponibles se trouve dans la la bibliothèque d'Ollama.

Gemma 3Gemma 3, en particulier, dispose de quatre modèles : 1b 4b , 12b, et 27b, où b signifie milliard, c'est-à-dire le nombre de paramètres dans le modèle.

Par exemple, pour télécharger gemma3 avec les paramètres 1b, nous utilisons la commande :

ollama pull gemma3:1b

Si vous ne spécifiez pas la version du modèle, le modèle 4b sera téléchargé par défaut :

ollama pull gemma3

Liste des modèles locaux

Nous pouvons lister les modèles dont nous disposons localement en utilisant la commande suivante :

ollama list

Dans mon cas, le résultat montre que j'ai deux modèles : 

NAME             ID              SIZE      MODIFIED       
gemma3:1b        2d27a774bc62    815 MB    38 seconds ago    
gemma3:latest    c0494fe00251    3.3 GB    22 minutes ago 

Chatter dans le terminal

Nous pouvons utiliser Ollama pour discuter avec un modèle à l'aide de la commande run:

ollama run gemma3

Discussion avec Ollama et Gemma 3 dans le terminal

Notez que si nous utilisons la commande run avec un modèle que nous n'avons pas téléchargé, il sera téléchargé automatiquement à l'aide de pull.

Exécution de Gemma 3 en arrière-plan

Pour utiliser Gemma 3 avec Python, nous devons l'exécuter en arrière-plan. Nous pouvons le faire en utilisant la commande serve:

ollama serve

Si vous obtenez l'erreur suivante lors de l'exécution de la commande, cela signifie probablement qu'Ollama est déjà en cours d'exécution :

Error: listen tcp 127.0.0.1:11434: bind: address already in use

Cette erreur peut se produire lorsque Ollama continue à fonctionner en arrière-plan.

Utilisation locale de Gemma 3 avec Python

Configurer l'environnement Python

Ollama propose un package Python pour se connecter facilement avec les modèles qui tournent sur notre ordinateur.

Nous utiliserons Anaconda pour mettre en place un environnement Python et ajouter les dépendances nécessaires. Cette façon de procéder permet d'éviter d'éventuels problèmes avec d'autres paquets Python que nous pourrions déjà avoir.

Une fois Anaconda installé, nous pouvons configurer l'environnement en utilisant la commande :

conda create -n gemma3-demo -y python=3.9

Cette commande met en place un environnement appelé gemma3-demo utilisant la version de Python 3.9. L'option -y permet de répondre automatiquement par l'affirmative à toutes les questions posées lors de l'installation.

Ensuite, nous activons l'environnement à l'aide de :

conda activate gemma3-demo

Enfin, nous installons le paquet ollama à l'aide de la commande :

pip install ollama

Envoyer un message à Gemma 3 avec Python

Voici comment nous pouvons envoyer un message à Gemma 3 en utilisant Python :

from ollama import chat
response = chat(
    model="gemma3",
    messages=[
        {
            "role": "user",
            "content": "Why is the sky blue?",
        },
    ],
)
print(response.message.content)

En fonction de votre matériel, le modèle peut mettre un certain temps à répondre, soyez donc patient lors de l'exécution du script.

Nous avons vu précédemment que gemma3 renvoie par défaut à gemma3:4b. Ainsi, lorsque nous spécifions model="gemma3" comme modèle, c'est celui-ci qui sera utilisé.

Pour utiliser un autre modèle, par exemple le modèle 1B, il faut passer l'argument model=”gemma3:1b” à la place (à condition de l'avoir tiré au préalable à l'aide de la commande ollama pull gemma3:1b ). Pour dresser la liste des modèles disponibles, nous pouvons utiliser la commande ollama list.

Si vous souhaitez lire la réponse mot par mot, vous pouvez utiliser stream=True et imprimer la réponse morceau par morceau :

from ollama import chat
stream = chat(
    model="gemma3",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    stream=True,
)
for chunk in stream:
    print(chunk["message"]["content"], end="", flush=True)

L'utilisateur bénéficie ainsi d'une meilleure expérience, car il n'a pas à attendre que la réponse complète soit générée.

Pour en savoir plus sur le paquetage ollama, consultez leur documentation.

Création d'un assistant de fichiers à l'aide de Gemma 3

Dans cette section, nous apprenons à construire un script Python qui nous permet de poser des questions sur le contenu d'un fichier texte directement depuis le terminal. Ce script sera utile pour des tâches telles que la recherche de bogues dans un fichier de code ou l'interrogation d'informations à partir de n'importe quel document.

Vue d'ensemble du script

Notre objectif est de créer un outil en ligne de commande utilisant Python qui lit un fichier texte et utilise Gemma 3 pour répondre aux questions liées à son contenu. Voici le guide étape par étape pour y parvenir :

Mise en place de la structure du script

Tout d'abord, nous devons configurer le script Python avec les importations nécessaires et la structure de base :

import sys
from ollama import chat
def ask_questions_from_file(file_path):
    # Read the content of the text file
    with open(file_path, "r") as file:
        content = file.read()
    # Loop to keep asking questions
    while True:
        question = input("> ")
        print()
        if question.lower() == "exit":
            break
        # Use Gemma 3 to get answers
        stream = chat(
            model="gemma3",
            messages=[
                {"role": "user", "content": content},
                {"role": "user", "content": question},
            ],
            stream=True,
        )
        for chunk in stream:
            print(chunk["message"]["content"], end="", flush=True)

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python ask_file.py <path_to_text_file>")
    else:
        file_path = sys.argv[1]
        ask_questions_from_file(file_path)

La fonctionnalité principale est encapsulée dans la fonction ask_questions_from_file(). Cette fonction prend un chemin de fichier comme argument et commence par ouvrir et lire le contenu du fichier texte spécifié. Ce contenu sera utilisé comme information de base pour répondre aux questions.

Une fois le contenu du fichier chargé, le script entre dans une boucle où il nous invite continuellement à saisir des questions. Lorsque nous tapons une question, le script envoie le contenu du fichier ainsi que notre question au modèle Gemma 3, qui traite ces informations pour générer une réponse.

L'interaction avec le modèle se fait par le biais d'un mécanisme de flux, qui permet d'afficher les réponses en temps réel, au fur et à mesure qu'elles sont générées. Si nous tapons exit, la boucle est interrompue et le script s'arrête.

À la fin du script, une vérification est effectuée pour s'assurer que le script est exécuté correctement avec un argument de ligne de commande, qui doit être le chemin d'accès au fichier texte. Si l'argument n'est pas fourni, il affiche un message d'utilisation pour nous guider sur la manière correcte d'exécuter le script. Cette configuration nous permet de diriger efficacement le script à partir de la ligne de commande.

Exécution du script

Enregistrez le code ci-dessus dans un fichier nommé, par exemple, ask.py. Pour tester le script, exécutez la commande :

python ask.py ask.py

Cela permet au script de se poser des questions sur lui-même (c'est pourquoi ask.py apparaît deux fois dans la commande ci-dessus). Voici un exemple de demande d'explication du fonctionnement du script :

Utiliser le script pour utiliser Gemma 3 localement en tant qu'assistant de fichiers

Conclusion

Nous avons réussi à mettre en place et à apprendre à faire fonctionner Gemma 3 localement en utilisant Ollama et Python. Cette approche garantit la confidentialité de nos données, offre une faible latence, propose des options de personnalisation et peut permettre de réaliser des économies. Les étapes que nous avons abordées ne se limitent pas à Gemma 3 : elles peuvent également être appliquées à d'autres modèles hébergés sur Ollama.

Si nous voulons améliorer la fonctionnalité de notre script, nous pouvons, par exemple, étendre ses capacités à la gestion des PDF. La meilleure façon d'y parvenir est d'utiliser le logiciel Mistral OCR DE MISTRAL. Nous pouvons convertir les fichiers PDF en texte, ce qui permet à notre script de répondre à des questions sur les PDF, le rendant ainsi encore plus polyvalent et puissant.

Grâce à ces outils, nous sommes désormais en mesure d'explorer et d'interagir avec de grands modèles à partir de nos propres appareils.

FAQ

Quelle est la configuration matérielle requise pour faire fonctionner Gemma 3 localement ?

La possibilité d'exécuter Gemma 3 localement dépend de la taille spécifique du modèle que vous choisissez de télécharger. Les petits modèles comme gemma3:1b sont conçus pour être efficaces et peuvent fonctionner sur des appareils moins puissants, comme les ordinateurs portables dotés d'un seul GPU ou même certaines tablettes très puissantes. Les modèles plus importants tels que gemma3:27b nécessitent davantage de ressources informatiques, telles qu'une station de travail multicœur dotée d'un GPU haut de gamme. Vérifiez toujours les spécifications de votre appareil par rapport aux ressources requises pour le modèle afin de garantir la compatibilité.

Puis-je utiliser plusieurs instances de Gemma 3 simultanément ?

Oui, vous pouvez exécuter plusieurs instances de Gemma 3 simultanément, à condition que vos ressources matérielles (CPU, GPU et mémoire) soient suffisantes pour supporter la charge de calcul supplémentaire. Chaque instance du modèle fonctionnant en arrière-plan consommera des ressources système supplémentaires. Assurez-vous donc que votre système peut gérer les processus multiples sans dégradation significative des performances.

Est-il nécessaire d'utiliser Anaconda pour mettre en place un environnement Python ?

Bien qu'Anaconda soit fortement recommandé pour sa facilité à créer des environnements isolés, à gérer les dépendances et à éviter les conflits avec d'autres paquets Python, il n'est pas strictement nécessaire. Vous pouvez également utiliser d'autres outils d'environnement virtuel tels que venv ou virtualenv.

Sujets

Apprenez l'IA avec ces cours !

Cours

Retrieval Augmented Generation (RAG) with LangChain

3 hr
4.6K
Learn cutting-edge methods for integrating external data with LLMs using Retrieval Augmented Generation (RAG) with LangChain.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus