Spaces:
Running
Running
import streamlit as st | |
st.set_page_config(layout="wide") | |
from streamlit_extras.switch_page_button import switch_page | |
st.markdown( | |
""" | |
## Conseils et astuces | |
Voici quelques conseils pratiques à prendre en compte lorsque vous recourez à des annotateurs humains pour constituer un jeu de données d'évaluation. Si vous ne l'avez pas encore fait, nous vous recommandons de lire d'abord la page <a href='III.2._Utiliser_des_annotateurs_humains' target='_self'>Utiliser des annotateurs humains</a> avant de commencer celle-ci. | |
""", unsafe_allow_html=True) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown( | |
""" | |
### Concevoir la tâche | |
- **Privilégier la simplicité**<br>Les tâches d'annotation peuvent devenir inutilement complexes, il faut donc les simplifier au maximum. En réduisant au minimum la charge cognitive des annotateurs, vous vous assurez qu'ils restent concentrés et qu'ils produisent des annotations de meilleure qualité. | |
- **Vérifiez ce que vous montrez**<br>Ne montrez que les informations nécessaires aux annotateurs pour accomplir la tâche et veillez à ne rien inclure qui puisse introduire un biais supplémentaire. | |
- **Tenez compte du temps de vos annotateurs**<br>L'emplacement et la manière dont les choses sont affichées peuvent entraîner un surcroît de travail ou une charge cognitive supplémentaire et, par conséquent, avoir un impact négatif sur la qualité des résultats. Par exemple, veillez à ce que les textes et la tâche soient visibles ensemble et évitez tout défilement inutile. Si vous combinez des tâches et que le résultat de l'une informe l'autre, vous pouvez les afficher de manière séquentielle. Réfléchissez à la manière dont tout est affiché dans votre outil d'annotation et voyez s'il n'y a pas moyen de simplifier encore plus. | |
- **Testez vous-même la configuration**<br>Une fois que vous avez conçu votre tâche et mis en place certaines consignes, veillez à la tester vous-même sur quelques échantillons avant d'impliquer l'ensemble de l'équipe, et procédez à des itérations si nécessaire. | |
""", unsafe_allow_html=True) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown( | |
""" | |
### Durant l'annotation | |
- **Les annotateurs doivent travailler de manière indépendante**<br>Il est préférable que les annotateurs ne s'entraident pas et ne voient pas le travail des autres pendant la tâche car pourraient propager leurs propres préjugés et provoquer une dérive des annotations. L'alignement doit toujours se faire par le biais de consignes détaillées. Vous pouvez former les nouveaux membres de l'équipe sur un jeu de données distinct et/ou utiliser des mesures d'accord inter-annotateurs pour vous assurer que l'équipe est alignée. | |
- **La cohérence est essentielle**<br>Si vous apportez des modifications importantes à vos consignes (par exemple, modification d'une définition ou d'une instruction, ou ajout/suppression d'étiquettes), vous devez vous demander si vous avez besoin d'itérer sur les données annotées. Au moins, vous devriez traquer les changements dans votre jeu de données par le biais d'une valeur de métadonnées telle que `guidelines-v1`. | |
""", unsafe_allow_html=True) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown( | |
""" | |
### Annotation hybride homme-machine | |
Parfois, les équipes sont confrontées à des contraintes de temps et de ressources mais ne veulent pas sacrifier les avantages de l'évaluation humaine. Dans ce cas, vous pouvez utiliser l'aide de modèles pour rendre la tâche plus efficace. | |
- **Annotation assistée par modèle**<br>Vous pouvez utiliser les prédictions ou les générations d'un modèle comme pré-annotations, de sorte que l'équipe d'annotation n'ait pas à repartir de zéro. Notez simplement que cela peut introduire les biais du modèle dans les annotations humaines, et que si la qualité du modèle est faible, cela peut augmenter la charge de travail des annotateurs. | |
- **Superviser le modèle comme un juge**<br>Vous pouvez combiner la puissance de la méthodologie du *LLM-as-a-judge* (voir le chapitre <a href='IV._LLM_AS_A_JUDGE' target='_self'>dédié</a>) et les superviseurs humains pour valider ou rejeter les résultats. Notez que les biais discutés dans la partie « Avantages et inconvénients de l'évaluation humaine » abordés dans la page <a href='III.1._Bases' target='_self'>Bases</a> s'appliquent ici. | |
- **Identifier les cas limites**<br>Pour une tâche encore plus rapide, utilisez un jury de modèles et demandez à votre (vos) superviseur(s) humain(s) d'intervenir en cas de désaccord entre les modèles ou d'égalité à départager. Là encore, il faut tenir compte des biais évoqués dans « Avantages et inconvénients de l'évaluation humaine ». | |
""", unsafe_allow_html=True) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown( | |
""" | |
### Tutoriel complet | |
Pour construire votre propre système d'évaluation personnalisé en suivant ces conseils, vous pouvez suivre ce [tutoriel](https://github.com/argilla-io/argilla-cookbook/tree/main/domain-eval) d'[Argilla](https://github.com/argilla-io/argilla/). Il vous guide dans la construction d'une tâche d'évaluation personnalisée pour votre domaine, en utilisant des données synthétiques (via [distilabel](https://github.com/argilla-io/distilabel)) et une évaluation manuelle. Le guide part des documents du domaine et aboutit à une tâche d'évaluation personnalisée que vous pouvez utiliser pour évaluer votre modèle avec [lighteval](https://github.com/huggingface/lighteval). | |
""", unsafe_allow_html=True) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
st.markdown(""" """) | |
col1, col2, col3= st.columns(3) | |
with col1: | |
if st.button('Section précédente', use_container_width=True): | |
switch_page("III.2._Utiliser_des_annotateurs_humains") | |
with col2: | |
if st.button("Accueil", use_container_width=True): | |
switch_page("Home") | |
with col3: | |
if st.button("Chapitre suivant", use_container_width=True): | |
switch_page("IV._LLM_AS_A_JUDGE") |