Lab - comprendre l'architecture du Transformer
Attention pattern visualization
Quelques outils ont été proposés pour interpréter (visuellement) ce qui se passe dans les boîtes noires que sont les modèles...
- *Tensor2Tensor visualization tool* (@Google) to scrutinize the attention weight at any layer/head of a attention layer (encoder self-attention, decoder’s attention on the encoder, decoder self-attention). See the end of the TransformerVisualization.ipynb notebook for interpreting the visualizations. Last update 2023. https://github.com/tensorflow/tensor2tensor/tree/master/tensor2tensor/visualization
- *BertViz* is an interactive tool for visualizing attention in Transformer language models such as BERT, GPT2, or T5. Extends the Tensor2Tensor visualization tool. Last update 2023. https://github.com/jessevig/bertviz
- *Captum* is a model interpretability and understanding library for PyTorch. Active project. https://github.com/pytorch/captum
- *Transformers Interpret* Transformer (text and computer visions) model explainability in just 2 lines of code. Based on Captum. Last update 2023. https://github.com/cdpierse/transformers-interpret
1. Prendre connaissance de l'outil BertViz (https://github.com/jessevig/bertviz)
2. Observations via un modèle e.g. Roberta, BERT, T5, GPT2 ; Utilisez les interactives colab mis à disposition (commencer par "Head")
- Observez-vous des différences dans l'analyse la paire de phrases ["I cannot put the toy in the box", "it is too small"] (vu comme une ou deux phrases selon le modèle choisi) ?
- et la paire ["I cannot put the toy in the box", "it is too big"] ?
- Observez-vous des patrons d'attention syntaxiques ?
- Sémantique ou référentiel (par exemple en observant les mots "big", "small", "it", "box", "toy") ?
- Le français est davantage marquer en genre et nombre. Optez pour un modèle multilingue et observez la paire de phrases ["Je ne peux pas mettre le rat dans le sac", "il est trop gros"].
- Vous pouvez éventuellement imaginer des variantes telles que les paires ["Je ne peux pas mettre la pie dans le sac", "elle est trop petite"], ou ["Je ne peux pas mettre la pie dans le sac", "il est trop gros"]
Introspection avec Captum
A l'aide des ressources à disposition, répondez aux questions ci-dessous.
Qu'est ce que l'Axiomatic Attribution for Deep Networks (https://arxiv.org/abs/1703.01365) ?
En particulier quelle est la méthode des "gradients intégrés" (https://captum.ai/docs/extension/integrated_gradients) ?
Expérimenter sur Interpreting text models: IMDB sentiment analysis (https://captum.ai/tutorials/IMDB_TorchText_Interpret).
Pouvez-vous l'utiliser sur des modèles tels que BERT, T5, GPT2 ?
Pour aller plus loin, expérimenter Using Captum to Explain Generative Language Models (https://arxiv.org/abs/2312.05491) via "Understanding Llama2 with Captum LLM Attribution" (https://captum.ai/tutorials/Llama2_LLM_Attribution) en reproduisant notamment le tutoriel à l'aide d'un notebook au bas de la page.
Taille de modèles
Exercice sur https://github.com/nicolashernandez/MdL-2024-2025/blob/main/model_parameters.ipynb