license, language, base_model, pipeline_tag, library_name, datasets
license language base_model pipeline_tag library_name datasets
gemma
it
en
google/gemma-2-2b-it
text-generation transformers
efederici/capybara-claude-15k-ita
anakin87/fine-instructions-ita-70k
mii-llm/argilla-math-preferences-it
ruggsea/wsdm2024-cot-dataset
anakin87/evol-dpo-ita-reranked
anakin87/gemma-vs-gemma-preferences
mlabonne/orpo-dpo-mix-40k

Gemma 2 2B Neogenesis ITA

Fine-tuned version of google/gemma-2-2b-it optimized for better performance in Italian.

  • Small yet powerful model with 2.6 billion parameters
  • Supports 8k context length

GGUF quants: static - weighted/imatrix

Need a stronger model? Try gemma-2-9b-neogenesis-ita.

🎮 Usage

💬🇮🇹 Try the model on Hugging Face Spaces

Text generation with Transformers

import torch
from transformers import pipeline

model_id="anakin87/gemma-2-2b-neogenesis-ita"

pipe = pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device="cuda",
)

messages = [{"role": "user", "content": "Cos'è l'interesse composto? Spiega in maniera semplice e chiara."}]
outputs = pipe(messages, max_new_tokens=500)

print(outputs[0]["generated_text"][1]["content"])

>>> Immagina di avere 100 euro e di depositarli in un conto che ti  un interesse del 5% all'anno....

For more usage examples and applications, refer to the 📓 Kaggle notebook.

🏆 Evaluation Results

The model was submitted and evaluated in the Open Ita LLM Leaderboard, the most popular leaderboard for Italian Language Models.

Model MMLU_IT ARC_IT HELLASWAG_IT Average
google/gemma-2-2b-it 47.65 40.03 54.69 47.46
anakin87/gemma-2-2b-ita-sft (SFT checkpoint) 47.77 41.15 55.66 48.19
anakin87/gemma-2-2b-neogenesis-ita (DPO) 48.03 40.46 56.97 48.49

Qualitative evaluation across various domains is available here.

🔧 Training details

The model was fine-tuned using Hugging Face TRL.

The training involved Instruction Fine Tuning and Direct Preference Optimization.

I adopted a relatively new technique for parameter-efficient learning: Spectrum. The idea is to train only the layers of the model with high Signal-to-Noise Ratio (SNR) and ❄️ freeze the rest. Specifically, training focused on the top 25% most informative layers.

Batch size: 16; learning rate: 5e-6; epochs: 1 for SFT and 1 for DPO.

Training required about 15 hours on a single NVIDIA A6000 GPU (48GB VRAM).

For comprehensive training code and details, check out the 📓 Kaggle notebook.

🗃️ Training data

The model was trained primarily on Italian data, with a small portion of English data included.

For Instruction Fine Tuning:

For Direct Preference Optimization

🙏 Thanks to the authors for providing these datasets.

Usage limitations

Although the model demonstrates solid Italian fluency and good reasoning capabilities for its small size, it is expected to have limited world knowledge due to its restricted number of parameters. This limitation can be mitigated by pairing it with techniques like Retrieval-Augmented Generation. Check out the 📓 Kaggle notebook for an example.

🛡️ Safety

While this model was not specifically fine-tuned for safety, its selective training with the Spectrum technique helps preserve certain safety features from the original model, as emerged in the qualitative evaluation.

Description
Model synced from source: anakin87/gemma-2-2b-neogenesis-ita
Readme 31 KiB