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 е типична или екстремна стойност, чрез индуцирано самовнимание. Затова разходът му нараства линейно с броя редове. Вниманието към редовете разглежда токените на един ред и научава как си взаимодействат признаците, като използва ротационни позиции за разграничаване на колоните. Четири научаеми токена [CLS] се присъединяват към всеки ред и служат като негов финален прочит. След това компресиране на реда разходът на финалния етап вече не зависи от броя колони.
Обучение в контекста: Финален трансформер работи върху вгражданията на редовете. Контекстните редове се насочват един към друг, докато редовете на заявката се насочват само към контекстните редове. Следователно всяка прогноза зависи единствено от контекста и от самия ред, а не от това кои други редове се оценяват заедно с него. Тъй като контекстът никога не разглежда заявките, неговите ключове и стойности се изчисляват веднъж и могат да се използват повторно за последващи прогнози. Редовете на заявката използват Test-GQA, което намалява кеша, който всяка прогноза прочита. Глава превръща всеки ред на заявката във вероятности за класовете при класификация и 999 квантила при регресия, от които следват точкова прогноза и оценка на несигурността.
Температура на вниманието, съобразена с дължината: Вниманието softmax се разпределя, когато броят на ключовете нараства. Внимание, което е остро при няколкостотин реда, може да се разтвори при десетки хиляди — точно това се случва, когато таблицата при извеждане е много по-голяма от типичната обучаваща таблица. Затова Kumo Tabular мащабира всяка заявка с температура, която нараства с логаритъма на броя ключове, като коефициентът се научава отделно за всяка глава на вниманието. Резултатът е внимание, което остава остро, когато таблиците стават по-дълги или по-широки.
Как е създаден Kumo Tabular
Kumo Tabular е предварително обучен изцяло върху изкуствени таблици. Всяка обучаваща таблица се извадва от структурен причинно-следствен модел (SCM) в шестте стъпки, показани по-долу:
Първо избираме конфигурация за цялата таблица — от размера и задачата до механизмите и липсващите стойности. След това случайна причинно-следствена графа свързва скрити променливи, оценени от корена към листото чрез случайно избрани функции във всеки възел (напр. линейни преобразувания, малки невронни мрежи, дървета или гаусови процеси). Някои възли стават числови или категориални колони, един става целевата стойност, а останалите остават скрити, подобно на неизмерените причини зад реалните данни. Последващата обработка корелира групи колони, ограничава отклоняващите се стойности и въвежда липсващи стойности, а бърза проверка с ансамбъл от дървета отхвърля всяка таблица без обучаем сигнал. Тъй като генераторът е процедурен семплер, а не обучен модел, той произвежда безкраен запас от таблици, всяка с нова графа и нови механизми.
Таблиците от реалния свят са неструктурирани, затова вградихме повече от несъвършенствата им в генератора. Стойностите изчезват по няколко модела, някои признаци се загрубяват така, че дублиращи се редове могат да имат различни означения, някои категориални колони съдържат много нива, а целевите стойности при регресия могат да имат тежки опашки. Модел, който е видял милиони такива таблици, се научава да се справя с тези несъвършенства без допълнително почистване.
Във всяка изкуствена таблица моделът вижда повечето редове с техните означения като контекст и се учи да прогнозира означенията на останалите редове, като използва загуба на кръстосана ентропия за класификация и квантила загуба за регресия. Класификацията и регресията се обучават като отделни модели. Подобно на TabICLv2, обучението протича на три етапа. Първият и най-дълъг етап използва таблици с 1024 реда и до 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 постига най-високо общо класиране по точност на класификацията, логаритмична загуба при класификация и RMSE при регресия, със средни класирания съответно 6,67, 3,98 и 4,22. В ScoringBench, бенчмарк за прогнозни разпределения, Kumo Tabular-Large и Medium заемат съответно първо и второ място по средно класиране.
Ограничения
Kumo Tabular работи само с числови и категориални колони, докато текст, изображения или времеви отпечатъци могат да бъдат превърнати в признаци чрез вградени рецепти за предварителна обработка. Един проход напред обхваща до 10 класа, а библиотеката разширява това до произволен брой класове чрез кодове за коригиране на грешки на изхода. Точността може да се влоши при таблици, които значително надхвърлят обучаващите диапазони, или когато редовете на заявката идват от различно разпределение от това на контекстните редове. Затова, както при всеки прогнозен модел, проверете точността и калибрирането върху собствени задържани данни преди внедряване.
Демонстрация
Kumo Tabular работи чрез наскоро публикуваната GPU-нативна библиотека на NVIDIA за 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
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.




