Repository: huggingface/lighteval
Issue: [BUG] ImportError: cannot import name 'T_co' from 'torch.utils.data.distributed'
Root cause: External Dependency Breakage

## Describe the bug
I got this error instaling litghteval from pip in Windows:

ImportError: cannot import name 'T_co' from 'torch.utils.data.distributed'
(C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\torch\utils\data\distributed.py)

This error occurs due to changes in the PyTorch library. The 'T_co' type alias have been renamed to '_T_co' in newer versions of PyTorch.

## To Reproduce
Just run lighteval with newer versions of PyTorch. #574 

## Expected behavior
Just run lighteval without errors.

## Version info
PyTorch 2.6.0+cu126
litghteval 0.7.0


hey ! could we got more info on the bug ?
what steps did you do so that I can reproduce ?
What is the exact stacktrace ?




> hey ! could we got more info on the bug ? what steps did you do so that I can reproduce ? What is the exact stacktrace ?

I just install lighteval on windows and run: 

lighteval accelerate "pretrained=HuggingFaceTB-SmolLM2-135M-Instruct" "leaderboard|hellaswag|0|0" --save-details --output-dir results 

OBS.: HuggingFaceTB-SmolLM2-135M-Instruct is local

Then I got:

[2025-03-24 13:33:35,654] [    INFO]: PyTorch version 2.6.0+cu126 available. (config.py:54)
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\lighteval\main_accelerate. │
│ py:109 in accelerate                                                                             │
│                                                                                                  │
│   106 │   import yaml                                                                            │
│   107 │   from accelerate import Accelerator, InitProcessGroupKwargs                             │
│   108 │                                                                                          │
│ ❱ 109 │   from lighteval.logging.evaluation_tracker import EvaluationTracker                     │
│   110 │   from lighteval.models.model_input import GenerationParameters                          │
│   111 │   from lighteval.models.transformers.adapter_model import AdapterModelConfig             │
│   112 │   from lighteval.models.transformers.delta_model import DeltaModelConfig                 │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │                 cache_dir = None                                                             │ │
│ │              custom_tasks = None                                                             │ │
│ │ dataset_loading_processes = 1                                                                │ │
│ │                    job_id = 0                                                                │ │
│ │               max_samples = None                                                             │ │
│ │                model_args = 'pretrained=HuggingFaceTB-SmolLM2-135M-Instruct-cache'           │ │
│ │         num_fewshot_seeds = 1                                                                │ │
│ │                output_dir = 'results'                                                        │ │
│ │       override_batch_size = -1                                                               │ │
│ │                public_run = False                                                            │ │
│ │               push_to_hub = False                                                            │ │
│ │       push_to_tensorboard = False                                                            │ │
│ │               results_org = None                                                             │ │
│ │              save_details = True                                                             │ │
│ │             system_prompt = None                                                             │ │
│ │                     tasks = 'leaderboard|hellaswag|0|0'                                      │ │
│ │                     torch = <module 'torch' from                                             │ │
│ │                             'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Li… │ │
│ │         use_chat_template = False                                                            │ │
│ │                      yaml = <module 'yaml' from                                              │ │
│ │                             'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Li… │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\lighteval\logging\evaluati │
│ on_tracker.py:40 in <module>                                                                     │
│                                                                                                  │
│    37 from fsspec import url_to_fs                                                               │
│    38 from huggingface_hub import DatasetCard, DatasetCardData, HfApi, HFSummaryWriter, hf_hub   │
│    39                                                                                            │
│ ❱  40 from lighteval.logging.info_loggers import (                                               │
│    41 │   DetailsLogger,                                                                         │
│    42 │   GeneralConfigLogger,                                                                   │
│    43 │   MetricsLogger,                                                                         │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │    json = <module 'json' from 'C:\\Program Files\\Python312\\Lib\\json\\__init__.py'>        │ │
│ │ logging = <module 'logging' from 'C:\\Program Files\\Python312\\Lib\\logging\\__init__.py'>  │ │
│ │      os = <module 'os' (frozen)>                                                             │ │
│ │      re = <module 're' from 'C:\\Program Files\\Python312\\Lib\\re\\__init__.py'>            │ │
│ │    time = <module 'time' (built-in)>                                                         │ │
│ │   torch = <module 'torch' from                                                               │ │
│ │           'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Lib\\site-packages\\… │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\lighteval\logging\info_log │
│ gers.py:38 in <module>                                                                           │
│                                                                                                  │
│    35 from lighteval.metrics.stderr import get_stderr_function                                   │
│    36 from lighteval.models.abstract_model import ModelInfo                                      │
│    37 from lighteval.models.model_output import ModelResponse                                    │
│ ❱  38 from lighteval.tasks.lighteval_task import LightevalTask, LightevalTaskConfig              │
│    39 from lighteval.tasks.requests import Doc                                                   │
│    40 from lighteval.utils.imports import is_nanotron_available                                  │
│    41 from lighteval.utils.utils import as_list, sanitize_numpy                                  │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ collections = <module 'collections' from 'C:\\Program                                        │ │
│ │               Files\\Python312\\Lib\\collections\\__init__.py'>                              │ │
│ │         git = <module 'git' from                                                             │ │
│ │               'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Lib\\site-packag… │ │
│ │     logging = <module 'logging' from 'C:\\Program                                            │ │
│ │               Files\\Python312\\Lib\\logging\\__init__.py'>                                  │ │
│ │          np = <module 'numpy' from                                                           │ │
│ │               'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Lib\\site-packag… │ │
│ │    Optional = typing.Optional                                                                │ │
│ │          os = <module 'os' (frozen)>                                                         │ │
│ │        time = <module 'time' (built-in)>                                                     │ │
│ │       Union = typing.Union                                                                   │ │
│ │      xxhash = <module 'xxhash' from                                                          │ │
│ │               'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Lib\\site-packag… │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\lighteval\tasks\lighteval_ │
│ task.py:44 in <module>                                                                           │
│                                                                                                  │
│    41 │   apply_target_perplexity_metric,                                                        │
│    42 )                                                                                          │
│    43 from lighteval.metrics.metrics import Metric, MetricCategory, Metrics                      │
│ ❱  44 from lighteval.models.transformers.transformers_model import TransformersModel             │
│    45 from lighteval.tasks.prompt_manager import PromptManager                                   │
│    46 from lighteval.tasks.requests import (                                                     │
│    47 │   Doc,                                                                                   │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │      Callable = typing.Callable                                                              │ │
│ │   collections = <module 'collections' from 'C:\\Program                                      │ │
│ │                 Files\\Python312\\Lib\\collections\\__init__.py'>                            │ │
│ │          Dict = typing.Dict                                                                  │ │
│ │       inspect = <module 'inspect' from 'C:\\Program Files\\Python312\\Lib\\inspect.py'>      │ │
│ │          List = typing.List                                                                  │ │
│ │       logging = <module 'logging' from 'C:\\Program                                          │ │
│ │                 Files\\Python312\\Lib\\logging\\__init__.py'>                                │ │
│ │      Optional = typing.Optional                                                              │ │
│ │          Pool = <bound method BaseContext.Pool of <multiprocess.context.DefaultContext       │ │
│ │                 object at 0x000001A3679C2F90>>                                               │ │
│ │        random = <module 'random' from 'C:\\Program Files\\Python312\\Lib\\random.py'>        │ │
│ │         Tuple = typing.Tuple                                                                 │ │
│ │ TYPE_CHECKING = False                                                                        │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\lighteval\models\transform │
│ ers\transformers_model.py:46 in <module>                                                         │
│                                                                                                  │
│     43 from transformers.generation.utils import GenerateOutput, GenerationConfig                │
│     44 from transformers.models.auto.modeling_auto import MODEL_FOR_CAUSAL_LM_MAPPING_NAMES      │
│     45                                                                                           │
│ ❱   46 from lighteval.data import GenerativeTaskDataset, LoglikelihoodDataset, LoglikelihoodSin  │
│     47 from lighteval.models.abstract_model import LightevalModel, ModelInfo                     │
│     48 from lighteval.models.model_input import GenerationParameters                             │
│     49 from lighteval.models.model_output import (                                               │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │                                 F = <module 'torch.nn.functional' from                       │ │
│ │                                     'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\… │ │
│ │                    GenerateOutput = typing.Union[transformers.generation.utils.GenerateDeco… │ │
│ │                                     transformers.generation.utils.GenerateEncoderDecoderOut… │ │
│ │                                     transformers.generation.utils.GenerateBeamDecoderOnlyOu… │ │
│ │                                     transformers.generation.utils.GenerateBeamEncoderDecode… │ │
│ │                           logging = <module 'logging' from 'C:\\Program                      │ │
│ │                                     Files\\Python312\\Lib\\logging\\__init__.py'>            │ │
│ │ MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = OrderedDict({'aria_text': 'AriaTextForCausalLM',         │ │
│ │                                     'bamba': 'BambaForCausalLM', 'bart': 'BartForCausalLM',  │ │
│ │                                     'bert': 'BertLMHeadModel', 'bert-generation':            │ │
│ │                                     'BertGenerationDecoder', 'big_bird':                     │ │
│ │                                     'BigBirdForCausalLM', 'bigbird_pegasus':                 │ │
│ │                                     'BigBirdPegasusForCausalLM', 'biogpt':                   │ │
│ │                                     'BioGptForCausalLM', 'blenderbot':                       │ │
│ │                                     'BlenderbotForCausalLM', 'blenderbot-small':             │ │
│ │                                     'BlenderbotSmallForCausalLM', 'bloom':                   │ │
│ │                                     'BloomForCausalLM', 'camembert': 'CamembertForCausalLM', │ │
│ │                                     'code_llama': 'LlamaForCausalLM', 'codegen':             │ │
│ │                                     'CodeGenForCausalLM', 'cohere': 'CohereForCausalLM',     │ │
│ │                                     'cohere2': 'Cohere2ForCausalLM', 'cpmant':               │ │
│ │                                     'CpmAntForCausalLM', 'ctrl': 'CTRLLMHeadModel',          │ │
│ │                                     'data2vec-text': 'Data2VecTextForCausalLM', 'dbrx':      │ │
│ │                                     'DbrxForCausalLM', 'diffllama': 'DiffLlamaForCausalLM',  │ │
│ │                                     'electra': 'ElectraForCausalLM', 'emu3':                 │ │
│ │                                     'Emu3ForCausalLM', 'ernie': 'ErnieForCausalLM',          │ │
│ │                                     'falcon': 'FalconForCausalLM', 'falcon_mamba':           │ │
│ │                                     'FalconMambaForCausalLM', 'fuyu': 'FuyuForCausalLM',     │ │
│ │                                     'gemma': 'GemmaForCausalLM', 'gemma2':                   │ │
│ │                                     'Gemma2ForCausalLM', 'git': 'GitForCausalLM', 'glm':     │ │
│ │                                     'GlmForCausalLM', 'got_ocr2':                            │ │
│ │                                     'GotOcr2ForConditionalGeneration', 'gpt-sw3':            │ │
│ │                                     'GPT2LMHeadModel', 'gpt2': 'GPT2LMHeadModel',            │ │
│ │                                     'gpt_bigcode': 'GPTBigCodeForCausalLM', 'gpt_neo':       │ │
│ │                                     'GPTNeoForCausalLM', 'gpt_neox': 'GPTNeoXForCausalLM',   │ │
│ │                                     'gpt_neox_japanese': 'GPTNeoXJapaneseForCausalLM',       │ │
│ │                                     'gptj': 'GPTJForCausalLM', 'granite':                    │ │
│ │                                     'GraniteForCausalLM', 'granitemoe':                      │ │
│ │                                     'GraniteMoeForCausalLM', 'granitemoeshared':             │ │
│ │                                     'GraniteMoeSharedForCausalLM', 'helium':                 │ │
│ │                                     'HeliumForCausalLM', 'jamba': 'JambaForCausalLM',        │ │
│ │                                     'jetmoe': 'JetMoeForCausalLM', 'llama':                  │ │
│ │                                     'LlamaForCausalLM', 'mamba': 'MambaForCausalLM',         │ │
│ │                                     'mamba2': 'Mamba2ForCausalLM', 'marian':                 │ │
│ │                                     'MarianForCausalLM', 'mbart': 'MBartForCausalLM',        │ │
│ │                                     'mega': 'MegaForCausalLM', 'megatron-bert':              │ │
│ │                                     'MegatronBertForCausalLM', 'mistral':                    │ │
│ │                                     'MistralForCausalLM', 'mixtral': 'MixtralForCausalLM',   │ │
│ │                                     'mllama': 'MllamaForCausalLM', 'moshi':                  │ │
│ │                                     'MoshiForCausalLM', 'mpt': 'MptForCausalLM', 'musicgen': │ │
│ │                                     'MusicgenForCausalLM', 'musicgen_melody':                │ │
│ │                                     'MusicgenMelodyForCausalLM', 'mvp': 'MvpForCausalLM',    │ │
│ │                                     'nemotron': 'NemotronForCausalLM', 'olmo':               │ │
│ │                                     'OlmoForCausalLM', 'olmo2': 'Olmo2ForCausalLM', 'olmoe': │ │
│ │                                     'OlmoeForCausalLM', 'open-llama':                        │ │
│ │                                     'OpenLlamaForCausalLM', 'openai-gpt':                    │ │
│ │                                     'OpenAIGPTLMHeadModel', 'opt': 'OPTForCausalLM',         │ │
│ │                                     'pegasus': 'PegasusForCausalLM', 'persimmon':            │ │
│ │                                     'PersimmonForCausalLM', 'phi': 'PhiForCausalLM', 'phi3': │ │
│ │                                     'Phi3ForCausalLM', 'phimoe': 'PhimoeForCausalLM',        │ │
│ │                                     'plbart': 'PLBartForCausalLM', 'prophetnet':             │ │
│ │                                     'ProphetNetForCausalLM', 'qdqbert':                      │ │
│ │                                     'QDQBertLMHeadModel', 'qwen2': 'Qwen2ForCausalLM',       │ │
│ │                                     'qwen2_moe': 'Qwen2MoeForCausalLM', 'recurrent_gemma':   │ │
│ │                                     'RecurrentGemmaForCausalLM', 'reformer':                 │ │
│ │                                     'ReformerModelWithLMHead', 'rembert':                    │ │
│ │                                     'RemBertForCausalLM', 'roberta': 'RobertaForCausalLM',   │ │
│ │                                     'roberta-prelayernorm':                                  │ │
│ │                                     'RobertaPreLayerNormForCausalLM', 'roc_bert':            │ │
│ │                                     'RoCBertForCausalLM', 'roformer': 'RoFormerForCausalLM', │ │
│ │                                     'rwkv': 'RwkvForCausalLM', 'speech_to_text_2':           │ │
│ │                                     'Speech2Text2ForCausalLM', 'stablelm':                   │ │
│ │                                     'StableLmForCausalLM', 'starcoder2':                     │ │
│ │                                     'Starcoder2ForCausalLM', 'transfo-xl':                   │ │
│ │                                     'TransfoXLLMHeadModel', 'trocr': 'TrOCRForCausalLM',     │ │
│ │                                     'whisper': 'WhisperForCausalLM', 'xglm':                 │ │
│ │                                     'XGLMForCausalLM', 'xlm': 'XLMWithLMHeadModel',          │ │
│ │                                     'xlm-prophetnet': 'XLMProphetNetForCausalLM',            │ │
│ │                                     'xlm-roberta': 'XLMRobertaForCausalLM',                  │ │
│ │                                     'xlm-roberta-xl': 'XLMRobertaXLForCausalLM', 'xlnet':    │ │
│ │                                     'XLNetLMHeadModel', 'xmod': 'XmodForCausalLM', 'zamba':  │ │
│ │                                     'ZambaForCausalLM', 'zamba2': 'Zamba2ForCausalLM'})      │ │
│ │                          Optional = typing.Optional                                          │ │
│ │                                os = <module 'os' (frozen)>                                   │ │
│ │                             torch = <module 'torch' from                                     │ │
│ │                                     'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\… │ │
│ │                      transformers = <module 'transformers' from                              │ │
│ │                                     'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\… │ │
│ │                             Tuple = typing.Tuple                                             │ │
│ │                             Union = typing.Union                                             │ │
│ │                          warnings = <module 'warnings' from 'C:\\Program                     │ │
│ │                                     Files\\Python312\\Lib\\warnings.py'>                     │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\lighteval\data.py:29 in    │
│ <module>                                                                                         │
│                                                                                                  │
│    26                                                                                            │
│    27 import torch                                                                               │
│    28 from torch.utils.data import Dataset                                                       │
│ ❱  29 from torch.utils.data.distributed import DistributedSampler, T_co                          │
│    30                                                                                            │
│    31 from lighteval.tasks.requests import (                                                     │
│    32 │   GreedyUntilRequest,                                                                    │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ Iterator = typing.Iterator                                                                   │ │
│ │  logging = <module 'logging' from 'C:\\Program Files\\Python312\\Lib\\logging\\__init__.py'> │ │
│ │     math = <module 'math' (built-in)>                                                        │ │
│ │    torch = <module 'torch' from                                                              │ │
│ │            'C:\\Users\\Admin\\Desktop\\Python\\0.LLMs\\lighteval\\venv\\Lib\\site-packages\… │ │
│ │    Tuple = typing.Tuple                                                                      │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ImportError: cannot import name 'T_co' from 'torch.utils.data.distributed'
(C:\Users\Admin\Desktop\Python\0.LLMs\lighteval\venv\Lib\site-packages\torch\utils\data\distributed.py)

lighteval is not supported on windows as we have no way of replcating the issues, closing for now, feel free to open a PR for a fix we will be happy to merge.