Files
fundraising-assistant/README.md

60 lines
2.0 KiB
Markdown
Raw Normal View History

---
language:
- it
license: apache-2.0
base_model: Qwen/Qwen2.5-3B-Instruct
pipeline_tag: text-generation
library_name: transformers
tags:
- fundraising
- non-profit
- italian
- conversational
- sft
- lora
datasets:
- Mic-Fundraiser/fundraising-italian-sft
---
# Fundraising Assistant
Modello conversazionale in italiano specializzato in fundraising e raccolta fondi per il non profit.
Fine-tuning (SFT + LoRA, poi merge) di `Qwen/Qwen2.5-3B-Instruct` sul dataset [`Mic-Fundraiser/fundraising-italian-sft`](https://huggingface.co/datasets/Mic-Fundraiser/fundraising-italian-sft).
## Caratteristiche
- Stile: competente, diretto, tono da "giovane professore"
- Nessuna premessa inutile, nessuna antitesi, niente elenchi infiniti
- Ottimizzato per scrivere DEM, lettere, proposte per il non profit
## Uso
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Mic-Fundraiser/fundraising-assistant"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
messages = [
{"role": "system", "content": "Sei un esperto di fundraising per il non profit."},
{"role": "user", "content": "Come convinco un donatore occasionale a passare a ricorrente?"},
]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=400, do_sample=True, temperature=0.7, top_p=0.9)
print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
```
## Training
- Base: Qwen2.5-3B-Instruct (QLoRA 4-bit)
- LoRA: r=16, alpha=32, dropout=0.05, target=attn+MLP
- Epoche: 3, LR: 2e-4, cosine schedule
- Hardware: NVIDIA L4 via HF Jobs
- Dataset: 1273 esempi in formato OpenAI messages
## Limitazioni
Modello da 3B parametri: rapido e adatto a inferenza CPU/GPU leggera, ma su ragionamenti complessi o contesti molto lunghi resta inferiore a modelli più grandi. Il dataset è piccolo (1273 esempi): il fine-tuning impone uno *stile*, non nuova conoscenza fattuale.