You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/annexes/evaluation.qmd
+1-62Lines changed: 1 addition & 62 deletions
Original file line number
Diff line number
Diff line change
@@ -81,7 +81,7 @@ Même si le projet n’est pas celui du cours de stats, il faut que la démarche
81
81
Sur le format du rendu, vous devrez :
82
82
83
83
* Écrire un rapport sous forme de _Notebook_ (quelques exceptions à cette règle peuvent exister, par exemple si vous développer une appli `Dash` ou `Streamlit` comme expliqué dans la @nte-appli) ou de `Quarto Markdown`. Soyez vigilant avec le contrôle de version (@imp-gitnb)
84
-
* Avoir un projet `Github` avec le rapport. Les données utilisées doivent être accessibles également, dans le dépôt, sur internet ou sur l'espace de stockage du `SSPCloud` (@tip-s3).
84
+
* Avoir un projet `Github` avec le rapport. Les données utilisées doivent être accessibles également, dans le dépôt, sur internet ou sur l'espace de stockage du `SSPCloud` (voir [tutoriel S3](content/modern-ds/s3.qmd#les-données-sur-le-cloud)).
85
85
* Les __dépôts `Github` où seul un *upload* du projet a été réalisé seront pénalisés__. A l'inverse, les dépôts dans lequels le contrôle de version et le travail collaboratif ont été activement pratiqués (`commits` fréquents, `pull requests`, ..) seront valorisés.
86
86
* Le code contenu dans le rapport devra être un maximum propre (pas de copier coller de cellule, préférez des fonctions)
87
87
@@ -100,67 +100,6 @@ de déporter une partie du code dans des fichiers `.py` importés sous forme de
100
100
:::
101
101
102
102
103
-
::: {#tip-s3 .callout-tip collapse="true"}
104
-
## Sauvegarder des données sur le système de stockage du `SSPCloud`
105
-
106
-
⚠️ __Cette approche n'est pertinente que pour des données dont le temps d'acquisition est suffisamment long pour être dérangeant et ne doit pas être considéré comme une carte blanche à l'absence de reproductibilité.__
107
-
108
-
Il peut être pénible de refaire tourner fréquemment le code de récupération des données, notamment
109
-
si celui-ci est long. Sous cette condition, il est normal de vouloir écrire des données
110
-
intermédiaires pour des analyses ultérieures (au format `CSV` ou encore mieux au format `Parquet`).
111
-
Se pose alors la question de l'enregistrement pérenne de celles-ci, les conteneurs sur le
112
-
_SSPCloud_ n'étant pas persistant.
113
-
114
-
Ces données ne doivent pas être mises dans le dépôt `Github`, ce n'est pas le lieu adapté.
115
-
Pour le stockage pérenne de données, le _sspcloud_ propose un système de
116
-
stockage `S3` (technologie identique à celle des principaux _cloud providers_).
117
-
Dans un service ayant moins de 24 heures, afin d'avoir des jetons de connexion
118
-
n'étant pas périmés, on instancie la connexion avec
Copy file name to clipboardExpand all lines: content/modelisation/1_modelevaluation.qmd
+12-2Lines changed: 12 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -125,12 +125,22 @@ Ces métriques devraient rappeler des souvenirs si vous êtes familiers de la m
125
125
126
126
## Apprentissage non supervisé
127
127
128
-
Dans cet ensemble de méthodes, on ne dispose pas de _gold standard_ pour comparer la prédiction à la valeur observée. Pour mesurer la performance d'un algorithme, il faut donc se résoudre à utiliser des métriques de stabilité des prédictions, basées sur des critères statistiques. Cela permet d'évaluer si le fait de complexifier l'algorithme change fondamentalement la distribution des prédictions. Les métriques utilisées dépendent du type d'apprentissage mis en oeuvre.
128
+
Dans cet ensemble de méthodes, on ne dispose pas de _gold standard_ pour comparer la prédiction à la valeur observée. Pour mesurer la performance d'un algorithme, il faut donc se résoudre à utiliser des métriques de stabilité des prédictions, basées sur des critères statistiques. Cela permet d'évaluer si le fait de complexifier l'algorithme change fondamentalement la distribution des prédictions.
129
129
130
+
Les métriques utilisées dépendent du type d'apprentissage mis en oeuvre. Par exemple, le _clustering_ par _K-means_ utilise généralement une mesure d'inertie qui quantifie l'homogénéité des clusters. Une bonne performance correspond au cas où les clusters sont homogènes et se distinguent l'un de l'autre. Plus on a de clusters (le $K$ de $K-means$), plus ceux-ci tendent à être homogènes. Si on ne choisit pas un $K$ adéquat, on peut faire du sur-apprentissage: si on ne compare les modèles qu'en fonction de leur homogénéité, on va choisir un nombre de cluster très élevé ce qui correspond à un cas classique de surapprentissage. Les méthodes de sélection du nombre de cluster optimal, comme la [méthode du coude](https://en.wikipedia.org/wiki/Elbow_method_(clustering)), visent à évaluer le moment où le gain d'inertie lié à l'augmentation du nombre de clusters tend à s'affaisser. On sélectionne alors le nombre de clusters qui offre le meilleur compromis entre parcimonie et performance.
130
131
131
132
133
+
## Comment sont évalués les grands modèles de langage et les IA génératives ?
134
+
135
+
S'il apparaît relativement intuitif d'évaluer des modèles supervisés (pour lesquels on dispose d'observations faisant office de vérité absolue), comment juger de la qualité d'un outil comme `ChatGPT` ou `Copilot` ? Comment définir une bonne IA générative : est-ce une IA qui fournit une information juste du premier coup (véracité) ? une IA qui fait preuve de capacité de raisonnements (_chain of thought_) dans une discussion ? Doit-on juger le style ou uniquement le fond ?
136
+
137
+
Ces interrogations sont des champs actifs de recherche. Les [modèles de fondation](https://fr.wikipedia.org/wiki/Mod%C3%A8le_de_fondation) étant très généraux, entraînés à différentes tâches, parfois de manière supervisée, parfois de manière non supervisée, il est difficile de définir un objectif unique permettant de considérer qu'un modèle est, sans ambiguité, meilleur qu'un autre. Le [_leaderboard MTEB (Massive Text Embedding Benchmark)_](https://huggingface.co/blog/lyon-nlp-group/mteb-leaderboard-best-practices) présente par exemple de nombreuses métriques pour des tâches diverses et il peut être difficile de s'y retrouver. Sans compter que le rythme effrené de publication de nouveaux modèles change régulièrement ce classement.
138
+
139
+
Globalement, même s'il existe des métriques où on fait automatiquement évaluer la qualité d'un texte à un autre LLM (métriques _LLM as a judge_), pour avoir des modèles de langage de qualité, il est nécessaire d'avoir de l'évaluation humaine à plusieurs niveaux. En premier lieu, il est utile d'avoir un corpus de données annotées (des textes avec un résumé rédigé par un humain, des descriptions d'images, etc.) pour la phase d'entraînement et d'évaluation. Ceci permet de guider le comportement du modèle sur une tâche donnée.
140
+
141
+
Mais l'humain peut aussi intervenir _ex post_, pour faire remonter une évaluation de la qualité d'un modèle. On parle de _feedbacks_. Ceci peut prendre plusieurs formes, par exemple une évaluation positive ou négative de la réponse ou une évaluation plus qualitative. Ces informations remontées ne vont pas forcément servir à la version actuelle du modèle mais pourront servir ultérieurement pour entraîner un modèle selon une technique de renforcement.
142
+
132
143
133
-
## Comment sont évalués les grands modèles de langage ?
134
144
135
145
## Evaluer sans être tourné vers le passé: les enjeux de la supervision des modèles
0 commit comments