Файнтюнинг
Файнтюнинг позволяет дообучить базовую языковую модель на собственном датасете под конкретную задачу, например, под классификацию. Все настройки обучения собраны в редакторе файнтюнинга.
Пошаговый порядок действий – от обучения модели до её использования в навыке – описан в пошаговом руководстве.
Как открыть редактор
- Откройте NLP-проект и перейдите в раздел Использование.
- В блоке Состояние сервиса нажмите ссылку Открыть редактор.
Чтобы вернуться в проект, нажмите Вернуться в проект в левом верхнем углу редактора.
Структура редактора
- Слева – параметры обучения: блоки Параметры модели, Параметры файнтюнинга и Параметры датасета, кнопки Сбалансировать и Запустить.
- В центре – таблица Результаты файнтюнинга со всеми сессиями обучения.
- Справа – Статус, Логи и Результат выбранной сессии.
Параметры модели
| Параметр | Описание |
|---|---|
| Базовая модель | Модель, на основе которой выполняется обучение. Выбирается в окне Выбор базовой модели с поиском по названию; список сгруппирован по движку. ℹ️ В большинстве задач используйте модель ft-base-0.6b-fp16 или ft-base-2b-fp16, которые предлагаются по умолчанию. |
| Наименование модели | Название обученной модели, которое появится в списке готовых моделей после завершения файнтюнинга. Под этим именем модель будет отображаться, например, в окне Выбор LLM раздела Использование. |
| Целевая машина | Сервер, на котором выполняется балансировка датасетов и файнтюнинг (дообучение) модели. |
Базовые модели из поставки
В поставке AI Server доступны модели:
| Название модели | Движок / Размер | Тип | Описание |
|---|---|---|---|
base-LLM-06-7b-gguf-q8 | Ollama, 7B | Мультимодальная | Квантование GGUF q8. Поддерживает текст и изображения, используется как ViT (ранее: base-LLM-05). |
base-LLM-06-7b-safetensors-fp16 | vLLM, 7B | Мультимодальная | Формат safetensors fp16. Рекомендуется для работы с изображениями и ViT (ранее: base-LLM-06). |
base-LLM-07-8b-safetensors-fp16 | vLLM, 8B | Текстовая | Формат safetensors fp16. Дополнительно обучена на фактах русской культуры (ранее: base-LLM-07). |
base-LLM-06-7b-gguf-fp16 | Ollama, 7B | Мультимодальная | Поддерживает изображения (ММ). |
base-LLM-08-27b-gguf-q4_k_m | Ollama, 27B | Мультимодальная | Квантование q4_k_m. Поддержка изображений (ММ). |
base-LLM-09-30b-gguf-q4_k_m | Ollama, 30B | ММ + Reasoning | Квантование q4_k_m. Оптимизирована под рассуждения. |
base-LLM-11-9b-safetensors-fp16 | vLLM, 8.7B | Мультимодальная | Формат safetensors fp16. Распознавание изображений и обработка текста, ViT для Умного OCR. Требует более 14 ГБ VRAM. |
base-LLM-11-9b-gguf-q4_k_m | Ollama, 8.7B | Мультимодальная | Квантование q4_k_m. Распознавание изображений, ViT для Умного OCR. Работает на GPU с 8 ГБ VRAM. |
base-LLM-11-9b-safetensors-fp8 | vLLM, 8.7B | Мультимодальная | Формат safetensors fp8. Распознавание изображений и ViT для Умного OCR. |
base-LLM-11-30b-gguf-q4_k_m | Ollama, 30B | Мультимодальная | Распознавание изображений и ViT для Умного OCR. |
base-LLM-12-35b-gguf-q4_k_m | Ollama, 35B | ММ + Reasoning | Распознавание изображений. Поддерживает рассуждения. |
base-LLM-12-35b-safetensors-nfvp4 | vLLM, 35B | ММ + Reasoning | Формат safetensors. Распознавание изображений и ViT для Умного OCR. Поддерживает рассуждения. |
base-LLM-13-26b-gguf-q4_k_m | Ollama, 26B | ММ + Reasoning | Распознавание изображений. Поддерживает рассуждения. |
base-LLM-12-35b-safetensors-4bit | vLLM, 35B | ММ + Reasoning | Формат safetensors. Распознавание изображений и ViT для Умного OCR. Поддерживает рассуждения. |
base-LLM-14-27b-gguf-q4_k_m | Ollama, 27B | ММ + Reasoning | Распознавание изображений. Поддерживает рассуждения. |
base-LLM-14-27b-safetensors-4bit | vLLM, 27B | ММ + Reasoning | Формат safetensors. Распознавание изображений и ViT для Умного OCR. Поддерживает рассуждения. |
ft-base-0.6b-fp16 | vLLM, 0.6B | Для FT | Компактная базовая модель для файнтюнинга. |
ft-base-2b-fp16 | vLLM, 2B | Для FT | Компактная базовая модель для файнтюнинга. |
Параметры датасета
Этот раздел позволяет подготовить данные для обучения модели и задать правила формирования тренировочного и тестового наборов.
Основные шаги
- Загрузите Excel-файл.
- Выберите лист Excel в параметре
sheet_name. Обработка будет выполняться только с указанной вкладки. - Укажите столбец с данными (
input_col), которые соответствуют запросу к модели - Укажите целевую колонку (
output_col). Это столбец с корректными метками, по которым модель обучается классифицировать данные.
Автоматически рассчитанные параметры
После загрузки файла система формирует датасеты и отображает:
n_train– количество строк в тренировочной выборке;n_test– количество строк в тестовой выборке.
Дополнительные настройки
Чтобы изменить или уточнить параметры датасета, откройте режим редактирования (кнопка с карандашом). Здесь доступны:
input_col– столбец таблицы с текстом, который необходимо классифицировать;output_col– список выходных столбцов. Например, [“Департамент”, “Отдел”] ;balance_classes– максимальное количество записей в классе (null- без ограничения);min_train_count– 2, минимальное количество примеров для каждого класса;rare_to_test_only– отправлять редкие классы только в тест;remove_long_numeric_tokens– true/false удалять длинные числовые последовательности (номера счетов, телефонов, если они не имеют значения в данной задаче);max_input_chars– максимальная длина входного текста;unknown_fill_value– значение для неизвестных меток.
Балансировка датасета
- Сбалансировать – собрать на основе Excel-файла датасеты с учётом указанных параметров.
- Скачать архив – загрузить итоги балансировки. Содержат таблицы и графики с распределением классов и другие технические данные.
Параметры файнтюнинга
Блок содержит параметры, которые определяют поведение модели во время обучения:
| Параметр | Описание |
|---|---|
| Максимальная длина последовательности | Количество токенов, которые модель может принять за один пример.
Увеличение длины увеличивает использование VRAM GPU. |
| r-Ранг LoRA-адаптера | Определяет размерность обучаемых матриц поверх базовой модели.
|
| α-коэффициент LoRA-адаптера | Вес влияния обучаемых LoRA-слоёв. Используйте α=r (ранг) или α=2r(веса обучаемых слоев получают большее влияние). |
| Размер батча | Количество примеров, обрабатываемых за шаг. Чем больше размер, тем стабильнее обучение, но меньше чувствительность.
|
| Количество шагов для аккумуляции градиентов | Увеличивает эффективный батч без роста VRAM. Пример: если batch равен 16, а grad_accum равен 2, то итоговый батч будет 32 |
| Коэффициент прогрева | Доля эпохи для плавного увеличения learning rate. Обучение в этот начальный период происходит с пониженными значениями LR, что помогает избежать “взрыва” градиентов. |
| Количество эпох | Сколько раз модель проходит весь датасет. С увеличением растет точность на обучающем датасете, но появляется риск снижения обобщающих способностей (снижение точности на новых данных). Максимальное допустимое значение – 99. |
| Квантизация | Степень квантизации модели после завершения обучения:
|
| Learning rate | Скорость обновления весов модели. |
| Шаблон запроса | Определяет шаблон запроса, который используется при обучении модели. Содержит изменяемую и неизменяемую часть: в изменяемой части при необходимости можно указать контекст, который поможет модели при обучении. неизменяемая часть содержит плейсхолдеры, куда будут вставляться данные из датасета (запрос и предполагаемый ответ модели). Вместе изменяемая и неизменяемая части формируют реальный запрос к модели. После обучения модели, указанный шаблон автоматически подставляется в системное сообщение в навыке Файнтюнинг. |
Запуск обучения
Когда датасет сбалансирован и параметры заданы, нажмите Запустить в нижней части панели. Новая сессия обучения появится в таблице Результаты файнтюнинга, а её ход – в блоках Статус и Логи.
Результаты файнтюнинга
Таблица в центре редактора отображает все завершённые и активные сессии файнтюнинга модели.
Таблица результатов
Для каждой сессии отображаются:
time– дата и время запуска обучения.ver– версия обученной модели.model– базовая модель, на которой выполнялся файнтюнинг.epochs– число эпох обучения.GB– использованная видеопамять.embs– количество обученных и замороженных эмбеддингов.lora– конфигурация LoRA (rank / слои).acc– точность классификации на тестовой выборке.loss– итоговая функция потерь.f1_macro– F1-метрика (macro), если доступна.
Блок Результат
Здесь отображается качество работы модели на тестовой выборке:
- Всего ошибок – количество примеров, где модель предсказала неверный класс.
- Всего галлюцинаций – ответы, не соответствующие заданному формату.
- Точность (accuracy) – процент правильных ответов.
Также доступна кнопка Скачать mapping.json, содержащая соответствие между классами и внутренними идентификаторами модели.
Расшифровка результатов файнтюнинга
Этот раздел помогает быстро понять, какие классы предсказываются хуже всего, и какие примеры требуют доработки датасета.
При нажатии Подробнее открывается таблица с детальным анализом каждого тестового примера.
Для каждого промпта отображается:
- Промпт – исходный текст.
- Ключи – ключи ответа, использованные в задаче.
- Что ожидали – правильный класс из обучающих данных.
- Что получили – фактический ответ модели.
- Ошибка / галлюцинация – пометка, если предсказание неверное или нарушает формат.
После обучения
- нажмите + (Добавить в каталог): модель появится в окне Выбор базовой модели с пометкой ФТ (Fine-Tuned) и названием проекта;
- в разделе Навыки добавьте навык типа Файнтюнинг – он предназначен для работы с обученной моделью;
- запустите модель на целевой машине и выберите ее для сервиса проекта. Порядок действий – в пошаговом руководстве.
Что дальше
Когда модель обучена и запущена, вернитесь в раздел Использование и выберите её для сервиса проекта, а затем проверьте ответы в разделе Тестирование.