selorahomes/Selora-AI-LLM-14B-ollama

Source: 🤗text-generationapache-2.014B activated51 GBGGUF✓ 1 checksumupdated 4d ago
or submit a torrent

Selora AI LLM 14B — fused single-model build

Qwen3 14B fine-tuned for Home Assistant, with all five Selora specialists (command, automation, answer, clarification, utilities) merged into one model. For runtimes that cannot hot-swap LoRA adapters — Ollama being the common case. Needs about 16 GB of memory.

The adapter bundle this is merged from lives in selorahomes/Selora-AI-LLM-14B: a shared quantized base plus five separate LoRA adapters, swapped per request. That is the reference deployment and the one the Home Assistant integration uses.

Which one do you want?

This repo Selora-AI-LLM-14B
Ships One fused GGUF Base GGUF + 5 LoRA adapters
Runtime Ollama, llama.cpp — anything that loads a single GGUF llama.cpp with --lora, vLLM with --enable-lora
Picks the response type The model does, from the router prompt The caller does, by activating one adapter
Accuracy Trails the adapters: see below Measured on the Allen suite — see its card

Merging trades accuracy for simplicity. Each adapter was trained against its own system prompt; the fused model is driven by a router prompt that asks it to choose a response type first, which is not a shape any adapter was trained on. If you can swap adapters, swap adapters.

Measured on the Allen benchmark through the Home Assistant integration's Ollama backend, at temperature 0, on the full datasets, beside the adapter bundle:

dataset cases fused, model only adapters, model only fused, with overrides adapters, with overrides
assist 460 65.9% 80.4% 82.4% 88.0%
assist-mini 196 87.8% 95.9% 100.0% 100.0%
questions 370 59.5% 85.7% 91.6% 94.6%
automations 20 100.0% 100.0% 100.0% 100.0%

Model only switches the integration's deterministic overrides off, so every turn is decided by the model; with overrides has them on. Neither is exactly the shipped configuration: approval and the safe-command allowlist are off for the run. The fused runs used this repo's system prompt, which lets the model answer a blueprint request with YAML. An automations reply passes if Home Assistant accepts it as an automation blueprint with every requested input wired; the automation is not run.

Quick start

ollama run hf.co/selorahomes/Selora-AI-LLM-14B-ollama:selora-ollama.Q5_K_S.gguf

The filename tag is deliberate. Hugging Face's Ollama integration selects Q4_K_M when present and otherwise picks a reasonable quant from the repo; naming the file removes the guess.

Or build it yourself from the Modelfile in this repo:

ollama create selora-14b -f Modelfile
ollama run selora-14b

The system, template and params files at the repo root configure the same thing for ollama run hf.co/… directly.

Prompt format

ChatML, with /no_think prefixed to the user turn to suppress Qwen3's reasoning block so the output is bare JSON. Inference must match training byte-for-byte; template in this repo is the authoritative form.

<|im_start|>system
{system}<|im_end|>
<|im_start|>user
/no_think {prompt}<|im_end|>
<|im_start|>assistant
<think>

</think>

The empty <think></think> block is part of the prompt, not the output. Training includes it (masked), so the template must emit it. Ollama renders the chat template embedded in the GGUF rather than template, and that one always emits it, with or without --think=false. Without it the model generates as though the JSON's opening {" had already been written and returns q=[...] instead of {"q":[...]}, which no parser accepts.

The user turn carries the AVAILABLE ENTITIES list, EXISTING AUTOMATIONS, and — for utilities questions — a RELEVANT DOCS block. The model replies with exactly one JSON object, of whichever of the five types it picked. Context is 4096 tokens.

Generation parameters

Set by params / the Modelfile:

temperature    0.0
repeat_penalty 1.0
repeat_last_n  256
num_ctx        4096
stop           <|im_end|>, <|endoftext|>

repeat_penalty stays at 1.0 on purpose. JSON output is mostly repeated structural tokens, and penalising them degrades schema fidelity.

Files

Artifact Purpose
selora-ollama.Q5_K_S.gguf The fused model, Q5_K_S, 10.3 GB (9.6 GiB)
Modelfile Ollama recipe (model + router prompt + params)
system Router system prompt
template Go chat template
params Sampler settings
manifest.json Version, checksum, provenance
LICENSE / NOTICE Apache 2.0 text and the Qwen3 attribution

Modelfile, system, template and params are generated from the models repo — data-pipeline/prompts/router_system_prompt.txt is the source of truth for the system prompt. Don't edit them here; they are overwritten on every release.

Versioning

main is the latest release, and each release is also tagged v<x.y.z>. Versions track the adapter bundle in selorahomes/Selora-AI-LLM-14B: the same manifest.json version covers both, because both are built from one conversion run.

License

Apache 2.0, inheriting Qwen3-14B.