File size: 2,607 Bytes
38b7213
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
"""Stub tests for the CC-BY-NC best-in-class variants (CPU-safe, no real models):
  1. config: nemotron 4096 branch + license decision recorded
  2. get_reranker dispatches jina-reranker-v3.5 to _JinaListwiseReranker
  3. predict(): multi-query grouping, index mapping, listwise call count
  4. visual_lane: _IS_NEMOTRON flag + nemotron loader branch present
"""
import sys
import types
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))

torch_stub = types.ModuleType("torch")
torch_stub.float16 = "f16"
torch_stub.float32 = "f32"
torch_stub.bfloat16 = "bf16"
torch_stub.no_grad = lambda: (lambda f: f)
sys.modules.setdefault("torch", torch_stub)

import config

code_cfg = (ROOT / "config.py").read_text()
assert config.VISUAL_EMBED_DIM == 128, config.VISUAL_EMBED_DIM
assert "4096 if" in code_cfg, "config missing nemotron 4096 branch"
assert "ACCEPTED" in code_cfg, "license decision not recorded in config"
print("test1 dim selection: PASS")

class _FakeRankingModel:
    def __init__(self):
        self.device = "cpu"
        self.calls = []

    def eval(self):
        return self

    def to(self, device):
        self.device = device
        return self

    def rerank(self, q, docs, top_n=None):
        self.calls.append((q, tuple(docs)))
        return [
            {"index": i, "relevance_score": 1.0 if d == "B" else 0.0, "document": d}
            for i, d in enumerate(docs)
        ]

class _FakeAutoModel:
    @staticmethod
    def from_pretrained(name, **kw):
        return _FakeRankingModel()

fake_tf = types.ModuleType("transformers")
fake_tf.AutoModel = _FakeAutoModel
sys.modules["transformers"] = fake_tf

import rerankers

r = rerankers.get_reranker("jinaai/jina-reranker-v3.5")
assert type(r) is rerankers._JinaListwiseReranker
print("test2 dispatch: PASS")

pairs = [("q1", "A"), ("q1", "B"), ("q2", "C"), ("q1", "D"), ("q2", "E")]
scores = r.predict(pairs)
assert len(scores) == 5
assert scores[1] == 1.0 and scores[0] == 0.0 and scores[3] == 0.0
assert len(r.model.calls) == 2, r.model.calls
assert r.model.calls[0][1] == ("A", "B", "D")
assert r.model.calls[1][1] == ("C", "E")
print("test3 listwise grouping/mapping: PASS")

vl_src = (ROOT / "visual_lane.py").read_text()
assert '_IS_NEMOTRON = "nemotron" in _MODEL_NAME.lower()' in vl_src
assert "forward_images" in vl_src and "forward_queries" in vl_src
assert "elif _IS_TOMORO:" in vl_src, "tomoro branch must become elif"
import visual_lane
assert visual_lane._IS_NEMOTRON is False
print("test4 visual_lane nemotron branch: PASS")

print("ALL NC-VARIANT TESTS PASS")