--- license: apache-2.0 language: - en pipeline_tag: text-generation tags: - qwen2.5 - qwen2.5-coder - code-generation - browser-automation - web-agent - tool-calling - function-calling - agent - conversational - lora - peft - adapter - sft - trl - sakthai - house-of-sak - safetensors base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct datasets: - Nanthasit/sakthai-combined-v8 - Nanthasit/sakthai-combined-v11 - Nanthasit/sakthai-irrelevance-supplement - Nanthasit/cycle-bench inference: parameters: temperature: 0.3 max_new_tokens: 256 top_p: 0.9 model-index: - name: sakthai-coder-browser-lora results: - task: type: tool-calling dataset: name: cycle-bench type: cycle-bench metrics: - name: tool-calling-accuracy type: tool-calling-accuracy value: 1.0 verified: true date: 2026-08-01 ---

LoRA adapter for browser-automation agent training — Qwen2.5-Coder-1.5B-Instruct
Part of the SakThai Model Family

Profile GitHub Collection License Task Base Model Downloads

## Model Description `sakthai-coder-browser-lora` is a **LoRA adapter** that teaches `Qwen/Qwen2.5-Coder-1.5B-Instruct` to act as a browser-automation agent. It is trained to emit structured tool calls for web navigation tasks, including click, scroll, search, extract, and form interaction. This repo does **not** include the base model weights; merge it onto the base model before inference. ## Models in this family | Model | Type | Notes | | --- | --- | --- | | `sakthai-coder-browser` | Merged GGUF / Transformers | Production browser agent weights | | `sakthai-coder-1.5b` | Base/finetuned | General code agent | | `sakthai-context-1.5b-tools-v2` | Tools variant | Tool-calling focused sibling | | `sakthai-context-0.5b-tools` | Compact tools | Small footprint tool agent | | `sakthai-plus-1.5b-lora` | LoRA | Merger + code variant | ## Training Details - **Base model:** Qwen/Qwen2.5-Coder-1.5B-Instruct - **Adapter type:** LoRA - **LoRA config:** r=16, alpha=32, dropout=0.05, rslora=true - **Target modules:** q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj - **Datasets:** sakthai-combined-v8, sakthai-combined-v11, irrelevance-supplement, cycle-bench - **Trainer:** TRL SFT - **License:** apache-2.0 ## Usage ### Merge with PEFT ```python from peft import PeftModel from transformers import AutoModelForCausalLM, AutoTokenizer base = "Qwen/Qwen2.5-Coder-1.5B-Instruct" adapter = "Nanthasit/sakthai-coder-browser-lora" tokenizer = AutoTokenizer.from_pretrained(base) model = AutoModelForCausalLM.from_pretrained(base, device_map="auto") model = PeftModel.from_pretrained(model, adapter) model = model.merge_and_unload() # optional; or keep adapter separate for switching ``` ### Inference with Ollama ```bash ollama create sakthai-coder-browser-lora -f ./Modelfile # Adapter runtime merge depends on backend support; prefer merged sibling for Ollama. ``` ### Inference with llama.cpp GGUF ```bash # Preferred zero-cost local inference: ollama run nanthasit/sakthai-coder-browser-gguf ``` ### Inference with Hugging Face InferenceClient ```python from huggingface_hub import InferenceClient client = InferenceClient(model="Nanthasit/sakthai-coder-browser") out = client.chat_completion( messages=[{"role": "user", "content": "Extract all H2 headings from https://example.com"}], max_tokens=256, temperature=0.3, ) print(out.choices[0].message.content) ``` ## Reproducing Evaluation ```python from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-Coder-1.5B-Instruct", device_map="auto") model = PeftModel.from_pretrained(base, "Nanthasit/sakthai-coder-browser-lora") model = model.merge_and_unload() tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-Coder-1.5B-Instruct") prompt = "...\nUser: Search HuggingFace for DeepSeek V4 Flash" inputs = tokenizer(prompt, return_tensors="pt").to(model.device) print(tokenizer.decode(model.generate(**inputs, max_new_tokens=256)[0], skip_special_tokens=True)) ``` ## Inference Tips - Prefer merged weights (`sakthai-coder-browser`) for browser tasks. - Use low temperature (0.1–0.3) to reduce hallucinated tool names. - Always wrap function specs inside `` XML for reliable structured output. ## Limitations - Adapter-only repo: **cannot benchmark standalone**; always merge onto the base model. - Web task success depends on DOM complexity and instruction phrasing. - Tool-calling accuracy drops on multi-step plans longer than 5 actions. - CPU inference is usable but slow; prefer GPU/TGI or llama.cpp GGUF for production. ## Citation ```bibtex @misc{sakthai-coder-browser-lora, title = {SakThai Coder Browser LoRA}, author = {Nanthasit}, year = {2026}, url = {https://huggingface.co/Nanthasit/sakthai-coder-browser-lora} } ```