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.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill emma-500-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Emma 500 Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-emma-500-eval)More formats (shields.io, HTML) on the badges page.
---
name: emma-500-eval
description: 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.
metadata:
skill_kind: dataset_eval
source_arxiv: 2409.17892
bibtex_key: ji2024emma500
confidence: high
---
# 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
```python
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
```bibtex
@misc{ji2024emma500,
title={EMMA-500: Enhancing Massively Multilingual Adaptation of Large Language Models},
author={Ji et al. (2024)},
year={2024},
note={arXiv:2409.17892}
}
```
- arXiv: 2409.17892
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!