/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
tf-lite
Опубликована
11 авг 2026

ThoxMesh-Head-C6

Классификация таблицTable → label3 профессии

Компактная модель для классификации событий и предсказания слотов команд умного дома на Seeed XIAO ESP32-C6.

27скачиваний за 30 дней0лайковвеса обновлены13 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Thox-ai разработала ThoxMesh-Head-C6 — компактный классификатор для Seeed XIAO ESP32-C6, обученный с нуля и поставляемый в формате TFLite с квантованием int8. Модель использует 16 признаков и четыре головы: классифицирует события по 8 классам и предсказывает слоты цели, команды и аргумента. Она предназначена для обработки событий устройств в сетях Matter, Thread и Zigbee на микроконтроллере с ограниченной памятью.

Точность классификации событий в приведённом README составляет 0,9979; F1 для классов motion и sensor_alert — 0,9903 и 0,9862. Строка действия собирается из перечислимых слотов и поэтому соответствует грамматике, однако это не гарантирует правильность выбранного устройства или команды. README прямо предостерегает от использования ветви действий: три из шести контрольных порогов не пройдены, а смысл целевого устройства остаётся неоднозначным. Данные синтетические, а не собранные на реальном оборудовании; нужны проверка на размеченных записях mesh-сети и проверка аргументов в прошивке. Лицензия репозитория — Apache-2.0.

Сценарии применения

  • классификация событий датчиков в сети Zigbee
  • распознавание событий движения и тревоги датчика
  • локальная обработка событий умного дома на ESP32-C6
  • формирование структурированной строки действия для последующей проверки политикой

Ограничения

Обучение выполнено на синтетических данных, а не на записях реального оборудования; предсказание цели и аргумента имеет существенные ограничения, и ветвь действий не рекомендуется к поставке. Грамматическая корректность собранной строки не гарантирует правильность действия.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

ThoxMesh-Head-C6 — v3.0.0 (4-head slot predictor)

int8 LiteRT-Micro head for the Seeed XIAO ESP32-C6. 9,848 bytes — 26× under the 256 KB budget.

No base_model: trained from scratch. There is no upstream checkpoint.

⚠️ Status: three of six model gates FAIL. Read before integrating.

gatethresholdv3.0.0
event accuracy (int8)≥ 0.980.9979✅
motion F1≥ 0.970.9903✅ (v2: 0.9565)
sensor_alert F1≥ 0.970.9862✅ (v2: 0.9470)
cmd-slot accuracy≥ 0.970.9608❌
target-slot accuracy≥ 0.950.7843❌
arg-bucket accuracy≥ 0.900.4519❌
assembled line parses act.gbnf1.001.00✅ (structural)

The event head is production-quality and improves on v2. The three action slots are not. If you need triage only — the v2 job — v3's event head is strictly better. Do not ship the ACT path on these weights.

What v3 changes

v2 classified events but could not act: it emitted an argmax over 8 classes with no way to produce ACT <target> <cmd> [arg]. v3 widens the trunk into four heads and assembles the action from enumerated slots:

features(16) → trunk(32,32) → event(8) | target(17) | cmd(9) | arg(17)

A language model was deliberately NOT used: the C6 has ~512 KB SRAM with no working PSRAM path, and the smallest Microprocessor tier is 1.11 MB at INT4.

Grammar adherence is structural — and that number is not a capability claim

Because the line is assembled from enumerated slots rather than decoded, it cannot be malformed. Proven exhaustively offline over 124,848 slot combinations — 0 grammar failures, 0 property failures — validated against grammars/act.gbnf using the microprocessor repo's own validator, so both ends of the RV1103↔C6 link check against one artifact.

grammar_failures: 0 therefore carries no information about correctness. It confirms the assembler and nothing else. A well-formed ACT lamp_1 on naming the wrong lamp is still wrong. The lane's parallel finding on the 8M was the same: constrained decoding gave "valid but not correct".

attr_id_norm earned its place

v3's feature 12 (ZCL attribute id) was added specifically to separate motion from sensor_alert, where v2's error concentrated. It worked:

v2v3
motion F10.95650.9903
sensor_alert F10.94700.9862

Why the three action gates fail — a design question, not a tuning gap

Two generator bugs were found and fixed during this build; a third issue is architectural and is not resolved.

Fixed: the first v3 run scored target 0.2323 (chance) because the label was drawn at random — not a function of any input, so unlearnable by construction. arg was nan because no event produced set/dim, leaving the metric with empty support. Both are corrected; the numbers above are from the corrected run.

Unresolved — what does target mean? The remaining error is not capacity. It is that the task is ambiguous:

  • If target is the device that reported the event, the C6 already knows it from the radio frame header. Predicting it from features is solving a problem that does not exist, and any accuracy below 1.0 is pure loss.
  • If target is a paired actuator (motion on sensor_3 → turn on lamp_1), it is a pairing/policy lookup that the 16-feature vector does not carry. No amount of training fixes a label the inputs cannot determine.

arg at 0.4519 has the same shape: 16 buckets decoded from a single normalised scalar, under int8 input quantisation. It is far above chance (0.0625) but exact bucket match is the wrong metric if adjacent buckets are operationally equivalent — an off-by-one dim level is not a failure the way a wrong device is.

These are questions for the architecture owner, and tuning the numbers to clear a gate without answering them would be measuring the wrong thing.

⚠️ Training data is SYNTHETIC

Grounded in published ZCL cluster ids (0x0006 OnOff, 0x0500 IAS Zone, 0x0406 Occupancy) and attribute ids, plus real dBm ranges — but not captured from hardware.

missed_wakeups: 0 / false_wakeups: 0 again. As in v2, zero in both directions is evidence that the generator makes ignore linearly separable, not that the head is perfect. Per the design doc: if v3 repeats the perfect separation, the generator is the finding, not the model. It did. It is.

What would make this real: a labelled capture from a C6 on a populated mesh.

Contract

16 features (v2's 10 unchanged, in order, plus 6 appended), 8 event classes, 17 target slots (0 = TARGET_NONE), 9 commands (0 = CMD_NONE → NOACT), 17 arg buckets (0 = none). meta.json is the single machine-readable source of truth — generate the firmware header from it, never hand-code the orders.

model_data.cc is generated from the exact .tflite described by meta.json, and meta.json carries its model_sha256. Verify that at build time: it is the mechanical check that makes v1's two-model defect impossible to reintroduce.

Firmware must still clamp arguments regardless of prediction (dim 0–100, set 5–35), and the C6 never executes an action — it emits a line the RV1103 validates against policy and the live roster.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · tf-lite

Нельзя запустить

Табличные модели пока не поддерживаются.

Ревизия весов
06d0812

0 моделей