EvaluationSuite.run fails with default args_for_task and mutates supplied kwargs
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- huggingface, python
- Ambito
- machine-learning
Direzione di ricerca
Inizia da lì: l'errore è in run in src/evaluate/evaluation_suite/init.py, dove args_for_task["model_or_pipeline"] viene assegnato a SubTask.args_for_task, che per impostazione predefinita è None. Poi esegui il reproducer della issue per vedere il TypeError. Il lavoro è completo quando un task con il valore predefinito None viene eseguito e il dizionario del chiamante resta invariato dopo un'esecuzione, anche quando la pipeline solleva un'eccezione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
EvaluationSuite.run assigns runtime kwargs into SubTask.args_for_task, whose public default is None. A task with the default fails before the callable runs. A supplied dictionary is modified in place: it gains model_or_pipeline, data, subset and split, and remains changed after a pipeline exception.
Reproduced against current main a5db2ad54aaeadf15c7aa1f056bc6f7bbeeb7e5f (evaluate 0.4.7.dev0) on Windows 11 (10.0.26200), Python 3.12.14, datasets 2.21.0, transformers 4.57.1 and Torch 2.8.0+cpu. TensorFlow is not used in this reproduction.
from datasets import Dataset
from evaluate import EvaluationSuite
from evaluate.evaluation_suite import SubTask
class CallablePipeline:
task = "text-classification"
def __call__(self, rows, **kwargs):
return [{"label": 1} for _ in rows]
data = Dataset.from_dict({"text": ["positive"], "label": [1]})
suite = EvaluationSuite("local")
suite.suite = [SubTask("text-classification", data=data)]
print(suite.run(CallablePipeline())[0]["accuracy"])
Actual traceback from the unchanged main reproduction:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<frozen runpy>", line 287, in run_path
File "<frozen runpy>", line 98, in _run_module_code
File "<frozen runpy>", line 88, in _run_code
File "D:/cursor/projects/oss/audit/2026-10-10/ai-hourly-0724/evaluate/issue-reproducer.py", line 17, in <module>
print(suite.run(CallablePipeline())[0]["accuracy"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\cursor/projects/oss/worktrees/evaluate-hourly-0724-baseline/src\evaluate\evaluation_suite\__init__.py", line 119, in run
args_for_task["model_or_pipeline"] = model_or_pipeline
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object does not support item assignment
Expected: absent kwargs use the evaluator defaults, and preparing a run leaves a supplied top-level configuration dictionary unchanged. Creating a fresh shallow dictionary per task would retain existing metric/callable objects without changing the caller's dictionary.
- Lingua principale
- Python
- Stelle
- 2.5k
- Fork
- 366
- Merge medio
- 48m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di huggingface/evaluate
-
exact_match: ignore_punctuation only removes ASCII punctuationForse già presa @reginaldalfret l’ha presa 7 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
huggingface/evaluate#836 ·
I maintainer di solito rispondono entro 1 giorno
-
exact_match scores two different answers as a perfect match when normalization erases both to the same residueForse già presa @MahendraMula l’ha presa 36 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
huggingface/evaluate#822 ·
I maintainer di solito rispondono entro 1 giorno
-
Perplexity metric fails with GPT-2 tokenizerForse già presa @zanvari l’ha presa 134 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
huggingface/evaluate#766 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
False/misleading instruction to use different checkpoints of BLEURTForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
huggingface/evaluate#679 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
TypeError: got an unexpected keyword argument 'squared'Forse già presa @ShamikOfficial l’ha presa 57 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
huggingface/evaluate#669 · 3 commenti · 7 reazioni ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di huggingface/evaluate
Issue simili
-
enhancement help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Git-Hospital/githealthcheck#61 ·
I maintainer di solito rispondono entro 1 giorno
-
changelog investigate
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
ramnes/notion-sdk-py#433 ·
-
Partial method descriptors raise on class accessForse già presa @Gambit-Checkmate l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 19 giorni
-
docs pkg:core
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
pydantic/pydantic-ai#11929 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
intake/intake-esm#789 ·