Keylime m1 (34M) β Preview
This repo has the Keylime on-device autocorrect language model. The files are in the pre-optimized ORT format of onnxruntime. The Keylime keyboard for Android and the Keylime app for macOS download these files when they start for the first time.
m1 is an autoregressive decoder language model with 34M parameters. It has a 16k SentencePiece vocabulary and int8 weights. The Keylime apps use m1 as the battery-saver model.
m1 is a preview model. It is not perfect, and can often be flaky, inconsistent, or make dumb mistakes. The reason why we have published this version of the model is to collect feedback and data regarding the model and how to better utilize it, as well as general public consensus of the model's quality.
The model can be used in our MacOS app or Android keyboard, which downloads the our Keylime models automatically. You can opt-in to a data sharing program that sends your typing data to our servers for future model training. The program sends ALL typing data, including the messages you send. If you care about your own privacy, it is not recommended to opt-in.
Unlike our later m2 model, m1 does not use style tokens to control the level of autocorrection.
The manifest id of m1 is block4 ("m1 34M int8"). The manifest has the file list, the step-graph layout and the
decode parameters. The manifest is at https://autocorrect.mostlime.hackclub.app/autocorrect-android/manifest.json.
A copy of the manifest is in the models-v1 release of
Mostlime12195/keylime-models.
Files
| file | bytes | sha256 | what it is |
|---|---|---|---|
lm_block4.step.int8.ort |
42312320 | 5d10b91d18cfa4f5174cbf0fca7987ccb5dc2316334b2cdcae01862adede2533 |
step graph (batched candidates), pre-optimized onnxruntime (ORT) format |
lm_block4.step.int8t.ort |
42342088 | 12095b069d372b4814c7ab37ad405a9b267841c4e597e7e5783f9f2f863b3e69 |
tree step graph (one call scores every candidate of a word), ORT format |
vocab.json |
340209 | 70ad9ddc0b46857a66de5f14218103e26cf18728bc7bdec2388c56255cbd22b3 |
SentencePiece vocabulary |
LICENSE |
18659 | 5eebefd3682e32d661f307a28539b304e5e52fb1eb33ba214e61d7a57663e4f0 |
CC BY 4.0 license text |
To download a file, use this URL. Replace <file> with the name of the file.
https://huggingface.co/MostLime/keylime-m1-preview/resolve/main/<file>
Graph layout (manifest meta)
| key | value |
|---|---|
| params | 34,279,552 |
| d_model | 384 |
| vocab_size | 16384 |
| n_kv_heads | 2 |
| head_dim | 64 |
| conv_kernel | 7 |
| state_names | k0, v0, k1, v1, k2, v2, k3, v3, k4, v4, c0, c1, c2, c3, c4, c5, c6, c7, c8 |
Each graph is a single-step decoder. Each graph has the KV cache (k*/v*) and the short-conv state (c*) as
inputs and outputs. Thus, the keyboard uses the shared left context again. The keyboard then scores only the candidate
words.
This repo has no code and no training data. It has only the exported weights and the vocabulary that the keyboard needs.
License
Copyright Β© Mostlime12195. The license for the model files is Creative Commons Attribution 4.0 International (CC BY 4.0).