emma-500-eval
EMMA-500: Enhancing Massively Multilingual Adaptation of Large Language Models — Ji et al. (2024) (arXiv:2409.17892, 2024)
What this evaluates
Evaluates massively multilingual language models on intrinsic next-word prediction, machine translation, text classification, math reasoning, and code generation across dozens of languages, with a specific focus on low-resource language performance and cross-lingual transfer capabilities.
Datasets
- Glot500-c — total ?; splits: test (-1)
- Parallel Bible Corpus (PBC) — total ?; splits: test (-1)
- FLORES-200 — total ?; splits: test (-1)
- SIB-200 — total ?; splits: test (-1)
- Taxi-1500 — total ?; splits: test (-1)
- MGSM — total ?; splits: test (-1)
Metrics
BLEU (primary) — range: percent
- Standard n-gram precision score with brevity penalty, calculated using the flores200 tokenizer to handle non-whitespace-delimited languages at the sub-word level. Evaluated with sacrebleu signature: nrefs:1—case:mixed—eff:no—tok:flores200—smooth:exp—version:2.4.2.
chrF++ — range: percent
- Character n-gram F-score that combines precision and recall of character n-grams. Uses word order 2 and the signature: nrefs:1—case:mixed—eff:yes—nc:6—nw:2—space:no—version:2.4.2.
Negative Log-Likelihood (NLL) — range: other
- Sum of log probabilities of ground-truth tokens given the model's distribution, computed over a concatenated test set using a sliding-window approach. Chosen over length-normalized perplexity to ensure fair cross-model comparison despite different tokenization schemes.
Accuracy (ACC) — range: [0, 1]
- Proportion of correctly predicted class labels. For classification tasks, the model scores the next-token probability for each candidate category, and the category with the highest probability is selected as the prediction.
pass@k — range: [0, 1]
- Fraction of generated code solutions that pass all test cases. Evaluated with a generation pool of 50 samples per problem for k values of 1, 10, and 25.
Input / output format
Input: Varies by task: intrinsic eval uses concatenated test text with sliding windows; MT and classification use 3-shot prompting with demonstrations from the dev set; math uses direct or Chain-of-Thought prompting; code generation uses problem descriptions with test-case-based execution prompts.
Output: Varies by task: probability distributions over tokens for intrinsic eval; translated text sequences for MT; discrete class labels for classification; step-by-step reasoning and final answers for math; executable code snippets for code generation.
Scoring recipe
def score(predictions, gold, task):
if task == 'mt':
bleu = sacrebleu.corpus_bleu(predictions, [gold], tokenize='flores200')
chrf = sacrebleu.corpus_chrf(predictions, [gold], char_order=6, word_order=2)
return bleu.score, chrf.score
elif task == 'classification':
correct = sum(1 for p, g in zip(predictions, gold) if p == g)
return correct / len(gold)
elif task == 'intrinsic':
nll = -sum(math.log(p) for p in predictions) # log-probs of gold tokens
return nll
elif task == 'code':
passed = sum(1 for code in predictions[:k] if execute_test_cases(code))
return passed / len(predictions[:k])
return 0
Common pitfalls
- Using length-normalized perplexity instead of raw NLL for intrinsic evaluation, which biases results against models with different tokenizers.
- Applying standard sentencepiece or spacy tokenizers to BLEU instead of the required flores200 tokenizer, leading to incorrect sub-word alignment for non-whitespace languages.
- Ignoring the language resource stratification (high/medium-high/medium/medium-low/low) when reporting results, which masks critical low-resource performance differences.
Evidence (verbatim from paper)
The performance is measured by BLEU and chrF++ implemented in sacrebleu. The BLEU score is calculated with the flores200 tokenizer applied to the texts and chrF++ uses word order 2. The choice of flores200 tokenization ensures that languages that do not have a whitespace delimiter can be evaluated at the (sub-)word level. For reproducibility, we attach the BLEU and chrF++ signatures.
Citation
@misc{ji2024emma500,
title={EMMA-500: Enhancing Massively Multilingual Adaptation of Large Language Models},
author={Ji et al. (2024)},
year={2024},
note={arXiv:2409.17892}
}
1---2name: emma-500-eval3description: Evaluates massively multilingual language models on intrinsic next-word prediction, machine translation, text classification, math reasoning, and code generation across dozens of languages, with a specific focus on low-resource language performance and cross-lingual transfer capabilities. Use when the user wants to benchmark on Glot500-c, Parallel Bible Corpus (PBC), FLORES-200, SIB-200, Taxi-1500, MGSM, or asks about evaluating this task. Reports BLEU.4---56# emma-500-eval78> EMMA-500: Enhancing Massively Multilingual Adaptation of Large Language Models — Ji et al. (2024) (arXiv:2409.17892, 2024)910## What this evaluates1112Evaluates massively multilingual language models on intrinsic next-word prediction, machine translation, text classification, math reasoning, and code generation across dozens of languages, with a specific focus on low-resource language performance and cross-lingual transfer capabilities.1314## Datasets1516- **Glot500-c** — total ?; splits: test (-1)17- **Parallel Bible Corpus (PBC)** — total ?; splits: test (-1)18- **FLORES-200** — total ?; splits: test (-1)19- **SIB-200** — total ?; splits: test (-1)20- **Taxi-1500** — total ?; splits: test (-1)21- **MGSM** — total ?; splits: test (-1)2223## Metrics2425- `BLEU` **(primary)** — range: percent26 - Standard n-gram precision score with brevity penalty, calculated using the flores200 tokenizer to handle non-whitespace-delimited languages at the sub-word level. Evaluated with sacrebleu signature: nrefs:1—case:mixed—eff:no—tok:flores200—smooth:exp—version:2.4.2.27- `chrF++` — range: percent28 - Character n-gram F-score that combines precision and recall of character n-grams. Uses word order 2 and the signature: nrefs:1—case:mixed—eff:yes—nc:6—nw:2—space:no—version:2.4.2.29- `Negative Log-Likelihood (NLL)` — range: other30 - Sum of log probabilities of ground-truth tokens given the model's distribution, computed over a concatenated test set using a sliding-window approach. Chosen over length-normalized perplexity to ensure fair cross-model comparison despite different tokenization schemes.31- `Accuracy (ACC)` — range: [0, 1]32 - Proportion of correctly predicted class labels. For classification tasks, the model scores the next-token probability for each candidate category, and the category with the highest probability is selected as the prediction.33- `pass@k` — range: [0, 1]34 - Fraction of generated code solutions that pass all test cases. Evaluated with a generation pool of 50 samples per problem for k values of 1, 10, and 25.3536## Input / output format3738**Input**: Varies by task: intrinsic eval uses concatenated test text with sliding windows; MT and classification use 3-shot prompting with demonstrations from the dev set; math uses direct or Chain-of-Thought prompting; code generation uses problem descriptions with test-case-based execution prompts.3940**Output**: Varies by task: probability distributions over tokens for intrinsic eval; translated text sequences for MT; discrete class labels for classification; step-by-step reasoning and final answers for math; executable code snippets for code generation.4142## Scoring recipe4344```python45def score(predictions, gold, task):46 if task == 'mt':47 bleu = sacrebleu.corpus_bleu(predictions, [gold], tokenize='flores200')48 chrf = sacrebleu.corpus_chrf(predictions, [gold], char_order=6, word_order=2)49 return bleu.score, chrf.score50 elif task == 'classification':51 correct = sum(1 for p, g in zip(predictions, gold) if p == g)52 return correct / len(gold)53 elif task == 'intrinsic':54 nll = -sum(math.log(p) for p in predictions) # log-probs of gold tokens55 return nll56 elif task == 'code':57 passed = sum(1 for code in predictions[:k] if execute_test_cases(code))58 return passed / len(predictions[:k])59 return 060```6162## Common pitfalls6364- Using length-normalized perplexity instead of raw NLL for intrinsic evaluation, which biases results against models with different tokenizers.65- Applying standard sentencepiece or spacy tokenizers to BLEU instead of the required flores200 tokenizer, leading to incorrect sub-word alignment for non-whitespace languages.66- Ignoring the language resource stratification (high/medium-high/medium/medium-low/low) when reporting results, which masks critical low-resource performance differences.6768## Evidence (verbatim from paper)6970> The performance is measured by BLEU and chrF++ implemented in sacrebleu. The BLEU score is calculated with the flores200 tokenizer applied to the texts and chrF++ uses word order 2. The choice of flores200 tokenization ensures that languages that do not have a whitespace delimiter can be evaluated at the (sub-)word level. For reproducibility, we attach the BLEU and chrF++ signatures.7172## Citation7374```bibtex75@misc{ji2024emma500,76 title={EMMA-500: Enhancing Massively Multilingual Adaptation of Large Language Models},77 author={Ji et al. (2024)},78 year={2024},79 note={arXiv:2409.17892}80}81```8283- arXiv: 2409.17892