File size: 1,865 Bytes
6fbe100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# CORTEX — tokenizer

Le tokenizer CORTEX est **réutilisé tel quel** depuis le dépôt distribué
(`Frankenstein-Labs/Cortex-ai`), sous licence MIT. Il n'est ni reconstruit, ni modifié.

| Fichier | Rôle |
|---|---|
| `../tokenizer.json` | tokenizer distribué, à la racine du dépôt (BPE, 129 280 identifiants) |
| `cortex_tokenizer.py` | chargement et validation |

## Chiffres mesurés

| Propriété | Valeur |
|---|---|
| Classe | `PreTrainedTokenizerFast` |
| Modèle | BPE |
| Vocabulaire de base | 128 000 |
| Fusions | 127 741 |
| Tokens ajoutés | 1 283 |
| Identifiants uniques | **129 280** |
| Identifiants en doublon | 3 (ids 0, 1, 2) |

## Le piège du décompte

`128 000 + 1 283 = 129 283`, mais `config.json` déclare `vocab_size: 129280` et les
embeddings ont 129 280 lignes.

Ce n'est pas une incohérence : les identifiants 0, 1 et 2 (`bos`, `eos`, `pad`)
apparaissent **à la fois** comme tokens spéciaux ajoutés et comme entrées du vocabulaire
BPE. Le nombre d'identifiants **uniques** est bien 129 280.

C'est pourquoi `assert_vocab_matches_config()` compare les identifiants uniques et jamais
les compteurs bruts. Toute réutilisation de ce tokenizer doit faire de même.

## Exemple

```python
from tokenizer.cortex_tokenizer import load_tokenizer, assert_vocab_matches_config

tokenizer = load_tokenizer()
assert_vocab_matches_config(tokenizer, 129280)
print(tokenizer.decode(tokenizer.encode("def add(a, b):\n    return a + b\n").ids))
```

## Si le fichier est absent

`tokenizer.json` est versionné **à la racine** du dépôt, et le pipeline le charge depuis là :
une seule copie existe, donc aucune divergence n'est possible entre le tokenizer du pipeline et
celui du checkpoint distribué. S'il manque, le récupérer depuis la source :

```bash
hf download Frankenstein-Labs/Cortex-ai tokenizer.json --local-dir .
```