Guide_Evaluation_LLM / pages /11_III.2._Utiliser_des_annotateurs_humains.py
bourdoiscatie's picture
Upload 44 files
1162aae verified
import streamlit as st
st.set_page_config(layout="wide")
from streamlit_extras.switch_page_button import switch_page
st.markdown(
"""## Utiliser des annotateurs humains
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(
"""
Je suggère de lire la section 3 de cette [revue de littérature](https://aclanthology.org/2024.cl-3.1/) sur les bonnes pratiques pour annoter des données qualitativement. Si vous voulez une qualité de niveau production et que vous avez les moyens de mettre en œuvre toutes ces méthodes, foncez !""", unsafe_allow_html=True)
st.markdown(""" """)
st.image("./assets/best_annotation_practices.png", use_container_width=True)
st.markdown(""" """)
st.markdown(
"""
Une fois que vous avez défini votre tâche et les lignes directrices pour la notation, les recommandations importantes (quelle que soit la taille de votre projet) sont les suivantes :
- **Sélection des annotateurs et, si possible, incitations monétaires**
Il est probable que vous souhaitiez que les personnes travaillant sur votre tâche :
1) possèdent certaines caractéristiques socio-démographiques.<br>
Quelques exemples : être un locuteur natif de la langue cible, avoir un certain niveau d'éducation, être expert dans un domaine spécifique, avoir des origines géographiques diverses, etc.<br>
Vos besoins varient en fonction de votre tâche.<br>
2) produisent un travail de haute qualité.<br>
Il est particulièrement important d'ajouter un moyen de vérifier si les réponses sont générées par LLM, et vous aurez besoin de filtrer certains annotateurs de votre groupe.
""", unsafe_allow_html=True)
st.info("""Selon moi, à moins que vous ne comptiez sur des annotateurs bénévoles très motivés, il est toujours préférable de payer correctement vos annotateurs.""")
st.markdown("""
- **Conception des directives d'annotation**<br>
Veillez à consacrer beaucoup de temps à l'élaboration de vos consignes d'annotation ! C'est l'un des points sur lesquels nous avons passé le plus de temps pour le jeu de données [GAIA](https://huggingface.co/gaia-benchmark).
- **Itérer**<br>
Préparez-vous à essuyer plusieurs séries d'annotations car vos annotateurs comprendront mal vos instructions (elles sont plus ambiguës que vous ne le pensez) ! Générer des échantillons plusieurs fois permettra à vos annotateurs de vraiment converger vers ce dont vous avez besoin.
- **Estimation de la qualité** et **nettoyage manuel**<br>
Vous souhaitez contrôler les réponses (en particulier par le biais d'un accord inter-annotateurs si vous pouvez) et effectuer une sélection finale pour ne conserver que les réponses les plus pertinentes et de la plus haute qualité.
Des outils spécialisés pour construire des jeux de données annotés de haute qualité comme [Argilla](https://argilla.io/) peuvent vous aider.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(
"""
### Aller plus loin
- ⭐ [Comment configurer votre propre plateforme d'annotateurs en quelques minutes](https://huggingface.co/learn/cookbook/enterprise_cookbook_argilla) par Moritz Laurer.<br> Une bonne lecture pour acquérir une expérience pratique de l'utilisation d'outils open source (comme Argilla et Hugging Face), et mieux comprendre les choses à faire et à ne pas faire en matière d'annotation humaine massive.
- ⭐ [Un guide sur les bonnes pratiques en matière d'annotation](https://aclanthology.org/2024.cl-3.1/).<br>
Il s'agit d'une revue de littérature de tous les articles sur l'annotation humaine datant de 2023 qui est très complète. Légèrement dense mais facilement compréhensible.
- [Un autre guide sur les bonnes pratiques en matière d'annotation](https://scale.com/guides/data-labeling-annotation-guide) par ScaleAI.<br>Entreprise spécialisée dans les évaluations humaines. Il s'agit d'un complément plus léger au lien précédent.
- [*Assumptions and Challenges of Capturing Human Labels*](https://aclanthology.org/2024.naacl-long.126/)<br>
Papier sur la façon d'examiner les sources de désaccord entre les annotateurs et de les atténuer dans la pratique.
""", 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.1._Bases")
with col2:
if st.button("Accueil", use_container_width=True):
switch_page("Home")
with col3:
if st.button("Section suivante", use_container_width=True):
switch_page("III.3._Conseils_et_astuces")