Instructions to use arc-director/Skaldic-Laya with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use arc-director/Skaldic-Laya with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="arc-director/Skaldic-Laya")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("arc-director/Skaldic-Laya", device_map="auto") - Laya
How to use arc-director/Skaldic-Laya with Laya:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use arc-director/Skaldic-Laya with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf arc-director/Skaldic-Laya:BF16 # Run inference directly in the terminal: llama cli -hf arc-director/Skaldic-Laya:BF16
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf arc-director/Skaldic-Laya:BF16 # Run inference directly in the terminal: llama cli -hf arc-director/Skaldic-Laya:BF16
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf arc-director/Skaldic-Laya:BF16 # Run inference directly in the terminal: ./llama-cli -hf arc-director/Skaldic-Laya:BF16
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf arc-director/Skaldic-Laya:BF16 # Run inference directly in the terminal: ./build/bin/llama-cli -hf arc-director/Skaldic-Laya:BF16
Use Docker
docker model run hf.co/arc-director/Skaldic-Laya:BF16
- LM Studio
- Jan
- Ollama
How to use arc-director/Skaldic-Laya with Ollama:
ollama run hf.co/arc-director/Skaldic-Laya:BF16
- Unsloth Desktop
- Docker Model Runner
How to use arc-director/Skaldic-Laya with Docker Model Runner:
docker model run hf.co/arc-director/Skaldic-Laya:BF16
- Lemonade
How to use arc-director/Skaldic-Laya with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull arc-director/Skaldic-Laya:BF16
Run and chat with the model
lemonade run user.Skaldic-Laya-BF16
List all available models
lemonade list
- Atomic Chat
Skaldic Laya
Split-second NPC reflexes. Skaldic Laya is a 0.4B decision model for ArcDirector. Given a situation, a goal and a few options (fight or flee, heal or strike, drink the potion or keep swinging), it picks one, with calibrated odds, in a single pass without generating text. It makes a decision in about 55 ms on average, in LM Studio on an RTX 5090.
Made by Daniel Sigurdsson for ArcDirector.
Results
The ArcSelector Bench (v2, part of ArcDirector library) asks for 14 quick decisions from real game moments, like whether to finish off a wounded enemy, guard a hurt ally, or drink a potion. The best choice earns full points, and a choice that still helps earns some. Each decision is asked twice, the second time with the options in reverse order, and the worse of the two answers counts, so always picking the first option doesn't pay off. Tested on a RTX 5090 GPU with 32GB of VRAM.
| Skaldic Laya | Laya (base) | Skaldic Gemma 4 E4B | Gemma 4 E4B | Jev (hosted)¹ | |
|---|---|---|---|---|---|
| Total | 51% | 31% | 65% | 63% | 93% |
| Easy | 75% | 30% | 75% | 75% | 100% |
| Medium | 60% | 42% | 62% | 56% | 80% |
| Hard | 22% | 22% | 60% | 60% | 100% |
| Tactics | 50% | 30% | 75% | 68% | 75% |
| Survival | 70% | 37% | 100% | 100% | 100% |
| Social | 67% | 3% | 37% | 37% | 100% |
| Puzzle | 25% | 50% | 50% | 50% | 100% |
| Time/decision | 55 ms | 79 ms | 244 ms | 261 ms | 454 ms |
¹ 2 runs per situation.
In short: Skaldic Laya scores 20 points higher than the Laya it was trained from, and answers a little faster. The bigger Gemma models choose better but take about 4.5 times as long, and the hosted Jev chooses best at about 8 times as long. With only 14 decisions, each one is worth about 7 points, so small differences between rows don't mean much.
Use it
In ArcDirector
The ArcDirector library knows Skaldic Laya by name: it runs it as a System One, on its own small engine beside the main model, so NPCs make their quick choices in a fraction of a second while the main model writes their plans.
This is the simplest way to use it:
import { ArcDirector, BrowserProvider, Skaldic } from 'arc-director';
import wasm from '@wllama/wllama/esm/wasm/wllama.wasm?url'; // vite
// const wasm = new URL('@wllama/wllama/esm/wasm/wllama.wasm', import.meta.url).href; // webpack
BrowserProvider.shared = new BrowserProvider({ wasm });
const director = new ArcDirector()
.withLoadingBar() // Shows a loading bar on screen while it downloads
.addBrowserModel('main', Skaldic.Gemma4E4B)
.addBrowserModel('local', Skaldic.Laya);
director.setDefaultSystemOne('local'); // Every NPC makes its quick choices with Skaldic Laya
await director.start();
Prefer LM Studio? Download skaldic-laya-Q8_0.gguf into it, and add it the same way:
const director = new ArcDirector()
.addLMStudioInference()
.addModel('local', { decision: true, id: 'skaldic-laya' });
director.setDefaultSystemOne('local');
Anywhere else
- llama.cpp's server answers the System One API (
POST /v1/systemone):curl localhost:8080/v1/systemone -H 'Content-Type: application/json' -d '{ "state": "You are Nell, 2/28 hp (badly hurt).", "questions": { "pick": { "type": "choice", "instructions": "stay alive", "criteria": { "attack": "cleave(Lena), Lena 20/20 hp, 1 away", "drink": "use(Elixir), Elixir carried", "wait": "wait(seconds=3)" } } } }' - The
layaPython package loads the native checkpoint in this repo:import laya agent = laya.load("arc-director/Skaldic-Laya")
Files
| File | Size | For |
|---|---|---|
skaldic-laya-Q8_0.gguf |
449 MB | everyday use, and the browser |
skaldic-laya-BF16.gguf |
844 MB | full precision |
model.safetensors, rl_agent_config.json, encoder/, tokenizer/ |
843 MB | the laya package, further fine-tuning |
How it was made
Fine-tuned from convaiinnovations/laya (ModernBERT-large with a decision head) on quick decisions from ArcDirector's game situations, with its confidence calibrated afterwards.
Questions and issues: ArcDirector on GitHub.
License
Apache 2.0, as Laya.
- Downloads last month
- 59
Model tree for arc-director/Skaldic-Laya
Base model
convaiinnovations/laya