Pull to refresh

Comments 8

Глубокоуважаемый Максим! Большое спасибо за Ваш гигантский труд. Отличные рисунки, красивый человеческий русский язык.

Спасибо!
Если знаете кого-то кому нужна такая статья, то приводите их сюда. Буду ждать.

Статью сохранил, летом с ребёнком проработаем

Пишите вопросы, даже самые глупые. Постараюсь ответить на все.

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

Спасибо за интерес к моей статье. Ниже некоторые разъяснения работы внимания.

Суть самовнимания в том, что каждая текстовая единица в последовательности (тексте) имеет отношение ко всем остальным, выраженное математически в конкретных числах.

Пример без батча:
На вход поступает тензор X [T D], а на выходе должно быть некое переработанное представление тех же данных Z [T D], где главное выделено, а несущественное отброшено.

Технически (в плане формы) мы можем взять X [T D] и умножить на транспонированный вариант Xt [D T], и получить таблицу токенов A [T T]. А потом "взвесить" эти же данные X полученной таблицей A [T T] * X [T D] = Z [T D], и за одно вернуть их к первоначальной форме [T D]. Но в реальности мы работаем с проекциями данных: вход умножаются на три разных обучаемых параметра QKV (матрицы весов), чтобы модель могла меняться и тренировать свое внимание.

В качестве аналогий часто приводятся наименования: "запросы", "ключи" и "значения", которые облегчают понимание механизма.

Все легче, чем кажется.
Если есть конкретные вопросы, то я на них отвечу.

Вроде бы всё понятно, но трудновато склеить весь материал воедино (т.к. я капец медлительный человек и зараз скорей всего не найду времени прочитать и обдумать). Ещё трудней соотнести с кодом (тут можно было использовать, что-то типа [1] связав текст и код). В целом, было бы неплохо чтобы была такая интерактивная схема. где нажав на какой-либо блок, открывалась его расширенная схема. Но думаю это было бы сложно и в статью, скорей всего, только в виде ссылки можно будет вставить.
Но да ладно, читая статью (хотя и до неё) у меня появился вопрос: А как делают серьёзные, большие нейросети на практике и в чём? Тут же у нас, я так понимаю, была учебная практика

В этом случае медлительность признак основательности. Разумеется, статью нельзя изучить за одно прочтение! На создание своего фреймворка я потратил 4 месяца.
Теперь по поводу вопроса, если я его верно понял.

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

Серьезные проекты, как правило, пишутся на базе готовых фреймворков с дополнением собственными модулями. Сами модули могут разрабатываться на Python, а за тем переводиться на низкоуровневый язык, например C++. У разных компаний для этого есть собственные специалисты/отделы. То есть сами DS-исследования и чистая инженерия с сопровождением и оптимизацией продукта - это разные вещи.

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

Лучший способ стать хорошим механиком: изобрести свой велосипед!

Sign up to leave a comment.

Articles