Мониторинг производительности и искусственный интеллект

Публикация № 1082702

Администрирование - Оптимизация БД (HighLoad)

нейронные сети нечеткая логика мониторинг производительности искусственный интеллект

35
Расскажем и покажем практически, как использовать искусственный интеллект на страже мониторинга производительности. У вас появится возможность создать собственного помощника Ларису, которая возьмет на себя вопросы по контролю и диагностике состояния обслуживаемой системы.

Промо 

Кто хочет, чтобы о проблемах производительности сообщалось заранее, до начала падения системы?
Чтобы мониторинг с пристрастием осуществлялся 24 часа в сутки 7 дней в неделю?
Чтобы при наличии сложных ситуаций мы узнавали первыми, а не пользователи?
Кто хочет повысить качество сервиса и перейти на новый уровень?
Зачем разбирать вручную логи технологического журнала и входить в когнитивный диссонанс, когда есть для этого специальный и обученный помощник?

Ответ на эти вопросы и многое другое найдете в этой статье. Ок, Лариса! Поехали...

 

Введение 

Это первая часть по вопросам практики применения искусственного интеллекта и в ней мы рассмотрим применение нечеткой логики (fuzzy logic). В следующих статьях будем двигаться дальше и затронем применение нейронных сетей. И все это на 1С.

Что будет делать наш AI Лариса? Выполнять сбор данных о производительности, обрабатывать и принимать решение в онлайн режиме, а затем оповещать о проблемах через мессенджер (хотя, она может конечно выполнить и более сложные проактивные действия). Обо всем этом ниже.

Обработка искусственным интеллектом состояния системы

Структура статьи

  1. краткий обзор методологии
  2. как это работает
  3. настройка и запуск
  4. видео-урок
  5. замечания

Для тех, кто не привык читать и хочет сразу попробовать, предлагаю проследовать к видео-инструкции, а потом вернуться сюда и ознакомится детальнее с тем как это работает под «капотом».

Мы будем использовать открытый Фреймворк "Мониторинг производительности" (https://github.com/Polyplastic/1c-parsing-tech-log).
 

I) Краткий обзор (на пальцах)

Нечеткая логика ближе по духу к человеческому мышлению и естественным языкам, чем традиционные логические системы. Она обеспечивает эффективные средства отображения неопределённостей и неточностей реального мира.

В нечеткой логике при решении принято оперировать определенными логическими абстракциями - термами, а не цифрами. К примеру, получая информацию о температуре тела, для нас важны понятия "нормальная", "переохлаждение" или "жар". Числовое значение температуры тела мы получаем с применением градусника (фактически датчик сигнала), а затем преобразовываем в понятную для себя систему лингвистических описаний (см. рис. ниже). Этими понятиями в дальнейшем мы оперируем при принятии решений.

Процесс преобразования числовых значений в логические термы называется процедурой фаззификации (fuzzification).

Согласно рисунку у нас получается, что диапазон значений соответствующий терму "замерз" будет (от абсолютного нуля до 35), "нормальная" от 34 до 37, а жар от 37 до максимально возможной.

Теперь поговорим о процессе принятия решений. Но прежде усложним ситуацию и добавим еще один параметр болезнь со значениями "болен" и "здоров". Этот параметр субъективный и может определяться пациентом самостоятельно.

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

Как видно из таблицы, то в зависимости от температуры тела и субъективной оценки здоровья, мы можем принять решение что требуется делать. Таблица правил читается следующим образом:

Если температура тела "нормальная" и пациент "здоров" тогда
  решение "все хорошо",
Иначе если температура тела "переохлаждение" и "здоров" тогда
  решение "необходимо согреться",
Иначе т.д.

Все те же самые размышления мы можем распространить на оборудование:

1. Информацию о правилах и рекомендациях мы можем получить, обратившись к всеобщему разуму, экспертам в области.

В предыдущей статье "За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С"  я предоставлял таблицы параметров счетчиков производительности для 1С сервера и MS SQL, в них для каждого элемента приводились оценки допустимых значений и рекомендации.

К примеру, "Buffer cache hit ratio (Коэффициент обращений к буферному кэшу)" рекомендуется чтобы был близок к 100%. Соответственно, если он ниже, то в системе наблюдаются проблемы, а если около 0, то значит скорее все плохо, чем хорошо.
Или счетчик "Свободно мегабайт на диске", должен быть гораздо больше 0 иначе у Вас система просто перестанет работать.

2. Информация на основе текущего опыта для конкретной системы.

Продолжая рассматривать размер диска, нам необходимо понимать какой размер достаточный или критичный для работы - не забываем про существование ограниченности ресурсов (бесконечный размер будет стоить дорого). Эту информацию вы сможете определить, зная параметры своей системы.

Общее понимание работы нечеткой логики в упрощенном представлении у Вас должно появиться и теперь мы готовы двигаться дальше.

В нашем случае (на пальцах) мы должны взять набор показателей, которые являются основными для оценки состояния системы (загрузка процессора, очередь к процессору, количество блокировок, величина свободного места на диске, объем трафика сетевого и т.д.), и как эксперты создать набор суждений, которые будут определять состояние системы "критическое" или "рабочее" в зависимости от комбинаций показателей. Об этом подробнее мы расскажем в отдельной статье и позже.

 
Общее описание для демо примера модели "fuzzy.xml"  

В качестве демо примера приведена модель (приложение к статье), в котором выполняется суждение о состоянии по двум показателям - "Загрузка процессора %" и "Очередь к процессору". Скачайте и с помощью обработки "нечеткий контроллер" посмотрите подробнее.

 

Пример преобразования показателя "Загрузка процессора %" к логическим термам

Пример преобразования показателя "Очередь к процессору" к логическим термам

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

Пример базы знаний - ядро системы ИИ

II) Как это все работает?

Рассмотрим как это реализовано у нас в системе для понимания процесса, что за чем и почему. Ниже на рисунке приведена основная модель.

Как вы можете заметить, то основным звеном в системе является объект "Замеры". А через дополнительные обработки реализуется логика и выполнение проактивных действий. 

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

Система мониторинга с Ларисой работает в онлайн режиме и реагирует на события/состояние системы возникающие в текущий момент с задержкой на величину интервала запуска регламентного задания. Т.е. если у Вас интервал 60 сек, то актуальность сообщения будет запаздывать на 1 минуту. Но и ставить интервал срабатывания в районе 5 сек не имеет смысла, т.к. любая система обладает инерцией, даже если кто-то начент крушить серверную топором.

Структурная схема описания модели работы мониторинга

1. Загрузка параметров производительности. Входной сырой источник информации для Ларисы - это замеры. Через них мы заводим и доводим до нее данные счетчиков, либо выполняем какую-либо их пост обработку. Это два квадрата – «Замеры технологические» и «Замеры произвольный алгоритм».

О загрузке данных для анализа мы писали ранее: «5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С» и «За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С».

2. Фаззификация. Как было сказано ранее цифры для Ларисы, как для нас китайская грамота, поэтому мы должны выполнить обработку - перевести их из цифровой формы в логические термы. Сказать ей что места на диске мало, или загрузка процессора высокая. На рисунке это блок – «Замеры программные».
Для упрощения мы объединили процедуру выполнения фаззификации и определения решения нечетким контроллером в один блок, но для понимания процесса текущая последовательность важна.

Результат работы фаззификатора и логического контроллера для некоторого события во времени.


3. Обработка нечетким контроллером. Лариса анализирует входную информацию в термах, смотрит в свою базу знаний и принимает решение. Затем записывает это решение в соответствующий замер. На рисунке это блок – «Обработка нейронной сетью».

 


4. Обработка машиной состояний. Теперь, зная состояние системы, она может выполнить, то действие, которое мы описали в наборе дополнительных правил (обычно оповещение). В этом Ларисе помогает машина состояний (FSM – finite-state machine). На рис. это блок – «Обработка машины состояний».
 

III) Порядок настройки и запуска

0. Подготовка. Загружаем дополнительные обработки:

  • "ОбработкаМашиныСостояний.epf", "МашинаСостояний.epf" - обработки "мозги" Ларисы по выполнению действий; 
  • "НечеткийКонтроллер.epf", "ОбработкаДанныхНечеткимКонтроллером.epf" - обработки "мозги" Ларисы; 
  • "ОтправкаСообщенийAPI_Skype.epf", "ОтправкаСообщенийAPI_email.epf", "ОтправкаСообщенийAPI_Telegram.epf" - обработки для формирования оповещений. 

Настраиваем учетные записи для выполнения оповещения, к примеру, Skype:

  • Создаем новую учетную запись и называем ее "Бот Лариса (Skype)" (подсистема "администрирование")
  • Далее открываем обработку "ОтправкаСообщенийAPI_Skype.epf"
  • Выбираем учетную запись "Бот Лариса (Skype)" и заполняем все параметры для ее работы "IDПриложения", "Пароль", "IDЧата", как их получить можете почитать в этой статье "Отправка сообщений в Skype через Microsoft Bot Framework API".

В подобном режиме настраивается обработка отправки оповещений по почте - "ОтправкаСообщенийAPI_email.epf". Если вы используете другие мессенджеры или приемники информации, то засучите рукава и напишите свой плагин, интерфейс взаимодействия должен соответствовать)

1.Подключаем замеры интересующих параметров и их обработку. Об этом мы рассказывали в предыдущих статьях.

2. Настройка нечеткого контроллера ("электронных мозгов")

2.1. Переходим в подсистему "Оракул" и дальнейшие действия выполняем в этой подсистеме.

2.1. Загружаем демо xml файл модели нечеткого контроллера с сайта "fuzzy.xml" и при необходимости проводим его донастройку с помощью обработки «НечеткийКонтроллер.epf».
2.2. Или создаем новый файл нечеткой логики и пишем свои правила. 
2.3. Создаем новый элемент справочника "Нейронные сети", называем его "электронные мозги Ларисы" и загружаем модель - файл xml.

3. Запуск обработки нечеткой системы.

3.1. Открываем форму «ОбработкаДанныхНечеткимКонтроллером.epf» и выполняем настройки

  • Указываем ссылку "электронные мозги Ларисы" в поле "Нечеткий контроллер"
  • Указываем связь входов модели с замерами и свойствами (замер "загрузка счетчиков производительности" + свойство "Processor Load%" и т.д.). Порядок входов в таблице настройки на форме обработки должен соответствовать порядку входов в модели. 
    Обратите внимание! В текущей версии обработки дата события (дата вычисления счетчика производительности) выбранных замеров и свойств должны совпадать, т.е.,  к примеру, дата события "Processor Load%" замера 1 = 26.06.2019 10:07:21 и дата события "Processor Queue Length" замера 2 = 26.06.2019 10:07:21. Если это не так, то нужно провести пост обработку и привести их, к примеру, к началу минуты.

3.2 Создаем новый замер с наименованием "Обработка нечетким контроллером (Лариса)".

  • Указываем тип "произвольная обработка", путь к каталогу пишем "не имеет смысла", указываем ссылку на обработку «ОбработкаДанныхНечеткимКонтроллером.epf».
  • Ставим в фильтрах дата начала "сейчас" иначе обработает всю историю.
  • Настраиваем расписание регламентного задания (мы ставили 60-120 сек) и закрываем.

4. Настройка машины состояний и системы оповещений.

4.1. Выполняем настройку машины состояний с помощью обработки "Машина состояний.epf". Для этого создаем правила вручную или загружаем файл демо примера "finite-state machine.xml" и проводим его донастройку: 

  • указываем (перевыбираем) учетную запись в таблице настройки действий на "Бот Лариса (Skype)"
  • Указываем ссылку на обработку оповещения (у меня были отличные ссылки).

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

Пример шаблона сообщения:

%ДатаСобытия% %ПриветствиеОпасность% %ПереносСтроки% Произошло изменение состояния системы (%Оборудование%) из состояния '%ПредыдущееСостояние%' в состояние '%ТекущееСостояние%'!

или

%ДатаСобытия% %Приветствие% %ПереносСтроки% (%Оборудование%) находится в состоянии '%ТекущееСостояние%'!

4.2. Создаем новый элемент справочника "Машины состояний" с наименованием "обработка действий Ларисой" и загружаем модель - xml файл.

4.3. Открываем обработку "ОбработкаМашинойСостояний.epf" и выполняем настройку:

  • Указываем ссылку на справочник машина состояний "обработка действий Ларисой".
  • Указываем ссылку на замер ("Обработка нечетким контроллером (Лариса)") и свойство ("decision", если оно еще не появилось, то можете создать вручную, только потом проверьте все ли ок)

Жмем сохранить и закрываем форму. 

4.4. Создаем новый замер с наименованием "Обработка машиной состояний (Лариса)"

  • Указываем тип "произвольная обработка", путь к каталогу пишем "не имеет смысла", указываем ссылку на обработку "ОбработкаМашинойСостояний.epf".
  • Ставим в фильтрах дата начала "сейчас" иначе обработает всю историю.
  • Настраиваем расписание регламентного задания (мы ставили 60-120 сек) и закрываем.

5. Все работает. Получаем профит, наслаждаемся.

В форме "События замера" можно выбрать последовательно замеры "Обработка нечетким контроллером (Лариса)" и "Обработка машиной состояний (Лариса)" и просмотреть результаты обработки. Если данные отсутствуют, то это значит, что существует какая-либо проблема - проверьте журнал регистрации на ошибки и корректность выполненных настроек.

 

IV) Видео-урок

 

 

V) Замечания 

1. Как вы догадались, то можно сделать несколько экземпляров Ларисы, и они могут работать независимо, либо совместно в иерархии.

2. Как вы можете предположить, то для многих сигналов большая детализация даст лучшее предсказание. Но чем больше сигналов мы оцениваем, тем более сложная настройка базы правил получается. К примеру, для двухмерной оценки 5 и 3 градации дадут нам 15 комбинаций, а 3 оценки по 5 диапазонной шкале дадут нам уже 125 комбинаций.

При использовании нейронной сети эта проблема значительно упрощается - она сама будет составлять таблицу. Что делать в текущей ситуации:


а) Рассматривать только рабочие комбинации. Все остальные отмечать, как новизну, аномалии и реагировать на них соответствующим образом, т.е. использовать условие "*" в таблице (это значит любое значение).

б) Использовать иерархию и сжатие, т.е. вначале составить понятие о малом наборе комбинаций, к примеру, 3х, а на выходе будет 1 значение, которое применить на следующем уровне как вход.

3. Как избавиться от всплесков? К примеру, редкие нагрузки для вашей системы явление нормальное, но вот продолжительное воздействие уже не допустимо. Для решения этой проблемы мы должны ввести замер, который будет интегрировать время нахождения в определенном статусе и уже его учитывать при принятии окончательного решения.

4. О тонкостях настройки машины состояний, фаззификации или базы если будет интересно мы можем написать отдельно.

Приложенные файлы проверены на платформе 1С Предприятие 8.3.12.

35

Скачать файлы

Наименование Файл Версия Размер
fuzzy - модель искусственного интеллекта
.xml 5,08Kb
26.06.19
1
.xml 1.0 5,08Kb 1 Скачать
finite-state machine - модель обработки действий
.xml 1,25Kb
26.06.19
0
.xml 1.0 1,25Kb Скачать
Нечеткий контроллер редактор
.epf 123,58Kb
01.07.19
0
.epf 2019.06.28 123,58Kb Скачать
Машина состояний редактор
.epf 11,83Kb
01.07.19
0
.epf 2019.06.26 11,83Kb Скачать
Обработка данных нечетким контроллером
.epf 13,37Kb
01.07.19
0
.epf 2019.06.22 13,37Kb Скачать
Обработка машины состояний
.epf 12,85Kb
01.07.19
0
.epf 2019.06.26 12,85Kb Скачать
Плагин для отправки сообщений через Skype
.epf 9,71Kb
01.07.19
1
.epf 2019.06.13 9,71Kb 1 Скачать
Плагин для отправки сообщений через электронную почту
.epf 9,84Kb
01.07.19
0
.epf 2019.06.23 9,84Kb Скачать
Конфигурация "Мониторинг производительности". Сборка версии 2.0.4.0
.cf 709,16Kb
01.07.19
1
.cf 2.0.4.0 709,16Kb 1 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. bonv 845 01.07.19 12:43 Сейчас в теме
Нужно больше хайповых слов... Блокчейн забыли добавить.

А где собственно Искуственный интеллект, Нейронные сети? Вижу только слова.

От вынесения правил в отдельный файлик xml это не стало ИИ.
3. ivanov660 1495 01.07.19 13:09 Сейчас в теме
(1)
1. Коллега, давайте не будем мериться "глубиной" скрытых слоев.
2. Читайте внимательнее. Про применение нейронных сети мы расскажем в следующей части.
3. Файл xml достаточно удобно использовать для хранения и переноса.
4. Нечеткие множества относятся к интеллектуальным системам.
5. Наша предлагаемая система работает и выполняет возложенные задачи по мониторингу и анализу.
6. Что по вашему ИИ?
14. bonv 845 01.07.19 14:48 Сейчас в теме
(3)
2. Читайте внимательнее. Про применение нейронных сети мы расскажем в следующей части.

А теги ведь тоже заранее проставили :) ?

Правила вы настраивали руками?
17. ivanov660 1495 01.07.19 15:21 Сейчас в теме
(14)
1. Для нечеткого контроллера обычно так и выглядит процесс.

Сейчас правила настраиваются вручную, но в планах упростить этот процесс. Для большого набора входных данных выглядит сложно, об этом я тоже писал и как упростить. (дополнительно решение ряда задач требует дополнительных рук ресурсов, а в этом мы ограничены, но обязательно выпустим улучшения).

2. Следующий шаг, нейронные сети. Применяем самообучающиеся сети по типу SOM. Однако и тут мы вынуждены будем добавить ручную классификацию.

3. На практике (мониторинг), мы пока столкнулись со следующими параметрами за которыми надо следить (остальные имеют корреляцию): загрузка процессора, очередь к процессору, размер диска, объем трафика, количество пользователей в системе - это не так много. И это реально работает! А посидеть 30 минут, чтобы составить некоторое количество правил, на такая уж и большая цена за сервис.

4 Скажите, а как Вы обучаете нейронные сети или что можете посоветовать в данном случае? Дайте идею как улучшить процесс, мы будем только рады, судя по Вашему докладу, опыт применения на практике у вас огромный.
2. VmvLer 01.07.19 12:50 Сейчас в теме
Почти нечего не понял, лениво вникать после обеда.
На всякий случай будут всем говорить, что я теперь спец по 1С: ИИ,
вдруг это сейчас модно.

По картинкам вспомнил журнал "Мурзилка" - прослезился.

Еще порадовало, что автор не жаден - перспективные наработки отдает за копейки.
4. ivanov660 1495 01.07.19 13:12 Сейчас в теме
(2)
1.Проект open source, можете все бесплатно скачать и установить с github. (если же лениво, тогда за стартмани).
2. Тема действительно сложная, я предварительно показывал коллегам. Общее мнение, за день можно вникнуть и повторить.
5. pm74 127 01.07.19 13:13 Сейчас в теме
(0) сколько и какие парметры используется на входе ?
на выходе как я понял всего несколько классов - рабочий режим, высокая нагрузка, критический ..
как это помогает локализовать проблему ?
6. pm74 127 01.07.19 13:18 Сейчас в теме
(0) больше напоминает дерево решений , на первый взгляд
8. ivanov660 1495 01.07.19 13:18 Сейчас в теме
(6) Похоже, но в основе нечеткая логика (fuzzy logic).
9. pm74 127 01.07.19 13:26 Сейчас в теме
(8) вы классифицируете данные высокий , средний, низкий для чего ?
для удобства разметки ? ну т.е вы тренируете ларису на предварительно размеченных данных?
10. ivanov660 1495 01.07.19 14:07 Сейчас в теме
(9)
1. Мы не классифицируем, а преобразуем сигналы. Эти параметры мы используем в качестве обозначения уровня сигнала (практически для всех сигналов мы можем свести суждение в эту область).
По нагрузке: низкий - от 0% до 20%, средний от 20% до 60%, высокий от 60% до 100%. (синонимы и значения можно менять, а вот картинка пока не подстраивается)
2. (Перевод от цифр к "словам") Это делается для дальнейшего создания базы правил, согласно подходу к нечетким системам.
3. Это не совсем тренировка - мы создаем базу правил для Ларисы (т.е. проецируем свои знания на нее).

Давайте попробуем представить как мы мыслим "внутри своего сознания":
1. У меня есть параметр за которым я слежу - это загрузка процессора%
2. Я знаю, что загрузка в районе (фаззификация преобразование):
- 0%-10% это холостой ход;
- от 10% до 60% это нормальный рабочий режим
- от 60% до 90% это высокая нагрузка
- а от 90 до 100% мы считаем что очень высокая и это плохо.
3. Далее, мы понимаем, что (база правил):
- Если это холостой ход или нормальный То все хорошо система работает нормально
- Если же очень высокая нагрузка То происходит что-то непонятное и необходимо что-то сделать.

В такой же последовательности выполняет анализ Лариса.
11. pm74 127 01.07.19 14:17 Сейчас в теме
(10) правильно ли я понял , что лариса принимает свои решения основываясь на безе данных экспертных решений созданной вручную ?
может ли лариса принять решение самостоятельно основываясь на комбинации признаков которой нет в базе ?
15. ivanov660 1495 01.07.19 14:56 Сейчас в теме
(11)Новые ситуации она находить будет (это заложено), но вот как их интерпретировать ей необходимо как-то объяснить.
13. pm74 127 01.07.19 14:26 Сейчас в теме
(10) или лариса последовательно анализирует каждый из признаков для принятия решения ?
16. ivanov660 1495 01.07.19 15:03 Сейчас в теме
(13)
1. она рассматривает их комбинацию.
Если первый="" и второй="" Тогда
ИначеЕсли первый="" и второй="" Тогда
....
Иначе сообщить "неизвестная комбинация, требуется указание эксперта"

2. (самообучение) можно поступить следующим образом - у вас есть набор данных показателей в системе, далее вы говорите что все комбинации являются рабочими, а все остальные возможные это аварийные. такой алгоритм можно написать (и мы планируем), но пока не хватает рук.

3. для нейронной сети, ситуация аналогична. вы обучаете наборами данных, и говорите: вот это котик, а это не котик.
Или в нашем случае: это нормальный режим работы, а это нет. Для остальных случаев она также будет говорить что это неизвестный режим.
7. ivanov660 1495 01.07.19 13:18 Сейчас в теме
(5)
1. В демо примере мы используем на входе два параметра: "Нагрузку на процессор%" и "Очередь к процессору".
2. У вас для системы существуют рабочие режимы - такие области в пространстве множества состояний, когда считается, что с ней все в порядке. Для нее существуют определенные состояния: нагрузка рабочая, очередь низкая.
Далее, есть аномалии или аварийные состояния, когда система работает в нештатной ситуации, к примеру, нагрузка очень высокая и очередь к процессору большая. Соответственно, когда система перейдет в данную область в пространстве состояний, то вы можете сообщить ответственному о проблемах.
3. Вы можете увеличить количество входных параметров и увеличить точность оценки, к примеру, можно добавить, размер на диске и т.д.
12. AlexPC 01.07.19 14:26 Сейчас в теме
Не по теме, но не могу пройти мимо синтаксических ошибок. Первые полторы минуты ролика, подвал.
18. starik-2005 1919 02.07.19 10:16 Сейчас в теме
Это не искусственный интеллект - это просто преобразование решений из А в Б через словарь (в данном случае - диапазон). Все.

Что такое ИИ? На входе массив исторических данных, который кластеризуется и таким образом классифицируется. В задаче слежения за нагрузкой этого ничего нафиг не надо - вплне подойдет какой-нить заббикс или совсем простой скрипт, который будет мерить нагрузку и в нем уже будет этот блок ветвлений (если А между Х и У и Б между С и Д, тогда "зелененькое", иначе если .... "желтенькое", иначе если .... "красненькое" и сообщить персоналу("чета пашло ни таг") конец еслей) Все.

Но красивые картинки в любом случае увеличивают стоимость проекта в 3 раза, а слова ИИ - еще в пять. Автору респект )))
19. ivanov660 1495 02.07.19 11:00 Сейчас в теме
(18)
1. Если рассматривать общее понятие "ИИ", то в мире нет не одного решения, которое даже близко приблизится к понятию.

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

3. К сожалению, на словах с тем же заббиксом все очень просто, но на практике анализирование параметров более 1-го уже вызывает определенные сложности. К тому же, нужно иметь заббикс, уметь его настраивать и т.д.

4. Только что у нас Лариса предсказала и детектировала проблемы, в результате быстро локализовали и провели необходимые мероприятия. Я очень доволен.

5. Проект бесплатный. Было бы здорово если к нему присоединился кто-то из сообщества, но пока только хаят. На практике реализовать хотя бы подобного минимального уровня сервис очень сложно.

6. За добрые слова спасибо.
20. starik-2005 1919 02.07.19 11:59 Сейчас в теме
(19)
1. Если рассматривать общее понятие "ИИ", то в мире нет ни одного решения, которое даже близко приблизится к понятию.
И какое общее понятие мы будем рассматривать? ИИ - это искусственный интеллект, т.е. решение, которое самостоятельно находит связи после обучения на "учебных" данных. Вот есть у нас, например, пару тысяч начертанных цифр - на выходе натренированный алгоритм на основе перцептрона, который может достаточно хорошо отличать одну цифру от другой, даже если они будут начертаны не так, как в обучающем массиве. И таких решений - масса, например тот же bixby у самса, который с фотки текст может прочитать, похожую сумочку найти в интернете или еще что. ИИ - это распознавание моего голоса, который мой телефон ни разу до этого не слышал ну и т.д.

Т.е. искусственный интеллект - это программа, которая может сделать предположение, основанное на опыте, полученном в ходе обучения этой программы. Но, конечно, можно все свести и до "Если А между Х и У, тогда показать красную линию и отправить письмо", но это не ИИ, т.к. система не обучалась и не продолжает это делать.

2. Процесс создания мы рассматриваем от простого к сложному. Процесс слежения за нагрузкой это демо пример, на котором вы сможете сравнить качество с какой-либо существующей системой.
В нашем случае мы можем довольно легко увеличить сложность суждения, построить иерархию суждений.
Качество чего я могу сравнить? В любой системе мониторинга есть возможность настроить посылку сообщений на почту или даже в телеграмм-канал саппорту при превышении каких-то значений теми или иными показателями.

Как в Вашем случае увеличить сложность суждений? Зачем? Какую задачу решает увеличение сложности? Вот если бы система собирала запросы, а потом ТОП запросов преобразовывала бы, исправляя кривизну разработчика - вот это был бы прорыв, полагаю. Сейчас, конечно, генетический алгоритм в планировщике запросов SQL и так позволяет человеку ошибаться, но он пока не может снизить нагрузку на сервер путем дополнительной оптимизации - не достаточно умен для этого, иначе с каждым днем скорость доступа к СУБД росла, а нагрузка на сервер падала.

3. К сожалению, на словах с тем же заббиксом все очень просто, но на практике анализирование параметров более 1-го уже вызывает определенные сложности. К тому же, нужно иметь заббикс, уметь его настраивать и т.д.

Так иметь что-то и уметь это настраивать и к Вашей системе относится. Или она сама все настроит? Не увидел этого в тексте.

4. Только что у нас Лариса предсказала и детектировала проблемы, в результате быстро локализовали и провели необходимые мероприятия. Я очень доволен.
А что за проблемы? У меня на прошлой работе и безо всяких Ларис заббикс показывал много красивых картинок и присылал сообщения при тех или иных проблемах, которые локализовывались. И все были очень довольны. И не надо придумывать никаких Ларис, Алис, Петь и прочих маркетинговых слов. Ведь главное - результат, да? Или нет? Хотя... Кому-то, как я понял, важно пустить пыль в глаза.

5. Проект бесплатный. Было бы здорово если к нему присоединился кто-то из сообщества, но пока только хаят. На практике реализовать хотя бы подобного минимального уровня сервис очень сложно.
Так Вы не обозначили, в чем преимущество данного проекта, кроме, конечно, имени и якобы ИИ внутри. Расскажите о преимуществах, покажите, что ИИ действительно есть и может, как это подобает ИИ, обучаться без Вас. Вот тогда народ перестанет "хаять".

6. За добрые слова спасибо.
Да всегда пожалуйста.
VladC#; A_Max; +2 Ответить
22. ivanov660 1495 02.07.19 13:03 Сейчас в теме
(20)
1. Коллега, вы убеждены что ИИ - это нейронные сети. Спорить с вами не буду.
Может подскажите где взять наборы данных для обучения состоянию оборудования? Буду очень признателен.

2. Мы не готовы потягаться силами с монстрами типа "Google" и даже "yandex", не тот уровень финансирования.
Это первый шаг, все и сразу мы не сделаем. Дали коллегам, кому интересно попробует и даст фидбек. В рамках этого фдбека и нашего опыта эксплуатации будем дальше совершенствовать.

3. Про преимущества мы писали, этих вещей пока достаточно на мой взгляд. Следующий раз я расскажу про применение нейронных сетей типа SOM.
У вас другая реализация и работает, отлично. У нас своя реализация с определенным заделом на будущее. На мой взгляд - это была бы пыль в глаза если бы не работало. По отзывам коллег с которыми я общался лично, получил положительные отзывы.
24. starik-2005 1919 02.07.19 13:59 Сейчас в теме
(22)
вы убеждены что ИИ - это нейронные сети. Спорить с вами не буду.
Не, не так. Мы убеждены, что ИИ - это то, что способно учиться. Нейронные это сети или статистические алгоритмы - вообще по-барабану...
2. Мы не готовы потягаться силами с монстрами типа "Google" и даже "yandex", не тот уровень финансирования.
Это первый шаг, все и сразу мы не сделаем. Дали коллегам, кому интересно попробует и даст фидбек. В рамках этого фдбека и нашего опыта эксплуатации будем дальше совершенствовать.
А что совершенствовать-то? Имя поменяете с Ларисы на Лауру? Или изменения будут более серьезные? Расскажите.
3. Про преимущества мы писали, этих вещей пока достаточно на мой взгляд. Следующий раз я расскажу про применение нейронных сетей типа SOM.
А про какие конкретно "преимущества" вы писали? А то поиском только три нашел совпадения, и все они в комментариях.

Вот что я читаю в Вашей статье:
2. Как вы можете предположить, то для многих сигналов большая детализация даст лучшее предсказание. Но чем больше сигналов мы оцениваем, тем более сложная настройка базы правил получается. К примеру, для двухмерной оценки 5 и 3 градации дадут нам 15 комбинаций, а 3 оценки по 5 диапазонной шкале дадут нам уже 125 комбинаций.
Т.е. я эту матрицу должен руками задолбить на три элемента с пятью градациями (5^3=125). Дальше Вы пишите, что нейросеть могла бы это все сама некоторым образом "замутить" - и это первое упоминание ИИ, которого у Вас в продукте как раз нет. Так зачем вообще все это писать под лозунгом искусственного интеллекта (нет, я понимаю, зачем, но все-таки...)?
25. ivanov660 1495 02.07.19 14:34 Сейчас в теме
(24)
Т.е. я эту матрицу должен руками задолбить на три элемента с пятью градациями (5^3=125)

Я не пойму вашей претензии коллега. Вы довольно искушены в получаемых сервисах и какой-то поделкой вас не удивишь. Не хотите не пользуйтесь. Вы не обязаны вбивать никакой матрицы из 125 условий.
Основную вашу претензию я понял. Спасибо мнение учли.

ИИ - это то, что способно учиться

Как я говорил ранее, добавим алгоритм который сможет добавлять новые комбинации правил самостоятельно по существующим историческим данным в существующую базу знаний (это не сложно). Это уже самообучение, не так ли?


А что совершенствовать-то? Имя поменяете с Ларисы на Лауру? Или изменения будут более серьезные? Расскажите.

Так я же писал. У Ларисы сначала будут мозги на нечеткой логике, потом с использованием НС, возможно гибрид - вот оно развитие и улучшение Ларисы. А не смена имени с Ларисы на Лауру.
SOM (self organized map).
27. starik-2005 1919 02.07.19 14:50 Сейчас в теме
(25)
SOM (self organized map)
Уже прочитал. Интересная тема, но в статье кроме упоминания ничего нет. Фактически эта ваша "som" - это кластеризация, которую можно использовать в том самом сборе настроек 5^3 (кстати, это не равно 3^5 - вам, на мой взгляд, нужно иметь это ввиду), но не совсем ясно, каким образом она определит вам "зону" (красная, зеленая, желтая).

Чем хороши в данном случае простые подходы? Вот у нас есть совокупность показателей, для каждого из которых мы можем определить норму. Нам совокупное влияние часто и не нужно, ибо если на сервере 90% нагрузка на CPU, то для нас важна причина такой нагрузки - какое приложение "отличилось", 1С или SQL? Дальше уже почему: память скушалась, все юзеры пустые циклы крутят или внезапно сто документов одновременно провести решили? "ИИ" нам тут в чем поможет? Достаточно системы, которая просигнализирует в воцап о высокой нагрузке на сервере и скинет скрины по памяти, загрузке, дисковой подсистеме. Дальше все-равно ручками разгребать, т.к. это мог быть тупо новый запрос, в котором программист накосячил, не проверив его на нагрузке, аналогичной продуктовой. Без эксперта тут ничего не сделать...
26. ivanov660 1495 02.07.19 14:37 Сейчас в теме
(24)А вообще спасибо за критику)
28. A_Max 17 03.07.19 11:13 Сейчас в теме
(26) Соглашусь. Тут основная "придирка" в том, что вы отнесли фузилоджик (и экспертные системы в том числе) в категорию ИИ. Делается это всеми повсеместно для хайпа и из-за этого этот термин ИИ теряет смысл вообще. Да и больше начинает вызывать раздражение чем привлекать внимание.

А ваш продукт очень полезный и желаю(ем) развития.

(27) Ну тут напрашивается логирование всего и вся, а при срабатываение тригера (нагрузка ЦП например) раскручивать текущий лог и администратору предоставлять подготовленные отчёты-выборки. Кстати что-то такое у нас презентовали, пойду поспрашиваю админов.
21. pm74 127 02.07.19 12:25 Сейчас в теме
(19)
но пока только хаят

думаю вы слегка преувеличиваете

(19)
Было бы здорово если к нему присоединился кто-то из сообщества,

добавил обработку , которая , возможно, вам пригодится для тестов и проч.
Прикрепленные файлы:
ТаблицаПринятияРешений.epf
23. ivanov660 1495 02.07.19 13:04 Сейчас в теме
Оставьте свое сообщение