Pull to refresh

Comments 26

Интересная статья. Что-то похожее недавно делал Siraj вот в этом видео. Скажите, нельзя как-нибудь потестировать вашего бота онлайн?
Пока нету, но для следующей статьи/видео в планах использовать Google Cloud ML для создания полной цепочки: от тренировки до развертывания и использования через какой либо Web интерфейс.
Это было в симпсонах девзене.
На самом деле спасибо за подробности
Ага, я там обещал статью (или видео), вот собственно выполнил =)
Как-то не сказать, что это прямо уж «с нуля».
Предложения по улучшению.
1. обучение: для фразы используются все предыдущие фразы разговора. Обучение замедлится, но текущая работа не усложниться.
2. Можно использовать несколько проходов туда назад как в переводчике гугла.
Вообще на мой взгляд система, что нейронная сеть должна хранить все ответы в себе не верна, она делает сеть переусложенной (в смысле большого количества коэффициентов). Тут есть аналогия между несколькими полносвязными слоями для идентификации изображения и сверточной сетью где только в конце полная.

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

Очень рад что статья таки оказалась полезной:)

Спасибо за статью. А где найти корпус для русского языка? И вообще как обучить на своей базе диалогов?

Где найти не знаю, подозреваю в Интернете много. Что бы обучить на своих данных, для этого Вам нужны свои файлы train.a и train.b. Можете глянуть на REDME у скрипта которые эти файлы готовит. Там все просто, диалоги банально разбиты на вопрос/ответ и разнесены на два файла.

UFO just landed and posted this here

Вы говорите не совсем об алгоритме который обсуждается в статье. RNN сеть не выбирает ответ из диалогов а генерирует свой ответ после изучения диалогов. Если не считать простых предложений то сложные ответы вы в корпусе не найдёте, сеть из сгенерирует самостоятельно. Ровно как и на вход она на ищет из диалогов. Собственно если бы программа просто бы искала то что вы сказали и отвечала вам бы ответом оттуда то зачем бы там была нужна сеть вообще 0_о?

UFO just landed and posted this here

Тут не все так просто.
На входящий вопрос создаётся его представление в виде вектора с большим количеством измерений.
Ответ выбирается из базы оответов тоже по такому вектору. Только с каим-либо критерием близости к вектору вопроса (cos).
Так что не один к одному.
Вообще.

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

Да, например если его обучать ответами тех поддержки, возможно он сам будет предлагать ответ, а администратор или будет корректировать или подтверждать ответ после прочтения автотекста
Спасибо, очень интересная статья) Решил последовать совету и обучить сеть на диалогах определенного персонажа. Выбрал серию «Зловещие мертвецы». Посчитал, а там реплик 3000. Посмотрел на «Властелин колец» там тоже не густо — ~5000 реплик. По сравнению с Cornell Movie Dialogs Corpus маловато. Можно попробовать парсить диалоги из книг, но эта задача, кажется сложнее чем само обучение бота)
Спасибо за интересную статью!
Я запустил все это на 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]

Какие параметры можно подкрутить, чтобы он использовал меньше памяти?
Уменьшил size в 256 и layers поставил 2.
TF по умолчанию всегда кушает всю видео память, это сделанно намеренно.
Дело было в том что он кушал не только всю память, а хотел памяти больше чем было.

А в чем, кстати, тайный замысел в откусывании сразу всей памяти?
В том же caffe, например, можно сразу несколько тренировок пускать на одной GPU… вполне себе такое неплохое решение "для бедных". А tf не позволяет параллельно пускаться, даже если он исопльзует только 10% памяти...

позволяет, нужно просто флаг указать который скжет использовтаь память по мере необходимости.
Попробуйте обучить его на диалогах Тарантино.
Я хочу с этим поговорить.
p.s. Ну или сам попробую.
Sign up to leave a comment.

Articles

Change theme settings