cybedroid
menu
visiteur@cybedroid:~/intelligence-artificielle/ollama-embeddings$
Intelligence artificielle

Ollama embeddings transforme vos textes en vecteurs pour la recherche locale

Ollama embeddings transforme vos textes en vecteurs pour la recherche sémantique. Choisissez un modèle, appelez l’API locale et vérifiez les résultats.

Ordinateur portable ouvert sur bureau lumineux près d'une plante et d'un carnet

Dans une recherche classique, un mot-clé absent de la requête peut empêcher de retrouver un passage pourtant pertinent. Avec des embeddings, votre application compare les représentations numériques des textes et de la question pour repérer des contenus proches par leur sens. Ollama fournit des modèles dédiés et une API locale pour produire ces vecteurs ; il ne constitue toutefois pas, à lui seul, une base de données ni un moteur de recherche complet. Le choix du modèle, le découpage des textes et la vérification de la recherche comptent autant que l’appel à l’API.

À quoi sert un embedding dans Ollama ?

Un embedding est une liste de nombres calculée à partir d’un texte. Deux passages proches par leur sens tendent à produire des représentations qui se rapprochent dans l’espace vectoriel. Votre programme peut alors chercher les passages voisins d’une question, même si les termes exacts diffèrent. Ollama décrit ces usages comme la recherche, la récupération de documents, la classification, le regroupement et la similarité sémantique dans sa présentation officielle des modèles d’embedding.

La chaîne complète comprend plusieurs étapes : découper le contenu en passages, calculer un vecteur pour chaque passage, enregistrer vecteurs et textes dans un index, puis vectoriser la question et récupérer les passages les plus proches. Pour une réponse rédigée, vous pouvez ensuite fournir ces extraits à un modèle conversationnel. Les embeddings ne génèrent pas eux-mêmes une réponse et ne garantissent pas que le passage retrouvé soit juste.

Cette distinction est utile si vous explorez l’intelligence artificielle locale : l’embedding est une brique de recherche, différente du modèle qui rédige ou résume. Ollama fournit l’exécution et l’API ; la gestion du corpus et la logique de récupération restent à votre application.

Quels critères regarder avant de choisir le modèle ?

Commencez par la langue et le type de contenu. Pour des notes de jeu en français, des tickets d’assistance ou une documentation mêlant français et anglais, testez avec vos propres formulations : une page de modèle peut indiquer des capacités multilingues, mais cela ne remplace pas une évaluation sur votre corpus. Regardez ensuite la taille téléchargée, la mémoire disponible, la longueur de contexte et les dimensions des vecteurs si elles sont documentées. Ces paramètres influent sur le confort d’exécution et l’espace de stockage.

La bibliothèque Ollama propose notamment EmbeddingGemma, présenté comme un modèle de 300 millions de paramètres entraîné sur plus de 100 langues. Sa fiche indique une taille de téléchargement de 622 Mo, une fenêtre de contexte de 2K et une version minimale d’Ollama v0.11.10 : vérifiez ces indications sur la fiche officielle EmbeddingGemma, car les caractéristiques dépendent du modèle et de son étiquette téléchargée.

La bibliothèque affiche aussi EmbeddingGemma 2, avec plusieurs variantes listées, dont 270m, 440m, 570m et 740m. La fiche présente des entrées texte et, selon la variante, des capacités multimodales ; elle indique notamment 768 dimensions natives et des options de troncature à 128, 256 ou 512 dimensions. Ces chiffres concernent cette famille et ne doivent pas être attribués à tous les modèles d’embedding Ollama. Consultez les détails et les variantes sur la fiche officielle EmbeddingGemma 2.

Enfin, comparez les options sur la même tâche et avec le même découpage de documents. Un modèle plus gros n’est pas automatiquement préférable pour votre PC ou votre corpus. Un test utile consiste à préparer des questions dont vous connaissez les passages attendus, puis à regarder si les premiers résultats les contiennent. Mesurez aussi le temps d’indexation et la réactivité dans votre configuration ; aucun chiffre de performance universel ne peut être déduit de la seule taille du modèle.

Comment appeler l’API d’embedding ?

La fiche d’EmbeddingGemma montre l’appel REST POST sur /api/embed, avec un champ model et un champ input. Après avoir installé le modèle indiqué sur sa page, vous pouvez tester une phrase depuis un terminal :

ollama pull embeddinggemma

curl http://localhost:11434/api/embed \
  -d '{
    "model": "embeddinggemma",
    "input": "Comment retrouver les notes de configuration de mon jeu ?"
  }'

La réponse contient un tableau d’embeddings. Pour une collection de textes, l’API accepte également des entrées adaptées à un traitement par lot ; conservez l’association entre chaque vecteur et son passage d’origine. Vérifiez que votre client et le serveur utilisent le même nom de modèle. La documentation de l’API Python et les exemples d’intégration sont utiles si vous préférez automatiser l’indexation avec un script plutôt que d’envoyer des requêtes avec curl : vous pouvez ensuite appeler Ollama depuis Python pour intégrer cette étape à votre application.

Le découpage du corpus mérite un essai séparé. Des passages trop longs peuvent mélanger plusieurs sujets ; des passages trop courts peuvent perdre le contexte nécessaire à la recherche. Découpez de façon cohérente, gardez les titres ou métadonnées utiles et enregistrez ces éléments avec le texte. Ne choisissez pas une taille de bloc sur la base d’une règle prétendument valable pour tous les modèles : adaptez-la à votre contenu et vérifiez les résultats.

Comment vérifier que la recherche répond à votre besoin ?

Préparez d’abord un petit jeu de test : quelques documents représentatifs, des questions formulées différemment de leurs titres et, pour chacune, le passage attendu. Calculez les embeddings, recherchez les plus proches et examinez les premiers résultats manuellement. Si la bonne réponse reste loin dans la liste, regardez successivement le découpage, la qualité du texte importé, le modèle employé et la manière dont votre index compare les vecteurs.

Conservez le nom exact du modèle, sa version, la méthode de découpage et les paramètres de recherche avec l’index. Après un changement de modèle ou de prétraitement, recalculez les vecteurs du corpus : des représentations issues de modèles différents ne sont pas à mélanger comme si elles partageaient nécessairement le même espace. Refaites ensuite le même jeu de questions pour constater si les passages pertinents remontent mieux ou moins bien.

Enfin, ne confondez pas similarité et vérité. Un résultat sémantiquement proche peut être obsolète, incomplet ou hors contexte. Affichez le passage source dans votre interface, limitez les éléments transmis au modèle de réponse et testez les questions auxquelles le corpus ne sait pas répondre. Pour un premier prototype, l’API locale suffit à vérifier la génération des vecteurs ; le stockage persistant, la recherche et l’évaluation sont des composants distincts à ajouter selon votre projet.

Questions fréquentes

Ollama embeddings fonctionne-t-il sans connexion Internet ?

Une fois Ollama installé et le modèle téléchargé, la génération peut se faire sur votre ordinateur via l’API locale. Le téléchargement initial du modèle nécessite de le récupérer, et les autres composants de votre application, comme une base vectorielle ou un modèle de génération, doivent eux aussi être disponibles dans l’environnement choisi. Vérifiez également que votre application appelle bien l’adresse locale et ne transmet pas les textes à un service externe.

Les embeddings suffisent-ils pour faire une recherche documentaire ?

Non. Ollama transforme les entrées en vecteurs, mais votre application doit encore stocker les vecteurs et les textes associés, retrouver les éléments les plus proches d’une question, puis éventuellement transmettre ces passages à un modèle de chat. C’est le principe d’une architecture de génération augmentée par récupération, ou RAG. Pour un petit test, une comparaison en mémoire peut suffire ; un corpus persistant demande un stockage adapté.

Puis-je changer de modèle après avoir créé mon index ?

Vous pouvez changer de modèle, mais il faut généralement recalculer les embeddings du corpus et reconstruire l’index. Les modèles peuvent produire des vecteurs de dimensions différentes et placer les textes dans des espaces différents ; comparer directement des vecteurs produits par des modèles distincts n’est donc pas une migration fiable. Gardez le nom du modèle et sa version avec les données, et testez les résultats avant de remplacer l’index utilisé.

$ ls ~/intelligence-artificielle --related

À lire aussi

Intelligence artificielle →