Теория и настройка LoRA/QLoRA: архитектура, гиперпараметры, выбор базовой модели
Как эта тема связана с предыдущими статьями курса
В первой статье мы научились формулировать проверяемые задачи региональной геологии для LLM: извлечение фактов, нормализация терминов, QA с цитатами и строгие форматы выхода.
Во второй статье мы разобрали, как собрать корпус и разметку так, чтобы LoRA усиливала правильные паттерны: терминологию конкретного региона, дисциплину цитирования, работу с неопределённостью.
Теперь мы переходим к механике обучения: как устроены LoRA и QLoRA, какие гиперпараметры действительно влияют на результат, и как выбрать базовую модель под ваши геологические задачи и ограничения по железу.
Основные первоисточники:
LoRA: Low-Rank Adaptation of Large Language Models
QLoRA: Efficient Finetuning of Quantized LLMsЗачем LoRA в региональной геологии
Региональная геология часто требует не “знаний вообще”, а дисциплины ответа:
стабильные термины по принятой региональной схеме
строгие форматы (JSON, таблицы)
ссылки на источник (цитаты, страницы)
корректная модальность (вероятно, предположительно)Полная донастройка всех параметров большой модели дорогая и часто избыточна. LoRA позволяет изменить поведение модели относительно небольшим числом обучаемых параметров, сохраняя основу модели замороженной.
Интуиция: что именно делает LoRA
У трансформера много линейных слоёв. В упрощённом виде каждый такой слой содержит матрицу весов , которая преобразует входное представление.
Идея LoRA: мы не меняем , а добавляем к нему небольшую поправку низкого ранга.
Здесь:
— исходные (замороженные) веса базовой модели
— добавка, которую мы обучаем
— эффективные веса слоя во время инференсаВ LoRA добавку представляют как произведение двух маленьких матриц:
Где:
— матрица, которая сжимает размерность до ранга
— матрица, которая расширяет обратно до исходной размерности
— ранг адаптера, главный регулятор ёмкости LoRAПрактический смысл для геологии: если вам нужно “дотянуть” модель до вашего корпуса (термины, шаблоны, стиль доказательности), низкоранговой поправки часто достаточно.
!Наглядная схема, что LoRA обучает небольшую добавку к замороженным весам
Где в трансформере обычно ставят LoRA
На практике LoRA добавляют не ко всем матрицам, а к наиболее “влиятельным” проекциям self-attention.
Типовые целевые модули:
q_proj и v_proj — часто дают хороший компромисс качество/параметры
q_proj, k_proj, v_proj, o_proj — более ёмко, иногда лучше для сложных форматов
иногда — матрицы MLP (feed-forward), если нужно сильнее менять стиль генерацииВыбор зависит от задачи:
извлечение фактов в JSON с цитатами часто улучшается уже на q_proj+v_proj
жёсткая нормализация терминов и “канонические формулировки” иногда выигрывают от расширения набора модулейQLoRA: зачем она нужна и что меняется
QLoRA — это LoRA поверх квантованной базовой модели, обычно 4-битной. Базовые веса хранятся в очень компактном виде, а обучаемые LoRA-адаптеры остаются в более точном формате.
Что это даёт:
возможность донастраивать модели существенно большего размера на доступном GPU
меньший расход памяти на базовые веса
часто — возможность держать больший контекст или больший batchПри этом важно понимать границу:
квантована базовая модель
LoRA-адаптеры обучаются и хранятся отдельно
итоговая модель на инференсе — это базовая модель + подключённые адаптерыТехнически QLoRA тесно связана с практической экосистемой библиотек:
bitsandbytes — популярная реализация 8-бит/4-бит квантизации для обучения
PEFT (Hugging Face) — стандартный инструментарий для LoRA/QLoRA в пайплайнах!Схема, чем QLoRA отличается от обычной LoRA
Ключевые гиперпараметры LoRA и как они влияют на геологические задачи
Ранг
определяет ёмкость адаптера: насколько сложные изменения поведения он может выучить.
Практическая интерпретация:
маленький учит модель “слегка лучше следовать шаблону” и терминологии
большой позволяет сильнее менять стиль и фактические предпочтения, но повышает риск переобученияСтартовые ориентиры:
для задач извлечения/нормализации со строгими форматами: или
если корпус разнообразный по стилям отчётов и много исключений: Масштабирование LoRA: lora_alpha
lora_alpha управляет масштабом влияния относительно .
Интуитивно:
слишком маленькое значение — адаптер “не слышно”, улучшения слабые
слишком большое — модель может стать нестабильной, ухудшить воспроизводимость форматаПрактически часто начинают с:
lora_alpha примерно равного или и дальше подбирают по валидацииlora_dropout
Dropout в адаптере помогает не переучиться на шаблоны вашего корпуса.
Особенно актуально в региональной геологии, где документы могут быть серийно похожими.
Стартовые ориентиры:
0.0 если данных много и они разнообразные
0.05–0.1 если данных мало или отчёты однотипныКакие параметры обучать кроме LoRA
Часто встречается настройка bias:
none — обучаем только LoRA (самый безопасный и переносимый вариант)
all — дополнительно обучаем bias во всех слоях (может дать прирост, но увеличивает риск “ломать” базовое поведение)Для курса по региональной геологии разумная дефолтная стратегия: начинать с LoRA без дополнительных обучаемых частей и усложнять только если метрики упёрлись в потолок.
Гиперпараметры обучения, которые чаще всего “решают” результат
Скорость обучения: learning rate
В LoRA обычно требуется learning rate выше, чем при полном fine-tune, потому что обучаемых параметров меньше.
Практический диапазон старта:
до для большинства задач извлечения и форматированияСимптомы проблем:
слишком высокий learning rate: модель начинает нарушать формат, растёт доля “выдумок”, ответы становятся менее стабильными
слишком низкий: почти нет улучшений относительно базовой моделиBatch size и накопление градиента
Если не хватает памяти, используют накопление градиента: модель видит несколько мини-батчей, а шаг оптимизатора делает реже.
Важный практический вывод: для задач со строгим форматом (JSON, обязательные поля) стабильнее работает более “крупная” эффективная величина батча, чем совсем маленькая.
Длина контекста и упаковка примеров
В геологии часто нужны длинные фрагменты:
абзац с описанием разреза + таблица интервалов
вопрос + найденные фрагменты (retrieval)Что важно:
если вы обрезаете контекст, модель будет “догадываться” и хуже цитировать
если вы даёте слишком длинные куски без структуры, модель хуже удерживает нужные поляПрактическая стратегия:
держать фрагменты так, чтобы “единица смысла” не распадалась (как в статье про разметку)
обучать на примерах, максимально похожих на инференс: те же ограничения, те же метаданные, тот же формат цитированияКоличество эпох и ранняя остановка
LoRA очень быстро начинает копировать стиль данных. Поэтому “больше эпох” часто означает:
лучшее попадание в шаблон
но хуже переносимость на новые отчёты, особенно с шумным OCRПрактически:
контролируйте качество на валидации по тем метрикам, которые вы определили в постановке задачи
останавливайтесь, когда метрики перестали улучшаться, даже если loss ещё падаетВыбор базовой модели под региональную геологию
Выбор базовой модели определяет потолок качества. LoRA не создаёт способности “с нуля”, она перенастраивает уже имеющиеся.
Критерии выбора базовой модели
Язык и доменная близость
- если корпус русскоязычный, модель должна уверенно работать на русском
- важно качество на аббревиатурах, единицах измерения, техническом стиле
Контекстное окно
- для QA с опорой на фрагменты и для таблиц/описаний длиннее нескольких абзацев нужно больше контекста
Инструкционность
- instruction-tuned модели проще заставить соблюдать “не выдумывай” и “верни JSON”
- base модели иногда требуют больше данных, чтобы научиться дисциплине формата
Лицензия и условия использования
- особенно важно для производственных проектов и закрытых геологических отчётов
Совместимость с QLoRA
- не все архитектуры одинаково хорошо поддерживаются инструментами квантизации
Ограничения по ресурсам
- оцените, сколько памяти у вас есть под обучение и инференс
- QLoRA часто расширяет выбор, но добавляет технических нюансов
Практическая привязка к типам задач из курса
Извлечение фактов и нормализация
- ключевое: стабильный формат, аккуратная работа с числами и единицами
- обычно хорошо масштабируется на моделях среднего размера с QLoRA
Суммаризация по шаблону с цитатами
- важны: длинный контекст, дисциплина ссылок на источник
- полезно иметь instruction-модель и достаточное контекстное окно
QA по найденным фрагментам
- критично: умение отвечать только из контекста и честно говорить “нет данных”
- LoRA здесь часто учит именно
политику ответа и формат доказательств
Практический “стартовый рецепт” настройки LoRA/QLoRA для геологических данных
Ниже — безопасная стартовая конфигурация, с которой удобно начинать эксперименты и сравнивать варианты.
Цель: один тип задачи за раз
- сначала извлечение в строгий JSON с
evidence
- затем нормализация к справочнику
- затем суммаризация/QA
LoRA модули: начать с q_proj и v_projПараметры LoRA:
- или
-
lora_alpha около или
-
lora_dropout 0.05 как дефолт при небольшом корпусе
Обучение:
- learning rate в диапазоне –
- 1–3 эпохи с ранней остановкой по метрикам качества (а не только по loss)
Оценка: ровно по тем критериям, которые заданы в постановке задачи
- точность полей
- соблюдение формата
- наличие цитат/доказательств
- сохранение модальности и честное “не указано”
Анти-утечки: валидация и тест разделены по document_id (как в статье про корпус)Частые ошибки при LoRA/QLoRA в геологической практике
Учить модель “быть геологом” вместо конкретного формата задачи
- результат: красивые, но непроверяемые интерпретации
Слишком большой и слишком много эпох на маленьком корпусе
- результат: модель начинает копировать стиль обучающих отчётов и хуже переносится на новые
Нет негативных примеров “нет данных во входе”
- результат: модель заполняет поля догадками
Неправильная нарезка фрагментов
- результат: теряются привязки “интервал–литология–признаки”, падает точность извлечения
Оценка только “нравится/не нравится”
- результат: вы не отличаете улучшение формата от ухудшения научной корректности
Что дальше
Следующий шаг курса обычно практический: собрать обучающие пары “вход → эталонный выход” в нужном формате (извлечение, нормализация, QA с цитатами), запустить LoRA/QLoRA с базовой конфигурацией и построить протокол сравнения с базовой моделью по честному тесту.