Меня зафрахтовал заказчик очередной банальной задачей: сделать бот—агент для чата его биллинга. Ну, можно поискать готовенькие роботы, наверняка выложили. У Билайна в чате такая гадость сидит, не нейросеть, конечно, никакая, а тупо смотрит по ключевым словосочетаниям и на них реагирует. Яндексовская Алиса – тоже не нейросеть, а столь же банальная самоделка, хотя они в нее вбухали чудовищные ресурсы и время.
Конечно, заказчик тоже получит простейшую хрень, тем более, что хочет результат через неделю.
Но подумалось, а возможно ли сделать чат-бот в самом деле разумным на основе уже имеющегося выделенного сервера и посильного времени?
phpуже не пойдет, нужно делать на ГО (гугловская golang– который выдает загружаемый на сервер exe-файл проекта, работающий с производительностью конечного ассемблера). И на нем можно было бы попробовать реализовать сначала послойное обучение примитивам восприятия и примитивам ответов, а потом – добавлять все более адаптивные принципы вплоть до системы реагирования на новые ситуации.
Будет единственный сенсор – анализатор слов – как анализатор пикселей сетчатки глаза. Первый слой распознавателей формирует все самые простые словосочетания, которые попадаются в реальных текстах (эти тексты нужно скармливать на время формирования слоя). Первый слой становится теперь сенсором: в нем при восприятии фразы активируются распознанные словосочетания. Никакой значимости, никакой обратной коррекции пока нет.
На основе первого слоя запускается формирования второго – более сложных словосочетаний, за счет все тех же текстов. Теперь тексты подбираются уже по тематикам и эмоциональным доминантам.
У системы уже заранее нужно сформировать первый слой системы значимости с общей основой – плохо-хорошо. И, когда идет текст ужастика, нужно заранее активировать соответствующий эмоциональный контекст. Это – как бы аналог вторичной зоны коры. Разница в том, что если в состоянии голода воспринимаются типичные картины недостаточности еды, а в состоянии наелся – картины только что съеденного, то для искусственного развития нужно будет подставлять тексты в соответствии с заранее включенным состоянием.
Уже на этом этапе сложность: машине пофиг еда, но, чтобы она понимала человечьи тексты, ей придется имитировать и человечьи состояния.
Пожалуй, это – самое сложное различие, потом, когда основы системы значимости будут сформированы, остальное уже не будет иметь различия.
Так что так можно было бы пройти стадию формирования условных рефлексов и перейти к стадии адаптивности к новым ситуациях на основе уже имеющегося задела.
Все это видится дико сложным во всех этапах реализации, хотя сама реализация позволяет делать все постепенно, а не сразу конструировать конечную систему. Т.е. бот можно развивать поэтапно. Это – уже большой плюс. Но никакой промежуточный результат никому не нужен и никого не убедит, а чтобы пройти путь до конца нужно не представимое время.
Если у меня появился совершенно ясное, до уверенности, понимание как реализовать пока смутные моменты, то я, пожалуй, смогу решиться начать делать эту штуку. Заодно получше освою Го :)