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):
AVG = Task("scores", "AVG", "AVG")
CG = Task("scores", "CG", "CG - コード生成") # Code Generation - コード生成
EL = Task("scores", "EL", "EL - エンティティリンキング") # Entity Linking - エンティティリンキング
FA = Task("scores", "FA", "FA - 基礎分析") # Fundamental Analysis - 基礎分析
HE = Task("scores", "HE", "HE - 人間の評価") # Human Examination - 人間の評価
MC = Task("scores", "MC", "MC - 多肢選択式質問応答") # Multiple Choice question answering - 多肢選択式質問応答
MR = Task("scores", "MR", "MR - 数学的推論") # Mathematical Reasoning - 数学的推論
MT = Task("scores", "MT", "MT - 機械翻訳") # Machine Translation - 機械翻訳
NLI = Task("scores", "NLI", "NLI - 自然言語推論") # Natural Language Inference - 自然言語推論
QA = Task("scores", "QA", "QA - 質問応答") # Question Answering - 質問応答
RC = Task("scores", "RC", "RC - 読解力") # Reading Comprehension - 読解力
SUM = Task("scores", "SUM", "SUM - 要約") # Summarization - 要約
alt_e_to_j_bert_score_ja_f1 = Task("scores", "alt-e-to-j_bert_score_ja_f1", "ALT E to J BERT Score")
alt_e_to_j_bleu_ja = Task("scores", "alt-e-to-j_bleu_ja", "ALT E to J BLEU")
alt_e_to_j_comet_wmt22 = Task("scores", "alt-e-to-j_comet_wmt22", "ALT E to J COMET WMT22")
alt_j_to_e_bert_score_en_f1 = Task("scores", "alt-j-to-e_bert_score_en_f1", "ALT J to E BERT Score")
alt_j_to_e_bleu_en = Task("scores", "alt-j-to-e_bleu_en", "ALT J to E BLEU")
alt_j_to_e_comet_wmt22 = Task("scores", "alt-j-to-e_comet_wmt22", "ALT J to E COMET WMT22")
chabsa_set_f1 = Task("scores", "chabsa_set_f1", "ChABSA")
commonsensemoralja_exact_match = Task("scores", "commonsensemoralja_exact_match", "CommonSenseMoralJA")
jamp_exact_match = Task("scores", "jamp_exact_match", "JAMP")
janli_exact_match = Task("scores", "janli_exact_match", "JANLI")
jcommonsenseqa_exact_match = Task("scores", "jcommonsenseqa_exact_match", "JCommonSenseQA")
jemhopqa_char_f1 = Task("scores", "jemhopqa_char_f1", "JEMHopQA")
jmmlu_exact_match = Task("scores", "jmmlu_exact_match", "JMMLU")
jnli_exact_match = Task("scores", "jnli_exact_match", "JNLI")
jsem_exact_match = Task("scores", "jsem_exact_match", "JSEM")
jsick_exact_match = Task("scores", "jsick_exact_match", "JSICK")
jsquad_char_f1 = Task("scores", "jsquad_char_f1", "JSquad")
jsts_pearson = Task("scores", "jsts_pearson", "JSTS (Pearson) - 意味的類似度") # Semantic Textual Similarity - 意味的類似度
jsts_spearman = Task("scores", "jsts_spearman", "JSTS (Spearman) - 意味的類似度") # Semantic Textual Similarity - 意味的類似度
kuci_exact_match = Task("scores", "kuci_exact_match", "KUCI")
mawps_exact_match = Task("scores", "mawps_exact_match", "MAWPS")
mmlu_en_exact_match = Task("scores", "mmlu_en_exact_match", "MMLU")
niilc_char_f1 = Task("scores", "niilc_char_f1", "NIILC")
wiki_coreference_set_f1 = Task("scores", "wiki_coreference_set_f1", "Wiki Coreference")
wiki_dependency_set_f1 = Task("scores", "wiki_dependency_set_f1", "Wiki Dependency")
wiki_ner_set_f1 = Task("scores", "wiki_ner_set_f1", "Wiki NER")
wiki_pas_set_f1 = Task("scores", "wiki_pas_set_f1", "Wiki PAS")
wiki_reading_char_f1 = Task("scores", "wiki_reading_char_f1", "Wiki Reading")
wikicorpus_e_to_j_bert_score_ja_f1 = Task("scores", "wikicorpus-e-to-j_bert_score_ja_f1", "WikiCorpus E to J BERT Score")
wikicorpus_e_to_j_bleu_ja = Task("scores", "wikicorpus-e-to-j_bleu_ja", "WikiCorpus E to J BLEU")
wikicorpus_e_to_j_comet_wmt22 = Task("scores", "wikicorpus-e-to-j_comet_wmt22", "WikiCorpus E to J COMET WMT22")
wikicorpus_j_to_e_bert_score_en_f1 = Task("scores", "wikicorpus-j-to-e_bert_score_en_f1", "WikiCorpus J to E BERT Score")
wikicorpus_j_to_e_bleu_en = Task("scores", "wikicorpus-j-to-e_bleu_en", "WikiCorpus J to E BLEU")
wikicorpus_j_to_e_comet_wmt22 = Task("scores", "wikicorpus-j-to-e_comet_wmt22", "WikiCorpus J to E COMET WMT22")
xlsum_ja_bert_score_ja_f1 = Task("scores", "xlsum_ja_bert_score_ja_f1", "XL-Sum JA BERT Score")
xlsum_ja_bleu_ja = Task("scores", "xlsum_ja_bleu_ja", "XL-Sum JA BLEU")
xlsum_ja_rouge1 = Task("scores", "xlsum_ja_rouge1", "XL-Sum ROUGE1")
xlsum_ja_rouge2 = Task("scores", "xlsum_ja_rouge2", "XL-Sum ROUGE2")
# xlsum_ja_rouge2_scaling = Task("scores", "xlsum_ja_rouge2_scaling", "XL-Sum JA ROUGE2 Scaling")
xlsum_ja_rougeLsum = Task("scores", "xlsum_ja_rougeLsum", "XL-Sum ROUGE-Lsum")
NUM_FEWSHOT = 0 # Change with your few shot
# ---------------------------------------------------
# Your leaderboard name
TITLE = """
🇯🇵 Open Japanese LLM Leaderboard 🌸
オープン日本語LLMリーダーボード
"""
# What does your leaderboard evaluate?
INTRODUCTION_TEXT = """
The __Open Japanese LLM Leaderboard__ by __[LLM-Jp](https://llm-jp.nii.ac.jp/en/)__ evaluates
the performance of Japanese Large Language Models (LLMs) with more than 16 tasks from
classical to modern NLP tasks. The __Open Japanese LLM Leaderboard__ was built by open-source
contributors of __[LLM-Jp](https://llm-jp.nii.ac.jp/en/)__, a cross-organizational project
for the research and development of Japanese LLMs supported by the _National Institute of
Informatics_ in Tokyo, Japan.
On the __"LLM Benchmark"__ page, the question mark **"?"** refers to the parameters that
are unknown in the model card on Hugging Face. For more information about datasets,
please consult the __"About"__ page or refer to the website of
__[LLM-Jp](https://llm-jp.nii.ac.jp/en/)__. And on the __"Submit here!"__ page, you can
evaluate the performance of your model, and be part of the leaderboard.
"""
INTRODUCTION_TEXT_JP = """\
__[LLM-Jp](https://llm-jp.nii.ac.jp/)__ による __オープン日本語LLMリーダーボード__ は、\
古典的なものから最新のものまで16以上のNLPタスクを用いて日本語大規模言語モデル(LLM)の\
性能を評価します。__オープン日本語LLMリーダーボード__ は、東京の国立情報学研究所の支援を\
受けて日本語LLMの研究開発を行う組織横断プロジェクト __[LLM-Jp](https://llm-jp.nii.ac.jp/)__ \
のオープンソース貢献者によって構築されました。
__「LLMベンチマーク」__ ページでは、疑問符 **「?」** はHugging Faceのモデルカードで不明な\
パラメータを示しています。データセットに関する詳細情報については、__「About」__ ページを\
参照するか、__[LLM-Jp](https://llm-jp.nii.ac.jp/)__ のウェブサイトをご覧ください。\
また、__「Submit here!」__ ページでは、あなたのモデルの性能を評価し、リーダーボードに\
参加することができます。
"""
# Which evaluations are you running? how can people reproduce what you have?
LLM_BENCHMARKS_TEXT = """
## How it works
📈 We evaluate Japanese Large Language Models on 16 tasks leveraging our evaluation tool [llm-jp-eval](https://github.com/llm-jp/llm-jp-eval), a unified framework to evaluate Japanese LLMs on various evaluation tasks.
**NLI (Natural Language Inference)**
* `Jamp`, a Japanese NLI benchmark focused on temporal inference [Source](https://github.com/tomo-ut/temporalNLI_dataset) (License CC BY-SA 4.0)
* `JaNLI`, Japanese Adversarial Natural Language Inference [Source](https://github.com/verypluming/JaNLI) (License CC BY-SA 4.0)
* `JNLI`, Japanese Natural Language Inference (part of JGLUE) [Source](https://github.com/yahoojapan/JGLUE) (License CC BY-SA 4.0)
* `JSeM`, Japanese semantic test suite [Source](https://github.com/DaisukeBekki/JSeM) (License BSD 3-Clause)
* `JSICK`, Japanese Sentences Involving Compositional Knowledge [Source](https://github.com/verypluming/JSICK) (License CC BY-SA 4.0)
**QA (Question Answering)**
* `JEMHopQA`, Japanese Explainable Multi-hop Question Answering [Source](https://github.com/aiishii/JEMHopQA) (License CC BY-SA 4.0)
* `NIILC`, NIILC Question Answering Dataset [Source](https://github.com/mynlp/niilc-qa) (License CC BY-SA 4.0)
* `JAQKET`, Japanese QA dataset on the subject of quizzes [Source](https://www.nlp.ecei.tohoku.ac.jp/projects/jaqket/) (License CC BY-SA 4.0 - Other licenses are required for corporate usage)
**RC (Reading Comprehension)**
* `JSQuAD`, Japanese version of SQuAD (part of JGLUE) [Source](https://github.com/yahoojapan/JGLUE) (License CC BY-SA 4.0)
**MC (Multiple Choice question answering)**
* `JCommonsenseMorality`, Japanese dataset for evaluating commonsense morality understanding [Source](https://github.com/Language-Media-Lab/commonsense-moral-ja) (License MIT License)
* `JCommonsenseQA`, Japanese version of CommonsenseQA [Source](https://github.com/yahoojapan/JGLUE) (License CC BY-SA 4.0)
* `KUCI`, Kyoto University Commonsense Inference dataset [Source](https://github.com/ku-nlp/KUCI (License CC BY-SA 4.0)
**EL (Entity Linking)**
* `chABSA`, Aspect-Based Sentiment Analysis dataset [Source](https://github.com/chakki-works/chABSA-dataset) (License CC BY-SA 4.0)
**FA (Fundamental Analysis)**
* `Wikipedia Annotated Corpus`, [Source](https://github.com/ku-nlp/WikipediaAnnotatedCorpus) (License CC BY-SA 4.0)
List of tasks: (Reading Prediction, Named-entity recognition (NER), Dependency Parsing, Predicate-argument structure analysis (PAS), Coreference Resolution)
**MR (Mathematical Reasoning)**
* `MAWPS`, Japanese version of MAWPS (A Math Word Problem Repository) [Source](https://github.com/nlp-waseda/chain-of-thought-ja-dataset) (License Apache-2.0)
* `MGSM`, Japanese part of MGSM (Multilingual Grade School Math Benchmark) [Source](https://huggingface.co/datasets/juletxara/mgsm) (License MIT License)
**MT (Machine Translation)**
* `ALT`, Asian Language Treebank (ALT) - Parallel Corpus [Source](https://www2.nict.go.jp/astrec-att/member/mutiyama/ALT/index.html) (License CC BY-SA 4.0)
* `WikiCorpus`, Japanese-English Bilingual Corpus of Wikipedia's articles about the city of Kyoto [Source](https://alaginrc.nict.go.jp/WikiCorpus/) (License CC BY-SA 3.0)
**STS (Semantic Textual Similarity)**
This task is supported by llm-jp-eval, but it is not included in the evaluation score average.
* `JSTS`, Japanese version of the STS (Semantic Textual Similarity) (part of JGLUE) [Source](https://github.com/yahoojapan/JGLUE) (License CC BY-SA 4.0)
**HE (Human Examination)**
* `MMLU`, Measuring Massive Multitask Language Understanding [Source](https://github.com/hendrycks/test) (License MIT License)
* `JMMLU`, Japanese Massive Multitask Language Understanding Benchmark [Source](https://github.com/nlp-waseda/JMMLU) (License CC BY-SA 4.0 (3 tasks under the CC BY-NC-ND 4.0 license)
**CG (Code Generation)**
* `MBPP`, Japanese version of Mostly Basic Python Problems (MBPP) [Source](https://huggingface.co/datasets/llm-jp/mbpp-ja) (License CC BY-SA 4.0)
**SUM (Summarization)**
* `XL-Sum`, XL-Sum: Large-Scale Multilingual Abstractive Summarization for 44 Languages [Source](https://github.com/csebuetnlp/xl-sum) (License CC BY-NC-SA 4.0, due to the non-commercial license, this dataset will not be used, unless you specifically agree to the license and terms of use)
## Reproducibility
To reproduce our results, please follow the instructions of the evalution tool, **llm-jp-eval** available in [Japanese](https://github.com/llm-jp/llm-jp-eval/blob/main/README.md) and in [English](https://github.com/llm-jp/llm-jp-eval/blob/main/README_en.md).
"""
EVALUATION_QUEUE_TEXT = """
## 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, check you can launch the EleutherAIHarness on your model locally, using the above command without modifications (you can add `--limit` to limit the number of examples per task).
"""
BOTTOM_LOGO = """
"""
CITATION_BUTTON_LABEL = "Copy the following snippet to cite these results"
CITATION_BUTTON_TEXT = r"""@misc{OJLL,
author = {Miyao, Yusuke and Ishida, Shigeki and Okamoto, Takumi and Han, Namgi and Mousterou, Akim and Fourrier, Clémentine and Hayashi, Toshihiro and Tachibana, Yuichiro},
title = {Open Japanese LLM Leaderboard},
year = {2024},
publisher = {OJLL},
howpublished = "\url{https://huggingface.co/spaces/llm-jp/open-japanese-llm-leaderboard}"
}
@misc{llmjp2024llmjpcrossorganizationalprojectresearch,
title={LLM-jp: A Cross-organizational Project for the Research and Development of Fully Open Japanese LLMs},
author={LLM-jp and : and Akiko Aizawa and Eiji Aramaki and Bowen Chen and Fei Cheng and Hiroyuki Deguchi and Rintaro Enomoto and Kazuki Fujii and Kensuke Fukumoto and Takuya Fukushima and Namgi Han and Yuto Harada and Chikara Hashimoto and Tatsuya Hiraoka and Shohei Hisada and Sosuke Hosokawa and Lu Jie and Keisuke Kamata and Teruhito Kanazawa and Hiroki Kanezashi and Hiroshi Kataoka and Satoru Katsumata and Daisuke Kawahara and Seiya Kawano and Atsushi Keyaki and Keisuke Kiryu and Hirokazu Kiyomaru and Takashi Kodama and Takahiro Kubo and Yohei Kuga and Ryoma Kumon and Shuhei Kurita and Sadao Kurohashi and Conglong Li and Taiki Maekawa and Hiroshi Matsuda and Yusuke Miyao and Kentaro Mizuki and Sakae Mizuki and Yugo Murawaki and Ryo Nakamura and Taishi Nakamura and Kouta Nakayama and Tomoka Nakazato and Takuro Niitsuma and Jiro Nishitoba and Yusuke Oda and Hayato Ogawa and Takumi Okamoto and Naoaki Okazaki and Yohei Oseki and Shintaro Ozaki and Koki Ryu and Rafal Rzepka and Keisuke Sakaguchi and Shota Sasaki and Satoshi Sekine and Kohei Suda and Saku Sugawara and Issa Sugiura and Hiroaki Sugiyama and Hisami Suzuki and Jun Suzuki and Toyotaro Suzumura and Kensuke Tachibana and Yu Takagi and Kyosuke Takami and Koichi Takeda and Masashi Takeshita and Masahiro Tanaka and Kenjiro Taura and Arseny Tolmachev and Nobuhiro Ueda and Zhen Wan and Shuntaro Yada and Sakiko Yahata and Yuya Yamamoto and Yusuke Yamauchi and Hitomi Yanaka and Rio Yokota and Koichiro Yoshino},
year={2024},
eprint={2407.03963},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2407.03963},
}
"""