Sohayok action decider (Laya-Bangla fine-tune)

The decision model behind Sohayok, a Bangla and English voice assistant for the Windows desktop ("Tammy, ক্রোম খোলো"). Given what the user said, it picks one of 28 desktop actions (open an app, change the volume, play YouTube, weather, reminders, files, windows, GitHub, a question, small talk, a multi-step task, …) in about 15–60 ms on a GPU or ~160 ms on a CPU. A small language model then fills in the details for that single action.

  • Base: algolyzer/laya-bangla @ caeb5631ddfe0efe0f2937aeeae06f8d2d1cf6da, a Bangla fine-tune of Laya (mmBERT-base with a typed-decision head) by Convai Innovations.
  • Actions and their wording: actions.json. The deployed question is "ব্যবহারকারী কম্পিউটারকে কোন কাজটি করতে বলছেন?"; training used different wordings, so the model does not depend on one exact phrasing.

Results

Benchmark of 478 requests: MASSIVE bn-BD and en-US test utterances for the 18 intents that map onto desktop actions (418) and 60 hand-written desktop commands in Bangla, English, and Banglish.

Decider All MASSIVE test Desktop Bangla English
algolyzer/laya-bangla, zero-shot 63.4% 65.1% 51.7% 65.3% 61.5%
This model 91.8% 92.3% 88.3% 91.6% 92.1%

In Sohayok, this decider with qwen3.5:2b filling in arguments picks the right tool for 91.4% of the same requests, against 70.7% for qwen3.5:4b choosing among all 48 tools alone (Bangla: 90.8% vs 65.7%).

Confidence is informative: decisions with top probability ≥ 0.7 (93% of requests) are right 95.7% of the time and the rest only 41%, so Sohayok hands those to a fallback agent.

Caveats: the desktop commands were written by the same developer as the training templates, so that column is optimistic; one training run, no confidence intervals.

Training

  • Data: MASSIVE bn-BD + en-US train splits (real requests; 60 intents mapped to actions, intents a PC cannot do → other), capped per class, plus 1,301 template sentences for desktop actions in Bangla, Banglish, and English (synthetic; generated sentences within 90% similarity of a benchmark command were dropped), topped up to ≥ 400 examples per action with polite prefixes and suffixes. 22,348 training and 4,196 validation items.
  • Method: laya.train (Laya 0.4.11), token embedding frozen, soft cross-entropy with label smoothing 0.05, choice options shuffled, AdamW (encoder 3e-5, head 1e-4), 2 epochs, best epoch by validation loss (epoch 2: 88.3% validation accuracy), temperature calibrated on validation. 65 minutes on an RTX 4060, peak 3.2 GB. Details: train_report.json.
  • Reproduce: uv run sohayok setup --train-decider in the Sohayok repository.

Usage

import json, laya
from huggingface_hub import hf_hub_download

repo = "ashfaq1306/sohayok-laya-actions"
agent = laya.load(repo)
spec = json.load(open(hf_hub_download(repo, "actions.json"), encoding="utf-8"))
question = {"action": {
    "type": "choice",
    "instructions": spec["question"]["bn"],
    "criteria": {name: a["bn"] for name, a in spec["actions"].items()},
}}
answer = agent.predict("ইউটিউবে আইয়ুব বাচ্চুর গান চালাও", question)["answers"]["action"]
print(answer["choice"], answer["answer_confidence"])  # play 0.96

License and attribution

Apache-2.0, like the base models. Training used MASSIVE (FitzGerald et al., 2022; CC BY 4.0) and Laya-Bangla's own training data as credited on its model card.

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

Model tree for ashfaq1306/sohayok-laya-actions

Finetuned
(1)
this model

Dataset used to train ashfaq1306/sohayok-laya-actions