Guide_Evaluation_LLM / pages /17_IV.4._Évaluer_votre_évaluateur.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("""
## Évaluer votre évaluateur
Avant d'utiliser un juge en production ou à grande échelle, vous devez d'abord évaluer sa qualité pour votre tâche afin de vous assurer que ses scores sont réellement pertinents et vous sont utiles.
Une fois que vous avez sélectionné votre modèle et son instruction, vous devez procéder comme suit.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""
### 1. Choisir votre *baseline*
Vous devrez comparer les jugements de votre évaluateur à une *baseline*. Il peut s'agir d'annotations humaines, du même modèle utilisant une autre instruction, de la sortie d'un autre modèle que vous savez qualitatif pour votre tâche, etc.
Vous n'avez pas nécessairement besoin de beaucoup d'exemples (50 peuvent suffire), mais vous avez besoin qu'ils soient extrêmement représentatifs de votre tâche, discriminants (représentatifs des cas limites notamment), et d'une qualité aussi élevée que possible.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""
### 2. Choisir une métrique
La métrique sera utilisée pour comparer les évaluations de votre juge avec votre référence.
En général, cette comparaison est beaucoup plus facile à réaliser si votre modèle prédit des classes binaires ou effectue des comparaisons par paire, car vous pourrez calculer l'[*accuracy*](https://huggingface.co/spaces/evaluate-metric/accuracy) (pour les comparaisons par paire), ou la précision et le rappel (pour les classes binaires), qui sont toutes des métriques très faciles à interpréter.
Il sera plus difficile de comparer la corrélation des scores avec la notation humaine ou celle d'un modèle. Pour comprendre pourquoi plus en détail, je vous conseille de lire la [partie de cet article de blog](https://eugeneyan.com/writing/llm-evaluators/#key-considerations-before-adopting-an-llm-evaluator) (⭐) évoquant ce sujet.
Dans ce même article, un graphique permet de vous aiguiller dans le choix d'une métrique si vous ne savez pas laquelle choisir.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.image("""./assets/llm-eval-tree.jpg""", caption="Image provenant de Evaluating the Effectiveness of LLM-Evaluators (aka LLM-as-Judge) d'Eugene Yan")
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""
### 3. Évaluer votre évaluateur
Pour cette étape, il vous suffit d'utiliser votre modèle et son instruction pour évaluer vos échantillons de test ! Ensuite, une fois que vous avez obtenu les évaluations, utilisez votre métrique et votre référence pour calculer un score pour vos évaluations.
Vous devez déterminer votre seuil d'acceptation. En fonction de la difficulté de votre tâche, vous pouvez viser une précision de 80 à 95 % si vous effectuez des comparaisons par paire. En ce qui concerne les corrélations (si vous utilisez des scores), la littérature spécialisée tend à se satisfaire d'une corrélation de Pearson de 0,8 avec la référence. J'ai néanmoins vu certains articles déclarer que 0,3 indique une bonne corrélation avec des annotateurs humains 😅.
""", 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("IV.3._Concevoir_votre_instruction_d'évaluation")
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("IV.5._Modèles de récompense")