From 7562c04828976ba4cf94da34043e6d1d5ce2b486 Mon Sep 17 00:00:00 2001 From: 22quinn <33176974+22quinn@users.noreply.github.com> Date: Sat, 17 May 2025 15:55:01 -0700 Subject: [PATCH] Use sigmoid for single-label classification Signed-off-by: 22quinn <33176974+22quinn@users.noreply.github.com> --- vllm/model_executor/layers/pooler.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/vllm/model_executor/layers/pooler.py b/vllm/model_executor/layers/pooler.py index c5bf603a14df..6abbc90819a8 100644 --- a/vllm/model_executor/layers/pooler.py +++ b/vllm/model_executor/layers/pooler.py @@ -242,9 +242,16 @@ def forward(self, pooled_data: Union[list[torch.Tensor], torch.Tensor], if self.softmax: if isinstance(pooled_data, list): - pooled_data = [F.softmax(data, dim=-1) for data in pooled_data] + pooled_data = [ + F.softmax(data, dim=-1) + if data.shape[-1] >= 2 else F.sigmoid(data) + for data in pooled_data + ] else: - pooled_data = F.softmax(pooled_data, dim=-1) + if pooled_data.shape[-1] >= 2: + pooled_data = F.softmax(pooled_data, dim=-1) + else: + pooled_data = F.sigmoid(pooled_data) return pooled_data