SIGN IN SIGN UP

Add encoder pooling backend foundation (#608)

This PR is:

- To add the encoder pooling runtime path without using decoder KV cache
or paged attention.
- To add a minimal native XLM-R/RoBERTa backbone as the foundation for
BGE-M3 pooling.
- To keep decoder pooling on the existing generation loader while
encoder pooling owns its model-family loader.
- To preserve vLLM’s configured tokenizer and resolved model config
contracts.

Note:

This is the PR2 foundation for BGE-M3 support. It does not claim broad
XLM-R/RoBERTa model support as a product feature. The local backbone
exists because `mlx-lm` / `mlx-vlm` do not currently provide a
license-compatible encoder implementation for this path.

Follow-up plan:

- PR3: Add BGE-M3 dense embedding behavior on top of this encoder
backend.
- PR4: Add BGE-M3 sparse `token_classify` / lexical-weight output.

---------

Signed-off-by: Yuan Lik Xun <lxyuan0420@gmail.com>
L
Lik Xun Yuan (Lx) committed
0fa54964545b3cceaa1fe0b9d100928e93634e97
Parent: 494fb3e
Committed by GitHub <noreply@github.com> on 8/15/2026, 6:21:55 AM