• Маленький и быстрый BERT для русского языка

      BERT – нейросеть, способная неплохо понимать смысл текстов на человеческом языке. Впервые появившись в 2018 году, эта модель совершила переворот в компьютерной лингвистике. Базовая версия модели долго предобучается, читая миллионы текстов и постепенно осваивая язык, а потом её можно дообучить на собственной прикладной задаче, например, классификации комментариев или выделении в тексте имён, названий и адресов. Стандартная версия BERT довольно толстая: весит больше 600 мегабайт, обрабатывает предложение около 120 миллисекунд (на CPU). В этом посте я предлагаю уменьшенную версию BERT для русского языка – 45 мегабайт, 6 миллисекунд на предложение. Она была получена в результате дистилляции нескольких больших моделей. Уже есть tinybert для английского от Хуавея, есть моя уменьшалка FastText'а, а вот маленький (англо-)русский BERT, кажется, появился впервые. Но насколько он хорош?

      Читать далее
    • Неполнота науки: как жил и что доказал Курт Гёдель?


        «Достижения Курта Гёделя в современной логике уникальны и монументальны. Определенно, это — нечто большее, нежели памятник ученому, это — путеводная звезда, свет которой продолжит распространяться в пространстве и времени вечно». 

        Джон фон Нейман

        Накануне гибели Австро-Венгерская империя подарила человечеству немало великих умов. Такие громкие имена, как Эрвин Шрёдингер, Зигмунд Фрейд и Стефан Цвейг известны, пожалуй, каждому, включая даже тех, кто бесконечно далек от мира физики, психоанализа или классической литературы. С работами же Курта Гёделя знакомы не многие, хотя масштаб его вклада в математическую науку сопоставим с достижениями Эйнштейна в области физики. Ведь если теория относительности и квантовая теория помогли человечеству взглянуть под совершенно иным углом на законы мироздания, то теоремы Гёделя заставили ученых пересмотреть свои представления о научной методологии и принципах работы человеческого разума.

        Логика, как образ жизни


        Курт Фридрих Гёдель родился 28 апреля 1906 года в австро-венгерском городе Брюнн (ныне — статутный город Чешской Республики Брно), в семье австрийского коммерсанта Рудольфа Августа Гёделя, управляющего крупной текстильной фабрикой. Хотя Курт с детства демонстрировал недюжинные способности к языкам (еще в ранней юности он освоил английский и французский, научившись изъясняться на них не хуже, чем на родном немецком), однако карьера лингвиста его не прельщала. Окончив в 1923 году школу, молодой человек поступил в Венский университет, первые два курса которого посвятил изучению физики, однако затем переключился на математику, чему во многом способствовало прочтение книги Бертрана Рассела «Введение в философию математики».


        Молодой Курт Гёдель, 1925 год
        Читать дальше →
      • Инструменты для участников соревнований по машинному обучению

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


        Преимущества, которые получают организаторы соревнований:


        • Большое количество квалифицированных людей, которые работают над их задачей и стараются решить ее лучше остальных
        • Относительно небольшие (в сравнении с наймом специалистов) финансовые затраты
        • Решение задачи, наиболее качественное и подходящее для нее

        И участники соревнований также получают пользу:


        • Публичное признание высокой квалификации
        • Денежные призы
        • И просто удовольствие от участия и победы

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


        Приступим!

        Читать дальше →
        • +11
        • 3.1k
        • 5
      • Анимации градиентного спуска и ландшафта потерь нейронных сетей на Python

        • Translation
        • Tutorial
        Во время изучения различных алгоритмов машинного обучения я наткнулся на ландшафт потерь нейронных сетей с их горными территориями, хребтами и долинами. Эти ландшафты потерь сильно отличались от выпуклых и гладких ландшафтов потерь, с которыми я столкнулся при использовании линейной и логистической регрессий. Здесь мы создадим ландшафты потерь нейронных сетей и анимированного градиентного спуска с помощью датасета MNIST.


        Рисунок 1 — Ландшафт потерь свёрточной нейронной сети с 56 слоями (VGG-56, источник)
        Приятного чтения!
        • +39
        • 8.3k
        • 3
      • Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ

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


          Источник изображения
          Читать дальше →
        • Что покупать для глубокого обучения: личный опыт и советы использования GPU

          • Translation
          Перевод статьи Тима Деттмерса, кандидата наук из Вашингтонского университета, специалиста по глубокому обучению и обработке естественного языка

          Глубокое обучение (ГО) – область с повышенными запросами к вычислительным мощностям, поэтому ваш выбор GPU фундаментально определит ваш опыт в этой области. Но какие свойства важно учесть, если вы покупаете новый GPU? Память, ядра, тензорные ядра? Как сделать лучший выбор по соотношению цены и качества? В данной статье я подробно разберу все эти вопросы, распространённые заблуждения, дам вам интуитивное представление о GPU а также несколько советов, которые помогут вам сделать правильный выбор.

          Статья написана так, чтобы дать вам несколько разных уровней понимания GPU, в т.ч. новой серии Ampere от NVIDIA. У вас есть выбор:

          1. Если вам не интересны детали работы GPU, что именно делает GPU быстрым, чего уникального есть в новых GPU серии NVIDIA RTX 30 Ampere – можете пропустить начало статьи, вплоть до графиков по быстродействию и быстродействию на $1 стоимости, а также раздела рекомендаций. Это ядро данной статьи и наиболее ценное содержимое.
          2. Если вас интересуют конкретные вопросы, то наиболее частые из них я осветил в последней части статьи.
          3. Если вам нужно глубокое понимание того, как работают GPU и тензорные ядра, лучше всего будет прочесть статью от начала и до конца. В зависимости от ваших знаний по конкретным предметам вы можете пропустить главу-другую.

          Каждая секция предваряется небольшим резюме, которое поможет вам решить, читать её целиком или нет.
          Читать дальше →
        • Сознание и мозг


            Сознание — рефлексия субъектом действительности, своей деятельности, самого себя. Оно порождается не природой, а самим человеком и окружающим миром, семьей, обществом.
            В свое время Г. В. Ф. Гегелем были высказаны идеи о трех слоях в его учении о субъективном духе, который выделял три ступени в развитии субъективного духа: антропологию, феноменологию и психологию. Сегодня этот подход вполне применим к сознанию.
            Читать дальше →
          • Онтол от DeepMind: самые полезные материалы по искусственному интеллекту от мирового лидера

            • Translation
            image


            Ученые из DeepMind составили Curated Resource List образовательных материалов для тех, кто хочет связать свою жизнь с ИИ и машинным обучением. Я называю такую подборку «онтол» — список того, что формирует картину мира по данному вопросу, ранжированный по важности и составленный живым человеком, специалистом, который несёт репутационную ответственность за этот список (чтобы не было в нём маркетинговой и ангажированной фигни).

            По задумке, если десяток лучших компаний в области ИИ попросят своих ведущих специалистов (каждого) сделать подборку лучших материалов, которые сформировали их как специалистов, то мы получим массив подборок (список топ-10/100 ресурсов+имя составителя) и на основе этого можно будет делать интересные выводы ( а)по качеству материалов, что следует учить в первую очередь б) по качеству специалистов, которые могут выделять главное в)что-то ещё). Так мы «разметим» все открытые тексты/видео в области ИИ. Потом возьмемся за другие темы: еда, доверие, дело жизни, семья, сотрудничество, когнитивные искажения и прочее — то, что формирует картину мира.

            Тестируйте прототип beta.ontol.org и подписывайтесь на канал @Ontol

            Оглавление


            Этика
            Safety
            Теория и фундаментальные понятия
            Neuroscience
            Natural Language Processing
            Machine Learning
            Deep Learning
            Reinforcement Learning
            Unsupervised Learning and Generative Models
            Прочее
            Читать дальше →
          • Event2Mind для русского языка. Как мы обучили модель читать между строк и понимать намерения собеседника

              Умение модели распознавать намерения собеседника, то есть понимать зачем человек совершил то или иное действие, применимо в большом числе прикладных NLP-задач. К примеру, чат-ботам, голосовым помощникам и другим диалоговые системам это позволит эмоционально реагировать на высказывания собеседника, проявлять понимание, сочувствие и другие эмоции. Кроме того, задача распознавания намерения – это еще один шаг на пути к пониманию человеческой речи (human understanding).



              Уже было предпринято несколько попыток решить данную задачу в той или иной форме. Например, на NLP-progress публикуются последние достижения в области commonsense reasoning. Слабость большинства существующих моделей заключается в том, что в их основе лежит supervised подход, то есть им требуются большие размеченные датасеты для обучения. А в силу специфичности задачи разметка часто бывает весьма нестандартной и достаточно сложной.

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

              В этом посте мы расскажем, как мы создали датасет для задачи Common Sense Reasoning в одной из ее возможных формулировок, предложенной в статье event2mind, а также адаптировали английскую модель event2mind от AllenNLP для русского языка.
              Читать дальше →
              • +14
              • 4.4k
              • 6
            • Агломеративная кластеризация: алгоритм, быстродействие, код на GitHub



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


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


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

                Читать дальше →
              • Оценка качества кластеризации: свойства, метрики, код на GitHub

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


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


                  В далёком 2013 году мне повезло поучаствовать в разработке очень сложного алгоритма кластеризации. Требовалось с очень высоким качеством кластеризовать сотни тысяч объектов и делать это быстро: за десятки секунд на одной машине. Первым делом нужно было построить систему оценки качества, и в этой статье я расскажу именно о ней.



                  Читать дальше →
                • Трансформеры как графовые нейронные сети

                  • Translation
                  TL;DR: перевод поста Chaitanya Joshi "Transformers are Graph Neural Networks": схемы, формулы, идеи, важные ссылки. Публикуется с любезного разрешения автора.

                  Друзья-датасаентисты часто задают один и тот же вопрос: графовые нейронные сети (Graph Neural Networks) — прекрасная идея, но были ли у них хоть какие-то настоящие истории успеха? Есть ли у них какие-нибудь полезные на практике приложения?



                  Можно привести в пример и без того известные варианты — рекомендательные системы в Pinterest, Alibaba и Twitter. Но есть и более хитрая история успеха: штурмом взявшая промышленную обработку естественного языка архитектура Transformer.


                  В этом посте мне бы хотелось установить связи между графовыми нейронными сетями и трансформерами (Transformers). Мы поговорим об интуитивном обосновании архитектур моделей в NLP- и GNN-сообществах, покажем их связь на языке формул и уравнений и порассуждаем, как оба "мира" могут объединить усилия, чтобы продвинуть прогресс.

                  Читать дальше →
                • Word2vec в картинках

                  • Translation


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

                  Мы пытаемся скопировать этот узор в нашей жизни и нашем обществе и потому любим ритм, песню, танец, различные радующие и утешающие нас формы. Однако можно разглядеть и опасность, таящуюся в поиске абсолютного совершенства, ибо очевидно, что совершенный узор — неизменен. И, приближаясь к совершенству, всё сущее идёт к смерти» — Дюна (1965)

                  Я считаю, что концепция вложений (embeddings) — одна из самых замечательных идей в машинном обучении. Если вы когда-нибудь использовали Siri, Google Assistant, Alexa, Google Translate или даже клавиатуру смартфона с предсказанием следующего слова, то уже работали с моделью обработки естественного языка на основе вложений. За последние десятилетия произошло значительное развитие этой концепции для нейронных моделей (последние разработки включают контекстуализированные вложения слов в передовых моделях, таких как BERT и GPT2).
                  Читать дальше →
                • NeurIPS 2019: тренды ML, которые будут с нами следующее десятилетие

                    NeurIPS (Neural Information Processing Systems) – самая большая конференция в мире по машинному обучению и искусственному интеллекту и главное событие в мире deep learning.

                    Будем ли мы, DS-инженеры, в новом десятилетии осваивать еще и биологию, лингвистику, психологию? Расскажем в нашем обзоре.


                    Читать дальше →
                  • SVM. Объяснение с нуля и реализация на python. Подробный разбор метода опорных векторов

                      Привет всем, кто выбрал путь ML-самурая!


                      Введение:


                      В данной статье рассмотрим метод опорных векторов (англ. SVM, Support Vector Machine) для задачи классификации. Будет представлена основная идея алгоритма, вывод настройки его весов и разобрана простая реализация своими руками. На примере датасета $Iris$ будет продемонстрирована работа написанного алгоритма с линейно разделимыми/неразделимыми данными в пространстве $R^2$ и визуализация обучения/прогноза. Дополнительно будут озвучены плюсы и минусы алгоритма, его модификации.


                      image
                      Рисунок 1. Фото цветка ириса из открытых источников

                      Читать дальше →
                      • +50
                      • 43.8k
                      • 5
                    • TensorRT 6.x.x.x — высокопроизводительный инференс для моделей глубокого обучения (Object Detection и Segmentation)

                      • Tutorial
                      image
                      Больно только в первый раз!

                      Всем привет! Дорогие друзья, в этой статье я хочу поделиться своим опытом использования TensorRT, RetinaNet на базе репозитория github.com/aidonchuk/retinanet-examples (это форк официальной репы от nvidia, который позволит начать использовать в продакшен оптимизированные модели в кратчайшие сроки). Пролистывая сообщения в каналах сообщества ods.ai, я сталкиваюсь с вопросами по использованию TensorRT, и в основном вопросы повторяются, поэтому я решил написать как можно более полное руководство по использованию быстрого инференса на основе TensorRT, RetinaNet, Unet и docker.
                      Читать дальше →
                    • Нейросети. Куда это все движется

                        Статья состоит из двух частей:


                        1. Краткое описание некоторых архитектур сетей по обнаружению объектов на изображении и сегментации изображений с самыми понятными для меня ссылками на ресурсы. Старался выбирать видео пояснения и желательно на русском языке.
                        2. Вторая часть состоит в попытке осознать направление развития архитектур нейронных сетей. И технологий на их основе.

                        Понимать архитектуры нейросетей непросто


                        Рисунок 1 – Понимать архитектуры нейросетей непросто


                        Все началось с того, что сделал два демонстрационных приложения по классификации и обнаружению объектов на телефоне Android:


                        • Back-end demo, когда данные обрабатываются на сервере и передаются на телефон. Классификация изображений (image classification) трех типов медведей: бурого, черного и плюшевого.
                        • Front-end demo, когда данные обрабатываются на самом телефоне. Обнаружение объектов (object detection) трех типов: фундук, инжир и финик.
                        Читать дальше →
                      • 7 лет хайпа нейросетей в графиках и вдохновляющие перспективы Deep Learning 2020-х



                          Новый год все ближе, скоро закончатся 2010-е годы, подарившие миру нашумевший ренессанс нейросетей. Мне не давала покоя и лишала сна простая мысль: «Как можно ретроспективно прикинуть скорость развития нейросетей?» Ибо «Тот, кто знает прошлое — тот знает и будущее». Как быстро «взлетали» разные алгоритмы? Как вообще можно оценить скорость прогресса в этой области и прикинуть скорость прогресса в следующем десятилетии? 



                          Понятно, что можно примерно посчитать количество статей по разным областям. Метод не идеальный, нужно учитывать подобласти, но в целом можно пробовать. Дарю идею, по Google Scholar (BatchNorm) это вполне реально! Можно считать новые датасеты, можно новые курсы. Ваш же покорный слуга, перебрав несколько вариантов, остановился на Google Trends (BatchNorm)

                          Мы с коллегами взяли запросы основных технологий ML/DL, например, Batch Normalization, как на картинке выше, точкой добавили дату публикации статьи и получили вполне себе график взлета популярности темы. Но не у всех тем путь усыпан розами взлет такой явный и красивый, как у батчнорма. Некоторые термины, например регуляризацию или skip connections, вообще не получилось построить из-за зашумленности данных. Но в целом тренды собрать удалось.

                          Кому интересно, что получилось — добро пожаловать под кат!
                          Читать дальше →
                        • История обработки естественного языка, с тринадцатого века до наших дней

                          • Translation

                          Обработка естественного языка восходит к мистикам Каббалы


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



                          Мистик 13 века Авраам бен Самуэль Абулафия изобрёл область обработки естественных языков, начав практику комбинирования букв

                          Сейчас мы находимся на пике интереса к обработке естественного языка (natural language processing, NLP) – области информатики, концентрирующейся на лингвистическом взаимодействии человека и машины. Благодаря прорывам в машинном обучении (МО) в последнее десятилетие, мы наблюдаем серьёзное улучшение в деле распознавания речи и машинного перевода. Генераторы языка уже достаточно хороши для того, чтобы писать связные новостные статьи, а виртуальные помощники типа Siri и Alexa становятся частью нашей повседневной жизни.
                          Читать дальше →
                          • +10
                          • 5.8k
                          • 1
                        • Как Яндекс научил искусственный интеллект находить ошибки в новостях

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

                            Сегодня я расскажу сообществу Хабра об одном из таких примеров. Вы узнаете, зачем мы научили нейросеть BERT находить опечатки в заголовках новостей, а не воспользовались готовой моделью, почему нельзя взять и запустить BERT на нескольких видеокартах и как мы использовали ключевую особенность этой технологии — механизм attention.



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