Как делать бугурт мемы

Как делать бугурт мемы

Как известно потому что можно придумывать свои мемы, не умеют делать трифорс. Ну, как, Адмінство: Абу. // @require naon.детекторлжиекатеринбург.рф // @copyright +, You. // @grant none. К написанию статьи меня подтолкнула вот эта новость (+исследование) про изобретение Автор: Nejelsky. Компаративные мемы, как правило, Типичный обывательский бугурт. Как делать мемасики. БУГУРТ ТРЕД ТВОЙ ТАК ЧТО БУДЕШЬ ДЕЛАТЬ КАК Я если мы выкинем из головы все эти мемы.

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. В своей статье я попытаюсь показать, что вам не нужно быть ученым из Стэнфорда, чтобы делать с нейросетями интересные вещи. В статье я описываю, как в году мы обучили нейронную сеть на корпусе из примерно 30 текстов и заставили ее генерировать новые интернет-мемы и мемы коммуникационные знаки в социологическом смысле слова.

Как делать бугурт мемы

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

Один из типичных бугуртов За годы существования паблик оброс внутренним лором персонажи, сюжеты, локации , а количество постов перевалило за 30 На момент их парсинга для нужд проекта количество исходных строк текста превышало полмиллиона. Часть 0. Появление идеи и команды На волне массовой популярности нейронных сетей идея обучить ИНС на наших текстах витала в воздухе где-то на протяжении полугода, но была окончательно сформулирована с помощью E7su в декабре На тот момент команда заинтересованных в проекте состояла всего из трех человек.

Все мы были студентами без практического опыта в алгоритмах и нейронных сетях. Хуже того — у нас даже не было ни одной подходящей GPU для обучения.

Навігаційне меню

Всё что у нас было — это энтузиазм и уверенность, что эта история может быть интересной. Часть 1. Формулировка гипотезы и задачи Нашей гипотезой оказалось предположение, что если смешать все опубликованные за три с половиной года тексты и обучить на этом корпусе нейронную сеть, то может получится: а креативнее, чем у людей б смешно Даже если в бугурте слова или буквы окажутся машинно перепутаны и расположены хаотично — мы верили, что это может сработать как фансервис и всё равно будет радовать читателей.

Задачу сильно упрощало то, что формат бугуртов, по сути, текстовый. А значит, нам не нужно было погружаться в машинное зрение и другие сложные вещи. Ещё одна хорошая новость состояла в том, что весь корпус текстов очень однотипный. Это давало возможность не использовать обучение с подкреплением — по крайней мере, на первых этапах. В тоже время мы четко понимали, что создать нейросеть-писателя с читаемым выводом больше чем на один раз не так то легко.

Риск родить монстра, который будет хаотично швырять буквами, был очень велик. Часть 2. Подготовка корпуса текстов Считается, что этап подготовки может занять очень много времени, так как связан со сбором и очисткой данных. В нашем случае он оказался достаточно коротким: был написан небольшой парсер , который выкачал около 30к постов со стены сообщества и сложил их в txt-файл.

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

Но об этом чуть дальше. Скрин файлика с бургерами Часть 3. Анонсирование, уточнение гипотезы, выбор алгоритма Мы использовали доступный ресурс — огромное количество подписчиков паблика.

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

Как делать бугурт мемы

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

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

Каждый заинтересованный мог взять датасет и обучить тот алгоритм, который ему наиболее интересен, а потом обсудить с нами и с другими энтузиастами. Мы заранее объявили, что продолжим работу с теми участниками, чьи результаты будут наиболее читаемы. Работа завертелась: кто-то молча собирал генератор на цепях Маркова, кто-то пробовал различные реализации с гитхаб, а большинство просто угарало в обсуждении и с пеной у рта убеждало нас, что из этой затеи ничего не получится.

С этого началась техническая часть реализации проекта. Некоторые предложения энтузиастов Люди предлагали десятки вариантов по реализации: Цепи Маркова.

Можно ли спалить гвоздь шлифмашинкой

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

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

Труды десятков энтузиастов шли прахом и это демотивировало как их, так и нас. Лучше других себя показал алгоритм на базе pyTorch.

Самое читаемое

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

Наша распределенная команда увеличилась до четырех человек. Забавным фактом здесь является то, что победителю конкурса , как оказалось, было всего 16 лет. Победа стала его первым реальным призом в области Data Science. Для первого обучения был арендован кластер из 8 графических карточек GXT Консоль управления кластером карточек Оригинальный репозиторий и все мануалы проекта Torch-rnn находится здесь: github.

Позже на её основе мы опубликовали свой репозиторий , в котором есть наши исходники, ReadMe по установке, а также сами готовые нейробугурты. Первые несколько раз мы обучались при помощи преднастроенной конфигурации на платном кластере GPU.

Настроить его оказалось не так сложно — достаточно инструкции от разработчика Torch и помощи администрации хостинга, которая входит в оплату. Однако очень быстро мы столкнулись с трудностью: каждое обучение стоило времени аренды GPU — а значит, денег, которых в проекте попросту не было. Из-за этого в январе-феврале обучение мы проводили на купленных мощностях, а генерацию пытались запустить на своих локальных машинах.

  • Можно ли делать натяжной потолок в ванной с газовой колонкой
  • Для обучения модели подходит любой текст. Перед обучением его необходимо препроцессить, для чего в Torch есть специальный алгоритм preprocess. Также есть возможность запускать Torch из Docker , но автор статьи её не проверял.

    Обучение нейронной сети После препроцессинга можно переходить к обучению модели.

    Содержание

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

  • Как скачать музыку и установить на звонок microsoft lumia 640
  • В нашем случае каждое обучение на кластере из 8 GTX в дата-сете из строк занимало около часа-двух, а аналогичное обучение на видавшем виды CPU i занимало порядка часов. В случае более долгих обучений нейросеть начинала жестко переобучаться — символы слишком часто повторяли друг друга, впадая в длиннющие циклы из предлогов, союзов и вводных слов.

    Хватило бы только места. Для нас это был настоящий момент истины, потому что впервые мы получили какой-то ощутимый результат — бугурт, написанный машиной. К этому моменту мы окончательно перестали пользоваться кластером и все генерации проводили на своих маломощных машинах. Однако при попытке запуститься локально, просто пройти по инструкции и установить Torch у нас не получилось.

    Первым барьером стало использование виртуальных машин. На виртуальной Ubuntu 16 торч просто не взлетает — забудьте. На помощь часто приходил StackOverflow, но некоторые ошибки были настолько нетривиальны, что ответ удавалось найти только с огромным трудом.

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

    Несколько раз стенд сносился до уровня sudo rm -rf и просто устанавливался заново.

    Установка реечного потолка в ванной своими руками видео

    Использовав получившийся файл с весами мы смогли начать генерацию текстов на своей локальной машине: Один из первых выводов Часть 5. Очистка текстов Еще одной очевидной трудностью стало то, что тематика постов очень сильно отличается, а наш алгоритм не предполагает никакого деления и рассматривает все строк как единый текст.

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

    Похожие публикации

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

    Итоговое решение костыль оказалось до гениальности простым: в исходном датасете отделить имеющиеся бугурты друг от друга пустыми строками и обучить LSTM заново.

    Как было. Интервалы между текстами минимальны. Как стало. Длина одного сюжета составляла, в среднем, от 9 до 13 строк. Часть 6. Повторное обучение Прикинув экономику проекта, мы решили больше не тратить деньги на аренду кластера, а вложиться в покупку собственных карточек. Время на обучение бы выросло, но купив карточку один раз, мы могли бы генерировать новые бугурты постоянно. В тоже время часто проводить обучения постоянно уже не было необходимости. Борьба с настройками на локальной машине Часть 7.

  • Как преобразить старую квартиру своими руками без траты денег фото
  • Балансировка результатов На рубеже март-апрель мы повторно обучили нейронную сеть, уточнив параметры температуры и количество эпох обучения. В результате качество выходных текстов незначительно выросло. Скорость обучения torch-rnn в сравнении с char-rnn Мы протестировали оба алгоритма, которые идут в комплекте с Torch: rnn и LSTM.