Keyven commited on
Commit
444a952
·
0 Parent(s):

Initial commit

Browse files
Files changed (8) hide show
  1. .gitattributes +36 -0
  2. README.md +64 -0
  3. config.json +46 -0
  4. head.pt +3 -0
  5. mankei-logo.png +3 -0
  6. model.safetensors +3 -0
  7. tokenizer.json +0 -0
  8. tokenizer_config.json +12 -0
.gitattributes ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ mankei-logo.png filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - de
5
+ library_name: transformers
6
+ pipeline_tag: text-classification
7
+ base_model: keyvan-ai/Mankei-1B-Chat
8
+ tags:
9
+ - reranker
10
+ - cross-encoder
11
+ - german
12
+ - retrieval
13
+ - rag
14
+ - on-prem
15
+ datasets:
16
+ - deepset/germandpr
17
+ model-index:
18
+ - name: Mankei-1B-Reranker
19
+ results:
20
+ - task:
21
+ type: text-classification
22
+ name: Passage Reranking
23
+ dataset:
24
+ type: deepset/germandpr
25
+ name: GermanDPR (held-out)
26
+ metrics:
27
+ - type: accuracy
28
+ value: 0.877
29
+ name: Accuracy
30
+ ---
31
+
32
+ <p align="center"><img src="mankei-logo.png" width="200" alt="Mankei"></p>
33
+
34
+ # Mankei-1B-Reranker (experimentell)
35
+
36
+ Cross-Encoder-Reranker, abgeleitet aus **Mankei-1B**. Bewertet Query-Passage-Paare pointwise (Relevanz 0–1) und ordnet die Top-k eines Retrieval-Schritts neu. Für **souveränes RAG on-premise**.
37
+
38
+ ## Wofür gebaut
39
+ Zweite Stufe hinter dem [Mankei-326M-Embedder](https://huggingface.co/keyvan-ai/Mankei-326M-Embedder): Der Embedder holt die Kandidaten (hoher Durchsatz), der Reranker schärft die Reihenfolge der Top-k.
40
+
41
+ ## Qualität
42
+ **val_acc 0,877** auf [GermanDPR](https://huggingface.co/datasets/deepset/germandpr) (CC-BY, gehaltener Split) — unterscheidet zuverlässig relevante von hart-negativen Passagen.
43
+
44
+ ## Verwendung
45
+ ```python
46
+ from transformers import AutoModel, AutoTokenizer
47
+ from huggingface_hub import hf_hub_download
48
+ import torch, torch.nn as nn
49
+
50
+ tok = AutoTokenizer.from_pretrained("keyvan-ai/Mankei-1B-Reranker")
51
+ base = AutoModel.from_pretrained("keyvan-ai/Mankei-1B-Reranker", dtype=torch.bfloat16)
52
+ head = nn.Linear(base.config.hidden_size, 1)
53
+ head.load_state_dict(torch.load(hf_hub_download("keyvan-ai/Mankei-1B-Reranker", "head.pt")))
54
+
55
+ def score(query, passages):
56
+ x = tok([f"Frage: {query}\nPassage: {p}" for p in passages],
57
+ padding=True, truncation=True, max_length=256, return_tensors="pt")
58
+ with torch.no_grad(): h = base(**x).last_hidden_state
59
+ idx = x.attention_mask.sum(1) - 1
60
+ return torch.sigmoid(head(h[torch.arange(h.size(0)), idx].float()).squeeze(-1))
61
+ ```
62
+
63
+ ## Training
64
+ Cross-Encoder-LoRA auf Mankei-1B, pointwise BCE auf GermanDPR (Positive + Hard-Negatives). Last-Token-Pooling + lineare Klassifikationsschicht (`head.pt` im Repo).
config.json ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_cross_attention": false,
3
+ "architectures": [
4
+ "LlamaModel"
5
+ ],
6
+ "attention_bias": false,
7
+ "attention_dropout": 0.0,
8
+ "bos_token_id": 0,
9
+ "cross_attention_hidden_size": null,
10
+ "decoder_start_token_id": null,
11
+ "dtype": "bfloat16",
12
+ "eos_token_id": 1,
13
+ "finetuning_task": null,
14
+ "head_dim": 64,
15
+ "hidden_act": "silu",
16
+ "hidden_size": 1536,
17
+ "initializer_range": 0.02,
18
+ "intermediate_size": 5248,
19
+ "is_decoder": false,
20
+ "max_position_embeddings": 4096,
21
+ "mlp_bias": false,
22
+ "model_type": "llama",
23
+ "num_attention_heads": 24,
24
+ "num_hidden_layers": 32,
25
+ "num_key_value_heads": 6,
26
+ "pad_token_id": 1,
27
+ "prefix": null,
28
+ "pretraining_tp": 1,
29
+ "pruned_heads": {},
30
+ "rms_norm_eps": 1e-05,
31
+ "rope_parameters": {
32
+ "rope_theta": 500000.0,
33
+ "rope_type": "default"
34
+ },
35
+ "sep_token_id": null,
36
+ "task_specific_params": null,
37
+ "tf_legacy_loss": false,
38
+ "tie_encoder_decoder": false,
39
+ "tie_word_embeddings": true,
40
+ "tokenizer_class": null,
41
+ "torchscript": false,
42
+ "transformers_version": "5.15.0",
43
+ "use_bfloat16": false,
44
+ "use_cache": true,
45
+ "vocab_size": 32768
46
+ }
head.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2edfc785218fb94de9cfea84c90b62cc9f58469cebdc6d84b214d8d2dcc53a18
3
+ size 7949
mankei-logo.png ADDED

Git LFS Details

  • SHA256: f85cdf24546aa53c14aa1dae1f00bd383470744374ddcadc05482e7e147bd456
  • Pointer size: 131 Bytes
  • Size of remote file: 415 kB
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:24386449555b5fc07c9819cb000da2dae9d1614e68d31b232d0196369b0e0b08
3
+ size 2026080120
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "backend": "tokenizers",
3
+ "bos_token": "<|begin_of_text|>",
4
+ "clean_up_tokenization_spaces": false,
5
+ "eos_token": "<|end_of_text|>",
6
+ "is_local": true,
7
+ "local_files_only": false,
8
+ "model_max_length": 8192,
9
+ "pad_token": "<|end_of_text|>",
10
+ "tokenizer_class": "TokenizersBackend",
11
+ "unk_token": null
12
+ }