Обновить
59.74

Natural Language Processing *

Компьютерный анализ и синтез естественных языков

Сначала показывать
Порог рейтинга
Уровень сложности

15 лучших наборов данных для обучения чат-бота

Время на прочтение4 мин
Количество просмотров19K
Чтобы быстро решать вопросы пользователей без вмешательства человека, эффективный чат-бот требует огромного количества обучающих данных. Однако основное узкое место в разработке чат-бота — это получение реалистичных, ориентированных на задачи диалоговых данных для обучения этих систем с помощью методов машинного обучения. Специально к старту нового потока курса «Машинное обучение» делюсь с вами списком лучших наборов данных разговоров из чатов, разбитых на вопросы и ответы, данные службы поддержки клиентов, диалоговые данные и мультиязычные данные.


Приятного чтения!

Насколько Быстрой Можно Сделать Систему STT?

Время на прочтение8 мин
Количество просмотров4.3K


Нам приходилось слышать абсолютно разные оценки скорости (ну или наоборот — оценки потребности в железе) систем распознавания речи, отличающиеся даже на порядок. Особенно радует, когда указаны системные требования из которых следует, что метрики сильно лучше, чем лучшие state-of-the-art системы из bleeding edge статей, а на практике иногда оказывается, что метрики рассчитаны в надежде, что "покупают для галочки и никто пользоваться не будет и так сойдет". Также не помогает то, что некоторые системы работают на GPU, а некоторые нет, равно как и то, что ядра процессоров могут отличаться в разы по производительности (например старые серверные процессора с тактовой частотой 2 — 2.5 GHz против современных решений от AMD с 4+ GHz на ядро имеющие до 64 ядер). Давайте в этом вместе разберемся, на самом деле, все не так уж и сложно!


Как правило люди начинают задумываться о скорости в 3 случаях:


  • Когда ее не хватает или когда она является узким горлышком;
  • Когда со скоростью нет проблем, но есть проблемы с ценой железа;
  • Когда есть жесткое SLA по качеству сервиса от конечного заказчика;
  • Когда есть жесткие требования по скорости "первого ответа" от конечного заказчика;

В этой статье мы постараемся ответить на несколько вопросов:


  • Что вообще значит скорость?
  • Какой скорости можно добиться в теории?
  • Какой скорости можно добиться на практике и желательно без потери качества?
Читать дальше →

Интернациональное программирование на естественных языках

Время на прочтение7 мин
Количество просмотров5.6K
В последнее время часто попадаются на глаза статьи о новых языках программирования, а так же различные рейтинги и прогнозы, связанные с популярностью компьютерных языков.

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

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

Играемся с 3090 и пробуем MIG на A100

Время на прочтение11 мин
Количество просмотров13K


Каждый раз, когда встает заветный вопрос, апгрейдить ли карточки в серверной или нет, я просматриваю подобные статьи и смотрю такие видосы (нет, маркетинговым материалам от Nvidia конечно верить нельзя, как показал недавний кейс с числом CUDA-ядер).


Канал "Этот Компьютер" очень сильно недооценен, но автор не занимается ML. А в целом при анализе сравнений акселераторов для ML в глаза как правило бросаются несколько вещей:


  • Авторы учитывают как правило только "адекватность" для рынка новых карт в США;
  • Рейтинги далеки от народа и делаются на весьма стандартных сетках (что наверное в целом хорошо) без деталей;
  • Популярная мантра тренировать все более гигантские сетки вносит свои коррективы в сравнения;

Не нужно быть семи пядей во лбу, чтобы знать очевидный ответ на вопрос "а какая карта лучше?": карточки серии 20* в массы не пошли, 1080 Ti с Авито до сих очень привлекательны (и не особо дешевеют как ни странно, вероятно по этой причине).


Все это прекрасно и вряд ли стандартные бенчмарки сильно врут, но недавно я узнал про существование технологии Multi-Instance-GPU для видеокарт А100 и нативную поддержку TF32 и мне пришла идея поделиться своим опытом реального тестирования карточек на архитектуре Ampere (3090 и А100). В этой небольшой заметке я постараюсь ответить на вопросы:


  • Стоит ли свеч обновление на Ampere? (спойлер для нетерпеливых — да);
  • Стоят ли своих денег A100 (спойлер — в общем случае — нет);
  • Есть ли кейсы, когда A100 все-таки интересны (спойлер — да);
  • Полезна ли технология MIG (спойлер — да, но для инференса и для очень специфичных случаев для обучения);

За деталями прошу под кат.

Читать дальше →

Как из четырёх минут речи мы воссоздали голос молодого Леонида Куравлёва

Время на прочтение7 мин
Количество просмотров20K
Всем привет! Меня зовут Олег Петров, я руковожу группой R&D в Центре речевых технологий. Мы давно работаем не только над распознаванием речи, но и умеем синтезировать голоса. Самый простой пример, для чего это нужно бизнесу: чтобы для каждого нового сценария, которому обучают голосовых роботов, не нужно было организовывать новую запись с человеком, который его когда-то озвучил. Ещё мы развиваем продукты на основе голосовой и лицевой биометрии и аналитики по голосовым данным. В общем, работаем над серьёзными и сложными задачами для разного бизнеса.



Но недавно к нам пришли коллеги из Сбера с предложением поучаствовать в развлекательной истории — «озвучить» героя Леонида Куравлёва в новом ролике. Для него лицо Куравлева было воссоздано по кадрам из фильма «Иван Васильевич меняет профессию» и наложено на лицо другого актера с помощью технологии Deepfake. Чтобы мы смогли не только увидеть, но и услышать в 2020 году Жоржа Милославского, мы решили помочь коллегам. Ведь с годами голос у всех нас меняется и даже если бы Леонид Вячеславович озвучил героя, эффект был бы не тот.

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

Как найти что-то в тексте

Время на прочтение8 мин
Количество просмотров8.1K
Найти объект или распознать понятие в тексте — с этого начинается решение большинства NLP задач. Если вы проектируете поисковую систему, создаете голосового помощника или классифицируете пользовательские запросы, прежде всего вы должны разобрать входной текст и попытаться найти в нем именованные сущности, которые могут быть универсальными, такими как даты, страны и города, или специфичными для конкретной модели. Обратите внимание, мы сейчас говорим лишь о тех видах задач, для которых заранее известно, что именно вы ищете или что может встретиться в тексте.

image

NER (named entity recognition) компонент, то есть программный компонент для поиска именованных сущностей, должен найти в тексте объект и по возможности получить из него какую-то информацию. Пример — “Дайте мне двадцать две маски”. Числовой NER компонент находит в приведенном тексте словосочетание “двадцать две” и извлекает из этих слов числовое нормализованное значение — “22”, теперь это значение можно использовать.

NER компоненты могут базироваться на нейронных сетях или работать на основе правил и каких-либо внутренних моделях. Универсальные NER компоненты часто используют второй способ.

Рассмотрим несколько готовых решений по поиску стандартных сущностей в тексте. В данной заметке мы остановимся на бесплатных или бесплатных с ограничениями библиотеках, а также расскажем о том, что сделано в проекте Apache NlpCraft в рамках данной проблематики. Представленный ниже список не является подробным и обстоятельным обзором, которых и так достаточное количество в сети, а скорее кратким описанием основных особенностей, плюсов и минусов использования этих библиотек.
Читать дальше →

Загадочные субтитры на CNN

Время на прочтение3 мин
Количество просмотров50K
Зрители CNN обратили внимание, что в выпуске новостей 12/11/2020 на их официальном YouTube-канале вместо субтитров какая-то каша из обрывков английских слов, сплошным капсом:


Как такое могло получиться? (По состоянию на 1/12/2020, субтитры на YouTube так и не исправлены.)

Stenotype


Американские стенографисты уже больше сотни лет как используют специальные устройства с минимальной 22-клавишной клавиатурой — по две клавиши под каждый палец, чтобы минимизировать движения кистей:



Сто лет назад стенотайп был вариантом печатной машинки, и каждая клавиша оставляла оттиск на бумаге. Каретки не было: после каждого «аккорда» из одной или нескольких одновременно нажатых клавиш, бумага проматывалась на одну строчку вниз. Оттиск каждой литеры приходился всегда на одно и то же место в строке. Клавиши P, R, S, T присутствуют в двух экземплярах каждая — под левой и под правой рукой.

Читать дальше →

Учим AI Dungeon говорить по-русски

Время на прочтение3 мин
Количество просмотров122K

Недавно ребята из сбер(-банка) анонсировали и выложили в свободный доступ свою модель gpt-3 и я понял, что можно наконец то реализовать свою давнюю мечту - сделать AI dungeon для русского языка. Данная игра сильно выстрелила в прошлом году, про нее было написано множество статей. Если описать AI dungeon кратко, то это эксперимент с огромной генеративной нейронной сетью, где слово игра используется, чтобы заменить множество непонятных слов. Суть игры проста: вы пишете историю и место действия своему персонажу (или выбираете из заранее готовых). Буквально пишете. Вариантов выборов бесконечно много, результаты всегда непредсказуемы, а приключения по настоящему уникальны. Завораживающе, правда?

Читать далее

Ваш pet-project будет доволен. Как вдохнуть жизнь в свои наработки

Время на прочтение4 мин
Количество просмотров10K

Pet project


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


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

Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Статья #2 — Алгоритмы

Время на прочтение18 мин
Количество просмотров7.6K
image

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



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


Читать дальше →

Тестируем ruGPT-3 на новых задачах

Время на прочтение9 мин
Количество просмотров52K

Рекомендательные системы с нуля, чат-боты и многое другое


Погрузившись в пучину текстовых данных, в октябре этого года мы обучили модели ruGPT-3 — модели для русского языка на основе архитектуры от OpenAI. Но на что же способны эти модели? В этой статье мы соберем первые примеры применения модели — и попробуем новые.

Мы представляем первые результаты самой большой из обученных моделей — ruGPT-3 Large, разработанной совместно с командами SberDevices, Sber.AI и SberCloud. Изучим границы ее применения вместе с вами.

image

В этом году на AI Journey мы подготовили соревнование применений ruGPT-3 — в трек можно сдать любое решение с использованием модели, оцениваемое по трем шкалам — инновационность, эмоциональное вовлечение и бизнес-применимость.

Спойлер:
1 млн рублей за первое место

Читать дальше →

Гиперпараметры: как перестать беспокоиться и начать их оптимизировать

Время на прочтение11 мин
Количество просмотров23K

«Подбор гиперпараметров». Если у вас в голове при произнесении этой фразы прокатились несколько панических атак и непроизвольно задергался глаз, а, возможно, и рука в инстинктивном желании перевернуть стол с криками «Да ну его, этот ваш дата сайнс» (нецензурную брань оставим за скобками), значит вы, как и я, хоть раз пытались обучить наивный байес мало-мальски тяжелую модель на большом объеме данных.





Источник изображения: thecode.media



Размер батча, learning rate, размер того слоя, размер сего слоя, вероятность dropout-a. Страшно? Уже представляете часы (дни) ожидания? А это я еще про количество голов у трансформеров не говорил…

Читать дальше →

Все началось с Dream — новый ИИ-помощник от проекта DeepPavlov

Время на прочтение4 мин
Количество просмотров4.5K
Команда лаборатории нейронных систем и глубокого обучения МФТИ, работающая над проектом DeepPavlov, создала интеллектуального помощника с искусственным интеллектом DeepPavlov DREAM. Этот ИИ-помощник основан на социальном боте, который принимал участие в конкурсе Alexa Prize Socialbot Grand Challenge 3 от Amazon. И сегодня мы расскажем, на что он способен.


Читать дальше →

Ближайшие события

Обучение модели естественного языка с BERT и Tensorflow

Время на прочтение9 мин
Количество просмотров38K

Рис. 1. Фразы и предложения в векторном представлении модели естественного языка

Обработка естественного языка (Natural Language Processing, NLP) – это область вычислительной лингвистики, ориентированная на разработку машин, способных понимать человеческие языки. Разработка таких машин – одна из задач, которые решают исследователи и инженеры в команде SberDevices.

В современной компьютерной лингвистике понимание смысла написанного или сказанного достигается с помощью векторных моделей естественного языка. Например, в семействе виртуальных ассистентов Салют такая модель применяется для распознавания намерений пользователя, ведения диалога, выделения именованных сущностей и многих других задач.

В этой статье мы рассмотрим метод обучения модели естественного языка (NLU) на размеченных данных и реализацию этого метода на python3 и tensorflow 1.15. Ниже вы найдете пошаговое руководство и примеры кода. Код всего эксперимента доступен для воспроизведения на Colab.

Помимо этого, мы выкладываем в публичный доступ русскую модель NLU класса BERT-large [427 млн. параметров]: tensorflow, pytorch.

Прочитав этот пост, вы узнаете:

  • что такое модели NLU и как они применяются в компьютерной лингвистике;
  • что такое векторы предложений и как их получить;
  • как обучить векторизатор предложений [NLU] на базе архитектуры BERT;
  • как можно использовать обученные модели NLU

Вокенизация — новый прорыв в области здравого смысла ИИ?

Время на прочтение7 мин
Количество просмотров4.6K

В преддверии старта нового потока курса «Machine Learning Pro + Deep Learning», делимся с вами статьей о вокенизации — новом методе на основе неконтролируемого обучения, который позволяет масштабировать современные небольшие визуально-языковые наборы данных, подобные MS COCO, до размеров английской Википедии, то есть миллиардов записей. В сущности гигантские языковые модели учатся видеть мир. Подробности о том, что из себя представляет метод, как он работает и как может изменить искусственный интеллект, как всегда, под катом.
Приятного чтения!

Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Статья #1 — Теория

Время на прочтение19 мин
Количество просмотров18K
image

Данная статья будет состоять из 3 частей (Теория/Методы и алгоритмы для решение задач/Разработка и реализация на Java) для описания полной картины. Первая статья будет включать только теорию, чтобы подготовить умы читателей.

Цель статьи:

  • Частичная или полная автоматизация задачи кластеризации и классификации больших данных, а именно текстовых данных.
  • Применение алгоритмов машинного обучение “без учителя” (кластеризация) и “с учителем” (классификация).
  • Анализ текущих решений задач.

Задачки, которые будут рассматриваться в целом:

  1. Разработка и применение алгоритмов и методов обработки естественного языка.
  2. Разработка и применение методов кластеризации для определения кластерных групп входных документов.
  3. Применение методов классификации для определения предмета каждых кластерных групп.
  4. Разработка веб-интерфейса на основе Java Vaadin

Гипотезы, которые я вывел из задачки и при обучении теории:

  • Классификация кластерных групп определяет абстрактные и более ценные скрытые знания, игнорируя шумы, чем классификация отдельных объектов.
  • Точность кластеризации прямо пропорциональна количеству кластерных групп и обратно пропорциональна количеству объектов в одной кластерной группе.

Забегая вперед, кому интересен сам алгоритм, вот обзор.

Алгоритм программного обеспечение для машинного обучения состоит из 3 основных частей:

  1. Обработка естественного языка.
    1. токенизация;
    2. лемматизация;
    3. стоп-листинг;
    4. частота слов;

  2. Методы кластеризации.
    TF-IDF ;
    SVD;
    нахождение кластерных групп;
  3. Методы классификации – Aylien API.

Итак, начнем теорию.
Читать дальше →

Краткий обзор системы Apache NlpCraft

Время на прочтение7 мин
Количество просмотров2.6K
В данной статье я бы хотел познакомить читателей с одним из проектов Apache Software Foundation сообщества — NlpCraft. NlpCraft — библиотека с открытым исходным кодом, предназначенная для интеграции языкового интерфейса в пользовательские приложения.

Цель проекта — тотальное упрощение доступа к возможностям NLP (Natural Language Processing) разработчикам приложений. Основная идея системы — это уловить баланс между простотой вхождения в NLP проблематику и поддержкой широкого диапазона возможностей промышленной библиотеки. Задача проекта бескомпромиссна — простота без упрощения.

На момент версии 0.7.1 проект находится в стадии инкубации Apache сообщества и доступен по адресу https://nlpcraft.apache.org.
Читать дальше →

Команда МФТИ второй год подряд в конкурсе от Amazon — Alexa Prize Socialbot Grand Challenge 4

Время на прочтение3 мин
Количество просмотров1.9K
3 ноября компания Amazon опубликовала результаты отбора в конкурсе Alexa Prize Socialbot Grand Challenge 4. Комитет Alexa Prize отобрал 9 финалистов, 5 из которых участвуют снова, а 4 оставшихся — новички. В числе тех, кто снова прошёл отбор комитета Alexa Prize, есть и команда аспирантов и студентов лаборатории нейронных систем и глубокого обучения МФТИ.

Читать дальше →

Сняли забавный фильм, сценарий для которого написал GPT-3

Время на прочтение6 мин
Количество просмотров8.3K

В Солиситорах (Solicitors), новом короткометражном фильме, снятым парой студентов-старшекурсников Университета Чапмана, все начинается с женщины, сидящей на диване и читающей книгу. В дверь раздается стук. Она встает, открывает дверь и обнаруживает за ней потного, дерганного человека с растрепанными волосами. “Я Свидетель Иеговы,” - говорит он. Женщина не выглядит впечатленной и отвечает: “Прошу прощения, я не говорю с солиситорами". Мужчина пытается удержать ее внимание - “У меня есть отличная история”.

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

Читать далее

Предлагаю подумать: как технологии могут помочь бороться с пропагандой в СМИ?

Время на прочтение27 мин
Количество просмотров10K
image
Фотограф: Аркадий Шайхет.

Вступление


Эту статью можно разделить на две логические части. В первой я рассматриваю феномен медиапропаганды: что это такое, почему она опасна и к каким жутким вещам уже приводила в истории. Я подробно рассмотрю механизмы работы современной государственной пропаганды в СМИ и попытаюсь понять, почему она так эффективна и какими характерными признаками обладает.

Вторая часть – это размышления о том, как на основе рассмотренных в первой части характерных признаков можно попытаться автоматизировать распознавание пропаганды в СМИ. Поскольку пропаганда – это воздействие текстом (помимо картинки, конечно), а я не обладаю необходимыми познаниями в области обработки естественного языка (Natural Language Processing), то мои выкладки – это именно что размышления вслух. Я буду более-менее структурированно описывать возможные функции программы, которая должна искать в материалах СМИ признаки пропаганды, но без технической конкретики.

Поэтому сразу скажу: не рассчитывайте прочитать в тексте про конкретные алгоритмы и их способы применения. Напротив – буду честен: я рассчитываю найти среди вас тех, кто разбирается как в области NLP, так и в разработке плагинов для браузеров и получить от вас обратную связь в комментариях. Если достаточное количество людей заразится моими идеями, то, возможно, нам с вами удастся вместе поработать над интересным опенсорсным решением!
Читать дальше →