CoolFace
Modelpublic

marcosremar2/tucano2-1p5b-ptbr-roleplay-lora-9k

sourceHugging Faceupdated 4mo agoView on Hugging Face
1likes7downloads
Model Card

Tucano2 1.5B PT-BR Roleplay LoRA 9k

LoRA adapter for Polygl0t/Tucano2-qwen-1.5B-Instruct, fine-tuned for short Brazilian Portuguese role-play conversations.

This is an adapter-only upload. Load it with the original base model.

Intended Use

  • —Simulate a simple character in daily-life conversations.
  • —Maintain the assigned role.
  • —Answer in short, natural Brazilian Portuguese.
  • —Support voice-agent style interactions where another system handles speech input/output.

This adapter is not intended to be a grammar teacher or a precise linguistic correction model.

Training

  • —Base model: Polygl0t/Tucano2-qwen-1.5B-Instruct
  • —Method: LoRA SFT
  • —Trainable parameters: 17,432,576
  • —Dataset: 1,811 approved synthetic PT-BR role-play conversations
  • —SFT examples: 9,055 prompt/completion turns
  • —Train split: 8,512 examples
  • —Validation split: 543 examples
  • —Epochs: 1
  • —Max sequence length: 768
  • —Learning rate: 1e-4
  • —LoRA rank: 16
  • —LoRA alpha: 32
  • —LoRA dropout: 0.05
  • —Hardware: RTX 3090 24 GB
  • —Training runtime: about 22 minutes

Evaluation

Manual benchmark with 30 turns across daily-life role-play scenarios:

ModelGoodPartialBadPeak CUDA VRAM
1.5B Instruct original FP169/3016/305/30n/a
1.5B Instruct + LoRA FP1615/309/306/302.9 GB
1.5B Instruct original 4-bit NF45/3013/3012/301.44 GB
1.5B Instruct + LoRA 4-bit NF416/3011/303/301.44 GB
3.7B Instruct original 4-bit NF413/3012/305/303.6 GB

The LoRA improved short PT-BR role-play behavior substantially, especially after 4-bit loading. Remaining weak points are precise grammar explanations and some direction-giving scenes.

Loading Example

python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_model = "Polygl0t/Tucano2-qwen-1.5B-Instruct"
adapter = "YOUR_USERNAME/tucano2-1p5b-ptbr-roleplay-lora-9k"

tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(base_model, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)
model.eval()

Notes

  • —This adapter does not generate Mimi/audio tokens by itself.
  • —For audio output, connect it to a separate Talker/adaptor trained to predict Mimi codes.
  • —The repo is intended to be private while the dataset and product direction are still experimental.