---
license: apache-2.0
library_name: laya-mlx
pipeline_tag: text-classification
tags:
- laya
- typed-decisions
- mlx
- apple-silicon
- lora
- layastudio
base_model: aac6fef/laya-multilingual-mlx
---

# Snake · balanced (multilingual)

A [Laya](https://github.com/NandhaKishorM/laya) typed-decision model, fine-tuned with
[LayaStudio](https://github.com/biplovgautam/LayaStudio) on an Apple silicon Mac. It
answers the questions below in a single forward pass, with calibrated probabilities and
**zero generated tokens**.

Base model: `aac6fef/laya-multilingual-mlx` · method: lora, proper objective · trained in
18 minutes on an Apple silicon Mac.

## Measured on the held-out test split

| Metric | Base model | This model |
|---|---|---|
| Accuracy | 15.8% | **98.8%** [97.6%–99.4%] |
| Calibration error (ECE) | 0.246 | **0.002** |
| Log loss | 1.607 | **0.047** |
| Brier score | 0.865 | **0.021** |
| Decisions scored | 600 | 600 |

Fine-tuning fixed **500** test decisions the base model got wrong and broke **2** it got right (exact McNemar p < 0.001).

Test rows were never trained on. Accuracy intervals are Wilson intervals; the paired test
is an exact McNemar test between the base and the fine-tuned model on the same rows.

## Use it

```bash
pip install laya-mlx            # Apple silicon
```

```python
import json, laya_mlx as laya
from huggingface_hub import hf_hub_download

agent = laya.load("madhavbiplov/laya-snake-mlx")
questions = json.load(open(hf_hub_download("madhavbiplov/laya-snake-mlx", "questions.json")))
print(agent.predict("your text here", questions)["answers"])
```

Ask it **these** questions: the instructions and option texts are part of the model's
input, so changing them changes the task it was tuned for.

```json
{
  "move": {
    "type": "choice",
    "instructions": "Snake board. Pick the next move: stay inside the board, do not hit the snake, and take the shortest safe path to the food.",
    "criteria": {
      "UP": "one cell up",
      "DOWN": "one cell down",
      "LEFT": "one cell left",
      "RIGHT": "one cell right"
    }
  }
}
```

The same folder also loads in the upstream PyTorch `laya` package on Linux and NVIDIA, and
LayaStudio can export it to ONNX.

## Provenance

```json
{
  "base_model": "aac6fef/laya-multilingual-mlx",
  "hyperparameters": {
    "method": "lora",
    "objective": "proper",
    "epochs": 4,
    "batch_size": 8,
    "grad_accum": 2,
    "lr": 0.0002,
    "head_lr": 0.0001,
    "lora_rank": 16,
    "lora_alpha": 32,
    "lora_dropout": 0.05,
    "lora_layers": 0,
    "full_layers": 4,
    "head_dropout": 0.1,
    "weight_decay": 0.01,
    "warmup": 0.06,
    "max_grad_norm": 1.0,
    "shuffle_options": true,
    "class_weighting": "none",
    "patience": 2,
    "grad_checkpoint": "auto",
    "precision": "bfloat16",
    "seed": 13
  },
  "train_decisions": 2339,
  "best_epoch": 3,
  "temperature": [
    1.3116,
    1.0,
    1.0
  ],
  "temperature_by_options": {
    "choice:3-5": 1.3116
  },
  "dataset_sha256": "970a6be8b1b458204b95fa747c66b4c527512bdf373f549f88d97391243cd24a",
  "trained_on": "2026-09-23T01:11:23"
}
```

## License and attribution

Apache-2.0. Laya and its pretrained weights are by
[Convai Innovations](https://github.com/NandhaKishorM/laya); this checkpoint is a
fine-tune of `aac6fef/laya-multilingual-mlx` and carries the same licence. Fine-tuned and published with
[LayaStudio](https://github.com/biplovgautam/LayaStudio).
