Brief IA : Scikit-LLM et Ollama : expliquer des embeddings de texte

Scikit-LLM et Ollama : expliquer des embeddings de texte

Brief IA
Tom Levy·4 min·2 vues

Un pipeline local gratuit utilisant Ollama et Scikit-LLM génère des embeddings pour 1 000 critiques IMDB, atteignant une accuracy de 0,77 sur 200 tests avec une régression logistique. UMAP est utilisé pour projeter les embeddings en 2D, tandis que SHAP est prévu pour analyser l'influence des dimensions latentes, rendant le fonctionnement des LLM plus transparent.

En bref
1Un pipeline local gratuit, fondé sur Ollama et Scikit-LLM, génère des embeddings pour 1 000 critiques IMDB
2Une régression logistique évalue ces vecteurs, avec une accuracy de 0,77 sur 200 tests
3UMAP projette les embeddings en 2D avec une métrique cosinus ; SHAP est prévu pour analyser l’influence des dimensions latentes
💡Pourquoi c'est importantCe tutoriel montre comment combiner des outils locaux gratuits pour produire et interpréter des embeddings de texte issus de LLM, en rendant leur fonctionnement plus transparent.
Le brief IA que lisent les pros

La recherche en IA te passionne ?

Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
L'analyse en français

Un tutoriel détaille comment générer des embeddings de 1 000 critiques IMDB avec un modèle local all-minilm et les soumettre à un diagnostic par régression logistique. Les performances atteignent 0,77 d’accuracy, tandis qu’UMAP et SHAP sont mobilisés pour examiner la structure sémantique et l’influence des dimensions latentes.

Un modèle linéaire obtient 0,77 d’accuracy sur 200 tests

Sur l’échantillon de test de 200 critiques, l’accuracy atteint 0,77. Pour la classe 0, la précision est de 0,77, le rappel de 0,76 et le F1 de 0,76, avec un support de 100. Pour la classe 1, la précision est de 0,76, le rappel de 0,77 et le F1 de 0,77, avec un support de 100. Les moyennes macro indiquent une précision de 0,77, un rappel de 0,77 et un F1 de 0,76, pour un support total de 200. Les moyennes pondérées affichent les mêmes niveaux de précision et de rappel (0,77) et un F1 de 0,76. Ces résultats sont présentés comme respectables pour une régression logistique, compte tenu d’un jeu de données de taille limitée par rapport à la dimension des embeddings.

UMAP et SHAP mobilisés pour l’interprétation des embeddings

La visualisation UMAP est utilisée pour inspecter la structure sémantique capturée par les embeddings. UMAP est décrite comme une technique de réduction de dimensionnalité par projection, couramment employée pour la visualisation, avec ici une projection en 2 dimensions et l’usage de la similarité cosinus comme métrique de distance, ce qui est standard pour des embeddings de texte. L’application des valeurs SHAP est prévue pour identifier les dimensions latentes qui influencent le plus les prédictions d’un classificateur.

Évaluer la qualité des vecteurs via un classificateur d’exploration

Le classificateur d’exploration sert d’outil de diagnostic afin d’inspecter les représentations apprises. La qualité des embeddings pour séparer les critiques positives et négatives est évaluée au moyen d’un modèle simple tel qu’une régression logistique et de métriques usuelles. Lorsque précision, rappel et F1 sont satisfaisants avec un modèle peu profond, cela indique que les vecteurs sont suffisamment riches pour la tâche. L’emploi d’un modèle simple aide à isoler la contribution des embeddings. Le tutoriel entraîne ainsi une LogisticRegression avec un random_state de 42 et un max_iter de 1000.

Jeu de données IMDB équilibré et partition stratifiée 80/20

Le corpus utilisé est l’ensemble public IMDB de critiques de films. Mille textes sont sélectionnés, répartis à parts égales entre 500 positifs et 500 négatifs pour constituer un échantillon équilibré, avec les labels 1 pour les positifs et 0 pour les négatifs. La préparation consiste à concaténer les deux sous-ensembles, les mélanger, puis extraire les textes et les labels. La division entre entraînement et test est stratifiée, avec 80 % des exemples pour l’apprentissage et 20 % pour l’évaluation, un test_size de 0,2 et un random_state de 42.

Chaîne locale gratuite : Ollama et Scikit-LLM pour 1 000 embeddings

Le tutoriel est exécutable sous Google Colab et requiert la dernière version de Scikit-LLM. Il propose une configuration locale et gratuite, avec l’installation via pip de scikit-llm, umap-learn et shap. Sous Colab, une installation de zstd par apt-get peut être nécessaire, à manier avec prudence selon l’environnement. Ollama est installé par script et lancé en arrière-plan, avec une attente de 5 secondes, puis le modèle d’embedding all-minilm est récupéré. Les bibliothèques numpy, pandas, matplotlib.pyplot, umap et shap sont importées, ainsi que SKLLMConfig et GPTVectorizer, et les utilitaires scikit-learn pour l’entraînement et l’évaluation, plus load_dataset. Scikit-LLM est configuré sur un serveur local à l’URL http://localhost:11434/v1/, avec une clé OpenAI factice utilisée pour le format mais ignorée localement. Les embeddings de 1 000 textes sont produits avec GPTVectorizer et le modèle all-minilm, en utilisant une API proche de scikit-learn (fit_transform pour l’entraînement, transform pour le test). Sur Colab, la génération peut durer environ 5 à 10 minutes car elle implique 1 000 appels à un LLM local. L’ensemble du dispositif sert à générer des embeddings à partir de critiques de films avec Scikit-LLM et un modèle Ollama local, puis à entraîner un classificateur de régression logistique pour en évaluer la qualité, en combinant classificateurs d’exploration, UMAP et SHAP afin d’interpréter la représentation textuelle produite par des LLM, dans un contexte où ces derniers sont puissants mais peu interprétables par nature et où la classification de texte a longtemps reposé sur l’apprentissage automatique et les réseaux profonds.

Suivez Brief IA

L'actu IA du jour, aussi dans votre fil.

Commentaires