NVIDIA Kumo Tabular устанавливает новый рубеж точности и эффективности в прогнозировании по табличным данным
Основные моменты (кратко)
NVIDIA Kumo Tabular, часть коллекции структурированных моделей NVIDIA Kumo, — это открытая базовая модель для табличных данных, теперь доступная на Hugging Face. Получив таблицу размеченных строк, она предсказывает метки новых строк за один прямой проход — без обучения, настройки и конструирования признаков — как для классификации, так и для регрессии. Модель предварительно обучалась только на искусственных данных, доступна в трёх размерах (от 28 до 215 млн параметров), работает через нашу библиотеку с открытым исходным кодом и выпускается по лицензии OpenMDW-1.1, допускающей коммерческое использование. Она занимает первое место в четырёх бенчмарках: TabArena, BeyondArena, TALENT и ScoringBench.
- Код модели: https://github.com/NVIDIA/structured-data-models
- Веса модели: https://huggingface.co/nvidia/Kumo-Tabular
Переход к базовым моделям для табличных данных
Табличные данные лежат в основе машинного обучения в корпоративной сфере. Записи о клиентах, транзакции, журналы датчиков, страховые требования и заказы хранятся в таблицах, а прогнозирование оттока, дефолта, спроса или цены по ним относится к наиболее распространённым задачам машинного обучения в промышленности. Два десятилетия эта работа выполнялась с помощью градиентно-бустинговых деревьев, и они хорошо справлялись. Однако жизненный цикл таких моделей почти не изменился. Каждый новый вопрос означает сбор меток, конструирование признаков, подбор гиперпараметров, валидацию и развёртывание модели, которая ничего не знает о таблицах в целом и обучается для каждой задачи с нуля.
Большие языковые модели продемонстрировали иной подход к работе с новыми задачами. Получив несколько примеров в запросе, предварительно обученная модель решает задачу, не обновляя ни одного веса. Это обучение в контексте, и оно так же применимо к таблицам, как и к тексту: модель, предварительно обученная на миллионах таблиц, может прочитать размеченную таблицу как контекст и напрямую предсказать метки новых строк.
Сегодня мы выпускаем NVIDIA Kumo Tabular (GitHub, HuggingFace) — открытую базовую модель для классификации и регрессии табличных данных. Получив таблицу с размеченными строками и строки, для которых требуются прогнозы, Kumo Tabular возвращает вероятности классов или числовые прогнозы за один прямой проход.
Как работает Kumo Tabular
Kumo Tabular — это Transformer, построенный с учётом структуры таблицы и использующий внимание к столбцам, строкам и контексту, как описано в TabICL и TabPFN. Для прогнозирования метки модель должна сделать три вещи: (1) понять, что означает каждое значение в пределах своего столбца, (2) понять, как столбцы строки взаимодействуют друг с другом, и (3) сопоставить контекстные строки с известными метками и строки запроса с неизвестными метками. Kumo Tabular делает это следующим образом:
Встраивание ячеек: Группа ячеек становится токеном. Числовые и категориальные значения проходят через признаки Фурье — синусы и косинусы обучаемых частот — с отдельными весами для каждого типа. Пропущенные значения не требуют импутации и обрабатываются особым образом. Наконец, каждый токен в контексте получает встраивание метки.
Встраивание строк: Затем мы превращаем каждую строку во встраивание, многократно чередуя два вида внимания. Внимание к столбцам смотрит вниз по одному столбцу и с помощью индуцированного self-attention обучается понимать значение величины в распределении её столбца — например, является ли 42 обычным или экстремальным значением. Поэтому его стоимость растёт линейно с числом строк. Внимание к строкам смотрит на токены одной строки и изучает взаимодействие признаков, используя вращательные позиции для различения столбцов. К каждой строке присоединяются четыре обучаемых токена [CLS], которые служат итоговым представлением строки. После этого сжатия строк стоимость финального этапа больше не зависит от числа столбцов.
Обучение в контексте: Финальный Transformer работает со встраиваниями строк. Контекстные строки обращают внимание друг на друга, тогда как строки запроса обращают внимание только на контекстные строки. Поэтому каждый прогноз зависит только от контекста и самой строки, а не от того, какие другие строки оцениваются одновременно с ней. Поскольку контекст никогда не обращается к запросам, его ключи и значения вычисляются один раз и могут использоваться повторно для последующих прогнозов. Для строк запроса применяется Test-GQA, уменьшающий кэш, который считывает каждый прогноз. Специальная голова преобразует каждую строку запроса в вероятности классов для классификации и 999 квантилей для регрессии, из которых получают точечный прогноз и оценку неопределённости.
Температура внимания с учётом длины: Внимание Softmax рассеивается по мере роста числа ключей. Внимание, сфокусированное на нескольких сотнях строк, может раствориться на десятках тысяч строк — именно это происходит, когда таблица на этапе вывода намного больше типичной обучающей таблицы. Поэтому Kumo Tabular масштабирует каждый запрос температурой, растущей логарифмически с числом ключей, причём коэффициент обучается отдельно для каждой головы внимания. В результате внимание сохраняет фокус при увеличении длины или ширины таблиц.
Как создавалась Kumo Tabular
Kumo Tabular предварительно обучается исключительно на искусственных таблицах. Каждая обучающая таблица выбирается из структурной причинной модели (SCM) в шесть этапов, показанных ниже:
Сначала мы создаём конфигурацию всей таблицы — от её размера и задачи до механизмов и пропусков. Затем случайный причинный граф связывает скрытые переменные, вычисляемые от корневых узлов к листьям с помощью случайно выбранных функций в каждом узле (например, линейных преобразований, небольших нейронных сетей, деревьев или гауссовских процессов). Некоторые узлы становятся числовыми или категориальными столбцами, один становится целевой переменной, а остальные остаются скрытыми — подобно неизмеренным причинам, лежащим в основе реальных данных. Постобработка коррелирует группы столбцов, обрезает выбросы и добавляет пропущенные значения, а быстрая проверка ансамблем деревьев отбрасывает таблицы, в которых отсутствует обучаемый сигнал. Поскольку генератор является процедурным сэмплером, а не обученной моделью, он создаёт бесконечный поток таблиц — каждая с новым графом и новыми механизмами.
Реальные таблицы неидеальны, поэтому мы добавили в генератор больше характерных для них несовершенств. Значения пропадают по нескольким шаблонам, некоторые признаки огрубляются так, что одинаковые строки могут иметь разные метки, отдельные категориальные столбцы содержат множество уровней, а цели регрессии могут иметь тяжёлые хвосты. Модель, увидевшая миллионы таких таблиц, учится справляться с этими несовершенствами без какой-либо очистки данных.
На каждой искусственной таблице модель видит большую часть строк вместе с их метками в качестве контекста и учится предсказывать метки оставшихся строк, используя кросс-энтропийную функцию потерь для классификации и квантильную функцию потерь для регрессии. Классификация и регрессия обучаются как отдельные модели. Как и в TabICLv2, обучение проходит в три этапа. На первом и самом продолжительном этапе используются таблицы размером 1 024 строки и до 100 столбцов, и модель обучается понимать, как выглядят таблицы. На втором этапе размер контекста варьируется от 400 до 10 240 строк, а на третьем он увеличивается до 60 000 строк — по-прежнему с числом столбцов до 100. Всего Kumo Tabular-Small/Medium/Large увидели около 35/71/137 млн искусственных таблиц.
Рецепт обучения и генераторы искусственных данных будут выпущены в ближайшее время.
Производительность
Мы запустили все три размера Kumo Tabular с настройками по умолчанию на полном рейтинге TabArena, включающем настроенные градиентно-бустинговые деревья, AutoGluon и новейшие базовые модели для табличных данных. Kumo Tabular заняла первое место в общем зачёте с рейтингом ELO 1950 и работала в 17 раз быстрее LimiX-2 при единой процедуре оценки на RTX 6000 Pro. Все три размера модели устанавливают новый state of the art на фронте Парето «точность — эффективность»:
Мы также оценили Kumo Tabular на BeyondArena, TALENT и ScoringBench. На BeyondArena Kumo Tabular достигла ELO 1418 и показателя улучшения 7,78 %, заняв первое место в рейтинге. На TALENT она заняла первое место в общем рейтинге по точности классификации, log-loss классификации и RMSE регрессии со средними рангами 6,67, 3,98 и 4,22. В ScoringBench — бенчмарке для прогнозирующих распределений — Kumo Tabular-Large и Medium заняли первое и второе места по среднему рангу.
Ограничения
Kumo Tabular работает только с числовыми и категориальными столбцами, тогда как текст, изображения и временные метки можно преобразовать в признаки с помощью встроенных рецептов предварительной обработки. Один прямой проход поддерживает до 10 классов, а библиотека расширяет это число до любого количества классов с помощью кодов с исправлением ошибок. Точность может снижаться на таблицах, значительно выходящих за пределы обучающих диапазонов, или когда строки запроса имеют распределение, отличное от распределения контекстных строк. Поэтому, как и для любой прогнозирующей модели, перед развёртыванием проверяйте точность и калибровку на собственных отложенных данных.
Демонстрация
Kumo Tabular работает через недавно выпущенную NVIDIA GPU-нативную библиотеку для structured-data-models. При первом использовании библиотека загружает веса с Hub и предоставляет предварительную обработку, ансамблирование и поддержку множества классов, использованные в наших оценках. Для перехода от pandas.DataFrame к прогнозу достаточно следующего кода:
import sdm
table = sdm.TableTensor.from_pandas(pd.load_csv(...), device="cuda")
na_mask = table["target"].isnan()
model = sdm.models.KumoTabular(device="cuda")
pred = model(
x_context=table[~na_mask].drop_columns("target"),
y_context=table[~na_mask, "target"],
x_query=table[na_mask].drop_column("target"),
)
Начните создавать решения с Kumo Tabular
Kumo Tabular выпускается по Лицензионному соглашению OpenMDW, версия 1.1. NVIDIA считает, что надёжный ИИ — это общая ответственность, и мы разработали политики и практики, обеспечивающие разработку широкого спектра приложений ИИ. При загрузке или использовании в соответствии с нашими условиями обслуживания разработчики должны работать со своей командой поддержки модели, чтобы убедиться, что эта модель соответствует требованиям соответствующей отрасли и сценария использования, а также учитывает непредвиденное ненадлежащее использование продукта. Сообщайте о качестве модели, рисках, уязвимостях безопасности и других проблемах NVIDIA AI здесь.
- Код модели: https://github.com/NVIDIA/structured-data-models
- Веса модели: https://huggingface.co/nvidia/Kumo-Tabular
Благодарности
Мы благодарим David Holzmüller за существенный вклад в идеи и абляционные исследования Kumo Tabular. Мы благодарим Vignesh Kothapalli за помощь с Kumo Tabular во время его стажировки.
Модели, упомянутые в этой статье 1
Другие материалы этого автора
Сообщество
· Зарегистрируйтесь или войдите, чтобы оставить комментарий
Модели, упомянутые в этой статье 1
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.




