darthludious's picture
Add 13 files
7ff6174 verified
|
Raw
History Blame Contribute Delete
2.88 kB
---
base_model: Qwen/Qwen3.5-0.8B
library_name: peft
license: other
tags:
- lora
- peft
- adapter
- adaption
---
# adaption_synthetic_task_handoffs
## Model Training
A LORA adapter for `Qwen/Qwen3.5-0.8B`. This model was trained with SFT using [Adaption](https://adaptionlabs.ai)'s AutoScientist on the synthetic_task_handoffs dataset.
![Training metrics](training-metrics.png)
### AutoScientist Config
```json
{
"job_id": "0b3f9050-542f-42c3-992a-81bae036e39e",
"training_experiment_id": "a2cd8c75-d2ca-4fb3-9c6c-f1048625be4a",
"original_model_name": "Qwen/Qwen3.5-0.8B",
"trained_model_name": "adaption_synthetic_task_handoffs",
"training_method": "sft",
"training_type": "lora",
"data_format": "chat",
"hyperparams": {
"lora": "true",
"lora_r": 8,
"n_evals": 5,
"n_epochs": 2,
"batch_size": "max",
"lora_alpha": 16,
"lora_dropout": 0.1,
"min_lr_ratio": 0.1,
"warmup_ratio": 0.1,
"weight_decay": 0.05,
"learning_rate": 0.00003,
"max_grad_norm": 1,
"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 trained on 794 rows of adapted data with the following domain distribution: corporate-business (50%), code (16%), data-analysis-visualization (9%), governance (9%), technology (8%), architecture-design (4%), science (4%), how-to (1%), hr (0%), academic-education (0%), writing-editing-communication (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)
| Domain | Win rate vs. base model |
| --- | --- |
| general | 46% |
## 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))
```