18+
реклама
18+
Бургер менюБургер меню

Вадим Кирпиков – Сбой в жизни (страница 7)

18

Я начал печатать. Пальцы летали над клавиатурой, боль в теле отступила на второй план, вытесненная азартом.

Источники данных для Data Harvester:

1. Открытые банковские API (анализ транзакций, баланса, кредитной истории).

2. Данные из публичных государственных реестров (ФНС, ФССП).

3. Агрегированные данные от телеком-операторов (обезличенная геолокация, паттерны мобильной активности).

4. Социальные графы (анализ деловых связей через открытые профили, НЕ личная информация).

5. Собственные данные платформы (история использования, финансовые цели пользователя).

Ключевой принцип: полный отказ от субъективных данных. Никаких анкет с вопросами о семейном положении или образовании. Только цифры. Поведение. Факты.

«Бред, – тут же вклинилась Сирена. – Просто бред сумасшедшего. Ты хоть представляешь, сколько стоит доступ к этим данным? Какие нужны лицензии? Какие нужны юридические согласования? Ты собрался в одиночку построить систему, на которую у корпораций уходят годы и миллионы долларов. Ты даже не знаешь, с чего начать. Ты просто накидываешь умные слова, которые вычитал в статьях на „Хабре“. Ты – имитатор, Новиков. Дешевая китайская подделка под настоящего разработчика».

Ее слова были как дротики с ядом. И один из них попал в цель. Я действительно не знал, как получить доступ к большинству этих данных. Это был просто список желаний. Моя рука замерла над клавиатурой. Сомнение, холодное и липкое, поползло по венам. Она была права. Это невозможно. Затея была обречена с самого начала. Я просто трачу время.

Я посмотрел направо. На окно терминала. Мигающий курсор на черном фоне. Мой мир. Мир, где невозможное становится возможным, если ты знаешь правильные команды. Я вернулся к диалогу с «Нексусом».

Признаю потенциальные трудности с доступом к данным. На этапе MVP (Minimum Viable Product) предлагаю сфокусироваться на пунктах 1 и 5. Создать эмуляторы для остальных источников данных для тестирования архитектуры. Главное сейчас – не данные, а логика их обработки.

Я нажал Enter. И почувствовал, как что-то внутри щелкнуло. Я не сдался. Я не позволил сомнению парализовать меня. Я признал проблему и нашел обходной путь. Я сделал то, что делает любой разработчик каждый день: я нашел work-around. Я обошел препятствие, не пытаясь пробить его лбом.

«Нексус» ответил почти мгновенно.

Подход принят. Фокусировка на MVP является рациональной стратегией. Переходим к Модулю скоринга (Scoring AI). Опишите базовую гипотезу, которая ляжет в основу модели. Какой тип машинного обучения предполагается использовать?

Гипотеза. Вот оно. Самое сердце. Идея, ради которой все затевалось.

Базовая гипотеза: финансовая надежность человека определяется не его социальным статусом, а стабильностью и предсказуемостью его финансовых потоков и поведенческих паттернов. Человек с небольшой, но стабильной зарплатой, который регулярно откладывает 10% и не имеет просрочек по микрозаймам, более надежен, чем топ-менеджер с огромным доходом, но хаотичными тратами и жизнью в кредит. Система должна искать не богатство, а порядок.

Я остановился. Это была не просто техническая гипотеза. Это была моя философия. Моя вера. Я сам был тем человеком с небольшой зарплатой. И я верил, что порядок внутри моей головы, моя способность к самодисциплине, стоят больше, чем резюме выпускника престижного вуза. «Аксиома» должна была стать системой, которая сможет это увидеть. Увидеть меня. И таких, как я.

Я продолжил печатать.

Тип МО: ансамбль моделей. Градиентный бустинг для табличных данных (транзакции, баланс). Рекуррентные нейронные сети (LSTM) для анализа временных рядов (паттерны трат, регулярность поступлений). Модель должна быть полностью интерпретируемой (использование LIME, SHAP), чтобы избежать эффекта „черного ящика“. Каждый скоринговый балл должен иметь объяснение, на основе каких факторов он был сформирован.

«Ого, какие слова! – Сирена просто задыхалась от сарказма. – LSTM! SHAP! Ты хоть одну из этих моделей сам реализовывал с нуля, гений? Или только импортировал готовую библиотеку в Jupyter-ноутбуке на датасете „Титаник“? Ты лепишь Франкенштейна из кусков технологий, которых до конца не понимаешь. Эта хреновина рухнет под собственным весом еще до первого запуска. Твой мозг – это спагетти-код, Новиков. Одна большая функция main() с тысячей вложенных циклов и без единого комментария. Попытаешься что-то изменить – обрушишь все. И твой проект будет таким же».

Ее голос был громким. Она нашла мою уязвимость – синдром самозванца. Страх, что я недостаточно хорош, недостаточно умен, что я просто притворяюсь. Этот страх жил во мне всегда. Он заставлял меня по десять раз перепроверять каждую строчку кода, панически бояться код-ревью, избегать сложных задач.

Я закрыл глаза. Вдох. Выдох. Я почувствовал фантомную боль в разбитом колене. Я вспомнил холодный асфальт и тишину в голове. Та боль была настоящей. А этот страх… этот голос… это просто шум. Набор данных. Невалидный запрос, который нужно отфильтровать.

Я открыл графический редактор. И начал рисовать.

Я не был художником. Я был инженером. Моими инструментами были не кисти, а прямоугольники, ромбы и стрелки. Я начал визуализировать архитектуру, которую мы обсуждали с «Нексусом».

Вот прямоугольник «Data Harvester». От него стрелки к двум другим блокам: «Bank API» и «Platform DB». Дальше – большой блок «ETL Unit». Внутри него – более мелкие: «Validator», «Normalizer», «Enricher». Я выстраивал на экране логическую схему. Фабрику по обработке данных. Каждый блок, каждая стрелка, каждая подпись на своем месте. Это было похоже на медитацию. Я брал хаотичный рой идей из своей головы и прибивал их гвоздями к холсту цифровой реальности. Упорядочивал. Структурировал.

«Детский сад, – прошептала Сирена, но уже не так уверенно. Моя концентрация лишала ее сил. – Рисуешь квадратики. Думаешь, от этого твой код напишется сам? Ты просто играешь в серьезного архитектора. А на деле ты – ребенок, строящий замок из песка, который смоет первым же приливом».

Я добавил главный блок. «Scoring AI». От него шли две стрелки. В одну сторону – «Gradient Boosting», в другую – «LSTM». Они сходились в блоке «Ensemble Model». А оттуда – жирная, финальная стрелка к блоку «Final Score».

Я откинулся на спинку кресла и посмотрел на схему. Она была простой. Элегантной. Логичной. Это была карта. План будущей войны. Теперь я знал, где будут проходить основные сражения. Я видел свои цели. Я мог оценить их сложность. Монстр перестал быть бесформенным ужасом из темноты. Теперь у него было имя, анатомия, и я знал, куда целиться.

Я сделал скриншот схемы и отправил его «Нексусу» с короткой подписью:

Вот базовая архитектура Ядра. Принимается?

Пока машина анализировала изображение, я встал и подошел к окну. Солнце уже поднялось. Город проснулся. Внизу сновали машины, шли по своим делам люди-функции. Они спешили на свои работы в свои офисы, чтобы выполнять чужие задачи по чужим правилам. А я стоял здесь, в своей клетке-крепости на семнадцатом этаже, и строил свой собственный мир. Мир, который будет работать по моим.

Телефон «Нексуса» пискнул. Я вернулся к креслу.

Схема логически корректна и соответствует обсуждаемой концепции. Архитектура является масштабируемой и модульной, что позволит вносить изменения в отдельные компоненты без пересборки всей системы. Предлагаю утвердить данную схему как v0.1 и перейти к следующему этапу: выбор технологического стека для каждого модуля.

Утвердить. v0.1. Эти слова были музыкой. Моя идея, мой хаос, моя месть только что прошли первую валидацию. Пусть машинную, пусть бездушную. Но это было доказательство. Не мне, не Сирене. Это было доказательство для самой вселенной, что моя конструкция в принципе может существовать. Она не нарушает законов физики. Она не противоречит законам логики.

Я чувствовал дикую, первобытную радость творца. Ту самую, которую, наверное, чувствует программист, когда его код впервые компилируется без ошибок. Ту самую, которую чувствует бог, глядя на созданный им мир и видя, что он хорош.

Время растворилось в кофейном осадке на дне кружки и вязком гудении кулеров. Я перестал чувствовать пальцы, они стали продолжением клавиатуры, механическими молоточками, отбивающими синтаксис на наковальне редактора. Мы с «Нексусом» перешли к технологическому стеку.

Python для Ядра. FastAPI для API. PostgreSQL для базы. Redis для кэша. RabbitMQ для очередей. Docker для контейнеризации. Kubernetes для оркестрации. Каждое решение было выбором оружия. Я не просто выбирал технологии. Я выбирал экосистему, философию, сообщество. Я строил фундамент.

Сирена все еще была там. Она не сдавалась. Она сменила тактику. Теперь она не кричала, а методично, капля за каплей, точила камень моей уверенности.

«Ты выбрал FastAPI? А ты уверен, что справишься с асинхронностью? Ты же вечно путаешься в async/await».

«PostgreSQL? Она сложная в настройке. Взял бы что-то попроще, вроде MySQL, к чему привык».

«Kubernetes? Серьезно, Новиков? Ты собрался в одиночку управлять кластером? Ты хелло-ворлд на нем будешь деплоить неделю. Смешно».

Ее слова были разумны. В каждом из них была доля правды. Я действительно многого не знал. Я действительно выбирал технологии, с которыми у меня было мало опыта. Но я делал это сознательно. «Аксиома» не должна была быть удобной. Она должна была быть правильной. Она должна была быть построена на лучших, самых современных инструментах. Это был не просто проект. Это был мой университет. Мой тренажерный зал. Мой способ стать сильнее.