Dans cette section, vous allez découvrir l'une des options les plus pratiques disponibles pour générer des embeddings pour le texte, qui est basée sur le cadre SentenceTransformers.
Travailler avec SentenceTransformers est le chemin recommandé pendant que vous explorez et vous familiarisez avec l'utilisation des embeddings, car les modèles disponibles sous ce cadre peuvent être installés sur votre ordinateur, fonctionnent raisonnablement bien sans GPU, et sont gratuits.
Installer des transformateurs de phrases
Le framework SentenceTransformers est installé en tant que paquetage Python. Assurez-vous que votre environnement virtuel Python est activé, puis exécutez la commande suivante dans votre terminal pour installer ce framework :
Comme toujours, chaque fois que vous ajoutez de nouvelles dépendances à votre projet, il est bon de mettre à jour votre fichier d'exigences :
Sélection d'un modèle
La tâche suivante consiste à choisir un modèle d'apprentissage automatique à utiliser pour la génération d'encastrements. La documentation contient une liste de modèles pré-entraînés. SentenceTransformers étant un cadre très populaire, il existe également des modèles compatibles créés par des chercheurs qui ne sont pas directement associés à ce cadre. Pour voir une liste complète des modèles qui peuvent être utilisés, vous pouvez consulter le tag SentenceTransformers sur HuggingFace.
Pour les besoins de ce tutoriel, il n'est pas nécessaire de trop réfléchir à la sélection du modèle, car n'importe quel modèle suffira. La documentation de SentenceTransformers contient la note suivante concernant les modèles pré-entraînés :
"Les modèles all-* ont été formés sur toutes les données d'apprentissage disponibles (plus d'un milliard de paires d'apprentissage) et sont conçus comme des modèles à usage général. Le modèle tout-mpnet-base-v2 offre la meilleure qualité, tandis que le modèle tout-MiniLM-L6-v2 est 5 fois plus rapide et offre toujours une bonne qualité."
Cela semble indiquer que leur modèle all-MiniLM-L6-v2 est un bon choix qui offre un bon compromis entre la vitesse et la qualité, nous allons donc utiliser ce modèle. Localisez ce modèle dans le tableau et cliquez sur l'icône "info" pour obtenir des informations à son sujet.

Un détail intéressant qu'il convient de connaître à propos du modèle choisi est la longueur des encastrements générés ou, en d'autres termes, le nombre de nombres ou de dimensions que les vecteurs résultants auront. Ce point est important car il a une incidence directe sur le volume de stockage dont vous aurez besoin. Dans le cas de all-MiniLM-L6-v2, les vecteurs générés ont 384 dimensions.
Chargement du modèle
Le code Python suivant montre comment le modèle est chargé. Vous pouvez essayer ceci dans un shell Python.
La première fois que vous effectuez cette opération, le modèle est téléchargé et installé dans votre environnement virtuel, de sorte que l'appel peut mettre un certain temps à revenir. Une fois le modèle installé, son instanciation ne devrait pas prendre beaucoup de temps.
Générer des emboîtements
Le modèle étant instancié, vous êtes maintenant prêt à générer un encastrement. Pour ce faire, transmettez le texte source à la méthode model.encode():
Le résultat est un tableau contenant tous les nombres qui composent l'intégration. Comme vous vous en souvenez, les encastrements générés par le modèle choisi ont 384 dimensions, ce qui correspond à la longueur du tableau embedding.
Précédemment
Intro sur les emboîtementsSuivant
Stockage des emboîtements