Zero-Infrastructure для Data Science: как перенести расчёт валютных курсов на Kaggle и автоматизировать обзоры через Gemini API
Автор проекта Abscur рассказал, как организовал полностью автономный аналитический пайплайн для расчёта абсолютных валютных курсов. Система работает без выделенных серверов, использует бесплатные инструменты Kaggle и Gemini API, а также самостоятельно генерирует ежедневные обзоры рынка.
Коллеги, приветствую. В этой публикации я хочу поделиться практическим опытом построения полностью автономного аналитического пайплайна. Система работает без выделенных серверов, не требует затрат на инфраструктуру и самостоятельно генерирует ежедневные обзоры рынка. В рамках своего проекта Abscur я много лет занимаюсь расчётом абсолютных курсов валют. Проблема классического Forex или котировок Мосбиржи в том, что все привычные нам курсы относительны (USD/RUB, EUR/USD). Если валютная пара растёт, сложно с ходу понять: это базовый актив укрепляется или котируемая валюта падает. Математическая декомпозиция матриц кросс-курсов позволяет очистить 45 мировых валют от взаимного влияния и привести их к единому независимому измерителю — невзвешенной расчётной единице ABS. На выходе мы получаем чистые ряды данных, по которым гораздо объективнее можно считать волатильность, коэффициенты вариации, просадки и реальную доходность акций без рыночного и рублёвого шума. Историческая база проекта охватывает уже 20 лет, но долгое время цепочка обновления данных требовала ручных действий или локального запуска скриптов. Ниже я подробно разберу, как удалось перевести систему на рельсы полной автономности по схеме «Zero-Infrastructure».
Разворачивать выделенный Linux-сервер ради одного ежедневного расчётного таска избыточно. В качестве среды исполнения я выбрал Kaggle Notebooks. Это даёт стабильное окружение, готовый стек предустановленных Data Science библиотек (pandas, numpy, scipy) и, самое главное, встроенный планировщик задач (scheduled runs). Каждые сутки Kaggle-инстанс инициализирует выполнение Python-скрипта, который выполняет математическую часть пайплайна: парсинг и агрегацию свежего пула кросс-курсов и финансовых маркеров из открытых источников, матричные вычисления (логарифмирование матрицы кросс-курсов, перевод относительных изменений в систему линейных уравнений и нахождение изолированных векторов значений для каждой валюты методом наименьших квадратов) и расчёт индикаторов на базе полученных абсолютных рядов, включая скользящие средние, показатели исторической волатильности и специфичные метрики, такие как индекс относительной силы абсолютного курса. Этот подход позволяет избежать затрат на облачные серверы и снижает порог входа для подобных проектов.
Таблицы и сырые массивы JSON малопригодны для быстрого чтения. Чтобы автоматизировать интерпретацию данных и исключить человеческий фактор при подготовке публикаций, в пайплайн был встроен Gemini API. Через защищённые переменные окружения (Secrets в среде Kaggle) скрипт передаёт нейросети выжимку рассчитанных технических индикаторов по ключевым глобальным валютам, товарам и крупнейшим акциям Мосбиржи (включая Сбербанк, ГМК Норникель и другие), подкрепляя их агрегированными новостными заголовками за день. Промпт настроен жёстко и работает в режиме системного аналитика: никакого прогнозирования «по кофейной гуще», субъективных мнений или лишней «воды». На выходе генерируется строго структурированный технический текст на стыке математики абсолютных курсов и классического теханализа. Это позволяет получать готовые к публикации обзоры без участия человека, что особенно ценно для ежедневной аналитики.
Как доставить рассчитанные данные и тексты до конечного пользователя без постоянной базы данных и бэкенда? Скрипт формирует итоговые JSON-файлы (для построения графиков) и сгенерированные текстовые обзоры, после чего через GitHub API пушит их напрямую в репозиторий проекта. На стороне сайта (который развёрнут на платформе Blogger) фронтенд на JavaScript подтягивает свежие JSON-структуры из репозитория и динамически перерисовывает интерактивные графики, таблицы портфелей (оптимизированные по Шарпу и Сортино) и текст обзора. Цепочка полностью замкнулась: всё это происходит за несколько минут один раз в сутки без участия человека и платных серверов. Исходный код и описание методики доступны в открытом репозитории на Kaggle и в статье с математическим обоснованием модели декомпозиции кросс-курсов.
Этот подход демонстрирует, как современные облачные платформы и API генеративного ИИ позволяют создавать сложные аналитические системы с нулевыми затратами на инфраструктуру. Для российского рынка, где многие компании ищут способы оптимизации расходов, такая схема может быть особенно актуальна. Она не требует покупки лицензий или аренды серверов, а все используемые инструменты — Kaggle, Gemini API, GitHub и Blogger — доступны бесплатно или по минимальным тарифам. Однако стоит учитывать, что Kaggle накладывает ограничения на время выполнения и объём данных, что может стать проблемой при масштабировании. Тем не менее, для небольших проектов и ежедневной аналитики это решение выглядит эффективным.
Сравнение с альтернативами показывает, что традиционные подходы, такие как развёртывание на собственном сервере или использование платных облачных функций (например, AWS Lambda), требуют больше времени и денег. Бесплатный cron от Kaggle с предустановленными библиотеками и встроенной поддержкой секретов упрощает разработку, но не даёт гибкости в настройке окружения. Gemini API, в свою очередь, обеспечивает высокое качество генерации текста, но может быть дорогим при больших объёмах запросов. В данном случае объём данных невелик, поэтому затраты минимальны. Важно отметить, что автор настроил промпт так, чтобы избежать лишних расходов на токены, что является хорошей практикой для подобных проектов.
Перспективы развития такого подхода связаны с дальнейшей автоматизацией и расширением функционала. Например, можно добавить поддержку других источников данных, включая криптовалюты или товарные рынки, а также интегрировать дополнительные индикаторы для более глубокого анализа. Открытым остаётся вопрос о надёжности — как долго Kaggle будет предоставлять бесплатный доступ и не изменится ли политика API. Также важно учитывать, что при росте объёмов данных может потребоваться переход на платные решения. Тем не менее, текущая реализация доказывает, что современные инструменты позволяют создавать автономные аналитические системы без значительных вложений, что открывает новые возможности для индивидуальных разработчиков и небольших команд.