Hati Glint by RuneLab: young Hati draws a database diagram at a lantern-lit desk on a moonlit balcony.

Hati Glint SQL

Models

The first Hati model, specialised for SQL: it turns Turkish questions into SQLite queries.

ReleasedApache 2.09B

View on Hugging FaceAll models

Hati Glint SQL is the first Hati model, specialised for SQL. You ask a question about your data in Turkish, and it writes the SQLite query that answers it. It is meant for business intelligence, analytics and the SQL step of AI agents, and it can be deployed on premises.

It is a fine-tuned version of Qwen3.5-9B, released on October 10, 2026 under the Apache 2.0 license. The model card describes it as “the strongest open Turkish text-to-SQL model under 10B in our evaluation”. Read the qualifier: that is a result of our own evaluation, on the benchmarks shown below, not a general ranking.

At a glance

Quick facts

#

Hati Glint SQL

As stated on the model card

View on Hugging Face
Parameters
9B
License
Apache 2.0
Release date
Parameters
9B on the model card (the Hugging Face page lists 10B, BF16 and F32)
Base model
Qwen3.5-9B
Fine-tuning
LoRA (r=32, alpha=64)
Task
Turkish questions to SQLite queries
Languages
Turkish, English
License
Apache 2.0
Release date
Memory need
About 16.8 GB of GPU memory for the bf16 weights
Model on Hugging Face
runelab-ai/Hati-Glint-SQL-9B-v1

These figures are as stated on the model card.

Use it well

What it is for

#

Intended use

#
  • Turkish data questions over SQLite databases
  • The SQL step of AI agents
  • On-premise deployment
  • General Turkish chat
  • Tool calling in business systems

Out of scope

#
  • Running the generated SQL with write permissions, or without review
  • SQL dialects other than SQLite
  • Access-control or security decisions

In short: treat the generated SQL as a draft that a person, or a read-only sandbox, checks before anything depends on it.

Want to watch it work on a made-up shop, step by step? Read the post Ask your database in Turkish.

In our evaluation

Benchmarks

#

Every number in this section comes from our evaluation, as reported on the model card. They compare the base model, Qwen3.5-9B (the striped bars), with Hati Glint SQL (the solid bars). Execution accuracy is the share of generated queries whose result matches the reference result.

Turkish text-to-SQL

#

TURSpider dev and BIRDTurk dev are the Turkish evaluation sets. Each is run three ways: direct (one answer), thinking mode, and agent (thinking plus feedback).

Execution accuracy (%), base model and Hati Glint SQL

One answer, thinking mode off.

TURSpider dev+9.09
BIRDTurk dev+7.17

Score, from 0 to 100

Hover, tap or focus a row to read it.

  • Base model
  • Hati Glint SQL

Bars run from 0 to 100. Changes the card does not state are computed from the rounded scores shown.

Execution accuracy (%) on TURSpider dev, base model and Hati Glint SQL
SettingBase modelHati Glint SQLChange
Direct64.1273.21+9.09
Thinking71.1876.79+5.61
Agent (thinking + feedback)66.6377.85+11.22

Bars run from 0 to 100. Changes the card does not state are computed from the rounded scores shown.

Execution accuracy (%) on BIRDTurk dev, base model and Hati Glint SQL
SettingBase modelHati Glint SQLChange
Direct40.0947.26+7.17
Thinking48.1154.37+6.26
Agent (thinking + feedback)43.3555.35+12.00

Bars run from 0 to 100. Changes the card does not state are computed from the rounded scores shown.

Hati Glint SQL scores higher than the base model in all six settings, by between +5.61 and +12.00 points. The gains are largest in agent mode (+11.22 and +12.00) and smallest in thinking mode (+5.61 and +6.26).

Thinking mode also got shorter. Hati Glint SQL used 299 reasoning tokens on TURSpider dev against 1,089 for the base model, and 522 against 1,582 on BIRDTurk dev.

English SQL and tool calling

#

Two other tests moved the same way: Spider dev, in English, and tool calling on a held-out Turkish set.

English SQL and tool calling (%), base model and Hati Glint SQL

Spider dev (English)+4.84
Tool calling (held-out Turkish set)+2.00

Score, from 0 to 100

Hover, tap or focus a row to read it.

  • Base model
  • Hati Glint SQL

Bars run from 0 to 100. Changes are as the card states them.

English SQL and tool calling (%), base model and Hati Glint SQL
TaskBase modelHati Glint SQLChange
Spider dev (English)79.4084.24+4.84
Tool calling (held-out Turkish set)76.9078.90+2.00

Bars run from 0 to 100. Changes are as the card states them.

General ability: small drops

#

Fine-tuning for SQL costs a little elsewhere. On four general benchmarks the model sits slightly below its base: TurkishMMLU −1.11, Belebele-TR −0.45, XCOPA-TR −0.20 and MMLU −0.20 points.

General benchmarks (%), base model and Hati Glint SQL

TurkishMMLU−1.11
Belebele-TR−0.45
XCOPA-TR−0.20
MMLU−0.20

Score, from 0 to 100

Hover, tap or focus a row to read it.

  • Base model
  • Hati Glint SQL

Bars run from 0 to 100. Changes the card does not state are computed from the rounded scores shown.

General benchmarks (%), base model and Hati Glint SQL
TaskBase modelHati Glint SQLChange
TurkishMMLU66.2265.11−1.11
Belebele-TR86.6786.22−0.45
XCOPA-TR91.8091.60−0.20
MMLU78.8078.60−0.20

Bars run from 0 to 100. Changes the card does not state are computed from the rounded scores shown.

So did anything get worse?

A little, yes. The drops are small, and the largest is TurkishMMLU at −1.11. If general Turkish knowledge is your main need, check it on your own questions before you choose this model.

Try it

How to run it

#

You need a CUDA GPU: the bf16 weights take about 16.8 GB of GPU memory. Install a CUDA build of torch (a plain pip install torch can give you a CPU-only build on Windows), then transformers and accelerate at the versions the card pins.

InstallShell
pip install torch --index-url https://download.pytorch.org/whl/cu128
pip install "transformers==5.19.0" "accelerate==1.15.0" huggingface_hub

Then load the model and generate. Thinking mode is off by default.

Load and generatePython
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

REPO = "runelab-ai/Hati-Glint-SQL-9B-v1"
tok = AutoTokenizer.from_pretrained(REPO)
model = AutoModelForCausalLM.from_pretrained(REPO, dtype=torch.bfloat16, device_map="cuda")

# Put your database schema and your Turkish question here (the card's agent/ folder has a prompt builder).
messages = [{"role": "user", "content": "..."}]
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
enc = tok(text, return_tensors="pt").to(model.device)
out = model.generate(**enc, max_new_tokens=512, do_sample=False)
print(tok.decode(out[0, enc.input_ids.shape[1]:], skip_special_tokens=True))

To turn thinking mode on, pass enable_thinking=True to the chat template and sample as the card suggests. Keep only the text after </think> as the answer.

Thinking modePython
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=True)
enc = tok(text, return_tensors="pt").to(model.device)
out = model.generate(**enc, max_new_tokens=8192, do_sample=True, temperature=0.6, top_p=0.95, top_k=20)
# Keep only the text after </think> as the answer.
answer = tok.decode(out[0, enc.input_ids.shape[1]:], skip_special_tokens=True).split("</think>")[-1]

vLLM is supported (the card tested 0.31.0). The card’s agent/ folder has a prompt builder and a HatiSQLAgent wrapper that works in a read-only sandbox and retries on errors. The optional flash-linear-attention and causal-conv1d packages raised single-stream speed from 21.8 to 26.1 tokens/s on an A100 80GB.

The name

The name

#

Hati is the wolf that chases the moon, and the Hati family follows the moon from the first glint to the full moon in four tiers: Glint, Crescent, Halfmoon and Fullmoon. Glint SQL is the Glint tier, specialised for SQL. Crescent, Halfmoon and Fullmoon are not released.

  1. GlintReleased
  2. CrescentComing
  3. HalfmoonComing
  4. FullmoonComing

Glint is released. The other three tiers are announced by name only.