Въведение
За да направиш fine-tuning (дообучаване) на AI модел по работещ начин, ти трябват три неща: (1) ясно дефинирана задача и метрика за успех, (2) качествени обучаващи примери в правилния формат и (3) подходящ метод (пълен fine-tuning или PEFT като LoRA/QLoRA), който пасва на бюджета и инфраструктурата ти.
Fine-tuning почти никога не „спасява“ лоши или противоречиви данни. Ако данните не отразяват реалните ти случаи и очаквания, резултатът ще е непредвидим, независимо от модела.
В това how-to ще минем през стъпките от избора на базов модел и подготовката на dataset, през тренировка и оценка, до деплой и мониторинг.
Стъпка 1: Дефинирай задачата и критерия за успех
Преди да пипаш training, изясни какво точно искаш моделът да прави „по-добре“ от базовия вариант. Fine-tuning е инструмент за специфични поведения, не магия за общо „по-умен“ модел.
Направи кратък документ (1 страница) с:
- Вход: какъв е input-ът (текст, изображение, таблични данни, аудио).
- Изход: какво трябва да върне моделът (клас, извлечени полета, отговор, резюме, код).
- Ограничения: стил, тон, забранени теми, PII, регулаторни изисквания.
- Метрики: accuracy/F1 за класификация, BLEU/ROUGE (внимателно) за генериране, или човешка оценка с рубрика.
- Базова линия: резултатите на „нула“ (prompt-only или текущ модел).
Най-скъпият fine-tuning е този, който оптимизира грешната метрика. Ако мериш нещо, което не е важно за бизнеса, ще „подобриш“ числа без реална полза.
Стъпка 2: Избери базов модел и подход (full fine-tuning vs PEFT)
Има два големи пътя:
- Пълен fine-tuning (full fine-tuning)
- Дообучаваш всички (или повечето) параметри.
- Обикновено дава най-висок таван за качество.
- Изисква повече GPU/VRAM и по-внимателна регуляризация, за да не „забрави“ общи умения.
- Parameter-Efficient Fine-Tuning (PEFT) като LoRA/QLoRA
- „Замразяваш“ базовия модел и обучаваш малки допълнителни матрици (адаптери).
- Значително по-евтино и по-бързо, често с малка загуба (или дори без) спрямо full fine-tuning при много задачи.
- Подходящо, ако имаш ограничен хардуер или искаш бързи итерации.
LoRA е най-разпространеният PEFT подход: вместо да променяш директно големите weight-ове, добавяш нискорангови матрици, които се учат върху твоите данни. QLoRA комбинира LoRA с по-агресивна квантизация, за да се побере тренировка на по-големи модели в по-малко VRAM.
Практична препоръка за 2026:
- Ако тренираш на собствен хардуер и целта е домейн-адаптация, започни с LoRA/QLoRA.
- Ако имаш голям, чист dataset и силна нужда от максимално качество, обмисли full fine-tuning.
- Ако просто искаш по-добър „тон“ или формат, често ще стигнеш до същия резултат с по-добри инструкции (prompt), RAG и пост-обработка.
Стъпка 3: Подготви dataset (това е 70% от резултата)
3.1. Събиране на примери
Събери реални примери от:
- Истински разговори/тикети (след анонимизация).
- Вътрешни документи и FAQ (ако целиш Q&A), като внимателно отделиш „истина“ от „мнение“.
- Експертни ръчни примери (ако домейнът е тесен и данните са малко).
Важно: не тренирай върху „идеализирани“ примери, ако в продукция входът е шумен. Моделът трябва да види реалността.
3.2. Формат
За LLM задачи най-често ти трябват примери като:
- Инструкция (какво да направи).
- Контекст (ако има).
- Очакван отговор.
Дръж формата консистентна. Ако целиш JSON изход, всеки пример трябва да е валиден JSON и да следва една и съща схема.
3.3. Почистване и филтри
Минимални филтри:
- Премахни дубликати.
- Премахни примери с очевидни грешки.
- Уеднакви правопис и терминология.
- Маркирай чувствителни данни (PII) и ги замени (псевдонимизирай) или изключи.
Един силен „golden set“ за оценка е по-важен от още 10 000 посредствени примера за training.
3.4. Разделяне train/validation/test
- Train: 80-90%
- Validation: 5-10% (за early stopping и избор на хиперпараметри)
- Test: 5-10% (само за финално сравнение)
Не допускай leakage: ако имаш подобни примери (вариации на един и същи казус), те трябва да са в един и същи split.
Стъпка 4: Избери инструментариум (локално или managed)
Има два реалистични сценария.
Сценарий A: Локално/облачно обучение с open-source стек
Най-популярният стек за NLP/LLM през 2025-2026 е около Hugging Face (Transformers) и PEFT (за LoRA). За RLHF/преференции се използват библиотеки като TRL.
Плюсове:
- Пълен контрол върху данни и процес.
- Възможност за PEFT и експерименти.
Минуси:
- Трябват GPU и MLOps дисциплина.
- Отговорността за сигурност/съответствие е при теб.
Сценарий B: Managed fine-tuning през API
Някои доставчици предлагат fine-tuning като услуга. Това е удобно, ако нямаш инфраструктура.
Към февруари 2026 (провери актуалната страница на доставчика преди бюджетиране) цените обикновено са на база токени: отделно за training и за inference на fine-tuned модел. Например при OpenAI има отделни тарифи за fine-tuning training и за input/output токени при използване на дообучен модел.
Плюсове:
- По-малко инфраструктура.
- По-бързо стартиране.
Минуси:
- По-малък контрол.
- Зависимост от доставчик и промени в цените.
Стъпка 5: Настрой хиперпараметри и режим на обучение
Тук често се печели или губи качеството.
За стартови стойности (LLM fine-tuning):
- Learning rate: нисък (напр. 1e-5 до 2e-4 според PEFT/full)
- Batch size: колкото позволява VRAM (ползвай gradient accumulation)
- Epochs: 1-3 за големи dataset-и, 3-10 за малки (но следи overfitting)
- Weight decay: умерен
- Early stopping: по validation метрика
За LoRA:
- r (rank): 8-64 (зависи от задачата)
- alpha: често 16-128
- target modules: типично attention/linear слоеве
Добра практика:
- Започни с малък експеримент (например 2-5% от данните), за да валидираш формата.
- После тренирай на пълния dataset.
Стъпка 6: Тренирай и следи правилните сигнали
По време на тренировка следи:
- Train loss и validation loss
- Основната бизнес метрика (ако е дефинирана)
- Дрейф на стил/тон (ако е важно)
- „Катастрофално забравяне“: дали моделът губи общи умения
Ако validation loss расте, спри и върни назад. По-добре е да имаш малко по-слаб модел, който е стабилен, отколкото „пренапаснат“ (overfit) модел, който се чупи на реални входове.
Стъпка 7: Оценка, безопасност и деплой
7.1. Офлайн оценка
Направи два типа тестове:
- Автоматични: метрики върху test set.
- Човешки: 50-200 реални казуса, оценени по рубрика.
7.2. Тестове за безопасност
Дори ако задачата е „безопасна“ (напр. класификация), провери:
- Изтичане на чувствителни данни (моделът да не „повтаря“ PII от training).
- Неочаквани токсични или дискриминационни отговори.
- Уязвимост към prompt injection (ако моделът работи с контекст).
7.3. Деплой стратегия
- Пусни A/B тест или canary release.
- Логвай входове/изходи (с анонимизация) за последващ анализ.
- Измервай latency и разход (токени, GPU време).
Fine-tuned модел без мониторинг в продукция е технически дълг, който расте всеки ден.
Съвети за по-добри резултати
- Дръж етикетите и схемите стабилни. Ако сменяш формат, претренирай или направи миграция на данните.
- Добавяй „трудни“ примери: гранични случаи, двусмислие, шум.
- Пази отделен „продукционен“ набор за регресии, който никога не влиза в train.
- Сравнявай срещу проста алтернатива: по-добър prompt, RAG, правилен post-processing.
- Документирай какво точно си променил: dataset версия, хиперпараметри, код, дата.
Чести грешки, които да избягваш
- Тренираш върху данни, които не приличат на реалните входове.
- Смесваш стилове и инструкции в един dataset (моделът става непоследователен).
- Нямаш отделен test set и мериш „успех“ върху training данните.
- Гониш повече epochs вместо по-добро качество на примери.
- Деплойваш без guardrails и без мониторинг.
Често задавани въпроси
Колко данни ми трябват за fine-tuning?
Няма универсално число. За тесни формати (например извличане на полета в JSON) често стигат стотици до няколко хиляди качествени примера. За стил и сложни поведения може да трябват десетки хиляди.
LoRA достатъчно ли е или ми трябва full fine-tuning?
Започни с LoRA/QLoRA. Ако не стигаш желаното качество и имаш достатъчно данни и хардуер, тогава тествай full fine-tuning.
Как да избегна model collapse или „забравяне“?
Ползвай по-нисък learning rate, early stopping и валидирай на набор, който покрива общите умения, които искаш да запазиш. Понякога помага и смесване с малка част „общи“ данни.
Как да оценя дали fine-tuning си струва?
Сравни срещу базов модел с добър prompt и/или RAG. Ако подобрението е малко, а разходът и рискът са големи, fine-tuning може да не е правилният избор.
Мога ли да fine-tune-вам модел с лични данни?
Технически е възможно, но е рисково и често юридически проблемно. Минимизирай данните, анонимизирай/псевдонимизирай и провери изискванията за съответствие (GDPR, договори, политики на доставчика), преди да продължиш.