Pull to refresh
10
0
Даниил Гребенкин @dangrebenkin

NLP/ASR исследователь

Send message

Есть ли жизнь до fit/predict?

Level of difficultyMedium
Reading time12 min
Views1.9K

Всем привет! Меня зовут Даниил Карпов, я старший NLP-разработчик в MTS AI. В эпоху LLM и огромных датасетов, вмещающих в себя весь интернет, кажется, что качество самих данных ушло немного на второй план: чем больше данных/параметров, тем лучше. Однако экстенсивный рост рано или поздно упирается в ограничения, когда становится уже слишком дорого/невозможно его продолжать. Роль хороших данных не стоит недооценивать, грамотный отбор может помочь значительно ускорить и удешевить обучение с одной стороны, тогда как отбраковка откровенно плохой разметки поможет улучшить качество с другой. Здесь я расскажу о некоторых из таких методов, которые использовались в процессе подготовки данных.

Читать далее
Total votes 8: ↑8 and ↓0+9
Comments0

Опыт дистилляции моделей распознавания речи

Level of difficultyMedium
Reading time6 min
Views1.4K

Небольшая история про наш опыт дистилляции моделей для распознавания речи. Как у нас получилось уменьшить модель в 160 раз и не проиграть по качеству.

Читать далее
Total votes 7: ↑7 and ↓0+9
Comments3

Обзор архитектуры Swin Transformer

Reading time7 min
Views14K

Трансформеры шагают по планете! В статье вспомним/узнаем как работает visual attention, поймём что с ним не так, а главное как его поправить, чтобы получить на выходе best paper ICCV21.

Автоботы, трансформируемся!
Total votes 6: ↑6 and ↓0+6
Comments1

GigaAM: класс открытых моделей для обработки звучащей речи

Level of difficultyMedium
Reading time10 min
Views11K

Салют, Хабр! Ранее мы в SberDevices анонсировали предобученную на русском языке модель GigaAM (Giga Acoustic Model) и её дообученные состояния под распознавание речи (GigaAM-CTC) и определение эмоций (GigaAM-Emo). Сегодня же делимся с сообществом весами моделей и примерами использования.

Приглашаем под кат погрузиться в self-supervised learning для звучащей речи и оценить возможности предобученных моделей!

Читать далее
Total votes 23: ↑22 and ↓1+30
Comments20

Transformer в картинках

Reading time14 min
Views129K

В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (Transformer) – модель, которая использует механизм внимания для повышения скорости обучения. Более того, для ряда задач Трансформеры превосходят модель нейронного машинного перевода от Google. Однако самое большое преимущество Трансформеров заключается в их высокой эффективности в условиях параллелизации (parallelization). Даже Google Cloud рекомендует использовать Трансформер в качестве модели при работе на Cloud TPU. Попробуем разобраться, из чего состоит модель и какие функции выполняет.


Впервые модель Трансформера была предложена в статье Attention is All You Need. Реализация на TensorFlow доступна как часть пакета Tensor2Tensor, кроме того, группа NLP-исследователей из Гарварда создали гид-аннотацию статьи с реализацией на PyTorch. В данном же руководстве мы попробуем максимально просто и последовательно изложить основные идеи и понятия, что, надеемся, поможет людям, не обладающим глубоким знанием предметной области, понять данную модель.

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments5

Визуализируя нейронный машинный перевод (seq2seq модели с механизмом внимания)

Reading time5 min
Views48K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)" автора Jay Alammar.


Sequence-to-sequence модели (seq2seq) – это модели глубокого обучения, достигшие больших успехов в таких задачах, как машинный перевод, суммаризация текста, аннотация изображений и др. Так, например, в конце 2016 года подобная модель была встроена в Google Translate. Основы же seq2seq моделей были заложены еще в 2014 году с выходом двух статей — Sutskever et al., 2014, Cho et al., 2014.


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


Sequence-to-sequence модель – это модель, принимающая на вход последовательность элементов (слов, букв, признаков изображения и т.д.) и возвращающая другую последовательность элементов. Обученная модель работает следующим образом:


Total votes 10: ↑9 and ↓1+13
Comments2

Как адаптировать языковые модели Kaldi? (со смешными животными)

Reading time14 min
Views11K


«Как научить русскоязычную модель распознавать речь геймеров?» Подобными вопросами задаются те, кто увлекается и занимается NLP. В частности, NLP-специалистов интересует, как можно адаптировать модель Kaldi под свою предметную область, чтобы улучшить качество распознавания. Это мы и разберём в данной статье.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments3

Градиентный спуск по косточкам

Reading time37 min
Views63K

В интернете есть много статей с описанием алгоритма градиентного спуска. Здесь будет еще одна.


8 июля 1958 года The New York Times писала: «Психолог показывает эмбрион компьютера, разработанного, чтобы читать и становиться мудрее. Разработанный ВМФ… стоивший 2 миллиона долларов компьютер "704", обучился различать левое и правое после пятидесяти попыток… По утверждению ВМФ, они используют этот принцип, чтобы построить первую мыслящую машину класса "Перцептрон", которая сможет читать и писать; разработку планируется завершить через год, с общей стоимостью $100 000… Ученые предсказывают, что позже Перцептроны смогут распознавать людей и называть их по имени, мгновенно переводить устную и письменную речь с одного языка на другой. Мистер Розенблатт сказал, что в принципе возможно построить "мозги", которые смогут воспроизводить самих себя на конвейере и которые будут осознавать свое собственное существование» (цитата и перевод из книги С. Николенко, «Глубокое обучение, погружение в мир нейронный сетей»).


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

Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments17

Классификатор kNN

Reading time6 min
Views147K
kNN расшифровывается как k Nearest Neighbor или k Ближайших Соседей — это один из самых простых алгоритмов классификации, также иногда используемый в задачах регрессии. Благодаря своей простоте, он является хорошим примером, с которого можно начать знакомство с областью Machine Learning. В данной статье рассмотрен пример написания кода такого классификатора на python, а также визуализация полученных результатов.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments9

Линейная регрессия и градиентный спуск

Reading time3 min
Views24K
Пусть в некоторой предметной области исследуются показатели X и Y, которые имеют количественное выражение.

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

Обозначим через:

X — торговую площадь(кв. м.)

Y — годовой товарооборот(млн. р.)

Очевидно, что чем выше торговая площадь, тем выше годовой товарооборот(предполагаем линейную зависимость).

Представим, что у нас есть данные о некоторых n магазинах(торговая площадь и годовой товарооборот) — наш датасет и k торговых площадей(X), для которых мы хотим предсказать годовой товарооборот(Y) — наша задача.

Выдвинем гипотезу, что наше значение Y зависит от X в виде: Y = a + b * X

Чтобы решить нашу задачу, мы должны подобрать коэффициенты a и b.
Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments11

Новое решение парадокса Ферми (почему мы одиноки во Вселенной)

Reading time4 min
Views65K
Недавно мне пришло в голову совершенно новое решение Парадокса Ферми. Я не буду пересказывать то, что вы можете прочитать в Вики.



Перейду к сути. Для решения проблемы нам понадобятся несколько ингредиентов.
Читать дальше →
Total votes 79: ↑63 and ↓16+47
Comments499

Способы создания гистограмм с помощью Python

Reading time2 min
Views173K
За последний год я сталкивалась с необходимостью рисования гистограмм и столбчатых диаграмм достаточно часто для того, чтобы появилось желание и возможность об этом написать. Кроме того, мне самой довольно сильно не хватало подобной информации. В этой статье приведен обзор 3 методов создания таких графиков на языке Python.

Начнем с того, чего я сама по своей неопытности не знала очень долго: столбчатые диаграммы и гистограммы — разные вещи. Основное отличие состоит в том, что гистограмма показывает частотное распределение — мы задаем набор значений оси Ox, а по Oy всегда откладывается частота. В столбчатой диаграмме (которую в англоязычной литературе уместно было бы назвать barplot) мы задаем и значения оси абсцисс, и значения оси ординат.

Для демонстрации я буду использовать избитый набор данных библиотеки scikit learn Iris. Начнем c импортов:

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from sklearn import datasets
iris = datasets.load_iris()

Преобразуем набор данных iris в dataframe — так нам удобнее будет с ним работать в будущем.

data = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])

Из интересующих нас параметров data содержит информацию о длине чашелистиков и лепестков и ширине чашелистиков и лепестков.

Используем Matplotlib
Построение гистограммы
Cтроим обычную гистограмму, показывающую частотное распределение длин лепестков и чашелистиков:

fig, axs = plt.subplots(1, 2)
n_bins = len(data)
axs[0].hist(data['sepal length (cm)'], bins=n_bins)
axs[0].set_title('sepal length')
axs[1].hist(data['petal length (cm)'], bins=n_bins)
axs[1].set_title('petal length')

image
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments4

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity

Specialization

Specialist
Python
Linux
Natural language processing
Sound processing
Software development