- Transformer une phrase en tokens (morceaux de mots ou mots).
- Ex:
"Paris est belle"→["Paris", "est", "belle"]→ puis en IDs numériques via le tokenizer.
- Représentation numérique dense d’un texte, permettant de comparer sémantiquement deux textes.
- Exemple :
"Paris est en France"≈"La capitale de la France est Paris"grâce à des embeddings proches.
sentence-transformers/all-MiniLM-L6-v2: génère des embeddings.moussaKam/barthez: génère du texte en français.
- Librairie rapide pour faire de la recherche dans de grands ensembles vectoriels.
- Utile pour retrouver les documents les plus proches d’une requête.
- Structure de données optimisée pour retrouver rapidement les
kdocuments les plus similaires.
- Le code utilise
IndexFlatL2= distance euclidienne. - Plus la distance est petite, plus les phrases sont proches sémantiquement.
- Pipeline classique : → Requête utilisateur → Recherche de documents → Génération de réponse à partir des documents.
- Tu guides le modèle de génération uniquement avec le contexte extrait.
-
Structure du prompt pour forcer le modèle à :
- Ne répondre qu’avec le contexte.
- Dire "Je ne sais pas" si ce n’est pas dans le contexte.
torch.cuda.is_available()permet d'utiliser un GPU si dispo, ce qui accélère l'inférence.
- Pour éviter de recalculer les embeddings et l’index à chaque lancement → ils sont sauvegardés sur disque.
- Tu utilises un
dictPython (cache) pour éviter de générer deux fois la même réponse.
- Pour le tokenizer, les modèles de génération, et les pipelines NLP.
- Permet de manipuler des bases de données textuelles (ici,
knowledge_base) facilement.
- Pour indexer les embeddings et effectuer la recherche la plus rapide possible.
- Pour manipuler les tensors, faire de l’inférence sur les modèles.
| Domaine | Notions à savoir |
|---|---|
| NLP | Tokenizer, embeddings, modèles pré-entraînés |
| Vectorisation | Embeddings, distances, batch processing |
| Recherche sémantique | FAISS, Index, top-k, seuil de similarité |
| Génération | Prompt engineering, modèles seq2seq, pipeline text2text |
| Optimisation | Cache, GPU vs CPU, sauvegarde de l’index |
| Python/Librairies | transformers, datasets, faiss, torch |