File size: 1,790 Bytes
56ae5ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# Reproducing the conversion

**You need:**
- Python 3.11, with PyTorch 2.11.0, Transformers 5.17.0, coreai-torch 0.4.2, coreai-core 1.0.0b2, coreai-opt 0.2.1, numpy and huggingface_hub;
- macOS 27 with Xcode 27.

**The source:** `nvidia/parakeet-tdt-0.6b-v3` at revision `541d1f99c6b0c3cd0b11a95167540bb8edefd82b`. You need these files:
- `README.md`
- `config.json`
- `generation_config.json`
- `model.safetensors`, whose SHA-256 is `3a2026366188c8c68598edbbff92f8d11590a08e0ae2e6775544e7b07d6a5e11`
- `tokenizer.json`
- `tokenizer_config.json`

Put them in a folder with a `source-provenance.json`:

```json
{"repo_id": "nvidia/parakeet-tdt-0.6b-v3", "revision": "541d1f99c6b0c3cd0b11a95167540bb8edefd82b",
 "files": ["README.md", "config.json", "generation_config.json", "model.safetensors", "tokenizer.json", "tokenizer_config.json"]}
```

**Export**, from this folder:

```sh
PYTHONPATH=. python parakeet_export.py --source /path/to/source --output /path/to/pal8 \
  --encoder-weights pal8 --small-weights fp16
```

**What the export does:**
- **Encoder and projection:** palettized with coreai-opt's 8-bit per-tensor k-means preset (`KMeansPalettizerConfig.presets.w8()`), then cast to FP16 with a 16-bit output.
- **Predictor and joint:** wrapped so their weights are FP16 while their inputs and outputs stay FP32.
- **Frontend:** stays FP32.
- **References:** each component's export-time reference tensors go in `references/`.
- **Manifest:** lists every file's size and SHA-256.

Defaults, with no flags, reproduce the plain FP16 conversion.

**Files here:**
- `parakeet_export.py`: the export.
- `parakeet_adapters.py`: the frontend, encoder, predictor and joint graphs.
- `nemotron/graphs.py`: the explicit LSTM predictor and joint graphs, shared with the Nemotron conversion.