Тся/ться, сопроводительный текст
Этот материал (https://youtu.be/7aoQEtBz-wg)— описание работы, которую мы провели совместно с Ильей Цупом (https://github.com/HolyPrapor, https://www.linkedin.com/in/ilya-tzoop) весной прошлого года. Работа касалась поиска ошибочного использования «тся/ться» в текстах на русском языке с применением современных NLP-техник.

Эту работу я хотел бы продолжить. Во-первых, хочется довести тся/ться до масштабируемого вида. Сейчас есть только результат исследования в ноутбуке, удобная кодовая инфраструктура для проведения этого и подобных исследований, но нет, собственно, финального результата: проведения исследования в инфраструктуре. Кроме того, хотелось бы провести другие схожие исследования грамматических ошибок, и доказать практически, что инфраструктура действительно для широкого класса ошибок пригодна. После этого, тщательно помолясь, можно перейти к стилистическим ошибкам, выявление которых поможет тоньше настраивать текст, приближая его к желаемому автором ритму или грамматической структуре.
Собственно, именно это я предложил в рамках проектной деятельности осенью группе ФИИТ в своей Alma Mater, но в тот раз не получилось — студенты не выбрали ни этот, ни вообще какой-либо из ML-проектов, остановившись на бэкэнд/фронтэндах. По дошедшим до меня слухам, одной из причин этого стало отсутствие информации, что вообще может представлять собой ML-исследование и, как следствие, тревога о том, справятся ли, получится ли… Это, в целом, обоснованное опасение. Суть ML-исследования действительно непонятна, пока не сделал свой первый проект. С бэкэнд/фронтэнд приложением яснее: результат — это когда сайт существует, он поддерживает определенные use cases, которые протестированы, задеплоены и работают. Но что такое успех в ML? Прочитанные научные статьи? Измысленная из ничего нейронная сеть неповторимой структурой? Планка в 0.95 ROC AUC, которую надо взять во что бы то ни стало?
На самом деле, все просто: результатом ML-исследования является отчет с описанием того, какие методы были применены, какие значения метрик получены, в какую сторону дальше следует двигаться, а в какую — не стоит. Так вот видео по сути такой отчет и представляет.
Отличие с бэкэнд/фронтэндом здесь в том, что результат не зависит только лишь от ваших усилий. Может просто не повезти. Бэкэнд/фронтэнд ныне превратились в ремесло, и человек даже с небольшим опытом может прикинуть, сколько усилий и в каком порядке потребуется, чтобы сделать ту или иную работу. ML остался магией: мы владеем заклинаниями для вызова демона, и даже знаем разные фокусы для того, чтобы он пришел охотнее — но в конечном итоге, демон может просто не захотеть являться, или оказаться не совсем тем, чем хотелось бы… И это совершенно нормально.
Предложение остается в силе и на этот семестр. На самом деле, оно не обязательно ограничивается студентами ФИИТ: у них просто административный вопрос проработан. Но в целом, я готов поменторить и кого-нибудь другого, у кого есть опыт с pandas и общее понимание того, что такое features, metrics, training и neural networks.
Тут главное понимать, что менторинг не сводится к работе на меня — если бы мне действительно нужны были эти алгоритмы, я бы давно их обучил сам. Это, скорее, саморазвитие. Как показал опыт, что с Ильей в прошлом году, что с джуниором на работе недавно, обучение модели в условиях, приближенных к боевым — путь тернистый, есть множество тонких нюансов: как подбирать размер batch? Как понять, что обучение можно останавливать? Как планировать эксперименты с гиперпараметрами? Какие вообще параметры имеет смысл подбирать? А фичи как генерировать? Когда стоит оптимизировать производительность кода, а когда на это можно начихать? Как, наконец, организовать код так, чтобы эксперименты были повторимы, и чтобы не сводились к менеджменту огромной кучи плохо пахнущего кода, когда уже даже и не понятно, то ли модель не обучается, то ли преобразования данных сбоят, и в итоге на вход модели попадает не сигнал, а сплошной шум? Я многие из этих ловушек знаю, и умею хорошо объяснять. Но они непонятны, пока сам не попробуешь что-то сделать руками.
Тематика, кстати, не обязана сводится только к грамматическим и стилистическим ошибкам — это «тренировочные» задачи, на которых я хочу нарастить инфраструктуру и интуицию. Моей личной целью является управление эмоциональным модусом текста: так получилось, что сюжет и сеттинг даются мне очень легко, а вот что все эти мясные мешки должны в этом сюжете и сеттинге чувствовать и говорить, да еще и в присутствии других мешков, какие бывают вообще архитипичные характеры и роли… Кажется, эти вопросы вполне можно исследовать методами NLP, благо текстов написано очень много. Я уже говорил, что одной из проблем темной культуры является посредственная способность темных людей описывать и передавать эмоциональные состояние кого-либо, кроме себя — и, в духе сингулярности, эту проблему следует решать техническими средствами. В общем и целом, я убежден в решаемости этой проблемы: в отличие от сюжета и сеттинга, эмоциональные состояния локальны, в них не обязательно должно быть последовательное, логически обусловленное развитие на протяжении всего романа (если только речь не идет о любовных романах и психологических триллерах), особенно если мы говорим о второстепенных персонажах. А локально NLP работает очень хорошо. Здесь много отделяемых кусков — поиск параллельных персонажей в книгах разных авторов, выделение семантического и эмоционального слоев текста и перетранспонирование одного и того же смысла в разный эмоциональный окрас… Идеи, как это сделать, конечно же, есть, но не такие четкие, как с ошибками.
Но можно и о других вещах подумать. Например, диалоговый интеллект суры на базе визуальных новелл — конечно, там нужно будет сначала собрать корпус, который для художки у меня уже собран, но почему бы и нет. Как знать, может быть, мы сделаем маленький, но важный шаг на пути в сингулярную Вальхаллу, населенную сурами-валькириями.
Или, например, extension к хрому, который помогает вести аргументированную дискуссию с путинистами, ковидобесами, эколухами и всеми прочими врагами сингулярности. Ужасно непрактично постоянно вспоминать к месту ссылки на исследования, графики и мемасики. А как бы было хорошо, если бы установленное расширение читало ваш твиттер, анализировало твиты неприятелей и само подсказывало, чем ответить! У этого есть и множество других применений: как полностью автономного бота, несущего сингулярность в массы, так и «Темной энциклопедии», которая не только даст человеку информацию по запросу, но и убедит, что эта информация правильная.
В общем, интересных и сингулярных задач существует множество, и, возможно, кто-нибудь из читателей уже готов следующий шаг и перейти из Свидетелей сингулярности в ее Творцов — и с такими я с удовольствием пообщаюсь в чате или личке.
PS. Несколько коротких ответов
Где это снято?
У нас на работе есть так называемый Journal Club, где мы обсуждаем что-то, слабо связанное с работой: статьи из интернета, deep dive в технологии или pet projects.
А по-русски можно?
Нельзя. Это бессмысленно: если вы не понимаете английский язык, значит, вряд ли сможете хоть как-то оценить и использовать материал, потому что NLP-технологии, как и весь ML, как и все IT - это англоязычная область.
Что такое Training Grounds?
Это фреймворк, который мы (в основном, я) написали на работе и выложили в открытый доступ https://t.me/witnessesofsingularity/198
Почему заблюрена часть видео?
Потому, что там лица моих коллег, которых я не могу показывать в связи с GDPR
Почему видео внезапно обрывается?
Потому, что практически сразу начали говорить мои коллеги, голос которых я не могу включать из-за GDPR