File size: 3,376 Bytes
6334079
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
base_model: Qwen/Qwen3.5-0.8B
library_name: peft
license: other
tags:
  - lora
  - peft
  - fine-tuned
  - adaption
---

# adaption_general_knowledge_qa

## Model Training

A LORA fine-tune of `Qwen/Qwen3.5-0.8B`. This model was trained with supervised fine-tuning (SFT) using [Adaption](https://adaptionlabs.ai)'s AutoScientist on the general_knowledge_qa dataset.


![Training metrics](training-metrics.png)

### AutoScientist Config

```json
{
  "finetune_job_id": "69d2d2ca-5984-45d7-8e07-f24a59d39424",
  "training_experiment_id": "b3805568-3565-4d1c-ad72-4e8173aee82f",
  "original_model_name": "Qwen/Qwen3.5-0.8B",
  "trained_model_name": "adaption_general_knowledge_qa",
  "training_method": "sft",
  "training_type": "lora",
  "data_format": "chat",
  "hyperparams": {
    "lora": "true",
    "lora_r": 16,
    "n_evals": 5,
    "n_epochs": 1,
    "batch_size": "max",
    "lora_alpha": 32,
    "lora_dropout": 0,
    "min_lr_ratio": 0.1,
    "warmup_ratio": 0.03,
    "weight_decay": 0,
    "learning_rate": 0.00001,
    "max_grad_norm": 2,
    "base_model_size": "0.8B",
    "train_on_inputs": "false",
    "training_method": "sft",
    "lr_scheduler_type": "cosine",
    "scheduler_num_cycles": 0.5,
    "lora_trainable_modules": "q_proj,k_proj,v_proj,o_proj"
  }
}
```

## Training Data

The model was fine-tuned on 3,588 rows of adapted data with the following domain distribution: history (11%), sports (10%), science (9%), geography (7%), entertainment (6%), music (6%), animal-nature (5%), cooking (5%), culture (4%), travel (3%), transportation (3%), technology (2%), corporate-business (2%), governance (2%), medical (2%), games (2%), writing-editing-communication (2%), fitness-sports (2%), academic-education (1%), math (1%), code (1%), language (1%), agriculture (1%), how-to (1%), personal-finance (1%), art (1%), career-workplace (1%), religion (1%), product-advice (1%), parenting-family (1%), personal-growth (1%), fashion-beauty (1%), marketing (0%), architecture-design (0%), data-analysis-visualization (0%), other (0%), legal (0%), dating (0%), market-analysis (0%), news (0%), hr (0%), social (0%), roleplay (0%), literature (0%).

## Model Evaluation

The model was evaluated on an in-distribution held-out test set as well as a broader domain-specific test set to measure generalization.


![Win rates](win-rates.png)


## How to use

```bash
pip install torch transformers peft
```

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

BASE = "Qwen/Qwen3.5-0.8B"
ADAPTER = "<this-repo-id>"

device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float32 if device == "cpu" else torch.bfloat16

base = AutoModelForCausalLM.from_pretrained(BASE, dtype=dtype).to(device)
model = PeftModel.from_pretrained(base, ADAPTER)
# Optional: merge the LoRA weights into the base for faster inference
model = model.merge_and_unload()
model.eval()

tokenizer = AutoTokenizer.from_pretrained(BASE)
messages = [{"role": "user", "content": "Hello!"}]
text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(device)

with torch.inference_mode():
    out = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
```