Как данные разрушили архитектуру: история эксперимента LLM Analysis

Вот уже несколько недель работаю над проектом LLM Analysis — пытаюсь понять, почему эксперты в модели мешают больше, чем помогают. Стартовал с вопроса, который казался простым: архитектура двухфазной модели работает плохо потому, что неправильно спроектирована, или потому, что неправильные данные?
Тестировал на трёх масштабах моделей (1B, 3B, и крупнее) — везде одна картина. PPL и downstream качество разбегаются: модель хорошо предсказывает токены, но плохо решает задачи. Эксперт обучается как на тексте — выучивает “как выглядит математический текст”, а не “как решать задачи”.
Собрал экспертную панель. Предложили три стратегии: - Task-Aligned — переучить экспертов на правильном формате (CoT/QA данные) - LoRA Experts — адаптеры поверх MLP вместо полной переучки - Progressive Growth — расширение модели с нуля, проверить, растёт ли она вообще
Начал с самого простого: взял 7473 тренировочных примера из GSM8K и сгенерировал собственный CoT — рассуждения модели, а не человека. Это фактически self-distillation: модель учит саму себя через специализированный модуль.
Результат? Минус 8.6 процентных пункта деградации от эксперта полностью исчезли, и ещё плюс 1.1pp к точности! Проблема была в данных, не в архитектуре.
Ключный момент — формат имеет значение. Исходные эксперты тренировались на "Problem: {q}\nSolution: {a}", а при инференсе модель видит "Question: ...\nAnswer: ...". Мисматч в формате разрушил эффект обучения. Добавил выравнивание формата, и всё встало на место.
Теперь запустил Phase 21 — масштабируемая версия подхода. На 500 шагах тренировки достигли 77.5% точности — текущий рекорд проекта. Параллельно тестирую регуляризацию и генерацию разнообразных рассуждений.
Вывод неожиданный: архитектура была идеальна с самого начала. Просто подкармливали её мусором. Когда дал чистые данные — всё заработало. Иногда лучший рефакторинг — это не переписать код, а переписать данные 😄
Метаданные
- Session ID:
- grouped_llm-analisis_20260223_2210
- Branch:
- HEAD
- Dev Joke
- Почему Bun лучший друг разработчика? Потому что без него ничего не работает. С ним тоже, но хотя бы есть кого винить