--- base_model: Qwen/Qwen3-1.7B license: apache-2.0 language: - it tags: - qwen3 - italian - europagen - merged datasets: - open-ita-llms/OpenSFT-ita - anakin87/fine-instructions-ita-70k - DeepMount00/o1-ITA-REASONING --- # EuropaGen v1 (1.7B) — merged weights **EuropaGen v1** è un modello linguistico open source da 1.7 miliardi di parametri, basato su **Qwen3-1.7B** e specializzato per l'italiano. È un progetto indipendente sviluppato e mantenuto da **Federico Barros** come unico sviluppatore. Questo repository contiene i **pesi completi già uniti** (LoRA/QLoRA adapter fuso nel modello base) — nessun PEFT necessario per caricarlo, pronto per il deploy diretto (es. con vLLM). Per la versione solo-adapter (più leggera, ~140MB), vedi [signorbuco/europagen-v1](https://huggingface.co/signorbuco/europagen-v1). ## Dettagli del modello - **Modello base:** [Qwen/Qwen3-1.7B](https://huggingface.co/Qwen/Qwen3-1.7B) (Apache-2.0) - **Metodo di fine-tuning:** QLoRA (rank 32, alpha 64), poi merge nei pesi completi - **Parametri:** ~2.03B - **Lingua:** Italiano - **Sviluppatore:** Federico Barros (unico sviluppatore del progetto) - **Licenza:** Apache-2.0 ## Dati di training | Dataset | Licenza | |---|---| | [open-ita-llms/OpenSFT-ita](https://huggingface.co/datasets/open-ita-llms/OpenSFT-ita) | Apache-2.0 | | [anakin87/fine-instructions-ita-70k](https://huggingface.co/datasets/anakin87/fine-instructions-ita-70k) | Apache-2.0 | | [DeepMount00/o1-ITA-REASONING](https://huggingface.co/datasets/DeepMount00/o1-ITA-REASONING) | CC BY 4.0 | Tutte le licenze permettono uso commerciale con attribuzione. ## Come usarlo ```python from transformers import AutoModelForCausalLM, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("REPO_ID_QUI") model = AutoModelForCausalLM.from_pretrained("REPO_ID_QUI", torch_dtype="bfloat16", device_map="auto") messages = [{"role": "user", "content": "Chi sei?"}] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(text, return_tensors="pt").to(model.device) output = model.generate(**inputs, max_new_tokens=200, do_sample=False) print(tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)) ``` Oppure con vLLM: ```bash vllm serve REPO_ID_QUI ``` ## Limiti - Modello da 1.7B parametri: capacità di conoscenza enciclopedica limitata, non affidabile per fatti storici/tecnici precisi. - Fine-tuning di scala contenuta (20k esempi, early stopping a ~64% della prima epoca): buona aderenza allo stile del dataset, non un salto di capacità generale. ## Licenza Apache-2.0, in eredità dalla licenza del modello base Qwen3-1.7B e di tutti i dataset di training utilizzati.