AccueilBlogTest technique NLP et embeddings : tokenisation, fine-tuning, RAG
Guide recrutement data

Test technique NLP et embeddings : tokenisation, fine-tuning, RAG

Le NLP a été transformé par les transformers. En entretien Data Scientist, on évalue la compréhension des embeddings, la capacité à fine-tuner un modèle et à intégrer le NLP dans une pipeline data.

Data Builder·Juin 2025·7 min de lecture·Data Scientist
Sommaire
  1. Fondamentaux NLP
  2. Word et sentence embeddings
  3. Transformers et BERT
  4. Fine-tuning
  5. Pipeline NLP en production
  6. Évaluation des modèles NLP
  7. Grille

1Fondamentaux NLP : tokenisation et représentation

Question discriminante

Qu est-ce que la tokenisation ? Quelle est la différence entre word-level et subword tokenisation ?

from transformers import AutoTokenizer # Tokenisation subword (BPE - Byte Pair Encoding) tokenizer = AutoTokenizer.from_pretrained('bert-base-multilingual-cased') text = 'Le pipeline de données traite les commandes' tokens = tokenizer.tokenize(text) ids = tokenizer.encode(text) print(tokens) # ['Le', 'pipeline', 'de', 'données', 'traite', 'les', 'commandes'] # Les mots rares sont découpés en sous-mots : # 'databuilder' -> ['data', '##builder'] print(f'Vocab size: {tokenizer.vocab_size}') # ~120k tokens

2Word embeddings et sentence embeddings

Question discriminante

Quelle est la différence entre Word2Vec, GloVe et les sentence transformers ?

from sentence_transformers import SentenceTransformer import numpy as np # Sentence Transformers : embedding de phrases entières model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') sentences = [ 'Le pipeline de données est en production', 'Notre flux de données fonctionne en prod', 'Le chat mange des croquettes' ] embeddings = model.encode(sentences) # Similarité cosinus from sklearn.metrics.pairwise import cosine_similarity sim_matrix = cosine_similarity(embeddings) print(sim_matrix) # [[1.0, 0.87, 0.12], # [0.87, 1.0, 0.11], -> phrases 1 et 2 très similaires # [0.12, 0.11, 1.0 ]] -> phrase 3 différente

3Transformers et architecture BERT

Question discriminante

Qu est-ce que le mécanisme d attention ? Pourquoi BERT est-il bidirectionnel ?

4Fine-tuning : adapter un modèle pré-entraîné

Question discriminante

Quand fine-tunez-vous un modèle pré-entraîné ? Comment évitez-vous le catastrophic forgetting ?

from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer from datasets import Dataset # Fine-tuning pour la classification de tickets support model = AutoModelForSequenceClassification.from_pretrained( 'camembert-base', num_labels=5 # 5 catégories de tickets ) training_args = TrainingArguments( output_dir='./ticket_classifier', num_train_epochs=3, per_device_train_batch_size=16, learning_rate=2e-5, # faible LR pour éviter le catastrophic forgetting warmup_steps=100, weight_decay=0.01, evaluation_strategy='epoch' ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset ) trainer.train()

5Pipeline NLP en production

Question discriminante

Comment deployez-vous un modèle de classification de texte en production ?

from transformers import pipeline from fastapi import FastAPI # Charger le pipeline une fois au démarrage classifier = pipeline( 'text-classification', model='./ticket_classifier', device=0 # GPU si disponible ) app = FastAPI() @app.post('/classify') def classify_ticket(text: str): result = classifier(text, truncation=True, max_length=512) return { 'category': result[0]['label'], 'confidence': round(result[0]['score'], 4) }

6Évaluer les modèles NLP

Question discriminante

Quelles métriques utilisez-vous pour évaluer un modèle de classification de texte multiclasse ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméTokenisation, sentence transformers, classification basiqueA utilisé sentence-transformers pour du RAG, sait ce qu est BPENe sait pas ce qu est un embedding
SeniorFine-tuning BERT/CamemBERT, LoRA, déploiement ONNXA fine-tuné un modèle sur données métier, a déployé en productionN a jamais fine-tuné, ne sait pas ce qu est LoRA

Vous recrutez un Data Scientist NLP ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.