{"record":{"id":"4dcd114c871a69c6","repo":"vllm-project/vllm","slug":"parameter-normalize-was-removed-use-use-activa","errorCode":null,"errorMessage":"Parameter `normalize` was removed; use `use_activation` instead.","messagePattern":"Parameter `normalize` was removed; use `use_activation` instead\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vllm/config/pooler.py","lineNumber":125,"sourceCode":"    If set, only the score corresponding to the `step_tag_id` in the\n    generated sentence should be returned. Otherwise, the scores for all tokens\n    are returned.\n    \"\"\"\n    returned_token_ids: list[int] | None = None\n    \"\"\"\n    A list of indices for the vocabulary dimensions to be extracted,\n    such as the token IDs of `good_token` and `bad_token` in the\n    `math-shepherd-mistral-7b-prm` model.\n    \"\"\"\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def reject_removed_parameters(cls, data):\n        values = data.kwargs if isinstance(data, ArgsKwargs) else data\n        if not isinstance(values, dict):\n            return data\n        if \"normalize\" in values:\n            raise ValueError(\n                \"Parameter `normalize` was removed; use `use_activation` instead.\"\n            )\n        check_removed_pooling_task(values.get(\"task\"))\n        return data\n\n    def __post_init__(self) -> None:\n        if self.logit_sigma is not None and self.logit_sigma == 0:\n            raise ValueError(\"logit_sigma cannot be 0 (division by zero)\")\n\n        if pooling_type := self.pooling_type:\n            if self.seq_pooling_type is not None:\n                raise ValueError(\n                    \"Cannot set both `pooling_type` and `seq_pooling_type`\"\n                )\n            if self.tok_pooling_type is not None:\n                raise ValueError(\n                    \"Cannot set both `pooling_type` and `tok_pooling_type`\"\n                )","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/config/pooler.py#L107-L143","documentation":"A before-mode pydantic model_validator on PoolerConfig rejects the legacy 'normalize' keyword. The normalize parameter (sigmoid/softmax normalization of reward scores) was replaced by use_activation, which controls whether the pooler applies its activation function. The validator inspects raw input (including ArgsKwargs) so it fires even before field parsing.","triggerScenarios":"Passing override_pooler_config=PoolerConfig(normalize=False) or normalize=True, or via --overrides 'pooler_config.normalize=false' CLI syntax, on a current vLLM version.","commonSituations":"Scripts written for older vLLM (<= v0.9 era) using normalize for reward models like math-shepherd; upgrading vLLM without migrating config; copied YAML/JSON pooler overrides containing normalize.","solutions":["Replace normalize=True with use_activation=True (or just omit it; True is the pooler default).","Replace normalize=False with use_activation=False.","Remove the key entirely if the model default behavior is acceptable.","Grep configs for 'normalize' after upgrading vLLM."],"exampleFix":"# before\npooler_cfg = PoolerConfig(normalize=False, returned_token_ids=[good_id, bad_id])\n\n# after\npooler_cfg = PoolerConfig(use_activation=False, returned_token_ids=[good_id, bad_id])","handlingStrategy":"validation","validationCode":"def migrate_pooler_kwargs(kwargs: dict) -> dict:\n    kwargs = dict(kwargs)\n    if \"normalize\" in kwargs:\n        kwargs[\"use_activation\"] = kwargs.pop(\"normalize\")\n    return kwargs\n\npooler_cfg = PoolerConfig(**migrate_pooler_kwargs(old_kwargs))","typeGuard":null,"tryCatchPattern":"try:\n    cfg = PoolerConfig(**kwargs)\nexcept ValueError as e:\n    if \"normalize\" in str(e):\n        kwargs[\"use_activation\"] = kwargs.pop(\"normalize\")\n        cfg = PoolerConfig(**kwargs)\n    else:\n        raise","preventionTips":["Run a config-migration pass over stored overrides after each vLLM major upgrade.","Keep pooler overrides as small dicts containing only fields you actually change."],"tags":["pooling","reward-model","migration","removed-parameter"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}