Downloads · 30 days
39
15% of all-time downloads
lewisdog/qwen3-1.7b-cogs-ask
qwen3-1.7b-cogs-ask is a text generation model from lewisdog. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Merged full model (Qwen/Qwen3-1.7B + LoRA, fused, bf16) — the student model for the cogs ask pipeline. Standalone adapter: lewisdog/qwen3-1.7b-cogs-ask-lora. Sibling model for the ingest pipeline: lewisdog/qwen3-1.7b-…
Downloads · 30 days
39
15% of all-time downloads
All-time downloads
259
Public
Parameters
1.7B
3.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors3.4 GB · 100%
From the Hugging Face model README
Merged full model (Qwen/Qwen3-1.7B + LoRA, fused, bf16) — the student model
for the cogs ask pipeline. Standalone
adapter: lewisdog/qwen3-1.7b-cogs-ask-lora.
Sibling model for the ingest pipeline:
lewisdog/qwen3-1.7b-cogs-ingest.
Two tasks, both emitting compact JSON exactly as the cogs runtime parses it:
| task | output JSON |
|---|---|
decompose | {"subquestions": [...]} — question → 1-4 sub-questions |
synthesize | {"answer": "... [note-id] ...", "citations": [...], "abstained": bool} — grounded answer over retrieved notes; abstains on out-of-domain questions |
python3 -m mlx_lm.convert --hf-path lewisdog/qwen3-1.7b-cogs-ask -q --q-bits 8 --mlx-path qwen3-cogs-ask-mlx
# NOTE: if transformers writes v5-format configs, backfill rope_theta / rope_scaling /
# torch_dtype from the base Qwen3-1.7B config and swap in the original Qwen3-1.7B
# tokenizer files before converting. Wire as [llm.ask] in cogs.toml.
Decode at temp 0 + repetition_penalty=1.1 (pure greedy runs away on long
list outputs), enable_thinking=False, stop on <|im_end|>.
Repair citation prefixes. Most citation errors are a dropped/wrong
namespace prefix (enisa-… → sources-enisa-…). Normalize against the notes
actually in the prompt and drop anything unverifiable:
PFX = ("sources-", "source-", "concepts-", "concept-", "entities-", "entity-")
core = lambda x: next((x[len(p):] for p in PFX if x.startswith(p)), x)
def repair(cite, note_ids):
if cite in note_ids: return cite
return {core(n): n for n in note_ids}.get(core(cite)) # None => drop it
Abstention is reliable — trust it to decline out-of-domain questions.
LoRA r=32/α=64, 5 epochs, eff. batch 16, max_seq 8192, lr 1e-4 cosine, bf16, on a
DGX Spark (GB10). Data: cogs distill ask pairs (475 base + abstentions
oversampled 3×). Eval loss 1.906 → 0.758; eval token-acc 0.836. Full write-up in
the repo RESULTS.md.