Сформулировать гипотезу до запуска вычислений
Опишите поведение, которое нужно улучшить: классифицировать документы определённой предметной области, соблюдать формат ответа или извлекать структурированную информацию. Также зафиксируйте то, что не должно ухудшиться. Для извлечения это может быть валидность формата и наличие обязательных полей; для классификации — метрика по каждой категории, а не одно общее среднее.
Сначала оцените исходную модель на наборе, отдельном от обучающего. Сохраните выходные данные и конфигурацию этой оценки. Вы сможете сравнить адаптацию с конкретной отправной точкой и выявить улучшение, ограниченное отдельными примерами. Приберегите финальные тестовые данные: их последовательное использование для выбора всех настроек в конечном счёте ослабляет их контрольную ценность.
Подготовить данные и их разбиение
Ведите версионирование примеров, правил очистки и преобразований. Проверьте наличие дубликатов между обучением и оценкой, затем просмотрите небольшую выборку после точной предобработки программы. Для текста проверьте tokenizer, разделители, усечение и позиции, по которым вычисляются потери. Для изображений проверьте размеры и преобразования, применяемые к категориям.
Пример подготовки: возьмите несколько репрезентативных примеров из каждой категории, отобразите их форму после преобразования и вручную проверьте ожидаемую цель. Затем выполните полный проход по циклу обучения и оценки. Этот метод ищет ошибки данных или их подключения; он не позволяет судить о конечном качестве модели.
Выбрать параметры, которые вы обучаете
Полный fine-tuning обновляет все параметры, предусмотренные вашей моделью. Такой метод, как LoRA, сохраняет базовые веса и обучает дополнительные матрицы низкого ранга в выбранных модулях. Этот выбор сокращает число обучаемых параметров, но не устраняет необходимость загружать базовую модель и обрабатывать её активации.
Зафиксируйте целевые модули, обучаемые параметры и любые дополнительные сохраняемые слои. Для LoRA ранг входит в конфигурацию, подлежащую сравнению; его недостаточно, чтобы предсказать качество. С самого начала убедитесь, что обновление действительно изменяет ожидаемые параметры. При экспорте адаптер должен оставаться связанным с базовой моделью и её точной версией.
Рассчитать размер одного полного шага обучения
Проверьте этап, включающий вычисление потерь, обратное распространение и обновление оптимизатора. Модель, помещающаяся в памяти при загрузке, может превысить доступную ёмкость на этом этапе. Выполняйте измерение с репрезентативной длиной входа и микробатчем. Точность, состояния оптимизатора и фактически обучаемые параметры входят в оценку.
Накопление градиентов позволяет организовать обновление на основе нескольких микробатчей; документируйте их количество и нормализацию потерь. Activation checkpointing обменивает часть дополнительных вычислений на меньшее число сохраняемых активаций. Проверяйте эти опции по отдельности, прежде чем их сочетать. Они меняют ход эксперимента и должны быть указаны в отчёте о результатах.
Сохраняйте CUDA, ROCm и распределённые вычисления в протоколе
Проверьте совместимость модели, расширений и метода адаптации с выбранным бэкендом. На NVIDIA подготовьте цепочку CUDA; на AMD — цепочку ROCm. Смена платформы требует повторных проверок запуска и качества. Сохраняйте фактически использованные версии, а не предполагайте, что среда с тем же названием даёт то же самое выполнение.
В DistributedDataParallel каждый процесс работает с репликой модели, а градиенты синхронизируются. Эта стратегия не разделяет веса между памятью GPU автоматически; также необходимо настроить распределение данных. Если ваша цель — уместить более объёмное состояние, рассмотрите стратегию, которая распределяет это состояние, и проверьте её ограничения, прежде чем увеличивать число батчей.
Упорядочивание вариантов и итоговое решение
Присвойте идентификатор каждому эксперименту и меняйте только тот набор параметров, который вы можете объяснить. Сохраняйте одинаковую процедуру оценки между вариантами, включая используемые seed, бюджет обучения и данные. Записывайте также прерванные или недействительные запуски: исключение их без объяснения затрудняет интерпретацию сравнения.
Планируйте аренду на 3, 7 или 30 дней вокруг отдельных фаз: начальная проверка, эксперимент, оценка, возобновление и экспорт. Оставьте запас на перечитывание чекпоинта в новом процессе. В конце передайте модель или адаптер, её конфигурацию, сравнительные результаты и наблюдаемые ограничения. Вы сохраняете автономию в выборе обработок; Kernodeck не проводит инспекцию их содержимого.