Sunlight-AWQ-4bit / README.md
CaptchaKraken's picture
Merged CaptchaKrakenV1_Lora into Qwen3.5-9B; CK-SAL v1.0; prompts.json pinned
099f69e verified
|
Raw
History Blame Contribute Delete
3.74 kB
---
base_model: Qwen/Qwen3.5-9B
library_name: transformers
pipeline_tag: image-text-to-text
license: other
license_name: captchakraken-source-available-1.0
license_link: LICENSE
tags:
- captcha
- vllm
- computer-vision
- awq
- compressed-tensors
- quantized
---
# CaptchaKraken Sunlight (AWQ 4-bit)
A standalone captcha-solving model: the [`CaptchaKrakenV1_Lora`](https://huggingface.co/CaptchaKraken/CaptchaKrakenV1_Lora)
adapter merged into **Qwen/Qwen3.5-9B** and quantized to **AWQ 4-bit**. One
download, no adapter to wire up.
Sunlight is the lighter of two hardware tiers. [**Twilight**](https://huggingface.co/CaptchaKraken/Twilight-FP8)
is the same adapter and base at FP8, ~5 GB larger and ~4 points stronger.
- **Weights:** ~9.1 GB · **Min VRAM:** ~11 GB
- **Base revision:** `c202236235762e1c871ad0ccb60c8ee5ba337b9a`
- **Quantized:** language-model linears at 4-bit (group 128, asymmetric). The
vision tower, the linear-attention projections and the multi-token-prediction
head stay bf16 — quantizing those costs accuracy out of proportion to the space
saved. Calibrated on 256 in-domain captchas (hCaptcha + reCAPTCHA, none from
the held-out set).
- **Solves:** reCAPTCHA and hCaptcha grids, plus hCaptcha drag / click / path /
fit puzzles.
## Serving (vLLM)
```bash
vllm serve CaptchaKraken/Sunlight-AWQ-4bit \
--max-model-len 8192 --gpu-memory-utilization 0.85 --trust-remote-code --port 8000
```
No `--enable-lora` and no adapter flags — the adapter is already merged in.
## Prompts — read this before integrating
This model only performs as measured when it is sent **the prompts it was trained
on**. `prompts.json` in this repo carries them, along with the puzzle-type →
template mapping and a `prompt_version`. Resolve prompts from that file rather
than hardcoding a copy: a mismatched prompt does not error, it silently
collapses accuracy.
Two integration requirements:
- **Disable thinking.** Send `chat_template_kwargs: {"enable_thinking": false}`.
With thinking on and a qwen3 reasoning parser, the answer is routed into
`reasoning` and `content` comes back empty.
- **Coordinates are normalized 0–1000**, top-left `(0,0)`, bottom-right
`(1000,1000)` — not pixels.
## Evaluation
Scored with the project's soft-tolerance grader on **156 human-labelled held-out
captchas**, through an OpenAI-compatible vLLM endpoint. Samples promoted into the
labelled-train pool are excluded, so nothing here was trained on. Grid puzzles are
exact tile-set match with per-error decay; click/drag receive partial credit by
normalized distance — so these are **graded scores, not "percent solved"**.
| model | score |
|---|---|
| Twilight (FP8) | 66.87% |
| production `captcha` (FP8 base + LoRA at serve time) | 66.30% |
| Sunlight (AWQ 4-bit) | 62.72% |
Merging costs nothing: Twilight matches the served base+adapter setup within
noise. The 4-bit gap concentrates in coordinate-precision puzzles (drag, path)
rather than tile selection, where the two are identical.
## License
**CaptchaKraken Source-Available License v1.0** — see [`LICENSE`](LICENSE).
Use it, modify it, build commercially on it where captcha solving is an internal
component of a product that delivers value beyond the solve — scrapers,
anti-detection browsers, automation frameworks, QA and accessibility tooling.
You may **not sell the solve**: no reselling or offering for a fee a captcha
solving service or API whose primary value is solving captchas, no thin wrappers
exposing this model's solving capability, and no relaying its outputs through a
paid or public captcha-solving API. Those require a separate written commercial
agreement.
Copyright (c) 2026 CaptchaKraken LLC. All rights reserved.