Обучение и адаптация LLM
Fine-tuning против RAG и промптинга, LoRA/QLoRA, катастрофическое забывание, выравнивание SFT/RLHF/DPO, instruction tuning и стратегии промптинга.
11 вопросов
MiddleДизайнОчень частоВаша команда выпускает внутреннего ассистента, и в один спринт приходят три требования. Первое: отвечать по вики регламентов, которую комплаенс правит каждую неделю. Второе: каждый ответ должен приходить строгим объектом, который разбирает соседний сервис, без прозы вокруг. Третье: писать в корпоративном стиле, который ревьюеры узнают на глаз, но полностью описать не могут. Ограничения: бюджет позволяет не более одного обучающего прогона в квартал, владельцы вики не станут ждать квартал ради правки, а ответы должны ссылаться на страницу вики. Выберите RAG, fine-tuning или prompt engineering под каждое требование и обоснуйте выбор.
Ваша команда выпускает внутреннего ассистента, и в один спринт приходят три требования. Первое: отвечать по вики регламентов, которую комплаенс правит каждую неделю. Второе: каждый ответ должен приходить строгим объектом, который разбирает соседний сервис, без прозы вокруг. Третье: писать в корпоративном стиле, который ревьюеры узнают на глаз, но полностью описать не могут. Ограничения: бюджет позволяет не более одного обучающего прогона в квартал, владельцы вики не станут ждать квартал ради правки, а ответы должны ссылаться на страницу вики. Выберите RAG, fine-tuning или prompt engineering под каждое требование и обоснуйте выбор.
Меняющиеся факты — это RAG: поиск подставляет контекст на инференсе и даёт ссылку. Строгая форма вывода — prompt engineering с ограниченным декодированием. Стиль — случай fine-tuning: поведение, показанное примерами, а не факт.
Типичные ошибки
- ✗Берут fine-tuning, чтобы добавить факты, хотя он их не обновляет и не цитирует
- ✗Считают RAG способом привить стиль или дисциплину вывода вместо подачи контекста
- ✗Полагают, что длинный контекст эквивалентен обновлению весов ради стабильного поведения
Уточняющие вопросы
- →Как оценивать эти три направления по отдельности, а не как одну систему?
- →Что меняется, если вики перерастёт объём контекстного окна?
JuniorТеорияЧастоЧто такое instruction tuning и чем его датасет отличается от данных предобучения?
Что такое instruction tuning и чем его датасет отличается от данных предобучения?
Instruction tuning — это supervised fine-tuning на парах инструкция-ответ, чтобы модель выполняла запрос, а не просто продолжала текст. Данные отобраны и размечены — тысячи примеров против триллионов сырых токенов предобучения.
Типичные ошибки
- ✗Называют instruction tuning ещё одним проходом предобучения, а не supervised fine-tuning
- ✗Считают, что SFT-набор обязан быть огромным, хотя здесь отбор важнее объёма
- ✗Путают шаблон промпта на инференсе с реальным обновлением весов
Уточняющие вопросы
- →Как качество написанных ответов ограничивает потолок дообученной модели?
- →Почему обучение с подкреплением на обратной связи человека (
RLHF) идёт после instruction tuning?
MiddleТеорияЧастоКак проявляется катастрофическое забывание после полного fine-tuning и что его смягчает?
Как проявляется катастрофическое забывание после полного fine-tuning и что его смягчает?
Обновление перезаписывает веса, несущие общие способности — модель выигрывает на новой задаче, теряя следование инструкциям или рассуждение. LoRA замораживает базу и запирает изменение в адаптере; replay-данные и меньший learning rate уменьшают шаг.
Типичные ошибки
- ✗Оценивают fine-tuning только по целевой задаче, не перепроверяя общие способности
- ✗Думают, что забывание бьёт лишь по фактам, хотя следование инструкциям тоже деградирует
- ✗Поднимают learning rate или число эпох, чтобы быстрее вбить новое поведение
Уточняющие вопросы
- →Какие отложенные наборы вы бы перепрогнали, чтобы поймать забывание до релиза?
- →Сколько replay-данных из исходной смеси обычно хватает на практике?
MiddleТеорияЧастоВ адаптерном методе LoRA что обучается, что остаётся замороженным и что задаёт ранг?
В адаптерном методе LoRA что обучается, что остаётся замороженным и что задаёт ранг?
Базовые веса заморожены; LoRA обучает низкоранговое произведение B·A рядом с выбранными проекциями, обычно attention. Ранг r задаёт ёмкость адаптера. Градиенты и состояние оптимизатора есть только у адаптера, а B·A потом вливается в базу.
Типичные ошибки
- ✗Думают, что LoRA обновляет базовые веса, а не отдельную низкоранговую пару
- ✗Приписывают экономию памяти только числу параметров, забывая про оптимизатор и градиенты
- ✗Считают, что адаптер обязан остаться отдельным, упуская слияние B·A в базу
Уточняющие вопросы
- →Как выбирать ранг r и что ломается, когда он сильно занижен?
- →Почему слияние нескольких адаптеров в один базовый вес создаёт интерференцию задач?
MiddleТеорияЧастоВ обучении с подкреплением на обратной связи человека (RLHF) откуда берутся пары предпочтений и что такое reward hacking?
В обучении с подкреплением на обратной связи человека (RLHF) откуда берутся пары предпочтений и что такое reward hacking?
Аннотаторы ранжируют несколько ответов на один промпт, давая пары предпочтений. На них обучается reward model, чтобы оценивать ответ как человек, а затем политика оптимизируется под эту оценку. Reward hacking — это эксплуатация изъянов прокси политикой.
Типичные ошибки
- ✗Думают, что reward model предсказывает токены, а не оценку человеческого предпочтения
- ✗Считают предпочтения абсолютными оценками вместо сравнений ответов на один промпт
- ✗Принимают растущую кривую награды за доказательство роста реального качества ответов
Уточняющие вопросы
- →Зачем при оптимизации используют KL-штраф относительно референсной политики?
- →Как обнаружить reward hacking, который сама кривая награды скрыла бы?
SeniorДизайнЧастоВы дообучили ассистента на диалогах поддержки, и команда хочет его выкатить. Всё имеющееся доказательство — что train loss упал и что троим инженерам понравились примеры ответов. У вас есть продакшен-трафик, бюджет разметки примерно на 2000 человеческих суждений и базовая модель, всё ещё обслуживающая live. Спроектируйте оценку, которая действительно обосновала бы релиз: что вы откладываете, с чем сравниваете, как используете более сильную модель как автоматического судью и как ставите онлайн-эксперимент. Для каждого метода назовите отказ, из-за которого он объявит победу, которой нет.
Вы дообучили ассистента на диалогах поддержки, и команда хочет его выкатить. Всё имеющееся доказательство — что train loss упал и что троим инженерам понравились примеры ответов. У вас есть продакшен-трафик, бюджет разметки примерно на 2000 человеческих суждений и базовая модель, всё ещё обслуживающая live. Спроектируйте оценку, которая действительно обосновала бы релиз: что вы откладываете, с чем сравниваете, как используете более сильную модель как автоматического судью и как ставите онлайн-эксперимент. Для каждого метода назовите отказ, из-за которого он объявит победу, которой нет.
Заморозьте отложенный набор, которого дообучение не видело, и сравнивайте с базовой моделью. Сочетайте человеческие суждения, модель-судью для масштаба и онлайн A/B. У судьи есть смещение позиции, набор расходится с продакшеном, а A/B нужен трафик.
Типичные ошибки
- ✗Принимают падение train loss за доказательство роста качества ответов
- ✗Оценивают на промптах, пересекающихся с обучающим набором, что гарантирует победу
- ✗Доверяют автоматическому судье, не сверив его с людьми и не проверив его смещения
Уточняющие вопросы
- →Как откалибровать судью-модель по человеческой разметке, прежде чем ей доверять?
- →Какие защитные метрики остановят онлайн-эксперимент, даже если основная метрика выросла?
JuniorТеорияИногдаКогда помогают few-shot примеры и chain-of-thought промптинг и чего стоит CoT?
Когда помогают few-shot примеры и chain-of-thought промптинг и чего стоит CoT?
Zero-shot подходит для простых задач. Few-shot примеры фиксируют формат и краевые случаи, помогая при необычной форме ответа. Chain-of-thought просит промежуточные шаги и помогает рассуждению, но лишние токены стоят задержки и денег.
Типичные ошибки
- ✗Думают, что few-shot примеры дают новые знания, а не показывают формат
- ✗Включают chain-of-thought на тривиальных задачах, где он лишь добавляет токены и задержку
- ✗Забывают, что сгенерированные токены рассуждения тарифицируются и замедляют ответ
Уточняющие вопросы
- →Как порядок примеров внутри few-shot промпта меняет ответ?
- →Когда меньшая модель с chain-of-thought хуже большей без него?
JuniorТеорияИногдаЧто класть в системный промпт и почему инструкция после длинного контекста работает лучше?
Что класть в системный промпт и почему инструкция после длинного контекста работает лучше?
Системный промпт держит стабильные правила — роль, тон, формат, политику отказа, — а не данные запроса. Внимание надёжнее на начале и конце контекста, поэтому инструкция перед большим документом теряется; её повтор после помогает.
Типичные ошибки
- ✗Пихают данные конкретного запроса в системный промпт вместо пользовательского хода
- ✗Считают внимание равномерным, будто место инструкции не влияет
- ✗Забывают, что токены системного промпта входят в контекст и тарифицируются
Уточняющие вопросы
- →Как измерить эффект потери середины контекста на своих промптах?
- →Когда правила лучше перенести из системного промпта в схему инструмента?
MiddleДебаггингИногдаДообучение на 500 примерах теперь дословно повторяет обучающий набор и потеряло общие способности — разберитесь и почините.
Дообучение на 500 примерах теперь дословно повторяет обучающий набор и потеряло общие способности — разберитесь и почините.
Это переобучение и забывание на крошечном наборе — train loss почти ноль, а отложенный лосс растёт после первой эпохи. Урежьте до одной-двух эпох с early stopping, снизьте learning rate, перейдите на LoRA и разбавьте данные replay.
Открыть задачу →Типичные ошибки
- ✗Принимают почти нулевой train loss за успех, а не за заучивание
- ✗Смотрят только на целевую метрику, пока общий бенчмарк тихо обваливается
- ✗Добавляют эпохи или learning rate на наборе из 500 примеров вместо уменьшения обновления
Уточняющие вопросы
- →Как выделять отложенную часть, когда размеченных примеров всего 500?
- →Почему умеренный ранг LoRA часто обгоняет полный fine-tuning на таких малых данных?
MiddleТеорияИногдаВ методе дообучения QLoRA что квантуется в 4 бита, что получает градиенты и почему это влезает в одну GPU?
В методе дообучения QLoRA что квантуется в 4 бита, что получает градиенты и почему это влезает в одну GPU?
Замороженные базовые веса хранятся в 4-битном NF4 и поблочно деквантуются на прямом проходе. Градиенты идут только в LoRA-адаптеры в высокой точности. Замороженная база убирает состояние оптимизатора, что и вмещает прогон в одну GPU.
Типичные ошибки
- ✗Считают квантованной частью адаптеры, а не базовые веса
- ✗Полагают, что 4-битное хранение означает 4-битную арифметику, упуская поблочное деквантование
- ✗Приписывают эффект только квантованию, хотя замороженная база убирает и состояние оптимизатора
Уточняющие вопросы
- →Какую просадку качества вы бы замерили перед выкаткой тюна на 4-битной базе?
- →Почему слить адаптер обратно в 4-битный базовый вес непросто?
SeniorДизайнИногдаВы отвечаете за выравнивание ассистента, у которого уже есть сильный instruction-tuned чекпоинт. Есть 40 тысяч человеческих сравнений предпочтений, небольшая команда разметки, способная их пополнять, один обучающий кластер, разделяемый с другими командами, и релиз раз в шесть недель. Руководство хочет, чтобы ассистент надёжно отказывал в оговорённом наборе запросов и перестал растекаться. Разложите пайплайн выравнивания целиком. Затем сравните классический маршрут — отдельная reward model плюс стадия policy gradient вроде PPO — с прямой оптимизацией предпочтений (DPO) на тех же сравнениях: что именно DPO убирает из пайплайна, чем вы за это платите и какой маршрут выбрали бы здесь.
Вы отвечаете за выравнивание ассистента, у которого уже есть сильный instruction-tuned чекпоинт. Есть 40 тысяч человеческих сравнений предпочтений, небольшая команда разметки, способная их пополнять, один обучающий кластер, разделяемый с другими командами, и релиз раз в шесть недель. Руководство хочет, чтобы ассистент надёжно отказывал в оговорённом наборе запросов и перестал растекаться. Разложите пайплайн выравнивания целиком. Затем сравните классический маршрут — отдельная reward model плюс стадия policy gradient вроде PPO — с прямой оптимизацией предпочтений (DPO) на тех же сравнениях: что именно DPO убирает из пайплайна, чем вы за это платите и какой маршрут выбрали бы здесь.
Сначала SFT на демонстрациях. Далее RLHF обучает отдельную reward model на парах предпочтений и оптимизирует политику через PPO под неё. DPO убирает reward model и RL-цикл, обучаясь прямо на тех же парах — дешевле, но без живой награды.
Типичные ошибки
- ✗Считают, что DPO выбрасывает данные предпочтений, а не reward model и RL-цикл
- ✗Путают порядок стадий, ставя SFT после стадии оптимизации предпочтений
- ✗Считают DPO строго лучшим, игнорируя потерю проверяемой reward model
Уточняющие вопросы
- →Как KL-штраф относительно референсной политики меняет допустимый дрейф каждого маршрута?
- →Какой отказ заставил бы вас вернуться к reward model после выката прямого маршрута?