import streamlit as st
st.set_page_config(layout="wide")
from streamlit_extras.switch_page_button import switch_page
st.markdown(
"""
## Ressources 📚
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""Quelques liens que j'apprécie sur l'évaluation et le NLP.""")
st.markdown(""" """)
st.markdown(
"""### Évaluation
#### Théorie
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown("""
##### Généralités
- [*Foundational Model Development Cheatsheet*](https://fmcheatsheet.org/) d'AllenAI.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown("""
##### Évaluation automatique
- Deux aperçus intéressants sur les défis de l'évaluation automatique !
- [*Challenges in LM evaluation*](https://github.com/lm-evaluation-challenges/lm-evaluation-challenges.github.io/blob/main/%5BMain%5D%20ICML%20Tutorial%202024%20-%20Challenges%20in%20LM%20Evaluation.pdf), une présentation par Hailey Schoelkopf et Lintang Sutawika.
- [*Lessons from the trenches on Reproducible Evaluation of LMs*](https://arxiv.org/abs/2405.14782), un papier d'EleutherAI.
- Deux podcasts de *Latent Space* sur l'évaluation
- [*Benchmarks 101*](https://www.latent.space/p/benchmarks-101), sur l'historique des jeux d'évaluation automatisés et les questions connexes bien connues.
- [*Benchmarks 201*](https://www.latent.space/p/benchmarks-201), sur la méthode d'évaluation à utiliser et à quel moment, ainsi que quelques informations sur le *Leaderboard* avec votre serviteuse !
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown("""
##### *LLM-as-a-judge*
Des résumés sympas et des retours d'expérience :
- https://eugeneyan.com/writing/llm-evaluators/
- https://cameronrwolfe.substack.com/p/llm-as-a-judge
- https://dylandigitalgarden.com/2024/July/July+31%2C+2024+LLM+%26+VLM-as-a-Judge
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""
### Software
##### Bibliothèques Python
- [`lm_eval`](https://github.com/EleutherAI/lm-evaluation-harness/) par Eleuther (également connu sous le nom de « The Harness »).
La référence en matière d'évaluation de LLM, vous permettant d'évaluer n'importe quel LLM de nombreux fournisseurs sur une série de *benchmarks*, d'une manière stable et reproductible.
- [`lighteval`](https://github.com/huggingface/lighteval) par Hugging Face (avertissement : je suis l'une des auteurs).
Une suite d'évaluation LLM légère, centrée sur la personnalisation et les jeux d'évaluation récents.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown("""
##### Classements
- [*Open LLM Leaderboard*](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard) par Hugging Face.
Évaluation indépendante et neutre des LLMs ouverts sur des jeux d'évaluation statiques de référence (ouvert aux soumissions)
- [*HELM*](https://crfm.stanford.edu/helm/lite/latest/#/leaderboard) par Stanford.
Évalue également les modèles sur des jeux d'évaluation statiques, mais utilise les taux de victoire pour classer les modèles.
- [*Chatbot Arena*](https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard) par LMSys
Arena utilise l'évaluation humaine crowdsourcée pour noter 150 LLM.
- [*LLM Performance Leaderboard*](https://huggingface.co/spaces/ArtificialAnalysis/LLM-Performance-Leaderboard) par Artificial Analysis
Jeu d'évaluation des performances et prix des plus grands fournisseurs d'API LLM, si vous souhaitez utiliser une API au lieu de faire fonctionner les choses localement.
- [*All our blogs about evaluations and leaderboards*](https://huggingface.co/blog?tag=leaderboard)
- [*Leaderboard finder*](https://huggingface.co/spaces/leaderboards/LeaderboardFinder)
Trouvez le classement le plus pertinent pour votre cas d'utilisation.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown("""
##### Tutoriels
- [*End-to-end custom domain evaluation tutorial*](https://github.com/argilla-io/argilla-cookbook/tree/main/domain-eval)
Ce tutoriel vous guide dans la construction d'une tâche d'évaluation personnalisée pour votre domaine. Il utilise des données synthétiques et une évaluation manuelle avec [Argilla](https://github.com/argilla-io/argilla/) et [distilabel](https://github.com/argilla-io/distilabel).
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(""" """)
st.markdown(
"""### NLP
##### Connaissances générales
- [*NLP for You*](https://lena-voita.github.io/nlp_course.html) de Lena Voita.
L'un des meilleurs cours de NLP en ligne, vraiment pas à pas et agréable à lire.
- [Le cours de NLP 🤗](https://huggingface.co/learn/nlp-course/fr/chapter1/1) par Hugging Face (en français).
Extrêmement complet, avec de nombreux extraits de code pour que vous puissiez commencer rapidement !
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""
##### Comprendre les architectures des LLM
- [*The Annotated Encoder Decoder*](https://bastings.github.io/annotated_encoder_decoder/), par Jasmijn Bastings.
Vous guide à travers l'article de Bahdanau de 2015 introduisant l'encodeur-décodeur avec attention pour les réseaux récurrents, avec des explications de code à chaque étape.
- [*The Annotated Transformers*](https://nlp.seas.harvard.edu/2018/04/03/attention.html) de Sasha Rush.
Vous guide à travers l'article de Vaswani de 2016 introduisant les *transformers*, avec des explications de code à chaque étape.
- [*The Illustrated Transformers*](https://jalammar.github.io/illustrated-transformer/) par Jay Alammar ([version en français](https://lbourdois.github.io/blog/nlp/Transformer/)).
Bon complément au lien précédent, avec des visualisations au lieu de codes.
- [*The Annotated S4*](https://srush.github.io/annotated-s4/) de Sasha Rush.
Vous guide à travers le papier *Structured State Space for Sequence Modeling* (S4), avec du code à chaque étape. Si vous vous demandez ce que sont les modèles d'espace d'état, jetez-y un coup d'œil !
- [*A Visual Guide to MoE*](https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts) par Maarten Grootendorst.
Lisez d'abord l'un des guides sur les *transformers* ci-dessus, puis jetez un coup d'oeil à ce guide ! Beaucoup de belles visualisations.
""", unsafe_allow_html=True)
st.markdown(""" """)
st.markdown(""" """)
st.markdown("""
##### Instructions (*Prompts*)
- [*Show me the prompt*](https://hamel.dev/blog/posts/prompt/)
""", 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("Notebook")
with col2:
if st.button("Accueil", use_container_width=True):
switch_page("Home")