Dostrajanie Mistral 7B do języka polskiego: od LoRA do pełnego fine-tuningu w podsumowywaniu dialogów
Mistral 7B wykazuje słabe wyniki w języku polskim: błędy w odmianie, ignorowanie promptów, utrata sensu w długich dialogach. Zespół AiGenda postanowił dostroić model do automatyzacji protokołowania spotkań. Zadanie obejmuje rozpoznawanie mowy, identyfikację mówców, wykrywanie tematów i podsumowywanie za pomocą LLM do 7B parametrów z kontekstem 8192 tokenów.
Architektura została zaprojektowana z myślą o skalowalności, bezpieczeństwie i odporności na awarie. Backend kieruje żądania przez RabbitMQ do usługi ML. ML Controller zarządza modelami, współpracując z bazą danych wektorowej dla embeddingów. Dane są izolowane, magazyn S3 i zapis spotkań przez API OpenStack.
Architektura systemu ML
Łańcuch przetwarzania: interfejs → Backend → RabbitMQ → ML → odpowiedź. ML Controller rozdziela zadania między Whisper (mowa), pyannote/ResNet34 (mówcy), embeddingami dla tematów i Mistral dla tekstu.
Kluczowe komponenty:
- Kolejka RabbitMQ: przetwarzanie wsadowe, redukcja opóźnień.
- ML Controller: routing, dodawanie/zamiana modeli.
- Baza danych wektorowa: embeddingi mówców i tekstu.
- Meeting Controller: dynamiczne zasoby do nagrywania.
- Monitorowanie: Grafana, Sentry.
Zapewnia to elastyczność i bezpieczeństwo bez bezpośredniego dostępu do modeli.
Niepowodzenie LoRA i przejście do pełnego dostrajania
LoRA wygładziła błędy, ale nie wyeliminowała słabej logiki zdań z powodu deficytu danych w języku polskim w modelu bazowym. Przeszliśmy do pełnego fine-tuningu.
Zebraliśmy zbiór danych 5,35 mld tokenów: teksty, dialogi, instrukcje, tłumaczenie maszynowe. Szkolenie na transformers (Hugging Face) z optymalizacjami:
- Mixed Precision, bfloat16.
- Próbnik bez paddingu (przyspieszenie x10).
- Flash Attention 2 (oszczędność VRAM).
- ZeRO-2 z odciążaniem na CPU.
Dwie Nvidia RTX A6000 (48 GB) zmieściły się w budżecie. Logi w wandb.ai.
Ocena modelu językowego na MERA
Testowano na Ubuntu 20.04, RTX 4090, 16 rdzeniach Ice Lake, 32 GB RAM. Dostrojony model przewyższył bazowy Mistral 7B, GigaChat i MTS Chat w:
- LCS.
- PARus.
- SimpleAR.
- RuHumanEval.
- ruHH.
Praktyka: redukcja błędów w dialogach, ekstrakcja informacji w 8192 tokenach z niskimi halucynacjami.
Co ważne:
- Pełne dostrajanie jest kluczowe dla języków z małą ilością danych w modelach wstępnie trenowanych.
- Optymalizacje (Flash Attention, ZeRO-2) umożliwiają szkolenie 7B na sprzęcie konsumenckim.
- MERA to wiarygodny benchmark dla języka polskiego.
- Kontekst 8192 tokenów wystarcza do dialogów spotkań.
- Integracja z architekturą zapewnia gotowość produkcyjną.
Fine-tuning pod zadanie i Whisper
Ostateczna LoRA na zbiorze dialogowym (podsumowywanie, punkty akcji, tematy). Adnotacje: ręczne + GPT-4 API. BertScore F1 = 0,93 dla podsumowywania.
Whisper dostrojono na 50%+ polskim: wykłady, konferencje, wywiady. Pseudolabeling + sprawdzanie słownikowe (np. "ETMO" → "ITMO"). Redukcja WER na zaszumionych nagraniach spotkań.
Perspektywy rozwoju
Plany: kontekst do 128k tokenów, nowe architektury. Zbieranie feedbacku do iteracji.
— Editorial Team
Brak komentarzy.