IrisSpeak-135M

IrisSpeak-135M is a context-aware next-card model for augmentative and alternative communication (AAC). Given the setting, the recent conversation, the communication partner's last utterance and the cards a user has already tapped, it scores every card in a closed AAC vocabulary and predicts which card comes next. It runs entirely on the device: in the browser through onnxruntime-web, or in PyTorch.

Live app: https://irisspeak.org/ (no account needed).

Architecture

  • Base: SmolLM2-135M-Instruct (30 layers, hidden 576, Apache 2.0).
  • Card layer: a trainable matrix with one row per vocabulary card plus a name slot, a start marker and an end-of-message marker (3,097 rows). The rows are used both as input embeddings for the tapped cards and as the output head that turns the last hidden state into one logit per card.
  • Each card row was initialised from the mean SmolLM2 embedding of the card's spoken form, then the whole model was fine-tuned on next-card states derived from AAC conversation data.

Files

File What it is
model.safetensors, config.json LlamaForCausalLM with the card rows folded into the vocabulary: card i is token id 49152 + i; the start marker is token 52248 (see extended_vocab.json). Base vocabulary 49,152, extended 52,249.
tokenizer.json and friends the unchanged SmolLM2 tokenizer for the text part of the prompt
extended_vocab.json ordered card ids (card_0000 …, <name>, <aac_end>) mapped to the extra token ids
onnx/card_model_fp16.onnx the same graph exported with Optimum, fp16 weights (274 MB); inputs input_ids, attention_mask, position_ids; top-100 overlap with PyTorch 0.998
card_model.pt the original training checkpoint (state dict, fp32)

The card vocabulary itself (the spoken label of each card id) is not part of this repository.

Prompt format

Setting: home.
Earlier: <partner> | <answer> | ...
Partner: What do you want for lunch?
Reply cards:

followed by the start token and the token ids of the cards tapped so far. Take the logits of the last position restricted to the card token range and softmax them to get a distribution over the next card.

Training data

Next-card states were derived from public AAC conversation corpora (AAC Conversations, AACText imagine) mapped onto the card vocabulary: 69,676 training states, weighted towards question-answer exchanges, with a six-card cap per message and the end-of-message marker down-weighted.

Results (held-out states)

metric value
Recall@1 0.29
Recall@16 0.55 (0.60 on question-answer states)
Recall@100 0.78
Recall@16 with the trained reranker 0.65 general / 0.70 question-answer

Intended use

Research prototype for context-aware AAC card suggestion. Not a medical device.

Downloads last month
547
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for cryptobunny/IrisSpeak-135M

Quantized
(124)
this model
Quantizations
1 model