import streamlit as st st.set_page_config(layout="wide") from streamlit_extras.switch_page_button import switch_page st.markdown(r""" ## Dépanner les problèmes mathématiques """) st.markdown(""" """) st.markdown(""" """) st.markdown("""### Utilisation de $\LaTeX$ pour évaluer sur le jeu d'évaluation MATH""") st.markdown(""" """) st.markdown(""" Parser le $\LaTeX$ est difficile. C'est un problème pour évaluer un modèle qui en attend en sortie. C'est le cas du [jeu d'évaluation MATH](https://huggingface.co/datasets/lighteval/MATH) qui l'utilise pour représenter des calculs et des symboles mathématiques. L'évaluation de cette tâche consiste à analyser les références et les résultats du modèle. Il s'avère qu'il n'y a pas de bonne façon d'analyser le $\LaTeX$ : """, unsafe_allow_html=True) st.markdown(""" """) st.image("./assets/sympy_doc.png", caption="Tiré de la documentation de la bibliothèque SymPy", use_container_width=True) st.markdown(""" """) st.markdown(r""" La librairie [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness) utilise [SymPy](https://github.com/sympy/sympy) (une bibliothèque Python pour les mathématiques symboliques) pour analyser le $\LaTeX$ et comparer les expressions. Lorsque l'on utilise SymPy pour essayer d'analyser les références (contre elles-mêmes), nous n'obtenons qu'une *accuracy* d'environ 0,94. Comment cela est-il possible ? Il s'avère que SymPy ne peut pas analyser certaines expressions (correctes en $\LaTeX$). Par exemple : ``` couldn't parse one of [0,1) or [0,1), I expected one of these: ']' [0,1) ~~^ ``` ``` couldn't parse one of (-\iny,-5]\cup[5,\iny) or (-\iny,-5]\cup[5,\iny), I expected something else here (-\iny,-5]\cup[5,\iny) ~~~~~~^ ``` ``` couldn't parse one of -\frac{1}{{}2x} or -\frac{1}{{}2x}, I don't understand this -\frac{1}{{}2x} ~~~~~~~~~~~^ ``` """, unsafe_allow_html=True) st.markdown(""" """) st.markdown(""" """) st.markdown(""" """) st.markdown(r""" ##### Comment contourner ce problème ? Vous pouvez soit réécrire la [grammaire](https://github.com/sympy/sympy/blob/master/sympy/parsing/latex/lark/grammar/latex.lark) de $\LaTeX$ en ajoutant les fonctionnalités nécessaires au code, soit ajouter des vérifications manuelles à votre code pour améliorer les scores des modèles. Nous avons opté pour cette seconde option chez Hugging Face. """, unsafe_allow_html=True) st.markdown(""" """) st.image("./assets/lm_eval_diff.png", caption="Correction appliquée au code de LM Evaluation Harness") st.markdown(""" """) st.markdown(""" """) st.markdown(""" """) st.markdown(r""" ##### Résultats Le tableau suivant compare les anciens et les nouveaux résultats des 25 premiers modèles sur le jeu d'évaluation :
Comparaison du parseur original et corrigé sur le jeu d'évaluation MATH | ||||
Modèle | Score | Rang | ||
---|---|---|---|---|
Parseur original | Parseur corrigé | Parseur original | Parseur corrigé | |
rombodawg/Rombos-LLM-V2.5-Qwen-72b | 47,58 | 50,68 | 1 | 1 |
MaziyarPanahi/calme-2.2-qwen2-72b | 41,16 | 43,43 | 2 | 2 |
arcee-ai/Arcee-Nova | 40,48 | 42,90 | 3 | 3 |
fblgit/TheBeagle-v2beta-32B-MGS | 39,43 | 42,52 | 4 | 4 |
rombodawg/Rombos-LLM-V2.5-Qwen-32b | 39,12 | 41,99 | 5 | 5 |
dnhkng/RYS-XLarge | 38,97 | 41,24 | 6 | 6 |
dfurman/CalmeRys-78B-Orpo-v0.1 | 37,92 | 40,71 | 8 | 7 |
MaziyarPanahi/calme-2.2-rys-78b | 37,92 | 39,95 | 8 | 9 |
MaziyarPanahi/calme-2.4-rys-78b | 37,69 | 40,41 | 9 | 8 |
MaziyarPanahi/calme-2.3-rys-78b | 36,56 | 38,97 | 10 | 10 |
MaziyarPanahi/calme-2.1-rys-78b | 36,40 | 38,90 | 11 | 11 |
Qwen/Qwen2.5-72B | 36,10 | 38,67 | 12 | 12 |
MaziyarPanahi/calme-2.1-qwen2-72b | 36,03 | 38,07 | 13 | 15 |
Qwen/Qwen2-Math-72B-Instruct | 35,95 | 38,14 | 14 | 14 |
dfurman/Qwen2-72B-Orpo-v0.1 | 35,42 | 38,14 | 15 | 13 |
abacusai/Smaug-Qwen2-72B-Instruct | 35,35 | 37,46 | 16 | 19 |
anthracite-org/magnum-v1-72b | 35,27 | 37,69 | 18 | 16 |
alpindale/magnum-72b-v1 | 35,27 | 37,69 | 18 | 16 |
Qwen/Qwen2-72B-Instruct | 35,12 | 37,69 | 19 | 18 |
dnhkng/RYS-XLarge-base | 34,67 | 37,16 | 20 | 20 |
Undi95/MG-FinalMix-72B | 33,61 | 36,10 | 22 | 21 |
abacusai/Dracarys-72B-Instruct | 33,61 | 35,65 | 22 | 22 |
Qwen/Qwen2.5-32B | 32,85 | 35,50 | 23 | 23 |
anthracite-org/magnum-v2-72b | 31,65 | 34,06 | 24 | 24 |
dnhkng/RYS-Huge-bnb-4bit | 31,57 | 33,84 | 25 | 25 |