from dataclasses import dataclass from enum import Enum @dataclass class Task: benchmark: str metric: str col_name: str # Select your tasks here # --------------------------------------------------- class Tasks(Enum): # task_key in the json file, metric_key in the json file, name to display in the leaderboard task0 = Task("custom|heq-qa-tlnls|0", "heq_tlnls", "QA TLNLS (HeQ)") task1 = Task("custom|sentiment-acc|0", "sentiment_acc", "Sentiment Acc (Mafat)") task2 = Task("custom|winograd-acc|0", "winograd_acc", "Winograd (Binary) Acc (V. Schwartz)") task3 = Task("custom|he-en-trans-bleu|0", "sentence_bleu", "Translation BLEU") NUM_FEWSHOT = 0 # Change with your few shot # --------------------------------------------------- # Your leaderboard name TITLE = """

Hebrew LLM Leaderboard

""" # What does your leaderboard evaluate? INTRODUCTION_TEXT = """
Welcome to the Leaderboard for open Hebrew LLMs. The leaderboard ranks the different models according to their success on various tasks on Hebrew. The leaderboard was created and is operated by a collaboration of [Mafat / The Israeli National Program for NLP in Hebrew and Arabic](https://nnlp-il.mafat.ai/) and [DICTA: The Israel Center for Text Analysis](https://dicta.org.il/).
ברוכים הבאים ללוח התוצאות של מודלי LLM פתוחים בעברית. לוח התוצאות מדרג את המודלים השונים לפי הצלחתם במשימות שונות בעברית. לוח התוצאות נוצר ומתופעל על ידי שיתוף פעולה בין [מפא"ת / התוכנית הלאומית הישראלית ל-NLP בעברית ובערבית](https://nnlp-il.mafat.ai/) ו[דיקטה: המרכז הישראלי לניתוח טקסטים](https://dicta.org.il/)
Dicta Logo Mafat Logo
""" # Which evaluations are you running? how can people reproduce what you have? LLM_BENCHMARKS_TEXT = f""" ## How it works We have curated 4 datasets for benchmarking the quality of the LLMs in Hebrew. All of the benchmarks test the base model using a few-shot prompt. Note that the tests specifically evaluate the model's abilities regarding Hebrew, without regard for the capabilities of the model in other languages. 1. QA TLNLS (HeQ) - **Source**: We use the test subset of the HeQ dataset, released by Amir Cohen [here](https://aclanthology.org/2023.findings-emnlp.915/). Data can be found [here](https://github.com/NNLP-IL/Hebrew-Question-Answering-Dataset). - **Scoring**: We score the results using the `tlnls` scoring method proposed in the paper released with HeQ, which accounts for the linguistic properties of Hebrew language. - **Number of examples**: 1,436 prompts. - **Few-Shot Format**: For every context paragraph in the dataset, the few-shot prompt is formatted with the context paragraph, followed by 3 questions and answers on that paragraph, and finally with the desired question unanswers. For example:

בשנת 2012, התמודדה לראשונה בפריימריז של מפלגת העבודה לקראת הבחירות לכנסת התשע עשרה והגיעה למקום ה־36 ברשימה הארצית (הבטחת ייצוג לאישה). ב־2015 לקראת הבחירות לכנסת העשרים, התמודדה ורבין בפריימריז של מפלגת העבודה והוצבה במקום ה-22 ברשימת המחנה הציוני לכנסת, אשר שוריין לאישה ונבחרה לכנסת. בשנת הכהונה הראשונה שלה בכנסת, העניק לה המכון הישראלי לדמוקרטיה את אות הפרלמנטר המצטיין לשנת 2016. חברה בוועדת החוץ וביטחון, שם היא חברה בוועדת המשנה לכוח אדם. יזמה וישבה בראש וועדת המשנה לבחינת משק האשראי בישראל. יזמה וחברה בוועדת החקירה הפרלמנטרית לבחינת משק האשראי בישראל, וכן חברה בוועדת הכלכלה, וועדת הכנסת והוועדה המיוחדת לזכויות הילד, ובוועדת המשנה לקידום עסקים קטנים ובינוניים

שאלה: באיזה פרס זכתה ורבין?
תשובה: אות הפרלמנטר המצטיין לשנת 2016 שאלה: מי מעניק את אות הפרלמנטר המצטיין?
תשובה: המכון הישראלי לדמוקרטיה שאלה: מתי התקיימו הבחירות לכנסת העשרים?
תשובה: ב־2015 שאלה: לאיזו כנסת נכנסה ורבין לראשונה?
תשובה:
2. Sentiment Acc (Mafat) - **Source**: We use a test subset of an early version of the Hebrew Sentiment dataset, released by Mafat \& NNLP-IL [here](https://www.facebook.com/groups/MDLI1/permalink/2681774131986618/). The latest version of the data can be found [here](https://github.com/NNLP-IL/Hebrew-Question-Answering-Dataset) (albeit it is different than the data we used). - **Scoring**: We compute the accuracy score on the predictions, expecting either "חיובי", "שלילי", or "נטרלי". - **Number of examples**: 3,000 examples, 1,000 from each category. These examples were selected by a linguist tagger. - **Few-Shot Format**: For every prompt, we provide 9 few-shot examples, 3 from each category, randomly shuffled. For example:

משפט: משפט חיובי
תשובה: חיובי משפט: משפט שלילי
תשובה: שלילי משפט: משפט נטרלי
תשובה: נטרלי ... משפט: משפט כלשהו
תשובה:

3. Winograd (Binary) Acc - **Source**: We use `A Translation of the Winograd Schema Challenge to Hebrew`, translated by Dr. Vered Schwartz. The data can be found [here](https://www.cs.ubc.ca/~vshwartz/resources/winograd_he.jsonl). - **Scoring**: We provide in the prompt the two possible answers, and compute the accuracy score. - **Number of examples**: 278 examples. - **Few-Shot Format**: For every prompt, we provide 5 few-shot examples, and then the question at hand. Each example is formatted with the input sentence with the question, the possible answers, and the expected answer. For example:

שאלה: השוטרים עצרו את חברי הכנופיה. הם ניהלו ארגון של סחר בסמים. מי ניהלו?
אפשרויות: "חברי הכנופיה" או "השוטרים"
תשובה: חברי הכנופיה ... שאלה: השועלים היו מגיעים בלילות לתקוף את התרנגולים, אז הייתי צריך לשמור עליהם. על מי הייתי צריך לשמור?
אפשרויות: "התרנגולים" או "השועלים"
תשובה:

4. Translation BLEU - **Source**: We use the aligned translation corpus `NeuLabs-TedTalks`, which can be found [here](https://opus.nlpl.eu/NeuLab-TedTalks/en&he/v1/NeuLab-TedTalks). - **Scoring**: We use the `sacrebleu.sentence_blue` scoring function. - **Number of examples**: We took a random 1,000 examples which were 30-40 words in length from the aligned corpus, and compute the mean score for translating those examples from English to Hebrew, and from Hebrew to English (a total of 2,000 examples). - **Few-Shot Format**: For every prompt, we provide 3 few-shot examples of an English sentence and the Hebrew equivalent. The order depends on the direction that we are attempting to translate to. For example:

English: Some sentence in English
Hebrew: משפט בעברית. ... English: Some sentence to translate to Hebrew
Hebrew:

""" EVALUATION_QUEUE_TEXT = """ ## Important Note Due to budget restrictions, we have a cap on the number of models that can be tested a month. Please only send your model when you are ready for testing. We also have limits on the number of models that can be sent per/user. ## Some good practices before submitting a model ### 1) Make sure you can load your model and tokenizer using AutoClasses: ```python from transformers import AutoConfig, AutoModel, AutoTokenizer config = AutoConfig.from_pretrained("your model name", revision=revision) model = AutoModel.from_pretrained("your model name", revision=revision) tokenizer = AutoTokenizer.from_pretrained("your model name", revision=revision) ``` If this step fails, follow the error messages to debug your model before submitting it. It's likely your model has been improperly uploaded. Note: make sure your model is public! Note: if your model needs `use_remote_code=True`, we do not support this option yet but we are working on adding it, stay posted! ### 2) Convert your model weights to [safetensors](https://huggingface.co/docs/safetensors/index) It's a new format for storing weights which is safer and faster to load and use. It will also allow us to add the number of parameters of your model to the `Extended Viewer`! ### 3) Make sure your model has an open license! This is a leaderboard for Open LLMs, and we'd love for as many people as possible to know they can use your model 🤗 ### 4) Fill up your model card When we add extra information about models to the leaderboard, it will be automatically taken from the model card ## In case of model failure If your model is displayed in the `FAILED` category, its execution stopped. Make sure you have followed the above steps first. If everything is done and the model still won't run, please reach out to `shaltiel at dicta dot org dot il` with the details. """