Транзакции у пользователя есть. История трат — тоже. Но классические фильтры «прошлый месяц» не показывают, хватит ли денег до зарплаты. Результат — овердрафты, штрафы, стресс. Мы разрабатываем прогностическую модель, которая встраивается в мобильное приложение и закрывает этот разрыв. Модель анализирует паттерны расходов, учитывает сезонность (например, рост трат в праздники) и предупреждает за 5–7 дней до возможного дефицита. Для прогнозирования используем гибридную архитектуру: лёгкая on-device модель на CoreML или TFLite для быстрых предсказаний и серверная для периодического переобучения. Feature engineering включает скользящие средние, детекцию recurring-платежей и календарные признаки. Оценим ваш проект за 1–2 дня — свяжитесь, чтобы обсудить детали.
Архитектура: гибридный подход
Выбор места выполнения предсказаний — ключевое архитектурное решение. Для бюджетного прогнозирования оптимален гибридный вариант: лёгкая квантизованная модель на устройстве для быстрых inline-прогнозов, и полная модель на сервере для периодического переобучения.
| Характеристика | On-device (CoreML/TFLite) | Server-side (Python/MLflow) |
|---|---|---|
| Время инференса | < 5 мс на 30-дневный прогноз | 50–200 мс с учётом сети |
| Зависимость от сети | Нет | Да |
| Персонализация | Только загруженная модель | Полное дообучение |
| Конфиденциальность | Данные не покидают устройство | Данные передаются на сервер |
На устройстве разворачиваем квантизованную модель через CoreML (iOS) или TensorFlow Lite (Android). Квантизация INT8 уменьшает размер модели в 4 раза без существенной потери точности. CoreML принимает .mlmodel, TFLite — .tflite. Конвертация из PyTorch или Keras — стандартная задача.
Подробнее о квантизации модели
Квантизация преобразует 32-битные веса в 8-битные целые. Для финансовых прогнозов падение точности MAE не превышает 2-5%. Мы используем post-training quantization: достаточно нескольких сотен калибровочных примеров из истории пользователя.// iOS: загрузка CoreML модели и предсказание
import CoreML
class BudgetForecaster {
private let model: BudgetForecastModel
init() throws {
let config = MLModelConfiguration()
config.computeUnits = .cpuAndNeuralEngine
model = try BudgetForecastModel(configuration: config)
}
func predictBalance(features: BudgetForecastModelInput) throws -> Double {
let output = try model.prediction(input: features)
return output.predictedBalance
}
}
computeUnits = .cpuAndNeuralEngine — модель использует Neural Engine на A12+ чипах. Инференс 30-дневного прогноза на iPhone 14 занимает менее 5 мс.
Подготовка данных и фичи
Качество прогноза определяется не моделью, а фичами. Из истории транзакций формируем:
- скользящее среднее расходов за 7/30/90 дней по категориям
- день недели и день месяца (сезонность внутри месяца — реальная: расходы 25-го числа системно отличаются от 10-го)
- флаг recurring: платежи с регулярным интервалом (Netflix, аренда, кредит)
- отклонение текущего периода от среднего — z-score трат
Recurring-платежи — особый случай. Их нужно детектировать отдельно: кластеризация по amount ± 5% + периодичность. Хорошо работает простой алгоритм: группируем транзакции одного merchant, считаем медиану интервала между ними, если StdDev < 3 дня — это recurring.
Как выбрать модель для прогнозирования?
Для временных рядов финансовых данных с объёмом истории 3–24 месяца хорошо работают три подхода:
| Модель | Когда подходит | Сложность реализации |
|---|---|---|
| ARIMA/SARIMA | Мало данных, нет нелинейности | Низкая |
| LightGBM/XGBoost | Смешанные фичи, таблицы | Средняя |
| LSTM/Transformer | Сложные паттерны, много истории | Высокая |
На практике для большинства приложений LightGBM выигрывает у LSTM при объёме истории менее 2 лет. В тестах LightGBM в 3 раза быстрее LSTM на типичных наборах данных с историей до 2 лет, при этом точность сопоставима. Сравнение по ключевым параметрам:
| Параметр | LightGBM | LSTM |
|---|---|---|
| Время обучения на 12 мес. данных | 25 минут | 150 минут |
| Количество гиперпараметров | ~20 | ~50 |
| Интерпретируемость | Высокая (важность фич) | Низкая (чёрный ящик) |
| Потребление памяти на устройстве | 20 MB | 200 MB |
LightGBM конвертируется в TFLite через ONNX промежуточный формат.
Как внедрить прогнозирование: пошаговый план
- Аудит данных – собираем минимум 3 месяца транзакций, проверяем качество и полноту.
- Feature engineering – формируем скользящие средние, детектируем рекуррентные платежи, добавляем календарные признаки.
- Выбор и обучение модели – сравниваем LightGBM и LSTM на ваших данных, выбираем лучшую по MAE.
- Конвертация и оптимизация – квантизуем модель и конвертируем в CoreML/TFLite.
- Интеграция и UI – встраиваем модель в приложение, добавляем график прогноза с доверительным интервалом.
- Мониторинг и переобучение – настраиваем фоновое обновление модели раз в неделю.
Почему федеративное обучение повышает приватность?
Раз в неделю (или при добавлении N новых транзакций) серверная часть дообучает персональную модель на данных конкретного пользователя. Схема: базовая глобальная модель + файн-тюнинг на персональной истории.
Федеративное обучение (Federated Learning) — опция для приложений с требованиями к приватности. Google FL via TensorFlow Federated, Apple Private Federated Learning (iOS 17+). Данные пользователя не покидают устройство, на сервер отправляются только gradient updates. TensorFlow Federated
Персонализированная модель доставляется на устройство через фоновую задачу — BGProcessingTask на iOS, WorkManager на Android. Загрузка нового .mlmodel / .tflite по Wi-Fi, замена старого без перезапуска приложения.
UI: отображение прогноза
Прогноз без контекста — бесполезен. Показываем:
- Ожидаемый баланс к концу месяца с доверительным интервалом (не одно число — диапазон)
- Детализация: где модель «видит» крупные запланированные траты
- Алерт: если прогноз показывает дефицит — уведомление за 5+ дней, не в день X
Доверительный интервал реализуем через quantile regression: обучаем три модели (q10, q50, q90) — пессимистичный, медианный, оптимистичный прогноз. Отображаем как диапазон на графике.
Для внедрения такого интерфейса в ваше приложение свяжитесь с нами — мы подготовим прототип за 2–3 дня. По нашим оценкам, экономия на овердрафтах и штрафах составляет от 10 до 50 тысяч рублей в месяц для пользователя. Наши клиенты экономят в среднем 100 тысяч рублей в год.
Что входит в работу
- Аудит структуры транзакционных данных и их качества
- Разработка pipeline очистки и feature engineering
- Обучение и валидация модели на исторических данных
- Конвертация в CoreML/TFLite, оптимизация под устройство
- Интеграция в мобильное приложение, UI компонент прогноза
- Настройка серверного pipeline переобучения
- Документация, обучение команды и поддержка на этапе внедрения
Ориентиры по срокам
MVP с базовой ARIMA/LightGBM моделью и UI — 1–2 недели. Полная персонализированная система с федеративным обучением и фоновыми обновлениями модели — 4–8 недель.
Свяжитесь с нами для оценки вашего проекта. Закажите разработку MVP — мы гарантируем точность прогнозов и полную интеграцию. Получите консультацию по внедрению AI-прогнозирования.







