Обновить
65.82

Natural Language Processing *

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

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

Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ

Время на прочтение10 мин
Количество просмотров177K
Последнее десятилетие в области компьютерных технологий ознаменовалось началом новой «весны искусственного интеллекта». Впрочем, ситуацию в индустрии в наши дни можно, наверное, охарактеризовать уже не как весну, а полноценное «лето ИИ». Судите сами, за последние неполные 10 лет только в области обработки естественного языка (Natural language processing, NLP) произошли уже две настоящие технологические революции. Появившаяся в результате второй из них модель GPT-3 произвела настоящий фурор не только в технологических медиа, но стала знаменитой далеко за пределами научного сообщества. Например, GPT-3 написала для издания «The Guardian» эссе о том, почему ИИ не угрожает людям. GPT-3 сочиняет стихи и прозу, выполняет переводы, ведёт диалоги, даёт ответы на вопросы, хотя никогда специально не училась выполнять эти задачи. До недавних пор все возможности GPT-3 могли по достоинству оценить лишь англоязычные пользователи. Мы в Сбере решили исправить эту досадную оплошность. И сейчас расскажем вам, что из этого получилось.


Источник изображения
Читать дальше →

Искусственный интеллект в области юриспруденции. Часть 4

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

В продолжение цикла статей мы решили выложить на Хабр запись недавнего мероприятия Moscow Legal Hackers, посвященного теме создания юридического ИИ.


Основные вопросы мероприятия:


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

Картинка для привлечения внимания:
Представь что ты будешь знать завтра, когда заработает юридический ИИ.



Полное видео и таймкоды записи — под катом:

Сегментация потоков документов: используем BERT

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

Вы наверняка знакомы с ситуацией, когда при обращении в какую-либо крупную организацию приходится подавать целый пакет документов, точнее пакет их сканов. И это в век «цифры»! Теперь посмотрите на это глазами второй стороны и представьте, что у вас миллионы таких заявок со сканами, и они… не содержат информации о границах документов. Апокалипсис? Всё придётся сегментировать вручную? К счастью, существуют алгоритмы автоматической сегментации потоков многостраничных документов. Здесь мы расскажем о новом подходе в сегментации с использованием модели BERT.

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

Технологии для проверки «Тотального диктанта»: что можно улучшить?

Время на прочтение5 мин
Количество просмотров3K
Я состою в жюри World AI & Data Challenge. Это такой международный конкурс для разработчиков технологий для решения разных социальных задач, таких как борьба с бедностью, помощь людям с ограничениями слуха и зрения, улучшение обратной связи между человеком и государственными организациями, и так далее. Сейчас идет второй этап конкурса, он продлится до октября. В рамках этого этапа мы отбираем лучшие решения для дальнейшей реализации проектов. Поскольку мы в ABBYY много работаем с текстами и их смыслом, то меня больше всего заинтересовала проверка текстов в рамках проекта «Тотальный диктант». Давайте на примере этой задачи разберёмся, почему обработка естественного языка — одна из самых недооценённых областей современного машинного обучения, а на сдачу обсудим, почему, даже когда речь идёт о проверке диктанта, всё «немного сложнее, чем кажется». И интереснее, естественно.

Итак, задача: сделать алгоритм проверки «Тотального диктанта». Казалось бы, что может быть проще? Есть правильные ответы, есть тексты участников: бери и делай. Строчки сравнивать-то все умеют. И тут начинается интересное.
Читать дальше →

ANYKS Spell-checker

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

Здравствуйте, это моя третья статья на хабре, ранее я писал статью о языковой модели ALM. Сейчас, я хочу познакомить вас с системой исправления опечаток ASC (реализованной на основе ALM).

Да, систем исправления опечаток существует огромное количество, у всех есть свои сильные и слабые стороны, из открытых систем я могу выделить одну наиболее перспективную JamSpell, с ней и будем сравнивать. Есть ещё подобная система от DeepPavlov, про которую многие могут подумать, но я с ней так и не подружился.
Читать дальше →

Пустобрёх GPT-2: russian edition

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

Погрузившись в тему DL NLP, набрел на просторах интернета на любопытный репозиторий. Это не много не мало — Русская GPT-2! Ну, т.е. русскоязычная. Причем не какая-нибудь мелкая 117М, а вполне себе 1250М, что уже довольно серьезно. Автор проделал немалую работу по адаптации исходной модели и подготовке корпуса для обучения. Да и само обучение, надо полагать заняло немало времени и мощностей. В общем, респект товарищу l4rz! Планирую пойти по его стопам и обучить систему на своем корпусе (в процессе подготовки которого сейчас нахожусь) — благо автор оставил довольно подробные инструкции, как именно подступиться к столь масштабной задаче… По итогам отчитаюсь! ;)

В пока, чисто развлечения ради, предлагаю на суд общественности некоторые эксперименты с системой, по мотивам поста о более крутой GPT-3 (хотя там автор, очевидно, и GPT-3 не считает чем-то выдающимся). С одной стороны представленная здесь система заметно проще GPT-3, с другой — все-таки обученная русскоязычная модель! Мне кажется это забавно.
Читать дальше →

Вкалывают роботы, счастлив человек: как я делал систему поиска по архиву вебинаров с элементами ИИ

Время на прочтение18 мин
Количество просмотров2.4K
В интересное время живем, что ни день – то новость, как нейросети помогают делать нашу жизнь проще и удобнее. Мне давно хотелось поэкспериментировать с алгоритмами машинного обучения на базе нейронок, и вот подвернулась нетривиальная задача.


C переходом на самоизоляцию в марте этого года, мы, как и многие компании, перевели в онлайн все наши продуктовые мероприятия. Ну, вы помните эту замечательную картинку про вебинары с обезъянками. За прошедшие полгода только по тематике датацентров, за которую отвечает моя команда, у нас накопилось около 25-ти 2х-часовых записанных вебинаров, 50 часов видео суммарно. Проблема, которая встала в полный рост – как понять, в каком видео искать ответы на те или иные вопросы. Каталог, теги, краткое описание — это хорошо, ну вот нашли мы в итоге, что по теме есть 4 двухчасовых ролика, а дальше что? Смотреть на перемотке? А можно как-то по-другому? А если выступить по-модному и попробовать прикрутить ИИ?
Читать дальше →

Делаем параллельный корпус из книг с помощью sentence embeddings

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

Parallel trucks (image by Unsplash


При поиске параллельных корпусов для своих нужд, — это может быть обучение модели машинного перевода или изучение иностранного языка, можно столкнуться с тем, что их не так уж и много, особенно, если речь идет не об английском, а каком-то редком языке. В этой статье мы попробуем создать свой корпус для популярной языковой пары русский-немецкий на основе романа Ремарка "Три товарища". Любителям параллельного чтения книг и разработчикам систем машинного перевода посвящается.


Задача


Такая задача называется выравниванием текстов и может быть до какой-то степени решена следующими способами:


  • Использовать эвристики. Можно считать количество предложений в текстах, количество слов в них и на основе этого производить сопоставление. Такой способ не дает хорошего качества, но может тоже быть полезным.
  • Использовать sentence embeddings. Наверняка вы слышали про модели типа word2vec или sent2vec или видели такой пример их использования — "король" + "женщина""мужчина" = "королева". Если коротко, то суть в том, чтобы перевести слова (предложения, тексты) в векторное пространство с сохранением семантического расстояния между ними. Такой подход открывает перед нами замечательные возможности по оценке близости текстов и их кусочков по смыслу.
Читать дальше →

Ронго-ронго: нерасшифрованная письменность острова Пасхи

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

Изобретатели


Письменность — один из столпов, на которых стоит современная цивилизация. Хотя мы и воспринимаем её как естественную часть нашей повседневной жизни, когда-то она была изобретена. Такое случалось всего несколько раз, в статье речь пойдет как раз про один из таких случаев — письменность острова Пасхи, также называемого Рапа Нуи. Это маленький уединенный остров длиной 24 километра, до ближайшего населенного острова плыть от него 1600 километров по прямой. Полинезийские мореходы попали туда примерно в 1200 году, а европейцам он стал известен в 1722. Европейцев впечатлили сотни каменных статуй, созданных островитянами, до 10 метров высотой и до 80 тонн веса каждая. Этим Рапа Нуи отличался ото всех прочих полинезийских островов, на которых если и делали каменные статуи, то весьма скромных размеров. Несмотря на это, европейцы обращались с местным населением как с дикарями: ловили их и продавали в рабство, захватили их землю, превратили весь остров в пастбище и, наконец, выживших обратили в христианство, запрещав говорить на родном языке и воспроизводить местную культуру.

Открытие


В 1864 году миссионер Эйро сделал удивительной открытие: чуть ли не в каждой хижине хранились небольшие дощечки, покрытые мелкой резьбой, которые как будто бы можно было читать до того, пока все грамотные островитяне не умерли в рабстве. Мы точно не знаем, что именно произошло, по-видимому, Эйро объявил таблички запретными, препятствующими попаданию в рай и призвал их сжигать. Помимо христианства Эйро привез на остров туберкулёз, эпидемия которого за несколько лет выкосила четверть населения. После его смерти в 1868 другой священник, пришедший на смену Эйро, всё же решил рассказать о табличках начальству. Епископ Жоссан на Таити тут же понял, каково значение находки, но к тому моменту осталось всего две дюжины артефактов с надписями. Так мир узнал про ронго-ронго — письменность острова Пасхи.
Читать дальше →

Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP)

Время на прочтение34 мин
Количество просмотров111K
Два года назад я писал на Хабр статью про Yargy-парсер и библиотеку Natasha, рассказывал про решение задачи NER для русского языка, построенное на правилах. Проект хорошо приняли. Yargy-парсер заменил яндексовый Томита-парсер в крупных проектах внутри Сбера, Интерфакса и РИА Новостей. Библиотека Natasha сейчас встроена в образовательные программы ВШЭ, МФТИ и МГУ.

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

Для новостных статей качество на всех задачах сравнимо или превосходит существующие решения. Например с задачей NER Natasha справляется на 1 процентный пункт хуже, чем Deeppavlov BERT NER (F1 PER 0.97, LOC 0.91, ORG 0.85), модель весит в 75 раз меньше (27МБ), работает на CPU в 2 раза быстрее (25 статей/сек), чем BERT NER на GPU.

В проекте 9 репозиториев, библиотека Natasha объединяет их под одним интерфейсом. В статье поговорим про новые инструменты, сравним их с существующими решениями: Deeppavlov, SpaCy, UDPipe.

Искусственный интеллект в области юриспруденции. Статья 3

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

Введение


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


  • инструменты лингвистического анализа текстов на естественном языке;
  • структурированную модель юридических знаний (графы знаний и онтологии);
  • предобученные нейронные сети.

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


  1. Какова роль онтологий в процессе создания искусственного интеллекта?
  2. Почему существующие онтологии в области права неприменимы для Legal AI, несмотря на многолетние попытки зарубежных специалистов структурировать юридические знания?
  3. Какими свойствами должны обладать онтологии для Legal AI, чтобы решать практические задачи?

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

Обзор методов создания эмбедингов предложений, Часть2

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

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


Часть1 обязательна для ознакомления


4. BERT


from deeppavlov.core.common.file import read_json
from deeppavlov import build_model, configs
from deeppavlov.models.embedders.elmo_embedder import ELMoEmbedder
# ссылка для скачивания моделей http://docs.deeppavlov.ai/en/master/features/pretrained_vectors.html

4.1 rubert_cased_L-12_H-768_A-12_pt


class RU_BERT_CLASS:
    def __init__(self, name):
        bert_config = read_json(configs.embedder.bert_embedder)
        bert_config['metadata']['variables']['BERT_PATH'] = os.path.join('./.', name)
        self.m = build_model(bert_config)

    def vectorizer(self, sentences):
        return [sentence.split() for sentence in sentences]

    def predict(self, tokens):
        _, _, _, _, sent_max_embs, sent_mean_embs, _ = self.m(tokens)
        return sent_mean_embs

bert = RU_BERT_CLASS('rubert_cased_L-12_H-768_A-12_pt')
get_similarity_values = similarity_values_wrapper(bert.predict, bert.vectorizer, distance_function=cosine_distances)
evaluate(get_similarity_values, 'rubert')

'rubert: 2895.7'

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

Обзор методов создания эмбедингов предложений, Часть1

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

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


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


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


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


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


https://cdn-media-1.freecodecamp.org/images/1*bt-E2YcPafjiPbZFDMMmNQ.jpeg

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

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

Итоговые проекты курса Deep Learning in Natural Language Processing (by DeepPavlov Lab)

Время на прочтение5 мин
Количество просмотров7.8K
Недавно завершился «Deep Learning in Natural Language Processing», открытый образовательный курс по обработке естественного языка. По традиции кураторы курса — сотрудники проекта DeepPavlov, открытой библиотеки для разговорного искусственного интеллекта, которую разрабатывают в лаборатории нейронных систем и глубокого обучения МФТИ. Курс проводился при информационной поддержке сообщества Open Data Science. Если нужно больше деталей по формату курса, то вам сюда. Один из ключевых элементов «DL in NLP» — это возможность почувствовать себя исследователем и реализовать собственный проект.

Периодически мы рассказываем на Medium о проектах, которые участники создают в рамках наших образовательных программ, например о том, как построить разговорного оракула. Сегодня мы готовы поделиться итогами весеннего семестрового курса 2020 года.



Немного данных и аналитики


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

Вернемся к участникам. Неужели все окончили курс? Ответ, конечно, очевиден. С каждым новым заданием желающих становилось все меньше и меньше. Как итог — то ли из-за карантина, то ли по другим причинам, но к середине курса осталась только половина. Ну что ж, а дальше пришлось определяться с проектами. В качестве итоговых участниками было заявлено семьдесят работ. А самый популярный проект — Tweet sentiment extraction — девятнадцать команд пытались выполнить задание на Kaggle.

Подробнее про представленные проекты


На прошлой неделе мы провели заключительное занятие курса, где несколько команд представили свои проекты. Если вы пропустили открытый семинар, то мы подготовили запись. А ниже мы постараемся кратко описать реализованные кейсы.
Читать дальше →

Как сделать поиск по файлоболотам в 104 строки кода на python

Время на прочтение4 мин
Количество просмотров8.6K
Продолжая тематику коротких полезных скриптов, хотелось бы познакомить читателей с возможностью построения поиска по контенту файлов и изображений в 104 строки. Это конечно не будет умопомрачительным по качеству решением — но вполне годным для простых нужд. Также в статье не будет ничего изобретаться — все пакеты open source.

И да — пустые строки в коде тоже считаются. Небольшая демонстрация работы приведена в конце статьи.
Читать дальше →

Парсим Википедию, фильтруя, для задач NLP в 44 строки кода

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

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

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

Как сделать поиск по документам, накопленным почти за 100 лет. Опыт НПО Энергомаш и ABBYY

Время на прочтение11 мин
Количество просмотров9.3K
Многие знают, что ABBYY занимается обработкой и извлечением данных из разных документов. Но у наших продуктов есть и другие интересные возможности. В частности, с помощью решения ABBYY Intelligent Search можно быстро и удобно искать информацию по смыслу в электронных документах из корпоративных систем. Этим уже пользуются крупные российские компании, например, производитель ракетных двигателей АО «НПО Энергомаш».

Многолетняя практика показывает, что время вывода космических двигателей на рынок от момента начала работ составляет от 5 до 7 лет. В то же время для удержания лидирующих позиций необходимо сокращать сроки разработки и изготовления до 3 – 4 лет. Кроме того, усиление конкуренции привело к необходимости существенного снижения стоимости выпускаемых двигателей на 30 – 50%.

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

За 90 лет работы НПО Энергомаш накопил вековой объем документов (как бумажных, так и электронных) с ценной информацией о наработках испытателей и конструкторов. Большая часть документов уже хранится в информационных системах компании (ИС). Согласно исследованию IDC, в среднем сотрудники крупных организаций пользуются 5-6 внутренними ИС. Около 36% времени в среднем уходит на поиск информации – в масштабах крупной компании это тысячи рабочих часов в день.

Сегодня мы расскажем, как помогли НПО Энергомаш создать корпоративную интеллектуальную информационно-поисковую систему (КИИПС) на базе ABBYY Intelligent Search – такую же удобную и быструю, как популярные поисковики.
Читать дальше →

Наш опыт работы с DeepPavlov: голосовой помощник за 20 дней и приём 5000 звонков на горячей линии

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров6.3K
Когда объявили режим самоизоляции, на горячую линию по коронавирусу в Татарстане поступало множество вопросов от жителей. Чтобы разгрузить операторов коллцентра, мы в Центре Цифровой Трансформации республики вместе с уполномоченным по ИИ в Татарстане разработали голосового помощника, который отвечал на несложные вопросы.



Для приема звонков мы использовали платформу Voximplant, а для распознавания вопросов и ответов — DeepPavlov. Голосового помощника получилось запустить за две с половиной недели, и он помог обработать 5000 звонков. У нас получилось выкатить продукт, который помогал жителям Татарстана получать достоверную информацию от властей, да и просто выходить на улицу. Ниже расскажем, как мы это делали.
Читать дальше →

Искусственный интеллект в области юриспруденции. Статья 2

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

Введение


Анализ актуальной в настоящее время темы искусственного интеллекта и его применения в области юриспруденции мы начали с обзора инструментов синтаксического и семантического анализа текстов, которые применяются при разработке LegalTech-решений.


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


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

Пересказ грамматики Ложбана или что мне удалось усвоить

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

Ложбан — искусственный человеческий язык, созданный на основе Логланга в 1987 году Группой логического языка (The Logical Language Group). Лицензионно-открыт и свободен. Основан на логике предикатов. Имеет описание в формате YACC и EBNF.


Алфавит


a, b, d, f, g, i, k, l, m, n, o, p, r, s, t, v, z — читаются как в английском
h, w, q — нет в алфавите
e — читается как русская Э
u — читается как русская У
c — читается как русская Ш. Но ci — произносится как «щи».
х — читается как русская Х (!)
j — читается как русская Ж
tc — читается как русская Ч
y — это шва и произноситься как безударная Ы. Например cy — произносится как «шы».
' — просто разделитель наподобие наших Ь, Ъ знаков (в транскрипции заменяется на h).
. — пауза в произношении.


Числительные


0 — no, 1 — pa, 2 — re, 3 — ci, 4 — vo, 5 — mu, 6 — ха, 7 — ze, 8 — bi, 9 — so
pi — десятичная точка


Например:
pa re ci pi vo mu — 123,45
pa no no — 100

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