SkinTokens GGUF BF16×3
точность почти F32 на Vulkan без NaN
BF16-weight GGUF-чекпоинты от chibifire для проекта V-Sekai-fire/skin-tokens-ggml. Получены из опубликованных F32 GGUF-весов LocalAI-io/SkinTokens-GGUF и предназначены для ригинга 3D-персонажей через skin-tokens-ggml.
🔎 Ключевые особенности
- 🛡 Решает проблему NaN у F16-весов на Vulkan coopmat2: upstream ggml-vulkan не имеет пайплайна F16-weight/F32-activation matmul и молча делает lossy F32→F16.
- 🔄 Каждый матричный тензор разбит на два BF16-тензора —
name(hi) иname.lo(lo) — по схеме XLAALG_DOT_BF16_BF16_F32_X3. - ✅
hi + loвосстанавливает исходное F32-значение с относительной ошибкой около 2e-4, а суммирование cross-термов даёт почти F32-точность на нативном bf16×bf16 Vulkan. - 📌 Norm-, embedding- и sensitive-тензоры оставлены в F32 — как в «sensitive»-наборе проектного
convert_to_gguf.py. - 💻 Нужна совместимая версия skin-tokens-ggml: изменение с
mul_mat_x3и обнаружением.lo-тензоров вошло в main через PR #33 (commit0fccf15).
💻 Пример
hf download chibifire/skintokens-ggml-bf16x3 --local-dir models/SkinTokens-GGUF/BF16X3
skintokens-cli rig models/SkinTokens-GGUF/BF16X3 character.glb character-rigged.glb --device vulkan
Подробнее
На reference humanoid mesh: 24 предсказанных joint — точное совпадение с F32, 19 различных костей, распределение весов в пределах 0.01% от F32.Плейн BF16 без hi/lo даёт 90 joint вместо 24, поэтому нужен именно BF16×3.
Требования к VRAM в карточке не указаны. Лицензия upstream и производных — MIT.








Комментарии