
Привет, уважаемые Хаброжители ;) Сегодня мы поговорим о данных, которые представляют собой весьма специфичный случай, а именно о «шумных» данных. Предлагаю вам поразмыслить на тему обратного инжиниринга применительно к таким данным и попытаться поставить всё с ног на голову. О чем речь: не так давно мы написали модель машинного обучения по предсказанию одного тренда и пытались улучшить ее предсказания, применяя различные модификации фильтра Калмана (Kalman Filter, EnKF, Kalman Filter + Numba (Just-in-Time), EnKF + Numba (Just-in-Time)). Другими словами, фильтровали обучающую и тестовую выборку в надежде поднять скор на модели, выделив более качественный сигнал. При этом получили, в целом, весьма хорошее решение. И тут мы начали размышлять: «Так, пааажди… Мы же просто учились всегда на отфильтрованных данных, почему ускорение кода даёт нам поднятие скора на модели, и более того, более качественную балансировку предсказания для наших классов?» Если вам интересно, что у нас получилось, то приглашаю под кат.
Первые тычки и неожиданности
Впервые я заметил такое явление у World2Vec. Если открыть его документацию с описанием атрибутов (именно хардкорную), то там можно найти параметр n_jobs
. По умолчанию он всегда установлен в 1, но если поднять его до 4, то скор модели увеличивается на 10-15 %. Весьма неожиданно и очень странно. Это навело меня на мысль, что есть очень тонкая «спекулятивная» прослойка, которая позволяет просто пересобирать данные по «нужным» коробкам и подавать их в модель. Я полез в пыльную документацию по Word2Vec и начал искать подтверждение этой мысли. Кое что я там нашёл, но, опять же, не всё. Стал копать дальше.
Провёл тесты с нашими данными и фильтрами Калмана и Numba, и отметил подобную закономерность. Особенно это заметно в случае с EnKF. Вообще, EnKF является расширением классического фильтра Калмана для нелинейных систем. Вместо работы с одной оценкой состояния, EnKF использует ансамбль возможных состояний системы. Это позволяет, во-первых, работать с нелинейными моделями; во-вторых, избежать вычисления матрицы ковариации для больших систем; в-третьих, распараллелить вычисления. EnKF особенно полезен в задачах, где система имеет высокую размерность или нелинейную динамику. Примеры модельных тестов я привожу на картинках (причём, это проявилось только на ансамбле, а учитывая, что все большие языковые модели — так или иначе ансамбли, это наводит на некоторые мысли).
Натурные эксперименты по работе моделей с фильтрами и без, с оптимизацией и без (видно, что есть более качественное состояние модели именно для ансамблевого фильтра Kalmana):




Всё это навело меня на мысль, что пора задаться вопросом: «Как "правильно" подавать данные при оптимизации моделей машинного обучения с точки зрения распараллеливания? Есть ли какие-то рабочие схемы или алгоритмы?» Вы скажете, что у нас есть SGD (Stochastic Gradient Descent) + Data Parallelism, Batch Normalization, Federated Learning, Pipeline Parallelism, Tensor Fusion, ZeRO-Offload, Deepspeed, Ring AllReduce, NCCL (NVIDIA Collective Communications Library), Gradient Accumulation, Dynamic Batch Size Scaling. Это всё прекрасно и замечательно, но факт остаётся фактом: мы приходим к новой реальности. Вернее, так: модели машинного обучения в целом начинают достигать своей пиковой производительности, и в дело вступает оптимизация.
Почему я делаю такой вывод: как-то мы проводили эксперимент, в котором решали NLP-задачку с помощью Qwen-2.5 и T5. Казалось бы, распиаренный китайский монстр должен был поднять скор до высочайшей вершины. Но нет, старушка T5 влёт его обошла на нашем датасете. Подумали, что это баг, попили чайку, обсудили пару философских тем и прогнали модель снова и снова, на разных машинах, на разных сборках. Результат получился тот же.
Да, возможно, удачный датасет. Но то, что сейчас происходит на рынке, говорит о том, что вектор мы нащупали точный. Все большие языковые модели начинают упираться в «личную» производительность. Недавний провал GPT-5 и многочисленные итерации QWEN по снижению объёмов самой модели и памяти говорит о том, что мы приходим к суровым временам оптимизации.
Вероятно, что будущее уже не столько за триллиардами параметров, а за разработкой алгоритмов оптимизации и поиском новых архитектур моделей, данных и, что немаловажно, способов подачи данных в модель. По сути, мы уже накопили критическую массу и начинаем пересобирать модели изнутри. Наступает «гаражная» эпоха, со всеми этими неповторимыми оригиналами, а не жалкими поделками. В общем, тенденция более чем прозаичная. Например, мы стали применять вместо нейронок архитектуры KAN и TAN. Более того, недавно вышла статья «AlphaGo Moment for Model Architecture Discovery», в которой (тезисно):
После выхода AlphaEvolve ученые всё больше и больше говорят о том, что пора нам переходить от NAS к ASI4AI: то есть от классического Neural Architecture Search, ограниченного человеческим фактором, к ИИ, который улучшает ИИ, который улучшает ИИ, который... Ну, вы поняли.
История действительно перспективная, ведь способности ИИ, по законам масштабирования, растут экспоненциально, но в то же время скорость исследований остаётся линейной из-за ограничений человеческого внимания и времени. Парадокс.
Сама архитектура ASI-ARCH из статьи состоит из трёх модулей: Researcher, Engineer и Analyzer. Один генерирует гипотезы и «ТЗ», другой пишет код и собирает метрики, третий анализирует результаты.
Учёные провели 1 773 эксперимента на 20 000 GPU-часах и открыли закон масштабирования, который гласит, что количество обнаруженных архитектур растёт линейно по мере увеличения количества ресурсов. В ходе экспериментов обнаружили 106 новых SOTA-архитектур (это линейная зависимость). Под SOTA тут, кстати, подразумеваются именно линейные модели (НЕ трансформеры), которые демонстрируют лучшие метрики в своём классе. При этом в итоговых архитектурах действительно присутствуют какие-то непривычные конструкции.
И тут меня посетила мысль, что не обязательно добиваться супер-скора на модели путём отработки решений в лоб. Достаточно пересобрать способ подачи данных входе и поиграться именно с оптимизацией представления данных.
К подобным умозаключениям уже приходит всё больше исследователей. Например:
Вчера вышла любопытная статья (https://www.theregister.com/2025/08/13/gpt_5_cost_cutting/) на The Register раскрывает ключевую стратегию, лежащую в создании GPT-5: это не столько развитие новых возможностей, сколько способ экономии ресурсов.
Что нового?
? Композиция из моделей и роутер — вместо одной модели GPT-5 — система минимум из двух моделей: лёгкой и тяжёлой, плюс роутер, который выбирает, какую использовать в зависимости от запроса. Это снижает нагрузку и экономит вычисления.
? Автоматическое отключение рассуждений — reasoning включается только при необходимости. Бесплатные пользователи не могут управлять этим процессом — меньше вычислений, меньше токенов, ниже затраты.
? Отказ от старых моделей — временное отключение GPT-4o. Позже модель вернули для платных пользователей, но общее сокращение числа моделей — часть экономии.
? Ограниченный контекст — 8 000 токенов бесплатно и до 128 000 в Plus/Pro.
✔️ Почему эффективность стала ключевым фактором
ChatGPT — это 700 млн активных пользователей в неделю, но платных всего ~3%.
Масштаб колоссальный, но вместе с ним — и проблема: огромные расходы на вычисления.
? Главный козырь OpenAI — дистрибуция. Для большинства людей за пределами AI-сферы ChatGPT = искусственный интеллект, так же как Google = поиск. Но такое лидерство дорого обходится.
? При этом OpenAI нужно постоянно искать новые деньги, чтобы поддерживать и обучение, и инференс. Да, партнёрство с Microsoft помогает, но ситуация сложнее, чем у конкурентов вроде Google — у них стабильная прибыль, собственные дата-центры и TPUs.
? На этом фоне логично, что в GPT-5 сделали сильный упор на эффективность — чтобы снизить затраты и сохранить конкурентное преимущество.