Fine-tuning de Gemma pour l'arabe

Dans ce tutoriel, nous explorerons comment fine-tuner le modèle Gemma pour des tâches de langage parlé en arabe. Notre cas d'utilisation concret implique la personnalisation du modèle pour qu'il puisse lire et répondre aux demandes d'emails en arabe dans un contexte de support client. À la fin de ce guide, vous serez capable d'adapter Gemma pour gérer des tâches spécifiques en langue arabe, améliorant potentiellement les applications d'IA conversationnelle comme les assistants virtuels ou les systèmes de triage d'emails automatisés.
À propos des outils et ressources référencés
- Google Colab : Un environnement notebook gratuit basé sur le cloud avec GPUs/TPUs qui facilite le prototypage et le test de modèles de machine learning.
- Kaggle : Une plateforme hébergeant des datasets, des notebooks de code et des compétitions. Elle offre un accès pratique à de nombreux datasets pour l'entraînement et le test de modèles de machine learning.
- Keras/Keras-NLP : Une API de deep learning de haut niveau écrite en Python, supportant des bibliothèques faciles à utiliser comme
keras_nlpqui simplifient le fine-tuning de modèles de langage. - Gemma : Une famille de modèles de langage pré-entraînés par Google, conçus pour diverses tâches de compréhension et génération de langage.
- LoRA (Low-Rank Adapters) : Une technique de fine-tuning efficace en paramètres qui ajoute des "adaptateurs" à un modèle, permettant un entraînement plus rapide et plus économe en ressources.
Répondre aux demandes d'emails en arabe
Imaginez que vous ayez un système de support client recevant un grand volume d'emails en arabe. Beaucoup de ces emails posent des questions similaires concernant les détails des produits, les politiques de retour ou les informations de compte. En fine-tunant Gemma sur un dataset d'exemples de requêtes et réponses d'emails, vous pouvez créer un modèle qui génère rapidement des réponses utiles et contextuellement pertinentes en arabe.
Exemple de notre arabic_email_dataset
[
{
"prompt": "مرحباً، قمت بشراء حاسوب محمول منكم أمس وأود الاستفسار عن موعد تسليمه.",
"response": "مرحباً بك! شكراً لتواصلك معنا. طلبك في مرحلة الشحن حالياً ومن المتوقع أن يصلك خلال يومين إلى ثلاثة أيام. سنرسل لك رسالة تأكيد برقم تتبع الطلب قريباً."
},
{
"prompt": "أريد إرجاع منتج اشتريته من موقعكم لأن اللون غير مطابق لما طلبته.",
"response": "شكراً لتواصلك معنا. نحن نتفهم عدم رضاك عن المنتج. يُرجى زيارة صفحة الإرجاع في حسابك، واتباع الخطوات الموضحة. بعد وصول المنتج إلينا سنقوم بمعالجة طلب الإرجاع أو الاستبدال فوراً."
}
]Configuration
Sélectionner le runtime Colab
- Ouvrez un nouveau notebook Colab sur https://colab.research.google.com.
- Dans le coin supérieur droit, sélectionnez les options de connexion supplémentaires.
- Choisissez Modifier le type de runtime.
- Sous Accélérateur matériel, sélectionnez L4 ou A100 GPU pour assurer un entraînement rapide.
Configuration de Gemma sur Kaggle
Suivez les instructions sur Configuration Gemma pour accéder à Gemma sur Kaggle.
Définir les variables d'environnement
import os
from google.colab import userdata, drive
os.environ["KAGGLE_USERNAME"] = userdata.get("KAGGLE_USERNAME")
os.environ["KAGGLE_KEY"] = userdata.get("KAGGLE_KEY")
drive.mount("/content/drive")Installer les dépendances
!pip install -q -U keras-nlp datasets
!pip install -q -U kerasCharger le modèle Gemma
import keras_nlp
import keras
gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset("gemma2_instruct_2b_en")
gemma_lm.summary()Préparer le dataset arabe
from datasets import load_dataset
ds = load_dataset("json", data_files="your_arabic_email_dataset.json", split="train")
ds = ds.shuffle(seed=42)Fine-tuning avec LoRA
Activez LoRA pour fine-tuner efficacement seulement un sous-ensemble de paramètres.
gemma_lm.backbone.enable_lora(rank=4)Compilez le modèle :
optimizer = keras.optimizers.AdamW(learning_rate=1e-4, weight_decay=0.01)
gemma_lm.compile(
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
optimizer=optimizer
)Entraînez le modèle :
history = gemma_lm.fit(train, epochs=20)Tester le modèle fine-tuné
Après l'entraînement, testez le modèle en fournissant un nouveau prompt d'email en arabe :
test_prompt = "أود الاستفسار عن سياسة الاستبدال لديكم."
encoded_input = tokenizer(test_prompt, return_tensors="tf")["input_ids"]
output = gemma_lm.generate(encoded_input, max_length=64)
decoded_response = tokenizer.decode(output[0], skip_special_tokens=True)
print("Email utilisateur:", test_prompt)
print("Réponse Gemma:", decoded_response)Conclusion
En suivant ces étapes et en utilisant le fine-tuning LoRA, vous pouvez adapter le modèle Gemma aux tâches en langue arabe. Notre cas d'utilisation — répondre aux emails clients en arabe — démontre comment vous pouvez créer des modèles de langage plus contextuellement pertinents et spécialisés.
Pour plus de détails, consultez la documentation Gemma et le Gemma Cookbook.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Fine-tuning de Gemma pour l'appel de fonctions
Un guide complet sur le fine-tuning du modèle Gemma pour l'appel de fonctions en utilisant Torch XLA et le framework TRL de Hugging Face.

Demarrer avec ALLaM-7B-Instruct-preview
Apprenez a utiliser le modele ALLaM-7B-Instruct-preview avec Python, et comment interagir avec lui depuis JavaScript via une API hebergee (ex: sur Hugging Face Spaces).

Créez votre propre interpréteur de code avec génération dynamique d'outils
Apprenez à créer un interpréteur de code personnalisé utilisant la génération et l'exécution dynamiques d'outils avec o3-mini, permettant une résolution de problèmes flexible et adaptative.