Fine-tuning de Gemma pour l'arabe

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

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_nlp qui 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

  1. Ouvrez un nouveau notebook Colab sur https://colab.research.google.com.
  2. Dans le coin supérieur droit, sélectionnez les options de connexion supplémentaires.
  3. Choisissez Modifier le type de runtime.
  4. 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 keras

Charger 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.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Maitriser Framer Motion : Guide Complet pour des Animations Epoustouflantes.

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

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).

8 min read·