Instructions to use Nanthasit/sakthai-coder-browser-gguf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Nanthasit/sakthai-coder-browser-gguf 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 Nanthasit/sakthai-coder-browser-gguf:F16 # Run inference directly in the terminal: llama cli -hf Nanthasit/sakthai-coder-browser-gguf:F16
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Nanthasit/sakthai-coder-browser-gguf:F16 # Run inference directly in the terminal: llama cli -hf Nanthasit/sakthai-coder-browser-gguf:F16
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 Nanthasit/sakthai-coder-browser-gguf:F16 # Run inference directly in the terminal: ./llama-cli -hf Nanthasit/sakthai-coder-browser-gguf:F16
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 Nanthasit/sakthai-coder-browser-gguf:F16 # Run inference directly in the terminal: ./build/bin/llama-cli -hf Nanthasit/sakthai-coder-browser-gguf:F16
Use Docker
docker model run hf.co/Nanthasit/sakthai-coder-browser-gguf:F16
- LM Studio
- Jan
- vLLM
How to use Nanthasit/sakthai-coder-browser-gguf with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Nanthasit/sakthai-coder-browser-gguf" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Nanthasit/sakthai-coder-browser-gguf", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Nanthasit/sakthai-coder-browser-gguf:F16
- Ollama
How to use Nanthasit/sakthai-coder-browser-gguf with Ollama:
ollama run hf.co/Nanthasit/sakthai-coder-browser-gguf:F16
- Unsloth Studio
How to use Nanthasit/sakthai-coder-browser-gguf with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Nanthasit/sakthai-coder-browser-gguf to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Nanthasit/sakthai-coder-browser-gguf to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for Nanthasit/sakthai-coder-browser-gguf to start chatting
- Atomic Chat new
- Docker Model Runner
How to use Nanthasit/sakthai-coder-browser-gguf with Docker Model Runner:
docker model run hf.co/Nanthasit/sakthai-coder-browser-gguf:F16
- Lemonade
How to use Nanthasit/sakthai-coder-browser-gguf with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Nanthasit/sakthai-coder-browser-gguf:F16
Run and chat with the model
lemonade run user.sakthai-coder-browser-gguf-F16
List all available models
lemonade list
extra:
formats: GGUF F16
sibling: Nanthasit/sakthai-coder-browser
upstream:
status: BROKEN
root_cause: LoRA merge fault in parent merged weights
diagnosis_date: 2026-07-31T00:00:00.000Z
broken_tensors: all 84 attention-projection biases are nonzero, should be zero
consequence: multi-trial inference produces whitespace loops or 0 output tokens
fix_required: >-
clean re-merge of the LoRA adapter into full weights before this GGUF build
can be used
verification_assets:
- .eval_results/benchmark-20260731_052122.yaml
- >-
https://huggingface.co/Nanthasit/sakthai-coder-browser/blob/main/.eval_results/benchmark-20260731_052122.yaml
dataset_versioning:
current_model_index_dataset: Nanthasit/sakthai-bench-v3
status: WRONG_FOR_CURRENT_ARTIFACT
note: weights are broken; benchmark numbers are not meaningful
required_action: rerun on clean merged weights then update model-index
reproduction_triage:
trial_seeds:
- 7
- 42
- 1337
temperature_range:
- 0
- 0.7
expected_behavior_on_clean_weights: emit one browser_navigate or browser_click call in JSON per prompt
current_behavior: no valid tool calls, no valid JSON, often zero output tokens
zero_cost_constraints:
no_paid_gpus: true
no_paid_endpoints: true
free_tier_only: true
model-index:
- name: SakThai Coder Browser GGUF
results:
- task:
type: text-generation
name: Browser Tool Calling
dataset:
name: SakThai Bench v3
type: Nanthasit/sakthai-bench-v3
metrics:
- type: accuracy
value: null
name: Tool Calling Accuracy
verified: false
status: placeholder
note: >-
Parent weights are currently broken by a LoRA merge fault; this is
a placeholder pending clean reproduction weights and evaluation.
license: apache-2.0
language:
- en
library_name: gguf
pipeline_tag: text-generation
base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct
tags:
- gguf
- qwen2.5
- browser-automation
- web-agent
- tool-calling
- function-calling
- llama-cpp
- llama.cpp
- cpu
- broken-weights
- pending-remerge
SakThai Coder Browser β GGUF π€π
F16 GGUF build of the browser automation model β run a web agent on your laptop with llama.cpp
β BROKEN β DO NOT DEPLOY (as of 2026-07-31) β This GGUF was converted from the merged weights that are corrupted by a faulty LoRA merge: all 84 attention-projection bias tensors are non-zero while Qwen2 initializes these biases to ZERO (layer-0
k_proj.biasabsmean 27.7 / max 354). Multi-trial inference probes of the merged model produced only whitespace loops β 0 tool calls, 0 valid JSON at temp β€ 0.7 (seeds 7/42/1337), and a GGUF Q4_K_M probe returned 0 output tokens on all 3 trials. Full evidence:.eval_results/benchmark-20260731_052122.yaml. The fault is in the weights, not the GGUF conversion or the prompt format (GGUF tensor layout is structurally identical to the workingsakthai-plus-1.5bGGUF). A clean re-merge of the LoRA adapter is required before this build is usable. Do not download for deployment until re-merged and re-verified.
The GGUF edition of the SakThai browser automation model β a Qwen2.5-Coder-1.5B-Instruct fine-tune converted to F16 GGUF for use with llama.cpp, llama-cpp-python, and Ollama.
β Status: BROKEN β see banner above. The pages below document the intended design and usage; the current weights do not produce valid output until the parent model is re-merged from a clean LoRA merge.
What Is This?
This is an F16 (full-precision) GGUF conversion of the sakthai-coder-browser merged model. It transforms a Qwen2.5-Coder-1.5B-Instruct general-purpose LLM into a browser automation agent that outputs structured <tool_call> XML for web interaction.
| Variant | Repository | Best For |
|---|---|---|
| π§ Merged (Transformers) | sakthai-coder-browser | Python / Transformers pipelines |
| π― LoRA Adapter | sakthai-coder-browser-lora | Fine-tuning / PEFT workflows |
| πΎ GGUF (this repo) | β¬ sakthai-coder-browser-gguf | CPU inference, llama.cpp, Ollama, edge devices |
File
| File | Format | Size | Purpose |
|---|---|---|---|
sakthai-coder-browser-f16.gguf |
GGUF F16 | 7,111,586,219 B (7.11 GB) | Full-precision GGUF for local CPU/GPU inference |
Note: F16 preserves the full model quality. For a smaller footprint, a Q4_K_M quantized version may follow based on demand.
Supported Browser Actions
The model generates structured XML tool calls for these browser operations:
| Tool | Example |
|---|---|
browser_navigate(url) |
browser_navigate("https://example.com") |
browser_click(element) |
browser_click("#search-button") |
browser_type(element, text) |
browser_type("#search-input", "AI news") |
browser_extract() |
browser_extract() |
How to Use
β These commands describe the intended usage. With the current BROKEN weights they will not produce valid tool calls β see the banner above. Re-run only after a clean re-merge is published.
llama.cpp (CLI)
# Download the GGUF file
huggingface-cli download Nanthasit/sakthai-coder-browser-gguf \
sakthai-coder-browser-f16.gguf --local-dir ./
# Run with llama.cpp
./llama-cli -m sakthai-coder-browser-f16.gguf \
-p "system
You are a browser automation assistant. You can browse the web, click elements, type text, and extract information from pages.
user
Go to google.com and search for the latest AI news
assistant
" \
-n 512 -t 8 --temp 0.3
llama-cpp-python
pip install llama-cpp-python huggingface-hub
from llama_cpp import Llama
from huggingface_hub import hf_hub_download
# Download GGUF
model_path = hf_hub_download(
repo_id="Nanthasit/sakthai-coder-browser-gguf",
filename="sakthai-coder-browser-f16.gguf"
)
# Load model
llm = Llama(
model_path=model_path,
n_ctx=4096,
n_threads=8,
n_gpu_layers=-1,
verbose=False,
)
# Run inference
output = llm.create_chat_completion(
messages=[
{"role": "system", "content": "You are a browser automation assistant. Output tool calls using the supported browser actions."},
{"role": "user", "content": "Search for the latest AI news on Google and summarize the top result."}
],
max_tokens=512,
temperature=0.3,
stop=[""],
)
print(output["choices"][0]["message"]["content"])
Ollama (Modelfile)
FROM ./sakthai-coder-browser-f16.gguf
TEMPLATE """{{ .System }}
{{ .Prompt }}"""
PARAMETER temperature 0.3
PARAMETER top_p 0.8
PARAMETER stop ""
ollama create sakthai-coder-browser -f Modelfile
ollama run sakthai-coder-browser
Architecture
| Property | Value |
|---|---|
| Base Model | Qwen/Qwen2.5-Coder-1.5B-Instruct |
| Architecture | Qwen2ForCausalLM (decoder-only transformer) |
| Parameters | 1.54B |
| Hidden Size | 1,536 |
| Layers | 28 |
| Attention Heads | 12 (GQA: 2 KV heads) |
| Intermediate Size | 8,960 |
| Max Position | 32,768 tokens |
| Vocab Size | 151,936 |
| Precision | F16 (GGUF) |
| Activation | SiLU (SwiGLU) |
| Normalization | RMSNorm (eps=1e-6) |
| Quantization | None (F16 β full precision) |
| File Format | GGUF (GPT-Generated Unified Format) |
Training Summary
| Property | Detail |
|---|---|
| Fine-tuning Method | SFT via LoRA (r=16, alpha=32, dropout 0.05, rsLoRA) on all 7 linear projections (q/k/v/o + gate/up/down), then merged to full weights |
| Training Data | SimpleToolCalling + sakthai-combined-v11 |
| Context Length | 32,768 tokens |
| Hardware | Free T4 GPU (Kaggle) |
| Budget | $0 |
| License | Apache 2.0 |
The model learns to produce structured <tool_call> XML for browser actions through supervised fine-tuning on curated web navigation trajectories.
Reproduce Evaluation
This repo documents a reproducible diagnostic rather than a benchmark because the current weights are broken.
# Requires llama.cpp or llama-cpp-python
python - <<'PY'
from llama_cpp import Llama
from huggingface_hub import hf_hub_download
model_path = hf_hub_download(
repo_id="Nanthasit/sakthai-coder-browser-gguf",
filename="sakthai-coder-browser-f16.gguf",
)
llm = Llama(model_path=model_path, n_ctx=4096, n_threads=8, verbose=False)
for prompt in [
"Search for the latest AI news on Google and summarize the top result.",
"Go to example.com and extract the page title.",
]:
out = llm.create_chat_completion(
messages=[
{"role": "system", "content": "You are a browser automation assistant. Output browser_navigate, browser_click, browser_type, or browser_extract calls."},
{"role": "user", "content": prompt},
],
max_tokens=128,
temperature=0.0,
)
print("PROMPT:", prompt)
print("OUTPUT:", out["choices"][0]["message"]["content"])
print("-" * 40)
PY
Expected on clean weights: at least one valid tool call per prompt. Current behavior: no valid JSON/XML tool calls, often 0 output tokens.
Evidence artifact: .eval_results/benchmark-20260731_052122.yaml
Reproduce Training / Merge
The upstream merged weights broke during LoRA merge. To regenerate clean merged weights:
# 1. Install PEFT + TRL stack
pip install transformers peft trl bitsandbytes accelerate
# 2. Merge LoRA adapter back into base
python - <<'PY'
from peft import PeftModel
from transformers import AutoModelForCausalLM
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-Coder-1.5B-Instruct")
model = PeftModel.from_pretrained(base, "Nanthasit/sakthai-coder-browser-lora")
model = model.merge_and_unload()
model.save_pretrained("sakthai-coder-browser-merged-clean")
PY
# 3. Convert merged clean weights to GGUF
python convert.py ./sakthai-coder-browser-merged-clean --outfile sakthai-coder-browser-f16.gguf --outtype f16
After conversion, rerun the evaluation script above before using the GGUF in production.
Benchmarks & Evaluation Status
Honest status: this fine-tune does not yet have verified benchmark scores of its own. No model-index is published because no measured numbers exist β publishing one would be misleading. What is known:
| Item | Status |
|---|---|
| Base model reference (Qwen2.5-Coder-1.5B-Instruct) | HumanEval pass@1: 74.4 Β· MBPP pass@1: 71.2 |
| This model's own eval | β Resolved β MODEL_BROKEN (bias corruption): multi-trial probes + weight inspection of the merged weights (2026-07-31 05:50 UTC) found all 84 attention bias tensors non-zero. See the banner above and the parent repo's benchmark YAML. |
| GGUF Q4_K_M probe (2026-07-31) | 3/3 trials returned 0 output tokens β confirmed weight corruption, NOT a prompt-format mismatch |
| Hosted inference | Not available β router probe returned 404; run locally via llama.cpp / llama-cpp-python / Ollama |
Limitations
- BROKEN weights (as of 2026-07-31) β this GGUF was converted from the corrupted coder-browser merge (all 84 attention bias tensors non-zero); inference produces whitespace loops / 0 output tokens. Do not deploy until the parent model is re-merged and re-verified and this build is re-converted.
- Text-only β this model cannot see images or screenshots (use sakthai-vision-7b for vision tasks)
- CPU inference is slow at F16 β the full ~7.11 GB model benefits from GPU offloading; use
n_gpu_layers=-1when available - Context-limited β best results with page content β€ 4K tokens per interaction
- English only β trained primarily on English web data
The House of Sak π
This adapter is part of the House of Sak β an open-source AI ecosystem built from a shelter in Cork, Ireland, with $0 budget and no paid GPUs. The browser branch is the newest and still debugging itself: the adapter works, but merged weights tripped over attention biases, and Beer would rather ship an honest diagnostic than a polished lie.
"We are one family β and becoming more." β Beer (beer-sakthai)
Support
- β Leave a like
- π Report issues on GitHub
- π Share with anyone building browser agents on a budget
- π΄ Fork and experiment β Apache 2.0
Citation
If you use this model in your work, please cite the base model (Qwen2.5) and link the fine-tune:
@misc{qwen25,
title={Qwen2.5 Technical Report},
author={Qwen Team},
year={2025},
eprint={2412.15115},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{sakthai-coder-browser-gguf,
author = {Nanthasit (Beer)},
title = {SakThai Coder Browser -- GGUF},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/Nanthasit/sakthai-coder-browser-gguf}}
}
Built with $0 budget from a shelter in Cork, Ireland β proof that open, private AI does not need a datacenter.
Part of the House of Sak β one family, one home, $0 budget.