С помощью аналитика данных мы смогли составить обучающие наборы данных и обучить нейросетевую модель. В результате имея входную информацию о клиенте, и передавая её в модель для расчета мы смогли получить коэффициент надежности клиента.
Заказчик. Финансовая организация
Задача. Необходимо решение, которое на основании данных о клиенте и статистических данных, позволит произвести анализ качества клиента. Можно ли ему выдавать деньги в кредит или нет. Это решение впоследствии должно легко интегрироваться с системами заказчика, в частности с 1С.
При этом необходимо было так же обеспечить высокую скорость обработки данных и низкое потребление ресурсов системы. Изначальная минимальная скорость работы была объявлена заказчиком так: сервис должен обрабатывать минимум 5 запросов в секунду.
Решение. С помощью аналитика данных мы смогли составить обучающие наборы данных и обучить нейросетевую модель. В результате имея входную информацию о клиенте, и передавая её в модель для расчета мы смогли получить коэффициент надежности клиента.
Для обучения использовалась историческая информация более чем о 5 000 случаев, где специалисты клиента самостоятельно определяли качество клиента, и данные о результате работы с клиентом после принятого решения.
Для обеспечения интеграционных возможностей мы разработали решение с помощью фреймворка FastAPI на языке Python. Это позволило нам объединить усилия аналитика данных при работе с моделью и разработчика, так как они использовали общий язык разработки Python.
Фреймворк FastAPI позволил нам построить серверное приложение доступное по протоколу HTTP, а так же с помощью него мы сгенерировали интерактивную техническую документацию для специалистов заказчика, которая при интеграции позволила легко понять принципы работы нашего сервиса, и произвести эксперименты прямо в браузере, что существенно облегчило и работу нашего аналитика по созданию документации и работу специалистов заказчика по изучению возможностей сервиса.
Так же нами было произведено исследование потребления ресурсов и производительности при работе системы. Для этого мы использовали классические инструменты:
Zabbix — инструмент мониторинга серверов и приложений Apache Jmeter — инструмент для проведения нагрузочного тестирования
Мы так же часто используем их в повседневной работе.
Результаты превзошли все ожидания.
Тестовый стенд:
Процессор:2 vCPU Оперативная память:2 Гб Диск: SAS 10 Гб ОС: Ubuntu Server 22.04 LTS
Результаты нагрузочного тестирования:
Первый запрос: 2023-03-01 18:11:58 VLAT Последний запрос: 2023-03-01 18:15:46 VLAT
Количество запросов: 6000 Количество ошибок: 355 Процент ошибок: 5.92% Средняя пропускная способность 25 запросов в секунду
Ошибка: Response code: 504 Response message: Gateway Time-out
Показатели сервера в момент тестирования, на скриншоте 1. Красный график — Использованное место на диске 2. Желтый график — Использованная мощность процессора 3. Бирюзовый график — Использованная оперативная память.
Отсюда исходит, что на жесткий диск нагрузка не изменяется, оперативная память тоже находится в ненагруженном состоянии, основной требуемый ресурс это процессорная мощность.
Но даже при такой конфигурации тестового стенда мы не смогли выбрать всю мощность процессора чрезмерным нагрузочным тестом, и стали получать ошибки доступа к сетевому интерфейсу, что было прекрасным результатом. Создать такую нагрузку в рабочих задачах у заказчика не получится.