esp32-ai-barista / metadata.json
slvDev's picture
add barista weights, vocabulary files, model card and metadata
997be14 verified
Raw
History Blame Contribute Delete
3.85 kB
{
"architecture": "PLE",
"format": {
"magic_ascii": "PLE\\0",
"magic_le_hex": "0x00454c50",
"version": 1,
"header_bytes": 56,
"flags": {
"TIED_HEAD": false
}
},
"config": {
"input_vocab": 8057,
"output_vocab": 854,
"d_model": 128,
"n_layers": 6,
"n_heads": 4,
"ffn_hidden": 384,
"ple_dim": 128,
"seq_len": 128,
"rope_theta": 10000.0
},
"vocabulary": {
"note": "asymmetric: the model reads a BPE vocabulary and writes a separate, smaller output alphabet of 854 classes, which includes punctuation and specials, so the output head is its own tensor rather than a view of the embedding",
"bpe_entries": 7338,
"word_rows_appended": 719,
"input_vocab_total": 8057,
"output_classes": 854,
"output_classes_reusing_a_bpe_id": 135,
"input_encoding": "ASCII only; non-ASCII input is refused rather than encoded differently from the reference tokenizer"
},
"parameters": {
"ple_table": 6187776,
"tok_emb": 1031296,
"output_head": 109312,
"core": 1575424,
"total": 8903808
},
"quantization": {
"weights": "int4",
"group_size": 128
},
"runtime": {
"weights_staged_int8": "per-position core and the untied output head, in PSRAM",
"activations": "int8, quantized per staged matvec",
"sram": "float scratch buffers and RMSNorm vectors",
"psram": "staged core, staged head, KV cache",
"flash": "PLE table and token embedding, memory-mapped"
},
"measured": {
"unit": "an output piece is one emitted class; punctuation is a class. Over the benchmark prompt set, 253 pieces render as 213 readable words.",
"serial_only": {
"ms_per_piece": 60.25,
"pieces_per_second": 16.6,
"readable_words_per_second": 13.97
},
"with_oled": {
"ms_per_piece": 88.83,
"pieces_per_second": 11.26,
"readable_words_per_second": 9.48,
"added_ms_per_piece": 28.58
},
"ms_per_forward": 49.6,
"method": "scripts/benchmark_device.py, eight fixed prompts, two passes per mode, spread under 0.1%, same weights and build switches apart from the display, generated text identical in both modes",
"common": {
"staged_tensors": 44,
"scratch_sram_bytes": 20940,
"norm_vectors_in_sram": 20,
"sram_fallbacks": 0,
"build": "-O3",
"date": "2026-08-02"
}
},
"device_fingerprint_fnv1a": "e602146b",
"files": {
"model.bin": {
"sha256": "1359a1cb74de4143d630c2c192990de814cd47255bcdfa9cc135f07ef0a39fc4",
"bytes": 4600186,
"license": "MIT"
},
"tokenizer.json": {
"sha256": "0ad085811c949f35c5f5f15b555f2ff2d46ec1ec94a1650552416d06aaa19ee2",
"bytes": 491735,
"license": "MIT"
},
"vocab.json": {
"sha256": "5a16d6224abf03265d69ebcccf121c8f8d2c222bfedd8274acbc0bbbe13e4eb7",
"bytes": 50494,
"license": "MIT"
},
"layout.json": {
"sha256": "15036c5ee2b23b9b35404ef6422cb788bbede8cf2c269bae35d4dbf9a48a0b90",
"bytes": 5142,
"license": "MIT"
}
},
"weights_license": "MIT",
"tokenizer_license": "MIT",
"source_checkpoint": {
"name": "v5-L6-s0.pt",
"distributed": false,
"sha256": "bad2cfb6627dbde6893b11cd7e773ec96f1d8c36bf6d3a5d36845f9edc5f0ffb"
},
"training_data": {
"dataset": "private question and answer corpus written for this project",
"redistributed": false,
"note": "the corpus, the checkpoints and the evaluation sets are not distributed. The weights and the inference assets in this repository are, which is why the vocabulary files are here: without them the output classes cannot be turned back into words or fed forward."
},
"hardware": {
"board": "ESP32-S3",
"flash_mb": 16,
"psram_mb": 8,
"sram_kb": 512,
"model_partition_offset": "0x110000"
}
}