Natural Langage Processing
Objectifs :
- Maîtriser les concepts d'algèbre linéaire essentiels au NLP (vecteurs, matrices, similarité cosinus)
- Construire des représentations vectorielles de mots (TF-IDF, Word2Vec, GloVe, FastText)
- Concevoir et entraîner des réseaux de neurones pour le NLP avec PyTorch (RNN, LSTM, GRU)
- Construire des modèles séquentiels avec TensorFlow/Keras et comprendre l'architecture Transformer
- Fine-tuner des modèles pré-entraînés (BERT, CamemBERT) avec Hugging Face
Objectifs :
- Maîtriser les concepts d'algèbre linéaire essentiels au NLP (vecteurs, matrices, similarité cosinus)
- Construire des représentations vectorielles de mots (TF-IDF, Word2Vec, GloVe, FastText)
- Concevoir et entraîner des réseaux de neurones pour le NLP avec PyTorch (RNN, LSTM, GRU)
- Construire des modèles séquentiels avec TensorFlow/Keras et comprendre l'architecture Transformer
- Fine-tuner des modèles pré-entraînés (BERT, CamemBERT) avec Hugging Face
Public visé
- Développeurs Python souhaitant se spécialiser dans le traitement du langage
- Data scientists et ingénieurs machine learning
- Chercheurs et étudiants en IA souhaitant maîtriser les techniques modernes du NLP
- Professionnels souhaitant intégrer le NLP dans leurs produits ou pipelines de données
Objectifs pédagogiques
- Maîtriser les concepts d'algèbre linéaire essentiels au NLP (vecteurs, matrices, produits scalaires, projections)
- Mettre en œuvre les techniques classiques de prétraitement du texte (tokenization, stemming, lemmatisation)
- Construire des représentations vectorielles de mots (TF-IDF, Word2Vec, GloVe, embeddings contextuels)
- Développer des modèles de classification de texte avec scikit-learn
- Concevoir et entraîner des réseaux de neurones pour le NLP avec PyTorch
- Construire des modèles séquentiels (RNN, LSTM, GRU) avec TensorFlow/Keras
- Comprendre l'architecture des Transformers et utiliser Hugging Face
- Développer une application NLP complète (analyse de sentiment, NER, résumé automatique)
Prérequis
- Maîtrise de Python niveau intermédiaire : POO, modules, manipulation de fichiers
- Notions de base en mathématiques : opérations vectorielles, fonctions, dérivées (niveau lycée scientifique)
- Connaissance de pandas et numpy appréciée mais non obligatoire
- Disposer d'un ordinateur avec Python 3.x et accès internet
Méthodes pédagogiques
- Alternance de théorie (35%) et de pratique (65%)
- Démonstrations mathématiques visuelles et exemples concrets
- TP individuels et collaboratifs avec NumPy, scikit-learn, PyTorch, TensorFlow et Hugging Face
- Comparaison des frameworks : chaque concept est illustré en PyTorch et TensorFlow lorsque pertinent
- Supports de cours et notebooks Jupyter remis aux stagiaires (accès pérenne)
Programme détaillé
JOUR 1 — Fondations mathématiques et premiers pas en NLP
- Vecteurs : définition, dimension, représentation d'un mot ou d'un document
- Opérations vectorielles : addition, multiplication scalaire, norme (L1, L2)
- Produit scalaire et similarité cosinus : mesurer la proximité sémantique entre textes
- Matrices : définition, transposition, produit matriciel, transformations linéaires
- Décomposition en valeurs singulières (SVD) : principe et application au NLP (LSA)
- Calcul matriciel avec NumPy : ndarray, broadcasting, opérations vectorisées
- Notions de probabilités utiles : distributions, probabilité conditionnelle, théorème de Bayes
- Panorama du NLP : enjeux, applications, évolution historique
- Tokenization, normalisation, stemming et lemmatisation avec NLTK et spaCy
- POS tagging et reconnaissance d'entités nommées (NER)
- Représentations Bag-of-Words et TF-IDF
■ Travaux pratiques :
→ TP1 : Calcul de similarité cosinus entre documents avec NumPy
→ TP2 : Pipeline complet de prétraitement de texte avec spaCy (tokenization, lemmatisation, NER)
→ TP3 : Construction d'une matrice TF-IDF et recherche des documents les plus similaires
JOUR 2 — Embeddings et machine learning classique appliqué au NLP
- Limites des représentations Bag-of-Words : sparsité, absence de sémantique
- Hypothèse distributionnelle : « un mot se définit par son contexte »
- Word2Vec : architectures CBOW et Skip-Gram, intuition mathématique
- GloVe : factorisation de matrice de co-occurrence
- FastText : embeddings de sous-mots, gestion des mots inconnus
- Visualisation des embeddings : réduction de dimension avec PCA et t-SNE
- Utilisation de modèles pré-entraînés (français et anglais)
- Pipeline de machine learning pour le NLP : prétraitement, vectorisation, modèle, évaluation
- Algorithmes classiques : régression logistique, SVM, Naive Bayes, Random Forest
- Métriques d'évaluation : précision, rappel, F1-score, matrice de confusion
- Cross-validation et recherche d'hyperparamètres avec GridSearchCV
- Gestion des classes déséquilibrées et interprétabilité des modèles
■ Travaux pratiques :
→ TP1 : Entraînement de Word2Vec sur un corpus français et exploration des analogies
→ TP2 : Classifieur de sentiment sur des avis clients avec scikit-learn (TF-IDF + régression logistique)
→ TP3 : Détection automatique de spam avec optimisation d'hyperparamètres
JOUR 3 — Deep learning pour le NLP avec PyTorch
- Présentation de PyTorch : philosophie, écosystème, comparaison avec TensorFlow
- Tenseurs PyTorch : création, opérations, broadcasting, transfert CPU/GPU
- Autograd : différentiation automatique, calcul du gradient
- Construction d'un réseau de neurones : torch.nn.Module, couches Linear, fonctions d'activation
- Boucle d'entraînement : forward, loss, backward, optimizer (SGD, Adam)
- DataLoader et Dataset : chargement efficace des données textuelles
- Couche Embedding : représentation dense des mots dans un réseau de neurones
- Réseaux récurrents (RNN) : intuition, équations, limites (vanishing gradient)
- LSTM et GRU : mécanismes de portes, mémoire à long terme
- RNN bidirectionnels : combiner contexte gauche et droite
- Régularisation : dropout, batch normalization, early stopping
■ Travaux pratiques :
→ TP1 : Implémentation d'un classifieur de texte avec un réseau feed-forward en PyTorch
→ TP2 : Construction d'un LSTM pour la classification d'avis clients
→ TP3 : Comparaison des performances entre régression logistique, LSTM et GRU sur un même dataset
JOUR 4 — TensorFlow, Transformers et projet final
- Présentation de TensorFlow et Keras : philosophie, API séquentielle et fonctionnelle
- Construction d'un modèle Keras : Sequential, couches, compilation, entraînement
- Tenseurs TensorFlow : tf.Tensor, opérations, eager execution
- Pipeline tf.data : chargement et transformation efficaces de corpus textuels
- Implémentation d'un LSTM en Keras et comparaison avec PyTorch
- Mécanisme d'attention : intuition, calcul, intérêt
- Architecture Transformer : self-attention, multi-head attention, encodage positionnel
- BERT, GPT et leurs variantes : présentation et cas d'usage
- Écosystème Hugging Face : Transformers, Datasets, Tokenizers, Hub
- Pipeline Hugging Face : classification, NER, question-answering, résumé
- Fine-tuning d'un modèle pré-entraîné sur un dataset métier
- Bonnes pratiques : gestion de la mémoire, GPU, taille de batch
■ Travaux pratiques :
→ TP1 : Implémentation et entraînement d'un LSTM en Keras/TensorFlow sur un corpus textuel
→ TP2 : Fine-tuning de CamemBERT pour la classification de sentiment sur des avis en français
→ TP3 (Projet final) : Application NLP complète au choix — analyse de sentiment, NER métier, ou résumé automatique
Évaluation
- Test de positionnement en début de formation
- Évaluations formatives : exercices pratiques corrigés, revue de code, débogage en groupe, QCM intermédiaires
- QCM mi-parcours de 20 questions (Jour 2)
- QCM final de 30 questions (Jour 4) — critère de réussite : 60%
- Soutenance du mini-projet final
- Attestation de fin de formation délivrée
Public visé
- Développeurs Python souhaitant se spécialiser dans le traitement du langage
- Data scientists et ingénieurs machine learning
- Chercheurs et étudiants en IA souhaitant maîtriser les techniques modernes du NLP
- Professionnels souhaitant intégrer le NLP dans leurs produits ou pipelines de données
Objectifs pédagogiques
- Maîtriser les concepts d'algèbre linéaire essentiels au NLP (vecteurs, matrices, produits scalaires, projections)
- Mettre en œuvre les techniques classiques de prétraitement du texte (tokenization, stemming, lemmatisation)
- Construire des représentations vectorielles de mots (TF-IDF, Word2Vec, GloVe, embeddings contextuels)
- Développer des modèles de classification de texte avec scikit-learn
- Concevoir et entraîner des réseaux de neurones pour le NLP avec PyTorch
- Construire des modèles séquentiels (RNN, LSTM, GRU) avec TensorFlow/Keras
- Comprendre l'architecture des Transformers et utiliser Hugging Face
- Développer une application NLP complète (analyse de sentiment, NER, résumé automatique)
Prérequis
- Maîtrise de Python niveau intermédiaire : POO, modules, manipulation de fichiers
- Notions de base en mathématiques : opérations vectorielles, fonctions, dérivées (niveau lycée scientifique)
- Connaissance de pandas et numpy appréciée mais non obligatoire
- Disposer d'un ordinateur avec Python 3.x et accès internet
Méthodes pédagogiques
- Alternance de théorie (35%) et de pratique (65%)
- Démonstrations mathématiques visuelles et exemples concrets
- TP individuels et collaboratifs avec NumPy, scikit-learn, PyTorch, TensorFlow et Hugging Face
- Comparaison des frameworks : chaque concept est illustré en PyTorch et TensorFlow lorsque pertinent
- Supports de cours et notebooks Jupyter remis aux stagiaires (accès pérenne)
Programme détaillé
JOUR 1 — Fondations mathématiques et premiers pas en NLP
- Vecteurs : définition, dimension, représentation d'un mot ou d'un document
- Opérations vectorielles : addition, multiplication scalaire, norme (L1, L2)
- Produit scalaire et similarité cosinus : mesurer la proximité sémantique entre textes
- Matrices : définition, transposition, produit matriciel, transformations linéaires
- Décomposition en valeurs singulières (SVD) : principe et application au NLP (LSA)
- Calcul matriciel avec NumPy : ndarray, broadcasting, opérations vectorisées
- Notions de probabilités utiles : distributions, probabilité conditionnelle, théorème de Bayes
- Panorama du NLP : enjeux, applications, évolution historique
- Tokenization, normalisation, stemming et lemmatisation avec NLTK et spaCy
- POS tagging et reconnaissance d'entités nommées (NER)
- Représentations Bag-of-Words et TF-IDF
■ Travaux pratiques :
→ TP1 : Calcul de similarité cosinus entre documents avec NumPy
→ TP2 : Pipeline complet de prétraitement de texte avec spaCy (tokenization, lemmatisation, NER)
→ TP3 : Construction d'une matrice TF-IDF et recherche des documents les plus similaires
JOUR 2 — Embeddings et machine learning classique appliqué au NLP
- Limites des représentations Bag-of-Words : sparsité, absence de sémantique
- Hypothèse distributionnelle : « un mot se définit par son contexte »
- Word2Vec : architectures CBOW et Skip-Gram, intuition mathématique
- GloVe : factorisation de matrice de co-occurrence
- FastText : embeddings de sous-mots, gestion des mots inconnus
- Visualisation des embeddings : réduction de dimension avec PCA et t-SNE
- Utilisation de modèles pré-entraînés (français et anglais)
- Pipeline de machine learning pour le NLP : prétraitement, vectorisation, modèle, évaluation
- Algorithmes classiques : régression logistique, SVM, Naive Bayes, Random Forest
- Métriques d'évaluation : précision, rappel, F1-score, matrice de confusion
- Cross-validation et recherche d'hyperparamètres avec GridSearchCV
- Gestion des classes déséquilibrées et interprétabilité des modèles
■ Travaux pratiques :
→ TP1 : Entraînement de Word2Vec sur un corpus français et exploration des analogies
→ TP2 : Classifieur de sentiment sur des avis clients avec scikit-learn (TF-IDF + régression logistique)
→ TP3 : Détection automatique de spam avec optimisation d'hyperparamètres
JOUR 3 — Deep learning pour le NLP avec PyTorch
- Présentation de PyTorch : philosophie, écosystème, comparaison avec TensorFlow
- Tenseurs PyTorch : création, opérations, broadcasting, transfert CPU/GPU
- Autograd : différentiation automatique, calcul du gradient
- Construction d'un réseau de neurones : torch.nn.Module, couches Linear, fonctions d'activation
- Boucle d'entraînement : forward, loss, backward, optimizer (SGD, Adam)
- DataLoader et Dataset : chargement efficace des données textuelles
- Couche Embedding : représentation dense des mots dans un réseau de neurones
- Réseaux récurrents (RNN) : intuition, équations, limites (vanishing gradient)
- LSTM et GRU : mécanismes de portes, mémoire à long terme
- RNN bidirectionnels : combiner contexte gauche et droite
- Régularisation : dropout, batch normalization, early stopping
■ Travaux pratiques :
→ TP1 : Implémentation d'un classifieur de texte avec un réseau feed-forward en PyTorch
→ TP2 : Construction d'un LSTM pour la classification d'avis clients
→ TP3 : Comparaison des performances entre régression logistique, LSTM et GRU sur un même dataset
JOUR 4 — TensorFlow, Transformers et projet final
- Présentation de TensorFlow et Keras : philosophie, API séquentielle et fonctionnelle
- Construction d'un modèle Keras : Sequential, couches, compilation, entraînement
- Tenseurs TensorFlow : tf.Tensor, opérations, eager execution
- Pipeline tf.data : chargement et transformation efficaces de corpus textuels
- Implémentation d'un LSTM en Keras et comparaison avec PyTorch
- Mécanisme d'attention : intuition, calcul, intérêt
- Architecture Transformer : self-attention, multi-head attention, encodage positionnel
- BERT, GPT et leurs variantes : présentation et cas d'usage
- Écosystème Hugging Face : Transformers, Datasets, Tokenizers, Hub
- Pipeline Hugging Face : classification, NER, question-answering, résumé
- Fine-tuning d'un modèle pré-entraîné sur un dataset métier
- Bonnes pratiques : gestion de la mémoire, GPU, taille de batch
■ Travaux pratiques :
→ TP1 : Implémentation et entraînement d'un LSTM en Keras/TensorFlow sur un corpus textuel
→ TP2 : Fine-tuning de CamemBERT pour la classification de sentiment sur des avis en français
→ TP3 (Projet final) : Application NLP complète au choix — analyse de sentiment, NER métier, ou résumé automatique
Évaluation
- Test de positionnement en début de formation
- Évaluations formatives : exercices pratiques corrigés, revue de code, débogage en groupe, QCM intermédiaires
- QCM mi-parcours de 20 questions (Jour 2)
- QCM final de 30 questions (Jour 4) — critère de réussite : 60%
- Soutenance du mini-projet final
- Attestation de fin de formation délivrée