Brief IA : Scikit-Ollama : Révolutionner la Classification avec Ollama Local

Scikit-Ollama : Révolutionner la Classification avec Ollama Local

Brief IA
Tom Levy·5 min·0 vues

Scikit-Ollama intègre des modèles Ollama locaux avec scikit-learn pour la classification de texte sans dépendance à des API cloud. Cette approche permet d'effectuer une analyse de sentiments zero-shot sur des critiques de films grâce à un modèle Llama 3, tout en réduisant les coûts et en améliorant la sécurité des données.

En bref
1Scikit-Ollama intègre des modèles Ollama locaux avec scikit-learn pour la classification de texte sans API cloud.
2Un modèle Llama 3 local permet une analyse de sentiments zero-shot sur des critiques de films.
3La méthode fit/predict de scikit-ollama utilise des LLMs pour des prédictions précises sans mise à jour des poids.
💡Pourquoi c'est importantCette approche réduit les coûts et améliore la sécurité des données en éliminant le besoin d'API cloud pour les tâches de classification.
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

Introduction à Scikit-Ollama

L'intégration des grands modèles de langage (LLM) dans les flux de travail traditionnels d'apprentissage automatique est devenue non seulement faisable, mais elle transforme également notre manière de travailler avec ces modèles. Traditionnellement, les entreprises et les développeurs s'appuyaient sur des API cloud commerciales, souvent limitées par des quotas et des problèmes de confidentialité des données. Cependant, l'émergence de solutions comme scikit-ollama change la donne. Cette bibliothèque, qui s'appuie largement sur scikit-llm, relie la simplicité de scikit-learn avec la puissance des LLMs, en particulier ceux qui sont gratuits et fonctionnent localement sur Ollama.

Scikit-ollama se distingue par sa capacité à combiner l'interface conviviale de scikit-learn avec des modèles Ollama fonctionnant localement pour réaliser une classification de texte en zero-shot. En intégrant ces modèles directement dans les flux de travail locaux, elle élimine la dépendance aux services cloud, réduisant ainsi les coûts et les risques liés à la confidentialité des données. Cela permet aux utilisateurs de bénéficier de la puissance des modèles de langage avancés tout en conservant le contrôle total de leurs données.

Cet article explore comment configurer cette intégration pour construire un classificateur zero-shot très pratique pour la prédiction de sentiments sur des critiques de films, en utilisant un modèle Llama 3 local fonctionnant sur votre machine.

Préparation de l'Environnement

Avant de commencer, il est crucial de s'assurer que votre environnement de développement est prêt pour utiliser scikit-ollama. Cette bibliothèque nécessite Python 3.9 ou une version ultérieure. Pour vérifier la version de Python installée, exécutez la commande suivante dans votre terminal :

python --version

Si votre version de Python est antérieure à 3.9, il est nécessaire de mettre à jour avant de procéder. Une fois cette vérification effectuée, installez scikit-ollama avec la commande suivante :

pip install scikit-ollama

Avec l'installation terminée, nous pouvons passer à l'étape suivante, qui est le chargement des ensembles de données nécessaires pour notre projet.

Chargement des Données

Scikit-LLM propose un module datasets qui contient divers ensembles de données pour la classification. Pour cet exemple, nous utiliserons un ensemble de données textuelles pour la classification des sentiments des critiques de films. Voici comment charger ces données et afficher un exemple de critique avec son étiquette de sentiment :

from skllm.datasets import get_classification_dataset

# Chargement d'un ensemble de données de démonstration pour l'analyse des sentiments contenant des critiques de films
# Les étiquettes attendues sont : "positive", "negative", "neutral"
X, y = get_classification_dataset()
print(f"Texte d'exemple : {X[0]} \nÉtiquette : {y[0]}")

Ce code extrait un ensemble de données qui sera utilisé pour entraîner notre modèle à prédire les sentiments exprimés dans les critiques de films. L'exemple de sortie montre une critique de film avec une étiquette de sentiment associée, illustrant comment le modèle peut être utilisé pour analyser les sentiments de manière efficace.

Installation et Configuration d'Ollama

Pour utiliser scikit-ollama, il est nécessaire d'avoir Ollama installé localement sur votre machine. Suivez les instructions fournies pour installer Ollama et assurez-vous de télécharger le modèle que vous souhaitez utiliser. Pour télécharger un modèle, exécutez la commande suivante dans votre terminal :

ollama pull <MODEL_NAME>

Dans notre cas, nous allons utiliser le modèle llama3:latest. Assurez-vous qu'il est correctement installé avant de continuer. Cette étape est cruciale car elle garantit que le modèle est disponible localement pour être utilisé dans les tâches de classification sans dépendre d'une connexion internet ou d'un service externe.

Initialisation du Classificateur Zero-Shot

Une fois le modèle Ollama installé, nous pouvons procéder à l'initialisation du classificateur. Le code suivant importe la classe ZeroShotOllamaClassifier de scikit-ollama et instancie un classificateur de sentiments soutenu par le modèle llama3:latest :

from skollama.models.ollama.classification.zero_shot import ZeroShotOllamaClassifier

# Initialisation du classificateur avec notre modèle local Ollama : llama3:latest
clf = ZeroShotOllamaClassifier(model="llama3:latest")

Il est important de noter que llama3:latest est un modèle de langage général, initialement conçu pour faire bien plus que classifier du texte. Cependant, en l'utilisant avec scikit-ollama, nous pouvons transformer notre tâche de classification en une invite de génération de texte qui est syntaxiquement contrainte, permettant au modèle de fonctionner comme un modèle d'apprentissage automatique classique.

Application du Modèle : Fit et Predict

L'application du modèle suit le rituel traditionnel de l'apprentissage automatique en deux étapes : fit et predict. Dans le contexte de la classification zero-shot, l'appel à fit() ne met pas à jour les poids du modèle. Au lieu de cela, il enregistre les étiquettes de classification candidates, guidant ainsi le modèle pour un apprentissage en contexte :

# "Ajuster" le modèle revient simplement à fournir la liste des étiquettes candidates
clf.fit(None, ["positive", "negative", "neutral"])

Lorsque vous appelez la méthode predict() et passez un ensemble de critiques textuelles, l'instance locale d'Ollama traite chaque entrée comme une invite et génère des prédictions qui correspondent à l'une des étiquettes de classification zero-shot.

Le code suivant génère des prédictions sur l'ensemble de données et imprime les trois premiers résultats :

# Génération et affichage des prédictions sur notre ensemble de données
predictions = clf.predict(X)
for text, prediction in zip(X[:3], predictions[:3]):
    print(f"Texte : '{text}'")
    print(f"Sentiment prédit : {prediction}\n")

Chaque prédiction est le résultat d'une analyse approfondie effectuée par le modèle local, qui utilise ses capacités de traitement du langage naturel pour déterminer le sentiment exprimé dans chaque critique de film. Cela démontre la capacité du modèle à effectuer des tâches complexes de manière autonome, sans nécessiter de mise à jour des poids ou de formation supplémentaire.

Conclusion

En utilisant scikit-ollama, nous avons démontré comment remplacer les API LLM basées sur le cloud par des modèles Ollama locaux pour réaliser des tâches d'inférence. Cette approche élimine les frais d'abonnement et garantit que les données textuelles sensibles restent sur votre machine. La bibliothèque scikit-ollama encapsule cette intégration locale de manière élégante, la rendant disponible comme un simple pipeline scikit-learn.

Suivez Brief IA

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

Commentaires