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 — це трансформер, побудований з урахуванням структури таблиці, який використовує увагу до стовпців, рядків і контексту, як представлено в TabICL та TabPFN. Щоб спрогнозувати мітку, модель має виконати три дії: (1) зрозуміти значення кожного елемента в межах його стовпця, (2) зрозуміти взаємодію стовпців у рядку та (3) пов’язати контекстні рядки з наявними мітками із запитуваними рядками з невідомими мітками. Kumo Tabular робить це в такий спосіб:
Вбудовування комірок: Група комірок перетворюється на токен. Числові та категоріальні значення проходять через ознаки Фур’є — синуси й косинуси навчених частот — з окремими вагами для кожного типу. Пропущені значення не потребують імпутації та обробляються спеціальним чином. Нарешті, кожен токен у контексті отримує вбудовування мітки.
Вбудовування рядків: Потім ми перетворюємо кожен рядок на вбудовування, кілька разів почергово застосовуючи два типи уваги. Увага до стовпців переглядає один стовпець і навчається розуміти значення елемента в розподілі його стовпця, наприклад, чи є 42 типовим або екстремальним значенням, за допомогою індукованої self-attention. Тому її обчислювальна вартість зростає лінійно з кількістю рядків. Увага до рядків переглядає токени одного рядка та навчається розуміти взаємодію ознак, використовуючи обертальні позиції для розрізнення стовпців. До кожного рядка додаються чотири навчені токени [CLS], які слугують фінальним зчитуванням рядка. Після цього стиснення рядків вартість фінального етапу вже не залежить від кількості стовпців.
Навчання в контексті: Фінальний трансформер працює з вбудовуваннями рядків. Контекстні рядки звертають увагу один на одного, тоді як запитувані рядки звертають увагу лише на контекстні рядки. Тому кожен прогноз залежить лише від контексту та самого рядка, а не від того, які інші рядки оцінюються разом із ним. Оскільки контекст ніколи не переглядає запити, його ключі та значення обчислюються один раз і можуть повторно використовуватися для наступних прогнозів. Для запитуваних рядків використовується 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. Усі три розміри моделі Kumo Tabular встановлюють новий найкращий результат на фронті Парето «точність — ефективність»:
Ми також оцінили 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 тут.
- Код моделі: https://github.com/NVIDIA/structured-data-models
- Ваги моделі: https://huggingface.co/nvidia/Kumo-Tabular
Подяки
Ми дякуємо David Holzmüller за значний внесок ідеями та абляційними дослідженнями в Kumo Tabular. Ми дякуємо Vignesh Kothapalli за допомогу з Kumo Tabular під час його стажування.
Моделі, згадані в цій статті 1
Спільнота
· Зареєструйтеся або увійдіть, щоб залишити коментар
Моделі, згадані в цій статті 1
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.




