Комментарии 26
У Siraj в том видео в есть ссылка на онлайн бот http://neuralconvo.huggingface.co/
На самом деле спасибо за подробности
1. обучение: для фразы используются все предыдущие фразы разговора. Обучение замедлится, но текущая работа не усложниться.
2. Можно использовать несколько проходов туда назад как в переводчике гугла.
Тут должна быть аналогия. Сеть должна быть проще, но иметь возможно искать по имеющимся данным включая их в результат. Тут появится возможность исключать редко встречаемые слова которых большинство.
Вы говорите не совсем об алгоритме который обсуждается в статье. RNN сеть не выбирает ответ из диалогов а генерирует свой ответ после изучения диалогов. Если не считать простых предложений то сложные ответы вы в корпусе не найдёте, сеть из сгенерирует самостоятельно. Ровно как и на вход она на ищет из диалогов. Собственно если бы программа просто бы искала то что вы сказали и отвечала вам бы ответом оттуда то зачем бы там была нужна сеть вообще 0_о?
Тут не все так просто.
На входящий вопрос создаётся его представление в виде вектора с большим количеством измерений.
Ответ выбирается из базы оответов тоже по такому вектору. Только с каим-либо критерием близости к вектору вопроса (cos).
Так что не один к одному.
Вообще.
Для того, чтобы получить максимально адекватный чат бот, его нужно обучать не на диалогах из фильмов, а на диалогах из чатов реальных людей. И количество пар вопросов/ответов должно измениться миллионами.
Я запустил все это на windows10 с GeForce 1060 и в итоге получаю:
Limit: 5059746201
InUse: 4953030912
MaxInUse: 4955639808
NumAllocs: 13509
MaxAllocSize: 117964800
W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\bfc_allocator.cc:274] ****************************************************************************************************
W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\bfc_allocator.cc:275] Ran out of memory trying to allocate 10.00MiB. See logs for memory state.
W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\framework\op_kernel.cc:975] Resource exhausted: OOM when allocating tensor with shape[64,40,1,1024]
Какие параметры можно подкрутить, чтобы он использовал меньше памяти?
А в чем, кстати, тайный замысел в откусывании сразу всей памяти?
В том же caffe, например, можно сразу несколько тренировок пускать на одной GPU… вполне себе такое неплохое решение "для бедных". А tf не позволяет параллельно пускаться, даже если он исопльзует только 10% памяти...
Я хочу с этим поговорить.
p.s. Ну или сам попробую.
Chatbot на базе рекуррентной нейронной сети своими руками за 1 вечер/6$ и ~ 100 строчек кода