Gemma 2
Architecture bien optimisée. Gemma 2 (9B et 27B) offre des performances qui rivalisent avec des modèles beaucoup plus lourds.
Aperçu
Gemma 2 tire parti du knowledge distillation (on distille les connaissances d’un gros modèle vers un plus petit). Résultat, la version 27B arrive à se mesurer à des modèles de 70B paramètres.
La version 9B est particulièrement intéressante pour les développeurs, avec un bon ratio qualité/vitesse d’inférence.
Intégration avec Hugging Face
Comment utiliser Gemma 2 (9B) dans un script Python avec la précision 4-bit (bitsandbytes) pour économiser la VRAM.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
# Configuration de quantification 4-bit pour économiser la RAM
quantization_config = BitsAndBytesConfig(load_in_4bit=True)
tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-9b-it")
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-2-9b-it",
quantization_config=quantization_config
)
input_text = "Explique moi la physique quantique comme si j'avais 5 ans."
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=200)
print(tokenizer.decode(outputs[0]))
Format de Prompt
Gemma utilise un format de contrôle de flux strict avec des balises XML-like pour les rôles.
<start_of_turn>user
Quelle est la différence entre le machine learning et le deep learning ?<end_of_turn>
<start_of_turn>model
La différence principale se situe au niveau de l'architecture.