Views
No views yet
| Base Model | Qwen/Qwen2.5-3B-Instruct |
| Method | LoRA (r=64, alpha=128) |
| Training | SFT, 3 epochs, 252 steps |
| Dataset | nxvoy-labs/shasa-travel-distillation-v1 (789 examples) |
| Parameters | 119M trainable / 3.2B total (3.7%) |
| Hardware | NVIDIA A10G (HuggingFace Spaces) |
| Framework | transformers + PEFT + TRL |
| License | Apache 2.0 |
| Developed by | NxVoy Labs |
1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer
3import torch
4
5# Load base model + LoRA adapter
6base = AutoModelForCausalLM.from_pretrained(
7 "Qwen/Qwen2.5-3B-Instruct",
8 torch_dtype=torch.bfloat16,
9 device_map="auto"
10)
11model = PeftModel.from_pretrained(base, "nxvoy-labs/shasa-v0.2")
12tokenizer = AutoTokenizer.from_pretrained("nxvoy-labs/shasa-v0.2")
13
14# Chat
15messages = [
16 {"role": "system", "content": "You are Shasa, NxVoy's travel AI assistant. You create detailed, practical travel itineraries."},
17 {"role": "user", "content": "Plan a 3-day trip to Tokyo for 2 adults, mid-range budget"}
18]
19
20text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
21inputs = tokenizer(text, return_tensors="pt").to(model.device)
22
23with torch.no_grad():
24 output = model.generate(
25 **inputs,
26 max_new_tokens=2048,
27 temperature=0.7,
28 do_sample=True,
29 top_p=0.9
30 )
31
32response = tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
33print(response)| Parameter | Value |
|---|---|
| LoRA rank (r) | 64 |
| LoRA alpha | 128 |
| LoRA dropout | 0.05 |
| Learning rate | 2e-4 |
| Epochs | 3 |
| Batch size (effective) | 8 |
| Max sequence length | 4096 |
| Optimizer | AdamW |
| Scheduler | Cosine |
| Warmup ratio | 3% |
| Precision | bf16 |
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj1@misc{shasa-v0.2-2026,
2 title={Shasa v0.2: A Travel-Specialized Language Model},
3 author={NxVoy Labs},
4 year={2026},
5 publisher={HuggingFace},
6 url={https://huggingface.co/nxvoy-labs/shasa-v0.2}
7}