You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the MLPerf client group, they have used the MMLU score for accuracy computation.
They have a separate set of scripts, which processes the output logs generated during the inference to compute the mmlu score. it's an offline process.
You are right... it takes several hours to run the whole suite. In that sense TinyMMLU makes more sense.
But, sadly, there is no public repository containing all the mmlu computation scripts.
One big problem I see is that MMLU score doesn't measure the tasks used for performance. As, its measuring the accuracy of only the 1st token. Basically, we are not measuring the whole pipeline.
Even in the client group, they are looking for other options.
In the inference group, the metric adopted is RogueN. May be we can explore that as well.
Let's check if we can run tinyBenchmarks (100 row validation sets maybe) with llama 3.2 1B and 3B and get acceptable numbers first. @Mostelk@AhmedTElthakeb and @mohitmundhragithub
I think we discussed llama-3.1-8B and llama-3.2-3B in the meeting... right?
After some exploration, the use cases we are trying to enable (say summarization, context generation etc.,) are not properly captured by the datasets used in TinyBenchmark. Most of the datasets have single-token outputs (except for GSM8k and AlpacaEval) and none of them capture summarization task in particular.
@Mostelk should we still go with above task of quantization and accuracy collection for these datasets ?
We are also looking into Open-Orca dataset which captures all the tasks we discussed on last meet.
We are also looking whether ROGUE-n score could be a viable accuracy metric for Open-Orca dataset.
After some exploration, the use cases we are trying to enable (say summarization, context generation etc.,) are not properly captured by the datasets used in TinyBenchmark. Most of the datasets have single-token outputs (except for GSM8k and AlpacaEval) and none of them capture summarization task in particular.
@Mostelk should we still go with above task of quantization and accuracy collection for these datasets ?
We are also looking into Open-Orca dataset which captures all the tasks we discussed on last meet.
We are also looking whether ROGUE-n score could be a viable accuracy metric for Open-Orca dataset.
@Aswinoss I am open to other benchmarks. However, I don't agree that benchmarks used by the TinyBenchmarks are single-token outputs. They are not.
@freedomtan From the tinyBenchmarks page, the ones I have marked as Single-Token had descriptions similar to single-token outputs (PFB). We have not run it, to be exactly sure. But it looks like, the mentioned benchmarks won't have stream of text or content stream as output (except for GSM8k and AlpacaEval).
For example, TinyTruthfulQA had input/output description in this way, where we ask a question and the LLM responds with label / label list, where the true option has 1 and rest all 0s.
One more thing,
we are also okay with any of these accuracy benchmarks. But based on the discussion we had in the last engineering meeting, we thought that these datasets may not be representative enough.
@freedomtan From the tinyBenchmarks page, the ones I have marked as Single-Token had descriptions similar to single-token outputs (PFB). We have not run it, to be exactly sure. But it looks like, the mentioned benchmarks won't have stream of text or content stream as output (except for GSM8k and AlpacaEval).
For example, TinyTruthfulQA had input/output description in this way, where we ask a question and the LLM responds with label / label list, where the true option has 1 and rest all 0s.
One more thing, we are also okay with any of these accuracy benchmarks. But based on the discussion we had in the last engineering meeting, we thought that these datasets may not be representative enough.
@Aswinoss it's quite easy to check outputs of those benchmarks. For example, we can
feed the inputs and get outputs and check them, or
@mohitmundhragithub@freedomtan I agree let us consider other metrics as well, but I prefer one metric that is publicly published by Meta, for example I see here they use SQUAD for reading comprehension,
Also we need to decide whether to use general model or instruction tuned model, looks reading comprehension results below are using the original general model https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct
Given we used SQUAD before in MobileBert, I don;t think should be hard here as well?
Does Meta report numbers for summarization task?
TinyIFEval-29:
This first version is created by selecting every 18th sample from the original 541 IFEval entries input_data.jsonl resulting in a deterministic set of 30 evenly spaced examples. Then removing one entry (key:1203) whose response exceeds 1K output tokens, so we end up with 29 set.
TinyIFEval-29: This first version is created by selecting every 18th sample from the original 541 IFEval entries input_data.jsonl resulting in a deterministic set of 30 evenly spaced examples. Then removing one entry (key:1203) whose response exceeds 1K output tokens, so we end up with 29 set.
@farook-edev check UI how to output both TinyEVAL and TINYMMLU accuracy out of 100 each. Per @freedomtan we also need check loadgen dataset loader implementation how to do two accuracy tests, two set of logs
@freedomtan@Mostelk I checked the TinyIFEval (29) prompts, they seem to run correctly, but coverage isn't 100%, here's a breakdown image I made by reading and marking each instruction in the dataset on a page from the IFEval paper:
And here's a checklist i made that's in markdown:
TinyIFEval Instruction Checklist Summary
🟩 Keywords Group
Status
Instruction
Meaning
Occurrences
✅
Include Keywords
Must include specific keywords
2
✅
Keyword Frequency
Each keyword must appear N times
3
✅
Forbidden Words
Must avoid certain forbidden words
3
✅
Letter Frequency
Specific letter must appear N times
4
🟩 Language Group
Status
Instruction
Meaning
Occurrences
✅
Response Language
Entire answer must be in a specific language
4
🟩 Length Constraints
Status
Instruction
Meaning
Occurrences
❌
Number Paragraphs
Must have exactly N paragraphs
0
✅
Number Words
Must have at least / around / at most N words
4
✅
Number Sentences
Must have at least / around / at most N sentences
3
✅
Number Paragraphs + First Word in i-th Paragraph
Must have N paragraphs; each paragraph starts with specific word
1
🟩 Detectable Content
Status
Instruction
Meaning
Occurrences
❌
Postscript
Must end with a postscript marker
0
❌
Number Placeholder
Must contain at least N placeholders like [address]
0
🟩 Detectable Format
Status
Instruction
Meaning
Occurrences
✅
Number Bullets
Must contain exactly N bullet points
2
✅
Title
Must contain a title wrapped in << >>
2
✅
Choose From
Must pick one from given options
1
✅
Minimum Number Highlighted Section
Must highlight N sections with markdown (e.g. *highlighted*)
1
❌
Multiple Sections
Must have N sections marked by {section_splitter}
0
❌
JSON Format
Must output in JSON format
0
🟩 Combination Instructions
Status
Instruction
Meaning
Occurrences
✅
Repeat Prompt
Must repeat the request before answering
2
✅
Two Responses
Must give two responses separated by ******
3
🟩 Change Cases
Status
Instruction
Meaning
Occurrences
✅
All Uppercase
Entire response must be in uppercase
1
✅
All Lowercase
Entire response must be in lowercase
1
✅
Frequency of All-Capital Words
Some words must be all caps
1
🟩 Start With / End With
Status
Instruction
Meaning
Occurrences
✅
End Checker
Must finish with a specific phrase
1
✅
Quotation
Entire answer wrapped in double quotes
4
🟩 Punctuation
Status
Instruction
Meaning
Occurrences
✅
No Commas
Response must not contain any commas
7
❌ Never Occurred
Instruction
Meaning
Number Paragraphs
Must have exactly N paragraphs
Number Placeholder
Must contain at least N placeholders like [address]
Activity
mohitmundhragithub commentedon Apr 22, 2025
In the MLPerf client group, they have used the MMLU score for accuracy computation.
They have a separate set of scripts, which processes the output logs generated during the inference to compute the mmlu score. it's an offline process.
You are right... it takes several hours to run the whole suite. In that sense TinyMMLU makes more sense.
The scripts that are used in the client group are shared here: https://github.com/mlcommons/mlperf_client_dev/tree/main/tools/mmlu
But, sadly, there is no public repository containing all the mmlu computation scripts.
One big problem I see is that MMLU score doesn't measure the tasks used for performance. As, its measuring the accuracy of only the 1st token. Basically, we are not measuring the whole pipeline.
Even in the client group, they are looking for other options.
In the inference group, the metric adopted is RogueN. May be we can explore that as well.
freedomtan commentedon May 13, 2025
Let's check if we can run tinyBenchmarks (100 row validation sets maybe) with llama 3.2 1B and 3B and get acceptable numbers first.
@Mostelk @AhmedTElthakeb and @mohitmundhragithub
mohitmundhragithub commentedon May 13, 2025
I think we discussed llama-3.1-8B and llama-3.2-3B in the meeting... right?
freedomtan commentedon May 14, 2025
right, my bad.
freedomtan commentedon May 14, 2025
baseline numbers
llama 3.2 3B
with
lm_eval --model hf --model_args pretrained=meta-llama/Llama-3.2-3B --tasks tinyBenchmarksllama 3.2 3B Instruct
with
lm_eval --model hf --model_args pretrained=meta-llama/Llama-3.2-3B-Instruct --tasks tinyBenchmarksllama 3.1 8B
with
lm_eval --model hf --model_args pretrained=meta-llama/Llama-3.1-8B --tasks tinyBenchmarksllama 3.1 8B Instruct
with
lm_eval --model hf --model_args pretrained=meta-llama/Llama-3.1-8B-Instruct --tasks tinyBenchmarksfreedomtan commentedon May 14, 2025
gemma 3 1b
gemma 3 1b qat q4_0 unquantized
(https://huggingface.co/google/gemma-3-4b-it-qat-q4_0-unquantized)
gemma 3 4b
gemma 3 4b qat q4_0 unquantized
Mostelk commentedon May 14, 2025
Let us try to quantize these and report accuracy llama 3.1 8B Instruct, llama 3.2 3B Instruct
Aswinoss commentedon May 15, 2025
After some exploration, the use cases we are trying to enable (say summarization, context generation etc.,) are not properly captured by the datasets used in TinyBenchmark. Most of the datasets have single-token outputs (except for GSM8k and AlpacaEval) and none of them capture summarization task in particular.
@Mostelk should we still go with above task of quantization and accuracy collection for these datasets ?
We are also looking into Open-Orca dataset which captures all the tasks we discussed on last meet.
We are also looking whether ROGUE-n score could be a viable accuracy metric for Open-Orca dataset.
freedomtan commentedon May 16, 2025
@Aswinoss I am open to other benchmarks. However, I don't agree that benchmarks used by the TinyBenchmarks are single-token outputs. They are not.
Aswinoss commentedon May 19, 2025
@freedomtan From the tinyBenchmarks page, the ones I have marked as Single-Token had descriptions similar to single-token outputs (PFB). We have not run it, to be exactly sure. But it looks like, the mentioned benchmarks won't have stream of text or content stream as output (except for GSM8k and AlpacaEval).
For example, TinyTruthfulQA had input/output description in this way, where we ask a question and the LLM responds with label / label list, where the true option has 1 and rest all 0s.
One more thing,
we are also okay with any of these accuracy benchmarks. But based on the discussion we had in the last engineering meeting, we thought that these datasets may not be representative enough.
freedomtan commentedon May 19, 2025
@Aswinoss it's quite easy to check outputs of those benchmarks. For example, we can
--output_pathand--log_samplesas described at https://github.com/EleutherAI/lm-evaluation-harness?tab=readme-ov-file#saving--caching-results then we can check those outputsThe example you show is kinda internal representation of the dataset.
freedomtan commentedon May 20, 2025
How about quantized model from Meta folks, we know they are available on Huggingface too
Well, they are not in Huggingface safetensor format, that is, we can evaluate them with
lm_ev --model hf --model_args pretrained=.... It seems to me that we have to use ExecuTorch (see https://github.com/pytorch/executorch/blob/main/examples/models/llama/README.md)freedomtan commentedon May 20, 2025
@mohitmundhragithub @Aswinoss and @Mostelk OpenOrca is a dataset, not a benchmark.
Mostelk commentedon May 20, 2025
@mohitmundhragithub @freedomtan I agree let us consider other metrics as well, but I prefer one metric that is publicly published by Meta, for example I see here they use SQUAD for reading comprehension,
Also we need to decide whether to use general model or instruction tuned model, looks reading comprehension results below are using the original general model
https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct
Given we used SQUAD before in MobileBert, I don;t think should be hard here as well?
Reading comprehensionDoes Meta report numbers for summarization task?
| SQuAD | 1 | em | 76.4 | 77.0 | 85.6 | 81.8 | 89.3
-- | -- | -- | -- | -- | -- | -- | -- | --
QuAC (F1) | 1 | f1 | 44.4 | 44.9 | 51.1 | 51.1 | 53.6
BoolQ | 0 | acc_char | 75.7 | 75.0 | 79.0 | 79.4 | 80.0
DROP (F1) | 3 | f1 | 58.4 | 59.5 | 79.7 | 79.6 | 84.8
Mostelk commentedon May 20, 2025
@mohitmundhragithub @freedomtan please check these 3.1 8B quantized models, with their evaluation, looks using lm-eval, so may be we adopt some tiny lm-eval ( appears using static weight quantization, but dynamic activation quantization)
https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct
https://huggingface.co/RedHatAI/Meta-Llama-3.1-8B-Instruct-quantized.w8a8
https://huggingface.co/RedHatAI/Meta-Llama-3.1-8B-Instruct-quantized.w4a16
83 remaining items
Mostelk commentedon Oct 14, 2025
Per our discussion today, for TinyMMLU we only focus on zero-shot, since it is consistent
AhmedTElthakeb commentedon Oct 15, 2025
TinyIFEval-29:
This first version is created by selecting every 18th sample from the original 541 IFEval entries input_data.jsonl resulting in a deterministic set of 30 evenly spaced examples. Then removing one entry (key:1203) whose response exceeds 1K output tokens, so we end up with 29 set.
Results (Full IFEval vs TinyIFEval-29)
Mostelk commentedon Oct 15, 2025
@mohitmundhragithub @freedomtan please check if this list is representative enough for TinyEval, @farook-edev please check for POC accuracy pipeline
Mostelk commentedon Oct 15, 2025
@farook-edev check UI how to output both TinyEVAL and TINYMMLU accuracy out of 100 each. Per @freedomtan we also need check loadgen dataset loader implementation how to do two accuracy tests, two set of logs
freedomtan commentedon Oct 21, 2025
@Mostelk check if the 29 prompts have good coverage of the 25 "types" listed in the paper.
freedomtan commentedon Oct 21, 2025
@farook-edev please help test these 29 prompts from ifeval.
farook-edev commentedon Oct 28, 2025
@freedomtan @Mostelk I checked the TinyIFEval (29) prompts, they seem to run correctly, but coverage isn't 100%, here's a breakdown image I made by reading and marking each instruction in the dataset on a page from the IFEval paper:
And here's a checklist i made that's in markdown:
TinyIFEval Instruction Checklist Summary
🟩 Keywords Group
🟩 Language Group
🟩 Length Constraints
🟩 Detectable Content
[address]🟩 Detectable Format
<< >>*highlighted*){section_splitter}🟩 Combination Instructions
******🟩 Change Cases
🟩 Start With / End With
🟩 Punctuation
❌ Never Occurred
[address]{section_splitter}Mostelk commentedon Nov 4, 2025
For Tiny-IFEval, we came up with another 33 prompts, we will call it Tiny IFEval-33 that covers all categories
tiny33_ifeval.json
Mostelk commentedon Nov 4, 2025
Distribution can be found here https://docs.google.com/presentation/d/1bcwl-Wng75KMrdQtVmWVmLmOwC4CzLM-qvNB_KBXM7g/edit?slide=id.g3a01f8da923_0_0#slide=id.g3a01f8da923_0_0
Mostelk commentedon Mar 18, 2026
There is an issue with this colab, with HF API, dataset does not include the questions, just the examples for fewshot2,
if you download dataset directly from here https://huggingface.co/datasets/tinyBenchmarks/tinyMMLU/tree/main/all
and replace this
dataset = load_dataset("tinyBenchmarks/tinyMMLU", split="all")
with
dataset = load_dataset("parquet", data_files={"dev": "/path/dev-00000-of-00001.parquet", "test":"/path/test-00000-of-00001.parquet"}, split="all")
The result for few-shot2 is different, float, 2K input, 1k output
<style> </style>Mostelk commentedon Mar 18, 2026
@Mostelk will add 1B, 3B, 8B, float IFEVal and TInyMMLU
@mohitmundhragithub @freedomtan @Mostelk start report quantized numbers, finalize by 03/31
Mostelk commentedon Mar 21, 2026
Float PyTorch Accuracies for Llama Instruct Models, with Prefill Max Token length of 2048 Tokens, and Decode max output of 1024 Tokens:
<style> </style>freedomtan commentedon Apr 21, 2026
let's put this (https://colab.research.google.com/drive/1iJvkHTxi2VZ_bYrOQ6_9QKVtH2FV7Pmt?usp=sharing) to mobile-open. @freedomtan to do it.
freedomtan commentedon Oct 27, 2026
@mohitmundhragithub @freedomtan @Mostelk please report accuracy numbers.
mohitmundhragithub commentedon Oct 27, 2026
Hi,
On our devices we are seeing about
llama-3.1-8B -- ~ 60%
llama-3.1-8B (Instruct) -- ~ 55%