Fine-tuning de Mistral 7B pour le russe : Du LoRA au fine-tuning complet pour la synthèse de dialogues
Mistral 7B présente des performances médiocres en russe : erreurs de déclinaisons, prompts ignorés et perte de sens dans les dialogues longs. L'équipe AiGenda a décidé d'affiner le modèle pour automatiser les comptes rendus de réunion. La tâche implique la reconnaissance vocale, l'identification des locuteurs, la détection des sujets et la synthèse à l'aide d'un LLM avec jusqu'à 7 milliards de paramètres et un contexte de 8192 tokens.
L'architecture est conçue pour l'évolutivité, la sécurité et la tolérance aux pannes. Le backend achemine les requêtes via RabbitMQ vers le service ML. Le contrôleur ML gère les modèles et interagit avec une base de données vectorielle pour les embeddings. Les données sont isolées, avec un stockage S3 et un enregistrement des réunions via l'API OpenStack.
Architecture du système ML
Pipeline de traitement : interface → Backend → RabbitMQ → ML → réponse. Le contrôleur ML répartit les tâches entre Whisper (voix), pyannote/ResNet34 (locuteurs), les embeddings pour les sujets et Mistral pour le texte.
Composants clés :
- File d'attente RabbitMQ : Traitement par lots, réduisant la latence.
- Contrôleur ML : Routage, ajout/remplacement de modèles.
- Base de données vectorielle : Embeddings des locuteurs et du texte.
- Contrôleur de réunion : Ressources dynamiques pour l'enregistrement.
- Surveillance : Grafana, Sentry.
Cela garantit flexibilité et sécurité sans accès direct aux modèles.
Échec du LoRA et passage au fine-tuning complet
Le LoRA a atténué les erreurs mais n'a pas corrigé la logique faible des phrases en raison d'un manque de données russes dans le modèle de base. Nous sommes passés au fine-tuning complet.
Nous avons compilé un jeu de données de 5,35 milliards de tokens : textes, dialogues, instructions, traductions automatiques. Entraînement sur transformers (Hugging Face) avec optimisations :
- Précision mixte, bfloat16.
- Échantillonneur sans remplissage (accélération x10).
- Flash Attention 2 (économie de VRAM).
- ZeRO-2 avec déchargement sur CPU.
Deux Nvidia RTX A6000 (48 Go) correspondent au budget. Journaux sur wandb.ai.
Évaluation du modèle linguistique sur MERA
Testé sur Ubuntu 20.04, RTX 4090, 16 cœurs Ice Lake, 32 Go de RAM. Le modèle affiné a surpassé Mistral 7B de base, GigaChat et MTS Chat sur :
- LCS.
- PARus.
- SimpleAR.
- RuHumanEval.
- ruHH.
En pratique : réduction des erreurs dans les dialogues, extraction d'informations dans 8192 tokens avec peu d'hallucinations.
Points clés :
- Le fine-tuning complet est crucial pour les langues avec des données limitées dans les modèles pré-entraînés.
- Les optimisations (Flash Attention, ZeRO-2) permettent d'entraîner des modèles de 7 milliards sur du matériel grand public.
- MERA est un benchmark fiable pour le russe.
- Un contexte de 8192 tokens est suffisant pour les dialogues de réunion.
- L'intégration à l'architecture garantit la préparation à la production.
Fine-tuning spécifique à la tâche et Whisper
Dernier LoRA sur un jeu de données de dialogues (synthèse, points d'action, sujets). Annotations : manuelles + API GPT-4. BertScore F1 = 0,93 pour la synthèse.
Whisper affiné sur 50 %+ de russe : conférences, interviews, cours. Étiquetage pseudo + vérifications par dictionnaire (ex. "ETMO" → "ITMO"). Réduction du WER sur l'audio de réunion bruyant.
Développement futur
Projets : contexte jusqu'à 128k tokens, nouvelles architectures. Collecte de retours pour itérations.
— Editorial Team
Aucun commentaire pour le moment.