huggingface/transformers · error · ValueError
`sequence_bias` has to be a dict with tuples as keys, but is
Error message
`sequence_bias` has to be a dict with tuples as keys, but is {sequence_bias}. What it means
Error "`sequence_bias` has to be a dict with tuples as keys, but is {sequence_bias}." thrown in huggingface/transformers.
Source
Thrown at src/transformers/generation/logits_process.py:1360
for sequence_ids, bias in self.sequence_bias.items():
if len(sequence_ids) == 1:
single_token_ids.append(sequence_ids[0])
single_token_biases.append(bias)
if single_token_ids: # Only if we have any single-token sequences
self.length_1_bias[single_token_ids] = torch.tensor(single_token_biases, device=scores.device)
self.prepared_bias_variables = True
def _validate_arguments(self):
sequence_bias = self.sequence_bias
if not isinstance(sequence_bias, dict) and not isinstance(sequence_bias, list) or len(sequence_bias) == 0:
raise ValueError(
f"`sequence_bias` has to be a non-empty dictionary, or non-empty list of lists but is {sequence_bias}."
)
if isinstance(sequence_bias, dict) and any(
not isinstance(sequence_ids, tuple) for sequence_ids in sequence_bias
):
raise ValueError(f"`sequence_bias` has to be a dict with tuples as keys, but is {sequence_bias}.")
if isinstance(sequence_bias, dict) and any(
any((not isinstance(token_id, (int, np.integer)) or token_id < 0) for token_id in sequence_ids)
or len(sequence_ids) == 0
for sequence_ids in sequence_bias
):
raise ValueError(
f"Each key in `sequence_bias` has to be a non-empty tuple of positive integers, but is "
f"{sequence_bias}."
)
def all_token_bias_pairs_are_valid(sequence):
return (
isinstance(sequence[0], list)
and all(isinstance(token_id, (int, np.integer)) and token_id > 0 for token_id in sequence[0])
and isinstance(sequence[1], float)
)
if isinstance(sequence_bias, list) and any(View on GitHub (pinned to a597f97485)
Solutions
- Pass `sequence_bias` as a dict mapping token-id tuples to float biases, e.g. `{(token_id,): -10.0}`.
- Convert lists of token ids to tuples before building the dict.
When it happens
Trigger: Raised in SequenceBiasLogitsProcessor.__init__ when sequence_bias is passed as a non-dict type (e.g. a list or string) instead of a dict keyed by token-id tuples.
Common situations: Calling generate() with sequence_bias not shaped as {(token_id, ...): bias_float}; migrating from the older list-of-lists API without updating the argument type.
AI-assisted analysis of huggingface/transformers@a597f97485 (2026-08-14).
Data as JSON: /api/errors/3baf6312314414ec.
Report an issue: GitHub.