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|snli-acc|0", "snli_acc", "SNLI Accuracy") task1 = Task("custom|heq-qa-tlnls|0", "heq_tlnls", "QA TLNLS (HeQ)") task2 = Task("custom|sentiment-acc|0", "sentiment_acc", "Sentiment Acc (Mafat)") task3 = Task("custom|winograd-acc|0", "winograd_acc", "Winograd (Binary) Acc (V. Schwartz)") task4 = Task("custom|he-en-trans-bleu|0", "sentence_bleu", "Translation BLEU") task5 = Task("custom|ilfacts-acc|0", "ilfacts_acc", "Israeli Trivia") 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:

5. SNLI Accuracy - **Source**: We took a sample of documents from the test-subset of the official SNLI corpus. - **Scoring**: We compute the accuracy score on the predictions, expecting either "סתירה", "התאמה", or "כלום". - **Number of examples**: There are a total of 210 examples - 70 from each class - where each example was translated using [Dicta's translation engine](https://translate.dicta.org.il), and then manually reviewed and corrected as needed. - **Few-Shot Format**: For every prompt, we provide 12 few-shot examples, 4 from each category. For example:

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

6. Israeli Trivia - **Source**: We use a corpus of several hundred trivia questions about general world knowledge, specifically on Israel-related facts. We extend immense gratitude to Avraham Elitzur for helping us curate this dataset. - **Scoring**: We provide in the prompt multiple-choice answers, and compute the accuracy score. - **Number of examples**: 300 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 question, the possible answers, and the expected answer. For example:

שאלה: באיזו עיר נערכה הכרזת המדינה הרשמית על ידי דוד בן גוריון?
אפשרויות: "ירושלים" / "אשקלון" / "תל אביב" / "צפת"
תשובה: תל אביב
... שאלה: שאלה חדשה
אפשרויות: "אפשרות א" / "אפשרות ב" ...
תשובה:

""" 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 automatically, please reach out to the email listed below if you would like to run a model that requires `trust_remote_code=True`. ### 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@dicta.org.il` with the details. Note: Larger models aren't automatically approved to run, if you wish to evaluate a larger model please reach out to the email above. """