Views
No views yet
| Component | Value |
|---|---|
| Backbone | InternVL3-2B (OpenGVLab/InternVL3-2B) |
| Cut layer | 27 |
| Pooler | attention (num_queries=1) |
| Embedding dim | 1536 |
| Loss | Sub-Center CosFace (m=0.35, s=32, k=3) |
| Embedding prompt | <image> Analyze this document |
| Dataset | EER |
|---|---|
| LA-CDIP (5-fold CV) | 1.44% |
Sprint3b_S0_subcenter_cosface_seed42_s32k3_fase1_E101import torch
2from huggingface_hub import hf_hub_download
3from cavl_doc.models.backbone_loader import load_model
4from cavl_doc.models.modeling_cavl import build_cavl_model
5
6device = "cuda" if torch.cuda.is_available() else "cpu"
7
8# Download fine-tuned weights
9ckpt_path = hf_hub_download(repo_id="Jpcosta90/cosdoc", filename="best_model.pt")
10ckpt = torch.load(ckpt_path, map_location=device, weights_only=False)
11cfg = ckpt["config"]
12
13backbone, _, tokenizer, _, _ = load_model("InternVL3-2B")
14model = build_cavl_model(
15 backbone=backbone,
16 cut_layer=cfg["cut_layer"],
17 pooler_type=cfg["pooler_type"],
18 num_queries=cfg.get("num_queries", 1),
19)
20model.pool.load_state_dict(ckpt["siam_pool"])
21model.head.load_state_dict(ckpt["siam_head"])
22model.eval().to(device)1@misc{cosdoc2026,
2 title = {CosDoc: Cosine-Margin Document Embeddings with RL-guided Hard Mining},
3 author = {Costa, João Paulo},
4 year = {2026},
5 url = {https://huggingface.co/Jpcosta90/cosdoc}
6}