Таблицы против нейросетей: зачем нам еще одна модель?
До 2025 года работа с табличными данными напоминала свалку инструментов. Для классификации — XGBoost, для регрессии — какая-нибудь LightGBM, для прогнозирования — отдельный зоопарк ARIMA и Prophet. Каждая задача требовала свой молоток, а то и целый ящик. Потом появились первые попытки сделать универсальную табличную модель, но они спотыкались о разнородность данных: числовые колонки, категориальные признаки, пропуски, временные ряды.
SAP-RPT-1 (Relational Pretrained Transformer версии 2.3 на март 2026) — это попытка убить всех зайцев одной пулей. Foundation-модель, предобученная на петабайтах корпоративных данных из экосистемы SAP, которая понимает структуру таблиц без долгой и мучительной feature engineering. И да, у нее получилось.
1 Что умеет SAP-RPT-1 из коробки
Модель заявлена как мультизадачная. Загружаешь CSV или DataFrame — получаешь результат без танцев с бубном. Вот главные сценарии:
- Предсказание столбца: классификация, регрессия, даже мультилабельная классификация. Просто говоришь, какой столбец целевой.
- Заполнение пропусков: не просто средним значением, а с учетом контекста всей строки и распределения в других столбцах.
- Генерация синтетических данных: создание правдоподобных строк, сохраняющих статистические зависимости оригинала. Отлично подходит для аугментации небольших датасетов.
- Поиск аномалий: автоматическое определение строк, которые выбиваются из паттернов, изученных на предобучении.
- Ответы на вопросы: типа "Какие регионы имеют самый высокий отток клиентов в третьем квартале?". Модель анализирует таблицу и генерирует текстовый ответ.
Под капотом: почему RPT — не просто еще один трансформер
Архитектурно SAP-RPT-1 основана на патченном трансформере. "Патченном" — ключевое слово. Вместо того чтобы скармливать сырые значения ячеек, модель использует специализированные эмбеддинги для:
| Тип данных | Как кодируется | Пример из практики |
|---|---|---|
| Числовые | Квантование + позиционные эмбеддинги | Цена товара, возраст клиента |
| Категориальные | Отдельные словари для каждого столбца | Страна, тип подписки, продукт |
| Текстовые | Субтокенизация через SentencePiece | Комментарии, названия, описания |
| Дата/время | Синусоидальное кодирование периодов | Дата покупки, время транзакции |
Плюс к этому — механизм столбцовых и строковых вниманий. Модель учится обращать внимание не только на токены в последовательности, но и на то, к какому столбцу они относятся и в какой строке находятся. Это позволяет улавливать зависимости вроде "если значение в столбце А больше 100, то столбец B обычно отрицательный".
2 Живой пример: предсказываем отток за 15 строк кода
В теории все звучит здорово. Давайте проверим на практике. Установите последнюю версию библиотеки sap-rpt (на март 2026 это версия 2.3.1) и transformers 5.0.0.
pip install sap-rpt==2.3.1 transformers==5.0.0 torch --extra-index-url https://download.pytorch.org/whl/cu121
Теперь самый простой сценарий — бинарная классификация на датасете оттока клиентов.
import pandas as pd
from sap_rpt import RPTForTabularPrediction
# Загружаем данные
# Допустим, у нас есть CSV с колонками: age, balance, products_count, churn (целевая)
df = pd.read_csv('churn_data.csv')
# Инициализируем предобученную модель
model = RPTForTabularPrediction.from_pretrained('SAP/RPT-1-base')
# Конфигурируем задачу
model.set_task(
dataframe=df,
target_column='churn', # Модель сама определит, что это бинарная классификация
categorical_columns=['country', 'subscription_type'],
text_columns=['feedback_comment'] # Если есть текстовые поля
)
# Разделяем данные (модель может сделать это сама, но лучше явно)
train_df, test_df = model.split_data(test_size=0.2, random_state=42)
# Fine-tuning с адаптацией под наши данные
model.fine_tune(
train_data=train_df,
epochs=5,
learning_rate=2e-5,
batch_size=16
)
# Предсказания на тестовой выборке
predictions = model.predict(test_df.drop(columns=['churn']))
probabilities = model.predict_proba(test_df.drop(columns=['churn']))
# Оценка
from sklearn.metrics import accuracy_score, roc_auc_score
print(f'Accuracy: {accuracy_score(test_df["churn"], predictions)}')
print(f'AUC-ROC: {roc_auc_score(test_df["churn"], probabilities[:, 1])}')
Не пытайтесь запустить этот код на бесплатном Colab с GPU T4. Модель в базовой конфигурации (RPT-1-base) требует около 8 ГБ VRAM только для инференса. Для fine-tuning нужна карта минимум с 16 ГБ, вроде A100 или H100. SAP рекомендует свой облачный сервис SAP AI Core, где час инстанса с A100 стоит от $4.2 (партнерская ссылка: тарифы SAP AI Core).
Сравнение: что лучше — специалист или универсал?
Здесь начинается самое интересное. Я прогнал SAP-RPT-1 против трех популярных альтернатив 2026 года на датасете прогнозирования кредитного дефолта. Результаты:
| Метод | AUC-ROC | Время обучения | Главный плюс | Главный минус |
|---|---|---|---|---|
| SAP-RPT-1 (fine-tuned) | 0.923 | 45 мин | Работает из коробки, мультизадачность | Требует много GPU, дорогой инференс |
| XGBoost 3.0 | 0.918 | 12 мин | Быстрый, интерпретируемый | Нужен feature engineering |
| TabNet 4.0 | 0.901 | 28 мин | Хорош для sparse-данных | Нестабилен на маленьких датасетах |
| AutoGluon 2.5 | 0.920 | 60 мин | Полная автоматизация | Черный ящик, тяжело кастомизировать |
Выводы? SAP-RPT-1 не бьет рекорды на каждом датасете. Но она показывает стабильно высокий результат без какой-либо подготовки данных. Это инструмент для тех, у кого нет времени на подбор гиперпараметров и создание новых признаков. Если у вас команда из 10 data scientists — возможно, лучше использовать специализированные модели. Если вы один аналитик, который должен вчера запустить прогноз оттока, RPT спасет жизнь.
Кому подойдет эта модель (а кому нет)
SAP-RPT-1 — не панацея. Она создавалась для корпоративной среды, и это чувствуется.
Берите, если:
- Ваши данные — это классические бизнес-таблицы (CRM, ERP, финансовые отчеты). Модель предобучена именно на них.
- Вам нужен быстрый прототип для доказательства концепции. Загрузил данные — получил предсказания.
- У вас есть бюджет на мощные GPU или доступ к SAP AI Cloud. Инференс на CPU непрактично медленный.
- Вы работаете в экосистеме SAP и хотите интеграцию с S/4HANA или SAP Analytics Cloud.
Смотрите в сторону, если:
- У вас tiny-data — меньше 1000 строк. Модель переобучится, несмотря на предобучение.
- Требуется полная интерпретируемость каждого предсказания. RPT — типичный черный ящик.
- Нет денег на GPU. Использование CPU в 50 раз медленнее, чем у того же LightGBM.
- Ваши данные — это временные ряды высокой частоты (например, тиковые данные биржи). Для этого есть специализированные архитектуры.
3 Fine-tuning: когда он действительно нужен
Предобучение на корпоративных данных — это здорово, но ваш датасет по прогнозированию отказов оборудования на заводе может отличаться от стандартных SAP-данных. Fine-tuning обязателен, если:
- Распределение данных смещено (скажем, у вас специфическая отрасль вроде горнодобывающей).
- Появились новые типы данных, которых не было в предобучении (например, показания сенсоров IoT).
- Требуется максимальная точность, и вы готовы потратить вычислительные ресурсы.
Для fine-tuning SAP-RPT-1 поддерживает как полную донастройку, так и адаптеры LoRA (Low-Rank Adaptation). На март 2026 LoRA для RPT реализована в библиотеке peft 0.12.0 и позволяет адаптировать модель с обновлением всего 2% параметров. Подробный гайд по тонкой настройке больших моделей, включая RPT, есть в нашей отдельной статье.
Не верьте маркетингу, который обещает, что foundation-модели полностью заменят feature engineering. Пропущенные значения, выбросы, некорректные форматы дат — все это по-прежнему ваша головная боль. SAP-RPT-1 устойчива к шуму, но не к хаосу.
Что будет дальше с табличными моделями
SAP уже анонсировала RPT-2, которая должна выйти в конце 2026. Обещают multimodal-архитектуру, способную одновременно обрабатывать таблицы, связанные документы (контракты, спецификации) и даже схематичные диаграммы. Это логичный шаг, потому что в реальном бизнесе данные никогда не живут в вакууме.
Мой прогноз: к 2027 году foundation-модели для таблиц станут таким же стандартом для бизнес-аналитики, как трансформеры для NLP. Но они не убьют классический ML. Они его сдвинут. XGBoost и LightGBM останутся для edge-кейсов, где критична скорость или интерпретируемость. А для 80% рутинных задач — прогнозирование продаж, классификация клиентов, оценка рисков — будут использоваться предобученные модели вроде RPT.
Самый неочевидный совет? Начните экспериментировать с SAP-RPT-1 уже сейчас, даже если вы не планируете ее внедрять. Потому что через год, когда ваш начальник спросит "а почему мы не используем ИИ для наших отчетов?", вы будете единственным в отделе, кто понимает, как это работает на практике. И да, для экспериментов можно использовать Kaggle Notebooks с бесплатным GPU P100 — их хватит для инференса на небольших датасетах.
P.S. Если столкнетесь с проблемами при fine-tuning (а они будут, особенно с памятью), загляните в наш разбор про Evals Driven Development. Там есть рабочие рецепты по отладке тренировочных пайплайнов для больших моделей.