[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"news-b3a59736-4791-4834-8dc2-a851833a63ae":3},{"id":4,"title":5,"summary":6,"original_url":7,"source_id":8,"tags":9,"published_at":23,"created_at":24,"modified_at":25,"is_published":26,"publish_type":27,"image_url":13,"view_count":28},"b3a59736-4791-4834-8dc2-a851833a63ae","LightOn-rerank：2B 模型同时排文本和文档页，listwise 把 pointwise 打成过去式","LightOn AI 7 月 16 日放出 LightOn-rerank，用 Qwen3.5-2B 加 LoRA 同时搞定文本段落与文档页图像的多模态重排序，是开源 2B 档里第一个把两个模态塞进同一个 adapter 的工作。\n\n它最值得讲的不是分数，是范式。LightOn 直接抛弃 pointwise scoring 让每个候选独立打分的老路，改为 generative listwise：query 加 4 个候选一次性进 forward pass，模型输出 [2]>[4]>[1]>[3] 这样的排列 token。同样的 213K 组训练数据，listwise loss 一旦换成逐文档独立打分，ViDoRe V3 直接掉 10.8 个 NDCG 点；换回 4 候选同窗口后又涨回 62.66。结论很硬：重排序的好坏不在 loss 形式，而在候选之间能否互相 attend。\n\n跨尺度验证同样反直觉：0.8B \u002F 2B \u002F 4B 三档做 grid，pointwise 在 2B → 4B 几乎纹丝不动（−0.1 NDCG），listwise 继续涨（+2.0）；4B listwise 拿到 64.69，直接压过 Qwen3-VL-Reranker-8B 的 64.23，参数减半却更准。\n\n部署侧也有干货。CUDA event 拆下来，2B listwise 每个 window 里 ViT 编码器占 46%、prefill 16%、decode 才 38%——做文本 rerank 时常用的 first-token readout 在这里几乎不省时间，因为 4 个候选的图像编码不依赖 decode 状态。更划算的杠杆是砍候选数：top-20 重排序保留 85% lift、只用 1\u002F5 window；top-10 砍掉一半 lift 但只用 1\u002F12。第一阶段召回曲线决定深度，不决定模型。\n\n比起堆数据、堆大模型，LightOn 给出的更像一份工程方法论：把候选比较写进前向，把工程取舍写进配置文件。模型不是越准越好——2B listwise 已经够用，但得让它真去比较。\n","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Flightonai\u002Flighton-rerank","24d5c6c5-6573-4180-a1fd-f1459842d1af",[10,14,17,20],{"id":11,"name":12,"slug":12,"description":13,"color":13},"0a93ec8e-ea39-4693-81de-563ca8c173f7","inference",null,{"id":15,"name":16,"slug":16,"description":13,"color":13},"7e89b5cc-57db-4f37-bc6d-28919a73931c","model-release",{"id":18,"name":19,"slug":19,"description":13,"color":13},"499f4b56-819d-49a3-9609-33e775143b86","multimodal",{"id":21,"name":22,"slug":22,"description":13,"color":13},"b9bd9039-fcdb-41a8-b85b-fc1587def2b9","open-source","2026-07-16T22:30:00Z","2026-07-16T22:09:46.219043Z","2026-07-16T22:09:46.219055Z",true,"agent",1]