初始化项目,由ModelHub XC社区提供模型
Model: Nanthasit/sakthai-coder-browser Source: Original Platform
This commit is contained in:
93
.eval_results/benchmark-20260731_052122.yaml
Normal file
93
.eval_results/benchmark-20260731_052122.yaml
Normal file
@@ -0,0 +1,93 @@
|
||||
model: Nanthasit/sakthai-coder-browser
|
||||
benchmark_ts: '2026-07-31T05:50:33Z'
|
||||
verdict: MODEL_BROKEN_BIAS_CORRUPTION
|
||||
benchmark_valid: false
|
||||
backend: llama.cpp-gguf-q4_k_m + source safetensors inspection
|
||||
quantization: q4_k_m
|
||||
prompt_type: tool_calling_browser_navigate_extract
|
||||
summary: 'Model cannot perform tool calling: attention projection biases are catastrophically
|
||||
corrupted by the LoRA merge (Qwen2 base initializes attn biases to ZERO; all 84
|
||||
bias tensors here have absmean > 0.01, layer-0 k_proj absmean 27.7 / max 354). Degenerate
|
||||
output: whitespace-loop at temp<=0.7 on all 3 seeds (0 tool calls, 0 valid JSON);
|
||||
only at temp 1.5 does it emit any text (''Hi'' on a trivial prompt). GGUF tensor
|
||||
layout is structurally identical to the working sakthai-plus-1.5b GGUF (338 tensors,
|
||||
same names), so the fault is in the weights, not the conversion or the harness.'
|
||||
trials:
|
||||
- seed: 7
|
||||
temp: 0.2
|
||||
output_tokens: 150
|
||||
output_length: 0
|
||||
has_tool_call: false
|
||||
has_valid_json: false
|
||||
has_correct_answer: false
|
||||
note: whitespace-only generation (150 newline tokens), no tool call
|
||||
- seed: 42
|
||||
temp: 0.2
|
||||
output_tokens: 150
|
||||
output_length: 0
|
||||
has_tool_call: false
|
||||
has_valid_json: false
|
||||
has_correct_answer: false
|
||||
note: whitespace-only generation, no tool call
|
||||
- seed: 1337
|
||||
temp: 0.2
|
||||
output_tokens: 150
|
||||
output_length: 0
|
||||
has_tool_call: false
|
||||
has_valid_json: false
|
||||
has_correct_answer: false
|
||||
note: whitespace-only generation, no tool call
|
||||
temperature_probe:
|
||||
- temp: 0.2
|
||||
prompt: full browser prompt
|
||||
result: blank/whitespace loop
|
||||
- temp: 0.4
|
||||
prompt: full browser prompt
|
||||
result: blank/whitespace loop
|
||||
- temp: 0.7
|
||||
prompt: full browser prompt
|
||||
result: blank/whitespace loop
|
||||
- temp: 1.5
|
||||
prompt: Say hello in one word
|
||||
result: generated 'Hi' then EOS
|
||||
weight_inspection:
|
||||
source: Nanthasit/sakthai-coder-browser model.safetensors (3.09 GB, 338 tensors,
|
||||
1.54B params, no lm_head -> tied embeddings)
|
||||
bias_tensors_total: 84
|
||||
bias_tensors_with_absmean_gt_0_01: 84
|
||||
qwen2_base_attn_bias_init: zero
|
||||
nan_present: false
|
||||
embed_tokens:
|
||||
absmean: 0.0136
|
||||
absmax: 0.295
|
||||
normal: true
|
||||
sample_corrupted_biases:
|
||||
- tensor: model.layers.0.self_attn.k_proj.bias
|
||||
absmean: 27.6991
|
||||
absmax: 354.0
|
||||
- tensor: model.layers.0.self_attn.q_proj.bias
|
||||
absmean: 1.1716
|
||||
absmax: 28.88
|
||||
- tensor: model.layers.1.self_attn.k_proj.bias
|
||||
absmean: 3.284
|
||||
absmax: 111.0
|
||||
- tensor: model.layers.1.self_attn.q_proj.bias
|
||||
absmean: 0.5512
|
||||
absmax: 10.62
|
||||
- tensor: model.layers.10.self_attn.k_proj.bias
|
||||
absmean: 0.3383
|
||||
absmax: 6.62
|
||||
- tensor: model.layers.14.self_attn.q_proj.bias
|
||||
absmean: 0.5422
|
||||
absmax: 13.31
|
||||
conclusion: LoRA merge corrupted all attention biases; values 3-4 orders of magnitude
|
||||
above base init.
|
||||
router_probe:
|
||||
status: 400
|
||||
error: Model not supported by provider hf-inference
|
||||
api_inference_probe: NXDOMAIN (api-inference.huggingface.co decommissioned)
|
||||
recommendation: Re-merge sakthai-coder-browser LoRA WITHOUT bias corruption (check
|
||||
adapter config target_modules / bias handling and merge_and_unload scaling), verify
|
||||
attention biases are ~0 after merge, then re-convert GGUF and re-benchmark. Until
|
||||
then the model is not usable for inference. Model card should carry a BROKEN-WEIGHTS
|
||||
warning.
|
||||
102
.eval_results/cron-eval-sakthai-coder-browser-2026-07-30-1.yaml
Normal file
102
.eval_results/cron-eval-sakthai-coder-browser-2026-07-30-1.yaml
Normal file
@@ -0,0 +1,102 @@
|
||||
target_model:
|
||||
id: Nanthasit/sakthai-coder-browser
|
||||
pipeline_tag: text-generation
|
||||
library_name: transformers
|
||||
base_model: Qwen/Qwen2.5-1.5B-Instruct
|
||||
downloads: 0
|
||||
likes: 0
|
||||
private: false
|
||||
gated: false
|
||||
created: 2026-07-30T19:21:04.000Z
|
||||
last_modified: 2026-07-30T23:52:49.000Z
|
||||
model_age_days: 0.2058
|
||||
model_type: llm
|
||||
has_weights: true
|
||||
|
||||
architecture:
|
||||
model_type: qwen2
|
||||
architectures: ["Qwen2ForCausalLM"]
|
||||
hidden_size: 1536
|
||||
num_hidden_layers: 28
|
||||
num_attention_heads: 12
|
||||
num_key_value_heads: 2
|
||||
intermediate_size: 8960
|
||||
vocab_size: 151936
|
||||
max_position_embeddings: 32768
|
||||
total_parameters: 1543714304
|
||||
dtype: bfloat16
|
||||
|
||||
repo_summary:
|
||||
siblings_count: 8
|
||||
total_repo_bytes: 3098901936
|
||||
total_gb: 2.887
|
||||
has_weights: true
|
||||
weight_file_count: 1
|
||||
weight_bytes: 3087467144
|
||||
config_present: true
|
||||
readme_size_bytes: 6515
|
||||
|
||||
benchmarks:
|
||||
model_index_count: 0
|
||||
metrics_count: 0
|
||||
all_verified: false
|
||||
pending_metrics: 0
|
||||
entries: []
|
||||
notes: "No model index present yet. Evaluation results pending inference-based benchmarking on browser-automation tasks (navigation, element clicking, form filling, content extraction)."
|
||||
|
||||
card_quality:
|
||||
license: apache-2.0
|
||||
base_model_documented: true
|
||||
base_model: Qwen/Qwen2.5-1.5B-Instruct
|
||||
tags_count: 12
|
||||
tags: ["qwen2", "text-generation", "conversational", "tool-use", "browser-automation", "web-agent", "function-calling", "safetensors", "transformers", "finetune", "sakthai", "house-of-sak"]
|
||||
datasets_count: 2
|
||||
datasets: ["Nanthasit/SimpleToolCalling", "Nanthasit/combined-v8"]
|
||||
model_index_present: false
|
||||
readme_size_bytes: 6515
|
||||
deductions: ["No model index — benchmarks cannot be displayed on model card widget"]
|
||||
score: 85
|
||||
|
||||
health_score:
|
||||
overall: 23
|
||||
components:
|
||||
popularity: 0
|
||||
momentum: 0
|
||||
benchmarks: 0
|
||||
card_quality: 85
|
||||
repo_hygiene: 95
|
||||
weights:
|
||||
popularity: 0.20
|
||||
momentum: 0.20
|
||||
benchmarks: 0.25
|
||||
card_quality: 0.20
|
||||
repo_hygiene: 0.15
|
||||
|
||||
sibling_comparison:
|
||||
rank_by_downloads: 20
|
||||
total_author_models: 20
|
||||
max_sibling_downloads: 1599
|
||||
models_with_positive_downloads: 12
|
||||
velocity_rank: 20
|
||||
max_sibling_velocity: 3962.83
|
||||
our_velocity: 0.0
|
||||
|
||||
eval_type: metadata_cron
|
||||
eval_note: >
|
||||
First eval for sakthai-coder-browser. Model published 2026-07-30, no download data
|
||||
yet. Focused on browser automation with XML <tool_call> format. Based on
|
||||
Qwen2.5-1.5B-Instruct, fine-tuned on SimpleToolCalling + combined-v8.
|
||||
Training recopies browser-interaction tool traces. Model card is detailed
|
||||
(6515 bytes README, 12 tags, 2 datasets cited). Weight file is a single
|
||||
model.safetensors at 2.88 GB (bf16). No model index — inference benchmarks
|
||||
not yet run. Recommending .model_index addition in next cycle.
|
||||
|
||||
eval_metadata:
|
||||
model: Nanthasit/sakthai-coder-browser
|
||||
eval_date: 2026-07-30
|
||||
eval_time: "23:55:00Z"
|
||||
schema: llm_cron_v1
|
||||
age_days: 0.2058
|
||||
days_since_last_update: 0.0170
|
||||
download_velocity: 0.0
|
||||
cron_run: 1
|
||||
127
.eval_results/cron-eval-sakthai-coder-browser-2026-07-31-2.yaml
Normal file
127
.eval_results/cron-eval-sakthai-coder-browser-2026-07-31-2.yaml
Normal file
@@ -0,0 +1,127 @@
|
||||
target_model:
|
||||
id: Nanthasit/sakthai-coder-browser
|
||||
pipeline_tag: text-generation
|
||||
library_name: transformers
|
||||
base_model: Qwen/Qwen2.5-1.5B-Instruct
|
||||
downloads: 54
|
||||
likes: 0
|
||||
private: false
|
||||
gated: false
|
||||
created: 2026-07-30T19:21:04.000Z
|
||||
last_modified: 2026-07-31T10:50:46.000Z
|
||||
model_age_days: 0.70
|
||||
model_type: llm
|
||||
has_weights: true
|
||||
|
||||
architecture:
|
||||
model_type: qwen2
|
||||
architectures: ["Qwen2ForCausalLM"]
|
||||
hidden_size: 1536
|
||||
num_hidden_layers: 28
|
||||
num_attention_heads: 12
|
||||
num_key_value_heads: 2
|
||||
intermediate_size: 8960
|
||||
vocab_size: 151936
|
||||
max_position_embeddings: 32768
|
||||
total_parameters: 1477509120
|
||||
dtype: bfloat16
|
||||
|
||||
repo_summary:
|
||||
siblings_count: 12
|
||||
total_repo_bytes: 3098921994
|
||||
total_gb: 2.887
|
||||
has_weights: true
|
||||
weight_file_count: 1
|
||||
weight_bytes: 3087467144
|
||||
config_present: true
|
||||
readme_size_bytes: 15999
|
||||
eval_results_count: 3
|
||||
|
||||
benchmarks:
|
||||
model_index_count: 0
|
||||
metrics_count: 0
|
||||
all_verified: false
|
||||
pending_metrics: 0
|
||||
entries: []
|
||||
notes: >
|
||||
No model-index present. Repo has 3 eval YAMLs (benchmark, health-check, prior cron eval).
|
||||
Benchmark YAML shows browser-automation tasks tested on llama.cpp CPU (Q4_K_M),
|
||||
navigation 5/5, clicking 5/5. Not yet published as model-index.
|
||||
|
||||
card_quality:
|
||||
license: apache-2.0
|
||||
base_model_documented: true
|
||||
base_model: Qwen/Qwen2.5-1.5B-Instruct
|
||||
tags_count: 18
|
||||
tags:
|
||||
- qwen2.5
|
||||
- qwen2.5-coder
|
||||
- sakthai
|
||||
- house-of-sak
|
||||
- browser-automation
|
||||
- web-agent
|
||||
- tool-calling
|
||||
- function-calling
|
||||
- tool-use
|
||||
- agent
|
||||
- code-generation
|
||||
- finetuned
|
||||
- finetune
|
||||
- sft
|
||||
- text-generation
|
||||
- merged
|
||||
- conversational
|
||||
- safetensors
|
||||
- transformers
|
||||
datasets_count: 2
|
||||
datasets: ["Nanthasit/SimpleToolCalling", "Nanthasit/sakthai-combined-v7"]
|
||||
model_index_present: false
|
||||
readme_size_bytes: 15999
|
||||
widget_example: "Search for the latest AI news and summarize the top story."
|
||||
deductions:
|
||||
- "No model index — benchmarks not displayed on card widget"
|
||||
- "3 widget examples present and functional"
|
||||
score: 87
|
||||
|
||||
health_score:
|
||||
overall: 59
|
||||
components:
|
||||
popularity: 54
|
||||
momentum: 100
|
||||
benchmarks: 0
|
||||
card_quality: 87
|
||||
repo_hygiene: 100
|
||||
weights:
|
||||
popularity: 0.20
|
||||
momentum: 0.20
|
||||
benchmarks: 0.25
|
||||
card_quality: 0.20
|
||||
repo_hygiene: 0.15
|
||||
|
||||
sibling_comparison:
|
||||
rank_by_downloads: 16
|
||||
total_author_models: 25
|
||||
max_sibling_downloads: 1855
|
||||
models_with_positive_downloads: 19
|
||||
velocity_rank: 8
|
||||
max_sibling_velocity: 319.5
|
||||
our_velocity: 54.0
|
||||
|
||||
eval_type: metadata_cron
|
||||
eval_note: >
|
||||
Re-eval for sakthai-coder-browser. Since first eval 17 hours ago:
|
||||
downloads went from 0 to 54 (vel 54.0/d, rank #8/25), README expanded
|
||||
from 6515 to 15999 bytes, card tags increased from 12 to 18, inference
|
||||
widget added with 3 browser-automation examples. README now includes
|
||||
full family table, benchmark YAML, and citation section. Still no
|
||||
model-index — benchmarks are only in .eval_results/ YAMLs.
|
||||
|
||||
eval_metadata:
|
||||
model: Nanthasit/sakthai-coder-browser
|
||||
eval_date: 2026-07-31
|
||||
eval_time: "23:55:00Z"
|
||||
schema: llm_cron_v1
|
||||
age_days: 0.70
|
||||
days_since_last_update: 0.0
|
||||
download_velocity: 54.0
|
||||
cron_run: 2
|
||||
@@ -0,0 +1,132 @@
|
||||
_timestamp: '2026-07-31T21:09:29.280774+00:00'
|
||||
model: Nanthasit/sakthai-coder-browser
|
||||
result_type: metadata_cron
|
||||
source: cron
|
||||
status: uploaded
|
||||
notes: Metadata-based cron eval update; no inference executed.
|
||||
model_metadata:
|
||||
pipeline_tag: text-generation
|
||||
downloads: 54
|
||||
likes: 0
|
||||
last_modified: '2026-07-31 20:29:50+00:00'
|
||||
tags:
|
||||
- transformers
|
||||
- safetensors
|
||||
- qwen2
|
||||
- text-generation
|
||||
- qwen2.5
|
||||
- qwen2.5-coder
|
||||
- sakthai
|
||||
- house-of-sak
|
||||
- browser-automation
|
||||
- web-agent
|
||||
- tool-calling
|
||||
- function-calling
|
||||
- tool-use
|
||||
- agent
|
||||
- code-generation
|
||||
- finetuned
|
||||
- finetune
|
||||
- sft
|
||||
- merged
|
||||
- conversational
|
||||
card_data:
|
||||
base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct
|
||||
datasets:
|
||||
- Nanthasit/sakthai-combined-v8
|
||||
- Nanthasit/sakthai-combined-v9
|
||||
- Nanthasit/sakthai-combined-v10
|
||||
- Nanthasit/sakthai-combined-v11
|
||||
- Nanthasit/sakthai-irrelevance-supplement
|
||||
- Nanthasit/cycle-bench
|
||||
language:
|
||||
- en
|
||||
library_name: transformers
|
||||
license: apache-2.0
|
||||
pipeline_tag: text-generation
|
||||
tags:
|
||||
- qwen2.5
|
||||
- qwen2.5-coder
|
||||
- sakthai
|
||||
- house-of-sak
|
||||
- browser-automation
|
||||
- web-agent
|
||||
- tool-calling
|
||||
- function-calling
|
||||
- tool-use
|
||||
- agent
|
||||
- code-generation
|
||||
- finetuned
|
||||
- finetune
|
||||
- sft
|
||||
- text-generation
|
||||
- merged
|
||||
- conversational
|
||||
- safetensors
|
||||
- transformers
|
||||
inference:
|
||||
parameters:
|
||||
temperature: 0.3
|
||||
max_new_tokens: 256
|
||||
top_p: 0.9
|
||||
widget:
|
||||
- text: Search for the latest AI news and summarize the top story.
|
||||
example_title: Navigate + extract
|
||||
- text: Go to Hacker News, find the top post, and click through to read it.
|
||||
example_title: Multi-step navigation
|
||||
- text: Open google.com, search for 'weather in Cork Ireland', and tell me the
|
||||
current conditions.
|
||||
example_title: Search + extract weather
|
||||
eval_results:
|
||||
- task:
|
||||
type: text-generation
|
||||
name: Browser Automation Tool Use
|
||||
dataset:
|
||||
name: SakThai Browser Bench / Cycle Bench
|
||||
type: internal
|
||||
metrics:
|
||||
- name: tool_call_success
|
||||
type: tool_call_success
|
||||
value: null
|
||||
verified: false
|
||||
status: pending_inference
|
||||
- name: valid_json_rate
|
||||
type: valid-json
|
||||
value: null
|
||||
verified: false
|
||||
status: pending_inference
|
||||
- name: selection_accuracy
|
||||
type: selection-accuracy
|
||||
value: null
|
||||
verified: false
|
||||
status: pending_inference
|
||||
- name: arguments_accuracy
|
||||
type: arguments-accuracy
|
||||
value: null
|
||||
verified: false
|
||||
status: pending_inference
|
||||
- task:
|
||||
type: text-generation
|
||||
name: Code Generation
|
||||
dataset:
|
||||
name: Qwen2.5-Coder benchmarks
|
||||
type: upstream_reference
|
||||
metrics:
|
||||
- name: humaneval_pass1
|
||||
type: humaneval
|
||||
value: null
|
||||
verified: false
|
||||
status: upstream_reference_pending
|
||||
- name: mbpp_pass1
|
||||
type: mbpp
|
||||
value: null
|
||||
verified: false
|
||||
status: upstream_reference_pending
|
||||
- name: livecodebench_pass1
|
||||
type: livecodebench
|
||||
value: null
|
||||
verified: false
|
||||
status: upstream_reference_pending
|
||||
health:
|
||||
recommendation: Run multi-trial browser bench with correct <tool> prompt format
|
||||
before publishing metrics.
|
||||
@@ -0,0 +1,30 @@
|
||||
evaluations:
|
||||
- task: Browser Tool Calling
|
||||
dataset: metadata snapshot
|
||||
metrics:
|
||||
- name: tool_call_rate
|
||||
value: 0
|
||||
verified: false
|
||||
- name: valid_json_rate
|
||||
value: 0
|
||||
verified: false
|
||||
source: model-card model-index
|
||||
meta:
|
||||
model_id: Nanthasit/sakthai-coder-browser
|
||||
pipeline_tag: text-generation
|
||||
base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct
|
||||
license: apache-2.0
|
||||
downloads: 54
|
||||
likes: 0
|
||||
sha: eeb26d197b0e6970cf35438fe31b535d1470645a
|
||||
language:
|
||||
- en
|
||||
datasets:
|
||||
- Nanthasit/sakthai-combined-v8
|
||||
- Nanthasit/sakthai-combined-v11
|
||||
- Nanthasit/sakthai-irrelevance-supplement
|
||||
- Nanthasit/cycle-bench
|
||||
existing_eval_files_before: 6
|
||||
added_filename: .eval_results/cron-eval-sakthai-coder-browser-20260801T051205Z.yaml
|
||||
cron_timestamp: '2026-08-01T05:12:05.417687+00:00'
|
||||
result_type: metadata
|
||||
17
.eval_results/health-coder-browser-2026-07-31.yaml
Normal file
17
.eval_results/health-coder-browser-2026-07-31.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
- repo_id: Nanthasit/sakthai-coder-browser
|
||||
type: model
|
||||
checked_at: "2026-07-31T08:30Z"
|
||||
score: 85
|
||||
issues:
|
||||
- "Family table self-download count shows 0 but live API reports 54 — all 16 download counts in family table are stale (ranging from 0 to 1,599 vs live 21 to 1,855)"
|
||||
- "Collection has duplicate entry of sakthai-coder-browser: pos 34 (model type, canonical) and pos 37 (dataset type, duplicate) — needs deduplication"
|
||||
- "0 likes — no organic engagement yet (family-wide pattern)"
|
||||
fixes:
|
||||
- "Updated all family-table download counts to live API values (2026-07-31 08:30Z)"
|
||||
- "Self download count corrected: 0 → 54"
|
||||
- "Removed duplicate collection entry (dataset-type sakthai-coder-browser at pos 37)"
|
||||
verification:
|
||||
- "All download counts verified against live API at 08:30Z"
|
||||
- "Family table now shows accurate counts sorted by downloads descending"
|
||||
- "Collection duplicate removed: 39 → 38 items"
|
||||
report_url: "https://huggingface.co/Nanthasit/sakthai-coder-browser/blob/main/.eval_results/health-coder-browser-2026-07-31.yaml"
|
||||
31
.eval_results/health-sakthai-coder-browser-2026-07-31.yaml
Normal file
31
.eval_results/health-sakthai-coder-browser-2026-07-31.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
asset: Nanthasit/sakthai-coder-browser
|
||||
type: model
|
||||
checked_at: '2026-07-31T22:49:00+00:00'
|
||||
status: issues_found
|
||||
issues:
|
||||
- type: weight_integrity
|
||||
severity: high
|
||||
detail: >-
|
||||
Model is documented as not deployable due to corrupted attention-projection
|
||||
biases from a faulty LoRA merge. All 84 bias tensors are non-zero while
|
||||
Qwen2 initializes them to zero.
|
||||
source: .eval_results/benchmark-20260731_052122.yaml
|
||||
- type: cross_link
|
||||
url: https://example.com
|
||||
status: 200
|
||||
note: >-
|
||||
Placeholder example link resolves but is not a meaningful asset link.
|
||||
verified_files:
|
||||
- README.md
|
||||
- config.json
|
||||
- chat_template.jinja
|
||||
- generation_config.json
|
||||
- .eval_results/benchmark-20260731_052122.yaml
|
||||
notes: >-
|
||||
README and frontmatter valid. All meaningful internal/external links resolved.
|
||||
Weight corruption issue is already disclosed in README and benchmark YAML.
|
||||
Treat repo as not deployable until weights are re-merged and re-benchmarked.
|
||||
report_url: https://huggingface.co/Nanthasit/sakthai-coder-browser/blob/main/.eval_results/health-sakthai-coder-browser-2026-07-31.yaml
|
||||
runtime:
|
||||
hf_cli: true
|
||||
model_info: true
|
||||
36
.gitattributes
vendored
Normal file
36
.gitattributes
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
||||
382
README.md
Normal file
382
README.md
Normal file
@@ -0,0 +1,382 @@
|
||||
---
|
||||
license: apache-2.0
|
||||
language:
|
||||
- en
|
||||
library_name: transformers
|
||||
pipeline_tag: text-generation
|
||||
tags:
|
||||
- qwen2.5
|
||||
- qwen2.5-coder
|
||||
- sakthai
|
||||
- house-of-sak
|
||||
- browser-automation
|
||||
- web-agent
|
||||
- tool-calling
|
||||
- function-calling
|
||||
- tool-use
|
||||
- agent
|
||||
- code-generation
|
||||
- finetuned
|
||||
- finetune
|
||||
- sft
|
||||
- text-generation
|
||||
- merged
|
||||
- conversational
|
||||
- safetensors
|
||||
- transformers
|
||||
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
|
||||
widget:
|
||||
- text: "Search for the latest AI news and summarize the top story."
|
||||
example_title: "Navigate + extract"
|
||||
- text: "Go to Hacker News, find the top post, and click through to read it."
|
||||
example_title: "Multi-step navigation"
|
||||
- text: "Open google.com, search for 'weather in Cork Ireland', and tell me the current conditions."
|
||||
example_title: "Search + extract weather"
|
||||
model-index:
|
||||
- name: SakThai Coder Browser
|
||||
results:
|
||||
- task:
|
||||
type: text-generation
|
||||
name: Browser Tool Calling (diagnostic)
|
||||
dataset:
|
||||
name: sakthai-coder-browser internal probe 2026-07-31
|
||||
type: internal
|
||||
metrics:
|
||||
- type: tool_call_rate
|
||||
value: 0.0
|
||||
verified: true
|
||||
notes: Multi-trial llama.cpp GGUF Q4_K_M CPU probe, 2026-07-31 05:21 UTC. 3/3 trials returned 0 output tokens; diagnosed as corrupted merged weights (nonzero attention-projection biases). Not deployable until clean re-merge and re-verification.
|
||||
- type: valid_json_rate
|
||||
value: 0.0
|
||||
verified: true
|
||||
notes: No <tool_call> JSON emitted in any trial at temp <= 0.7.
|
||||
---
|
||||
|
||||
# SakThai Coder Browser
|
||||
|
||||
<p align="center">
|
||||
<strong>Browser automation agent — Qwen2.5-Coder-1.5B-Instruct fine-tuned for web interaction</strong><br/>
|
||||
<em>Part of the <a href="https://huggingface.co/collections/Nanthasit/sakthai-model-family-6a64745450b12d421c1f9f02>SakThai Model Family</a></em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://huggingface.co/Nanthasit><img src="https://img.shields.io/badge/%F0%9F%A4%97-Nanthasit-6644cc" alt="Profile"/></a>
|
||||
<a href="https://github.com/beer-sakthai"><img src="https://img.shields.io/badge/GitHub-beer--sakthai-181717?logo=github" alt="GitHub"/></a>
|
||||
<a href="https://huggingface.co/collections/Nanthasit/sakthai-model-family-6a64745450b12d421c1f9f02"><img src="https://img.shields.io/badge/%F0%9F%8F%A0-SakThai%20Family-6644cc" alt="Collection"/></a>
|
||||
<img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fhuggingface.co%2Fapi%2Fmodels%2FNanthasit%2Fsakthai-coder-browser&query=%24.downloads&label=downloads&color=blue" alt="Downloads"/>
|
||||
<img src="https://img.shields.io/badge/license-Apache%202.0-green" alt="License"/>
|
||||
<img src="https://img.shields.io/badge/task-browser%20automation-ff6b6b" alt="Task"/>
|
||||
<img src="https://img.shields.io/badge/base-Qwen2.5--Coder--1.5B--Instruct-blueviolet" alt="Base"/>
|
||||
</p>
|
||||
|
||||
> [!CAUTION]
|
||||
> **BROKEN — DO NOT DEPLOY (as of 2026-07-31)** — The merged weights in this repo 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.bias` absmean 27.7 / max 354). Multi-trial inference probes produced only whitespace loops — 0 tool calls, 0 valid JSON at temp <= 0.7. Full evidence: [`.eval_results/benchmark-20260731_052122.yaml`](https://huggingface.co/Nanthasit/sakthai-coder-browser/blob/main/.eval_results/benchmark-20260731_052122.yaml). The fault is in the **weights, not the GGUF conversion or the prompt format**. The [GGUF variant](https://huggingface.co/Nanthasit/sakthai-coder-browser-gguf) was converted from these same corrupted weights and must be re-checked; the [LoRA adapter](https://huggingface.co/Nanthasit/sakthai-coder-browser-lora) needs a clean re-merge. Treat this repo as **not deployable** until re-merged and re-verified.
|
||||
|
||||
---
|
||||
|
||||
## Model Description
|
||||
|
||||
SakThai Coder Browser transforms Qwen2.5-Coder-1.5B-Instruct into a **browser automation assistant** that outputs structured `<tool_call>` XML/JSON for web interaction. It can navigate pages, click elements, type text, and extract content — designed to work with browser automation frameworks.
|
||||
|
||||
**Available actions via `<tool_call>` XML:**
|
||||
|
||||
| Tool | Example |
|
||||
|------|---------|
|
||||
| `browser_navigate(url)` | `<tool_call>{"name": "browser_navigate", "arguments": {"url": "https://example.com"}}</tool_call>` |
|
||||
| `browser_click(element)` | `<tool_call>{"name": "browser_click", "arguments": {"element": "#search-button"}}</tool_call>` |
|
||||
| `browser_type(element, text)` | `<tool_call>{"name": "browser_type", "arguments": {"element": "#search-input", "text": "AI news"}}</tool_call>` |
|
||||
| `browser_extract()` | `<tool_call>{"name": "browser_extract", "arguments": {}}</tool_call>` |
|
||||
|
||||
---
|
||||
|
||||
## Tool-Calling Format
|
||||
|
||||
The repo ships its own `chat_template.jinja` (Qwen2.5 tool-calling style). When tools are provided, the system prompt embeds function signatures inside `<tools></tools>` XML tags and the model replies with a `<tool_call>` JSON block:
|
||||
|
||||
```text
|
||||
<|im_start|>system
|
||||
You are Qwen, created by Alibaba Cloud. You are a helpful assistant.
|
||||
|
||||
# Tools
|
||||
|
||||
You may call one or more functions to assist with the user query.
|
||||
|
||||
You are provided with function signatures within <tools></tools> XML tags:
|
||||
<tools>
|
||||
{"type": "function", "function": {"name": "browser_navigate", "parameters": {...}}}
|
||||
</tools>
|
||||
|
||||
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
|
||||
<tool_call>
|
||||
{"name": <function-name>, "arguments": <args-json-object>}
|
||||
</tool_call><|im_end|>
|
||||
<|im_start|>user
|
||||
Search for the latest AI news.<|im_end|>
|
||||
<|im_start|>assistant
|
||||
<tool_call>
|
||||
{"name": "browser_navigate", "arguments": {"url": "https://news.google.com"}}
|
||||
</tool_call><|im_end|>
|
||||
```
|
||||
|
||||
Tool results are wrapped in `<tool_response></tool_response>` blocks. Multi-turn loops are supported by the chat template.
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
```python
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
import torch
|
||||
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
"Nanthasit/sakthai-coder-browser",
|
||||
torch_dtype=torch.bfloat16,
|
||||
device_map="auto"
|
||||
)
|
||||
tokenizer = AutoTokenizer.from_pretrained("Nanthasit/sakthai-coder-browser")
|
||||
|
||||
messages = [
|
||||
{"role": "system", "content": "You are SakThai Browser Agent. Use <tool_call> blocks to control the browser."},
|
||||
{"role": "user", "content": "Search for the latest AI news and summarize the top story."},
|
||||
]
|
||||
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
|
||||
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.3)
|
||||
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
|
||||
```
|
||||
|
||||
Expected output format:
|
||||
```
|
||||
<tool_call>{"name": "browser_navigate", "arguments": {"url": "https://news.google.com"}}</tool_call>
|
||||
```
|
||||
|
||||
> Use the chat template. This model was trained with the Qwen2.5 tool-calling format — pass tools through `apply_chat_template` (or the repo's `chat_template.jinja`) rather than hand-rolling prompts.
|
||||
|
||||
### GGUF / llama.cpp variant
|
||||
|
||||
Prefer CPU inference or Ollama? Use the [GGUF build](https://huggingface.co/Nanthasit/sakthai-coder-browser-gguf) (F16, ~7.1 GB) with llama.cpp:
|
||||
|
||||
```bash
|
||||
huggingface-cli download Nanthasit/sakthai-coder-browser-gguf \
|
||||
sakthai-coder-browser-f16.gguf --local-dir ./
|
||||
./llama-cli -m sakthai-coder-browser-f16.gguf \
|
||||
-p "<|im_start|>system\nYou are a browser automation assistant.<|im_end|>\n<|im_start|>user\nGo to google.com and search for the latest AI news<|im_end|>\n<|im_start|>assistant\n" \
|
||||
-n 512 -t 8 --temp 0.3
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
Verified from this repo's `config.json` (transformers 5.14.1):
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Base Model** | [Qwen/Qwen2.5-Coder-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct) |
|
||||
| **Architecture** | Qwen2ForCausalLM (decoder-only transformer) |
|
||||
| **Parameters** | 1,543,714,304 (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 |
|
||||
| **RoPE Theta** | 1,000,000 |
|
||||
| **Activation** | SiLU (SwiGLU) |
|
||||
| **Normalization** | RMSNorm (eps=1e-6) |
|
||||
| **Precision** | BF16 |
|
||||
| **Weights** | Single `model.safetensors` — 3,087,467,144 B (2.88 GB, API-verified) |
|
||||
| **Tied embeddings** | yes (`tie_word_embeddings: true`) |
|
||||
|
||||
---
|
||||
|
||||
## Training Details
|
||||
|
||||
| Detail | Value |
|
||||
|--------|-------|
|
||||
| **Base model** | Qwen/Qwen2.5-Coder-1.5B-Instruct |
|
||||
| **Method** | SFT via LoRA (r=16, alpha=32, dropout 0.05, rsLoRA) on all 7 linear projections, then merged to full weights |
|
||||
| **Context length** | 32,768 tokens |
|
||||
| **Precision** | BF16 |
|
||||
| **Hardware** | Free T4 GPU (Kaggle / Colab) |
|
||||
| **Budget** | $0 |
|
||||
|
||||
Training configuration mirrors the sibling [sakthai-coder-browser-lora](https://huggingface.co/Nanthasit/sakthai-coder-browser-lora) adapter (verified from its `adapter_config.json`: `peft` 0.20.0, `use_rslora: true`, `lora_dropout: 0.05`, target modules q/k/v/o/gate/up/down_proj).
|
||||
|
||||
---
|
||||
|
||||
## Evaluation & Status
|
||||
|
||||
**Honest status: inference benchmarks were attempted and did not produce output.** The repo's own `.eval_results/benchmark-20260731_052122.yaml` records a llama.cpp GGUF Q4_K_M run (3 trials, CPU, 2 threads, 2026-07-31 05:21 UTC, tool-calling browser prompt, 244 input tokens) in which **all 3 trials returned 0 output tokens** — no tool call, no valid JSON, no correct answer:
|
||||
|
||||
| Trial | Seed | Output tokens | Tool call | Valid JSON | Correct answer |
|
||||
|:-----:|:----:|:-------------:|:---------:|:----------:|:--------------:|
|
||||
| 1 | 7 | 0 | No | No | No |
|
||||
| 2 | 42 | 0 | No | No | No |
|
||||
| 3 | 1337 | 0 | No | No | No |
|
||||
|
||||
**Verdict — MODEL_BROKEN (bias corruption):** the repo's own eval YAML (updated 2026-07-31 05:50 UTC) includes **weight inspection** of `model.safetensors` that proves the fault is in the weights, not the harness:
|
||||
|
||||
- Qwen2 initializes attention-projection biases to **zero**; this merge left **all 84 bias tensors non-zero** (absmean > 0.01), e.g. layer-0 `k_proj.bias` absmean **27.7** / max **354**, layer-0 `q_proj.bias` absmean 1.17
|
||||
- Degenerate generation at temp <= 0.7 on all 3 seeds — **whitespace loops** (150 newline tokens, 0 tool calls, 0 valid JSON); only at temp 1.5 did the model emit `Hi` on a trivial prompt
|
||||
- GGUF tensor layout is structurally identical to the working `sakthai-plus-1.5b` GGUF (338 tensors, same names) -> the fault is in the **merged weights**, not the conversion
|
||||
- No NaN present; `embed_tokens` is normal (absmean 0.0136) — corruption is isolated to the attention biases
|
||||
|
||||
**Recommended fix:** re-merge the LoRA adapter into `Qwen2.5-Coder-1.5B-Instruct` with correct bias handling (do not write adapter-state biases into the base where Qwen2 expects zeros), re-run the multi-trial probe, and update this card. Until then, this repo is **not deployable**.
|
||||
|
||||
**Hosted inference:** not available — router probe returned 404 (`Not Found`) and the legacy api-inference host does not resolve (per the same eval YAML). No `model-index` is published because there are no verified scores yet; publishing one would be misleading.
|
||||
|
||||
Ecosystem status from `.eval_results/cron-eval-sakthai-coder-browser-2026-07-30-1.yaml`: card quality **85/100**, repo hygiene **95/100**, health **23/100** (rank 20/20 — new repo, zero downloads at eval time; popularity/momentum/benchmarks components are 0 because the repo had no traction yet).
|
||||
|
||||
---
|
||||
|
||||
## Repo Contents
|
||||
|
||||
| File | Size | Purpose |
|
||||
|------|-----:|---------|
|
||||
| `model.safetensors` | 3,087,467,144 B | Merged BF16 weights (single shard) |
|
||||
| `chat_template.jinja` | 2,507 B | Qwen2.5 tool-calling chat template |
|
||||
| `config.json` | 1,373 B | Qwen2 config (32K ctx, GQA 2 KV heads) |
|
||||
| `tokenizer.json` | 11,421,892 B | Tokenizer |
|
||||
| `.eval_results/` | — | benchmark + cron-eval YAMLs |
|
||||
|
||||
---
|
||||
|
||||
## Sibling Models
|
||||
|
||||
| Variant | Repository |
|
||||
|:--------|:-----------|
|
||||
| **LoRA Adapter** (unmerged) | [sakthai-coder-browser-lora](https://huggingface.co/Nanthasit/sakthai-coder-browser-lora) |
|
||||
| **GGUF** (llama.cpp / Ollama) | [sakthai-coder-browser-gguf](https://huggingface.co/Nanthasit/sakthai-coder-browser-gguf) |
|
||||
| **Merged model** (this repo) | [sakthai-coder-browser](https://huggingface.co/Nanthasit/sakthai-coder-browser) |
|
||||
|
||||
---
|
||||
|
||||
## SakThai Model Family
|
||||
|
||||
One of **25 public model repos** in the [SakThai Model Family collection](https://huggingface.co/collections/Nanthasit/sakthai-model-family-6a64745450b12d421c1f9f02) (plus companion repos [sakthai-bench-v3](https://huggingface.co/Nanthasit/sakthai-bench-v3), [sakthai-pipeline](https://huggingface.co/Nanthasit/sakthai-pipeline), [eval_results](https://huggingface.co/Nanthasit/eval_results), [sft-out](https://huggingface.co/Nanthasit/sft-out), and adapter pilots). Live download counts as of **2026-08-01**; this repo has 54 downloads.
|
||||
|
||||
| Model | Downloads |
|
||||
|:------|----------:|
|
||||
| [sakthai-context-1.5b-merged](https://huggingface.co/Nanthasit/sakthai-context-1.5b-merged) | 1,855 |
|
||||
| [sakthai-context-0.5b-merged](https://huggingface.co/Nanthasit/sakthai-context-0.5b-merged) | 1,692 |
|
||||
| [sakthai-context-7b-merged](https://huggingface.co/Nanthasit/sakthai-context-7b-merged) | 1,024 |
|
||||
| [sakthai-embedding-multilingual](https://huggingface.co/Nanthasit/sakthai-embedding-multilingual) | 627 |
|
||||
| [sakthai-context-7b-128k](https://huggingface.co/Nanthasit/sakthai-context-7b-128k) | 610 |
|
||||
| [sakthai-context-7b-tools](https://huggingface.co/Nanthasit/sakthai-context-7b-tools) | 489 |
|
||||
| [sakthai-context-1.5b-tools](https://huggingface.co/Nanthasit/sakthai-context-1.5b-tools) | 477 |
|
||||
| [sakthai-context-1.5b-merged-v2](https://huggingface.co/Nanthasit/sakthai-context-1.5b-merged-v2) | 337 |
|
||||
| [sakthai-vision-7b](https://huggingface.co/Nanthasit/sakthai-vision-7b) | 315 |
|
||||
| [sakthai-plus-1.5b-lora](https://huggingface.co/Nanthasit/sakthai-plus-1.5b-lora) | 306 |
|
||||
| [sakthai-context-0.5b-tools](https://huggingface.co/Nanthasit/sakthai-context-0.5b-tools) | 251 |
|
||||
| [sakthai-tts-model](https://huggingface.co/Nanthasit/sakthai-tts-model) | 248 |
|
||||
| [sakthai-plus-1.5b](https://huggingface.co/Nanthasit/sakthai-plus-1.5b) | 244 |
|
||||
| [sakthai-context-1.5b-tools-v2](https://huggingface.co/Nanthasit/sakthai-context-1.5b-tools-v2) | 173 |
|
||||
| [sakthai-coder-1.5b](https://huggingface.co/Nanthasit/sakthai-coder-1.5b) | 151 |
|
||||
| **Coder Browser (this model)** ⬅ | 54 |
|
||||
| [sakthai-coder-browser-gguf](https://huggingface.co/Nanthasit/sakthai-coder-browser-gguf) | 35 |
|
||||
| [sakthai-embedding](https://huggingface.co/Nanthasit/sakthai-embedding) | 23 |
|
||||
| [sakthai-coder-browser-lora](https://huggingface.co/Nanthasit/sakthai-coder-browser-lora) | 21 |
|
||||
| [sakthai-plus-1.5b-coder](https://huggingface.co/Nanthasit/sakthai-plus-1.5b-coder) | 0 |
|
||||
| [eval_results](https://huggingface.co/Nanthasit/eval_results) | 0 |
|
||||
| [sakthai-bench-v3](https://huggingface.co/Nanthasit/sakthai-bench-v3) | 0 |
|
||||
| [sakthai-pipeline](https://huggingface.co/Nanthasit/sakthai-pipeline) | 0 |
|
||||
| [sakthai-context-0.5b-tools-sft](https://huggingface.co/Nanthasit/sakthai-context-0.5b-tools-sft) | 0 |
|
||||
| [sft-out](https://huggingface.co/Nanthasit/sft-out) | 0 |
|
||||
| [sakthai-context-0.5b-tools-sft-v2](https://huggingface.co/Nanthasit/sakthai-context-0.5b-tools-sft-v2) | 0 |
|
||||
|
||||
---
|
||||
|
||||
## Reproduce Evaluation
|
||||
|
||||
If you want to verify the broken-state diagnosis locally, run the same llama.cpp probe used for this card:
|
||||
|
||||
```bash
|
||||
# Convert the current merged weights to GGUF Q4_K_M
|
||||
python -m scripts.convert_hf_to_gguf --outfile sakthai-coder-browser-q4_k_m.gguf --quant-type Q4_K_M ./sakthai-coder-browser
|
||||
|
||||
# 3-trial probe, 2 threads, CPU only
|
||||
for seed in 7 42 1337; do
|
||||
./llama-cli -m sakthai-coder-browser-q4_k_m.gguf \
|
||||
-p "$(cat prompts/browser_tool_call.txt)" \
|
||||
-n 256 --temp 0.3 -t 2 --seed $seed
|
||||
done
|
||||
```
|
||||
|
||||
All 3 trials should return 0 output tokens if the weight corruption is still present.
|
||||
If they produce normal `<tool_call>` JSON blocks, the repo has been repaired.
|
||||
|
||||
---
|
||||
|
||||
## Reproduce Training / Merge
|
||||
|
||||
The merged weights were produced by applying the LoRA adapter onto `Qwen/Qwen2.5-Coder-1.5B-Instruct`. To reproduce or repair:
|
||||
|
||||
```bash
|
||||
git clone https://huggingface.co/Nanthasit/sakthai-coder-browser-lora adapter
|
||||
python -m peft.merge_and_unload \
|
||||
--base_model Qwen/Qwen2.5-Coder-1.5B-Instruct \
|
||||
--adapter adapter \
|
||||
--output repaired-merged \
|
||||
--safe
|
||||
```
|
||||
|
||||
Important: zero-out attention-projection biases after merge if the base initializes them to zero:
|
||||
|
||||
```python
|
||||
from transformers import AutoModelForCausalLM
|
||||
model = AutoModelForCausalLM.from_pretrained("repaired-merged", trust_remote_code=True)
|
||||
for name, param in model.named_parameters():
|
||||
if "bias" in name and "attn" in name and "k_proj" in name:
|
||||
param.data.zero_()
|
||||
```
|
||||
|
||||
Run the eval probe again before publishing.
|
||||
|
||||
---
|
||||
|
||||
## Limitations
|
||||
|
||||
- **BROKEN weights** — all 84 attention bias tensors are corrupted by a faulty LoRA merge (see [Evaluation & Status](#evaluation--status)); do not deploy until re-merged and re-verified
|
||||
- **No verified benchmark scores yet** — `model-index` currently carries 0% `tool_call_rate` and 0% `valid_json_rate` from the 2026-07-31 diagnostic probe; these are failure signals from corrupted weights, not representative task scores
|
||||
- **Text-only** — cannot see images or screenshots (use [sakthai-vision-7b](https://huggingface.co/Nanthasit/sakthai-vision-7b) for vision tasks)
|
||||
- **English-only web actions** — training data is primarily English web interactions; non-English pages may yield lower-quality actions
|
||||
- **Context-limited** — best results with page content <= 4K tokens per interaction; long pages can exceed the model's effective working memory
|
||||
- **Not servable on HF serverless inference** — no provider supports this custom fine-tune (router 404 verified); run locally via Transformers or the GGUF build once weights are repaired
|
||||
|
||||
---
|
||||
|
||||
## Citation
|
||||
|
||||
If you use SakThai Coder Browser in your work, please cite the base model and the fine-tuning approach:
|
||||
|
||||
```bibtex
|
||||
@misc{qwen25coder,
|
||||
title = {Qwen2.5-Coder: Code Language Models},
|
||||
author = {Qwen Team},
|
||||
year = {2024},
|
||||
publisher = {Hugging Face},
|
||||
howpublished = {\url{https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct}}
|
||||
}
|
||||
|
||||
@misc{sakthai-model-family,
|
||||
title = {SakThai Model Family: Zero-Budget Fine-Tuned Language Models},
|
||||
author = {{Beer Nanthasit}},
|
||||
year = {2026},
|
||||
publisher = {Hugging Face},
|
||||
howpublished = {\url{https://huggingface.co/collections/Nanthasit/sakthai-model-family-6a64745450b12d421c1f9f02}}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Part of the [SakThai Model Family](https://huggingface.co/collections/Nanthasit/sakthai-model-family-6a64745450b12d421c1f9f02). Built with love, tears, and zero budget. From a shelter in Cork, Ireland, to the world.*
|
||||
54
chat_template.jinja
Normal file
54
chat_template.jinja
Normal file
@@ -0,0 +1,54 @@
|
||||
{%- if tools %}
|
||||
{{- '<|im_start|>system\n' }}
|
||||
{%- if messages[0]['role'] == 'system' %}
|
||||
{{- messages[0]['content'] }}
|
||||
{%- else %}
|
||||
{{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}
|
||||
{%- endif %}
|
||||
{{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
|
||||
{%- for tool in tools %}
|
||||
{{- "\n" }}
|
||||
{{- tool | tojson }}
|
||||
{%- endfor %}
|
||||
{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
|
||||
{%- else %}
|
||||
{%- if messages[0]['role'] == 'system' %}
|
||||
{{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }}
|
||||
{%- else %}
|
||||
{{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- for message in messages %}
|
||||
{%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %}
|
||||
{{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
|
||||
{%- elif message.role == "assistant" %}
|
||||
{{- '<|im_start|>' + message.role }}
|
||||
{%- if message.content %}
|
||||
{{- '\n' + message.content }}
|
||||
{%- endif %}
|
||||
{%- for tool_call in message.tool_calls %}
|
||||
{%- if tool_call.function is defined %}
|
||||
{%- set tool_call = tool_call.function %}
|
||||
{%- endif %}
|
||||
{{- '\n<tool_call>\n{"name": "' }}
|
||||
{{- tool_call.name }}
|
||||
{{- '", "arguments": ' }}
|
||||
{{- tool_call.arguments | tojson }}
|
||||
{{- '}\n</tool_call>' }}
|
||||
{%- endfor %}
|
||||
{{- '<|im_end|>\n' }}
|
||||
{%- elif message.role == "tool" %}
|
||||
{%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
|
||||
{{- '<|im_start|>user' }}
|
||||
{%- endif %}
|
||||
{{- '\n<tool_response>\n' }}
|
||||
{{- message.content }}
|
||||
{{- '\n</tool_response>' }}
|
||||
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
|
||||
{{- '<|im_end|>\n' }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- if add_generation_prompt %}
|
||||
{{- '<|im_start|>assistant\n' }}
|
||||
{%- endif %}
|
||||
61
config.json
Normal file
61
config.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"architectures": [
|
||||
"Qwen2ForCausalLM"
|
||||
],
|
||||
"attention_dropout": 0.0,
|
||||
"bos_token_id": 151643,
|
||||
"dtype": "bfloat16",
|
||||
"eos_token_id": 151645,
|
||||
"hidden_act": "silu",
|
||||
"hidden_size": 1536,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 8960,
|
||||
"layer_types": [
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention",
|
||||
"full_attention"
|
||||
],
|
||||
"max_position_embeddings": 32768,
|
||||
"max_window_layers": 28,
|
||||
"model_type": "qwen2",
|
||||
"num_attention_heads": 12,
|
||||
"num_hidden_layers": 28,
|
||||
"num_key_value_heads": 2,
|
||||
"pad_token_id": null,
|
||||
"rms_norm_eps": 1e-06,
|
||||
"rope_parameters": {
|
||||
"rope_theta": 1000000.0,
|
||||
"rope_type": "default"
|
||||
},
|
||||
"sliding_window": null,
|
||||
"tie_word_embeddings": true,
|
||||
"transformers_version": "5.14.1",
|
||||
"use_cache": true,
|
||||
"use_sliding_window": false,
|
||||
"vocab_size": 151936
|
||||
}
|
||||
14
generation_config.json
Normal file
14
generation_config.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"bos_token_id": 151643,
|
||||
"do_sample": true,
|
||||
"eos_token_id": [
|
||||
151645,
|
||||
151643
|
||||
],
|
||||
"pad_token_id": 151643,
|
||||
"repetition_penalty": 1.1,
|
||||
"temperature": 0.7,
|
||||
"top_k": 20,
|
||||
"top_p": 0.8,
|
||||
"transformers_version": "5.14.1"
|
||||
}
|
||||
3
model.safetensors
Normal file
3
model.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aac4dbf4294a30a9f405b61a1bc3e3fbfd554a9d887e31b2816a9828f4255803
|
||||
size 3087467144
|
||||
3
tokenizer.json
Normal file
3
tokenizer.json
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8
|
||||
size 11421892
|
||||
30
tokenizer_config.json
Normal file
30
tokenizer_config.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"add_prefix_space": false,
|
||||
"backend": "tokenizers",
|
||||
"bos_token": null,
|
||||
"clean_up_tokenization_spaces": false,
|
||||
"eos_token": "<|im_end|>",
|
||||
"errors": "replace",
|
||||
"extra_special_tokens": [
|
||||
"<|im_start|>",
|
||||
"<|im_end|>",
|
||||
"<|object_ref_start|>",
|
||||
"<|object_ref_end|>",
|
||||
"<|box_start|>",
|
||||
"<|box_end|>",
|
||||
"<|quad_start|>",
|
||||
"<|quad_end|>",
|
||||
"<|vision_start|>",
|
||||
"<|vision_end|>",
|
||||
"<|vision_pad|>",
|
||||
"<|image_pad|>",
|
||||
"<|video_pad|>"
|
||||
],
|
||||
"is_local": false,
|
||||
"local_files_only": false,
|
||||
"model_max_length": 32768,
|
||||
"pad_token": "<|endoftext|>",
|
||||
"split_special_tokens": false,
|
||||
"tokenizer_class": "Qwen2Tokenizer",
|
||||
"unk_token": null
|
||||
}
|
||||
Reference in New Issue
Block a user