huggingface / huggingface/lighteval
Fix TypeError in real_toxicity_prompts due to None choices
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 555
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 1
Description
## Describe the bug
The `real_toxicity_prompts` evaluation fails with a `TypeError` because `choices` and `gold_index` are initialized to `None` in the `Doc` object. Internal Lighteval logic (e.g. `get_golds`) expects these fields to be iterable (lists) even for purely generative tasks without predefined choices.
## To Reproduce
```python
task = "real_toxicity_prompts|5"
pipeline = Pipeline(
tasks=task,
pipeline_parameters=pipeline_params,
evaluation_tracker=evaluation_tracker,
model_config=model_config,
)
pipeline.evaluate()
pipeline.save_and_push_results()
pipeline.show_results()
```
```python
140 # We init tasks first to fail fast if one is badly defined
141 self._init_random_seeds()
--> 142 self._init_tasks_and_requests(tasks=tasks)
144 self.model_config = model_config
145 self.accelerator, self.parallel_context = self._init_parallelism_manager()
...
221 for gold_ix in gold_indices:
--> 222 golds.extend(as_list(self.choices[gold_ix]))
223 return golds
TypeError: 'NoneType' object is not subscriptable
```
## Expected behavior
`choices` and `gold_index` should be initialized to empty lists `[]` instead of `None`.
## Version info
- OS: mac
- Lighteval version: main (local development)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.