KM tokenizer, per tick, coarse (3 ร— 1000)

A discrete tokenizer for keyboard and mouse input, trained on Minecraft gameplay recordings. It turns 100 Hz key and mouse frames into 3 codes per 80 ms tick (each code in [0, 1000)), and turns codes back into key and mouse frames.

It differs from CharlieH512/km_tokenizer_ctx14_8x1000 in two ways:

  1. One step per tick. Before encoding, each tick's 8 frames are reduced to a single step: a key counts as held for the whole tick if it was held at any moment in it, and the tick's mouse movement is summed and spread evenly over its 8 frames. The tokenizer encodes and rebuilds this coarse form; the exact 10 ms timing inside a tick is not kept.
  2. Strictly per tick. No attention across ticks in the encoder or the decoder: a tick's codes describe that tick alone. The only exception is the first frame's "pressed / released this frame" key features, which compare with the previous tick's last frame, so a tick's codes can depend on whether a key was already held in the previous tick.

During training, each tick's key loss was weighted up by how rare its key pattern is in the training data (up to 10ร—), so rare key combinations are rebuilt as well as common ones.

  • Weights: model.safetensors (10.75 M parameters, fp32)
  • Config: config.json (fields of KmTokenizerCtx14Config; coarse_ticks: true, encoder_tick_radius: [0, 0, 0, 0], decoder_across_ticks: false, num_tokens: 3, fsq_levels: [8, 5, 5, 5])

The network is the ctx14 architecture (attention over a tick's 8 frames, a linear map to one latent per tick cut into 3 slices, each slice quantized with FSQ levels 8 ร— 5 ร— 5 ร— 5 = 1000 codes; the decoder expands each tick's codes back to 8 frames of 79 key logits and, per mouse axis, logits over 241 movement bins). Input format and key order are the same as ctx14's.

Downloads last month
29
Safetensors
Model size
10.7M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support