소스 검색

Merge pull request #18108 from YetheSamartaka/main

fix: "Cannot handle batch sizes > 1 if no padding token is defined" for some reranking models
Tim Jaeryang Baek 4 달 전
부모
커밋
696876d393
1개의 변경된 파일16개의 추가작업 그리고 0개의 파일을 삭제
  1. 16 0
      backend/open_webui/routers/retrieval.py

+ 16 - 0
backend/open_webui/routers/retrieval.py

@@ -191,6 +191,22 @@ def get_rf(
                     log.error(f"CrossEncoder: {e}")
                     raise Exception(ERROR_MESSAGES.DEFAULT("CrossEncoder error"))
 
+                # Safely adjust pad_token_id if missing as some models do not have this in config
+                try:
+                    model_cfg = getattr(rf, "model", None)
+                    if model_cfg and hasattr(model_cfg, "config"):
+                        cfg = model_cfg.config
+                        if getattr(cfg, "pad_token_id", None) is None:
+                            # Fallback to eos_token_id when available
+                            eos = getattr(cfg, "eos_token_id", None)
+                            if eos is not None:
+                                cfg.pad_token_id = eos
+                                log.debug(f"Missing pad_token_id detected; set to eos_token_id={eos}")
+                            else:
+                                log.warning("Neither pad_token_id nor eos_token_id present in model config")
+                except Exception as e2:
+                    log.warning(f"Failed to adjust pad_token_id on CrossEncoder: {e2}")
+
     return rf