L'apprentissage auto-supervisé est une technique d'intelligence artificielle où un modèle apprend à partir de données non étiquetées en générant ses propres étiquettes ou tâches d'apprentissage. Cette approche permet au modèle de découvrir des structures et des représentations dans les données sans intervention humaine pour l'étiquetage.
Dans le contexte de la programmation, l'apprentissage auto-supervisé est souvent utilisé dans le traitement du langage naturel et la vision par ordinateur. Il permet de pré-entraîner des modèles sur de vastes ensembles de données non étiquetées avant de les affiner sur des tâches spécifiques.
Un exemple pratique est le modèle BERT (Bidirectional Encoder Representations from Transformers) en traitement du langage naturel :
from transformers import BertTokenizer, BertForMaskedLM
import torch
# Charger le modèle pré-entraîné
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForMaskedLM.from_pretrained('bert-base-uncased')
# Phrase avec un mot masqué
text = "Le [MASK] brille dans le ciel."
# Tokenisation et prédiction
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
predicted_token = tokenizer.decode(torch.argmax(outputs.logits, dim=-1)[0])
print(f"Phrase complétée : {predicted_token}")
Dans cet exemple, BERT a été pré-entraîné de manière auto-supervisée sur un large corpus de textes en prédisant des mots masqués, ce qui lui permet d'apprendre des représentations contextuelles des mots.
L'apprentissage auto-supervisé est lié à d'autres concepts comme l'apprentissage non supervisé et l'apprentissage par transfert. Il offre l'avantage de pouvoir exploiter de grandes quantités de données non étiquetées, réduisant ainsi le besoin en données étiquetées manuellement et améliorant la généralisation des modèles.