Search
Write a publication
Pull to refresh

Comments 16

Простое число 1001

1001 -- составное число: 7 * 11 * 13 = 1001.

Спасибо за замечание
Неправильный нейминг сделал, имел ввиду просто число 1001, никаких отсылок на математические свойства простых чисел

Если вы до сих пор считаете, что positional encoding в трансформерах — это знаменитые sin/cos из статьи 2017 года, то боюсь, что собеседование для вас закончится автоматическим реджектом.

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

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

Если на собеседовании задается вопрос про positional encoding это может означать 2 вещи:

  • Вы устраиваетесь на позицию PhD/Postdoc в лабораторию которая занимается AI и вам придется с этим работать (например, проводить эксперименты по новым типам трансформеров). Такие кандидаты стоят очень дорого.

  • Интервьювер не понимает что спрашивать надо, и спрашивает вопрос по тому, что выучил сам.

Ответ про sin/cos достаточен, потому-что показывает, что кандидат знает как с помощью простых периодических функций можно закодировать позицию. И это достаточно древняя идея, использовавшаяся и до трансформеров. Остальное, в работе ему скорее всего не понадобится, за исключением п.1

Ну и да) просить написать техническую статью по AI ChatGPT -- иронично

Ну камон) Если ты идешь NLP разрабом и идешь на техническую секцию, то пробегутся о всех частях трансформера, и конечно нужно знать о позиционных кодировании - это буквально проверка как устроен трансформер и куда/как в нем можно вставить знания о позиции

Если не везде, то в бигтехах точно спрашивают

Да почему минус)) я понимаю, что часто об это думать на практике не придется

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

Минус не ставил, но в вашем примере есть проблема, так как в вашем случае следовало бы использовать цепочку SMM или mamba или linoss-im или хотя бы гибрид с трансформерами. Когда речь заходит про генерацию музыки. Это даст более качественный результат, чем трансформеры. В вашем случае позиционирование разделяет временные участки.

Да это верно, если делать input на непрервном представлении, например на спектограммах (в целом как и все делают)

Но мы решили делать через MIDI представления (событийное представления музыки) и такой несложный update прям сильно повлиял

Спасибо за замечание!

Музыкальные композиции, не важно в Midi или спектрограммах это периодические данные, не важно с затуханием или с динамическим периодом. Поэтому тут в любом случае лучше использовать LinOSS-IM (это SSM с осцилляцией, через замену в уравнении матрицы A на комплексную, для описания колебаний)

Статья про них: https://openreview.net/pdf?id=GRMfXcAAFhи
GitHub : https://github.com/tk-rusch/linoss/tree/main
По классу у них разделение:
S5 : Как пружина, которая быстро затухает.

LinOSS-IM : Как маятник, который колеблется, но со временем останавливается.

LinOSS-IMEX : Как маятник без трения — колебания продолжаются бесконечно.

https://t.me/greenruff/2410 тут вывод SSM из кинематики и расчеты
https://t.me/greenruff/2410 тут вывод SSM из кинематики и расчеты

Это конечно не панацея, но если нужно еще модуляция (механизм внимания), то выводил математически и дорабатывал ее. В комментариях выкладывал код. Оптимизацию пока не делал, но в целом это лучше, чем просто SSM/LinOSS-IM. Хотя в названии LinOSS-IM, но из нее была взято как раз комплексная составляющая для осцилляции. Так что для данных лучше использовать ее, для MIDI это точно.

У IMEX конечно интересная особенность, но она и является проблемой. Во первых фильтр не обладает bibo устойчивостью, и кто знает, что там будет на больших последовательностях, без какой-нибудь fp64. Во вторых, из-за этого не работает теорема Винера-Леви (Wiener–Lévy theorem), а значит она вряд-ли будет обладать универсальной аппроксимацией.

насчет bibo, то чистая SSM да не обладает. LinOSS-IM обладает, так как там затухание. Но, когда я расширял модель SSM (вывел ее через туже кинематику), то BIBO-устойчивость была проблемой связанной с дискретностью, так как затухание не успевало за ускорением и происходил рост. Но это решается, если правильно учесть этот момент, сейчас подобных проблем нет.

Поэтому с теоремой Винера-Леви все нормально, если учесть этот момент. Но да, надо быть к нему готовым, если использовать в чистом виде SSM/LinOSS/Mamba. Я не помню, чтобы в них это учитывалось и могут быть такие последовательности, где из-за дискретности состояния затухание будет расходится с ускорением и тогда взрыв градиентов. Так что этот момент вполне решается, если его учесть.

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

IMEX всегда будет иметь проблему, так как полюса на единичной окружности нарушают bibo стабильность, а это тянет за собой невозможность сходимости в l1 норме импульсный отклик, что нарушает выполнимость теоремы Винера-Леви. А так как может быть погрешность, то полюса могут улетать за единичную окружность наверх, и тогда увы, будет все плохо.

У LinOSS-IM частично это решено через комплексный оператор A с отрицательной вещественной частью, где A задается как diag(−softplus(Alog)+i⋅Aim) , где Re(A)<0.

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

Я вот люблю спрашивать, а чё это именно трансформеры, чем они так особенны. Только потому, что крупные игроки выложили достаточно денег и хайпа вокруг них? Ну вот и все остальные подъедают объедки со стола. Хотя у них ой как много проблем.

Вот к примеру исследование показывающее что трансформеры low-pass фильтр реализуют, что их ограничивает.

Далее, само PE это костыль и плата за динамичность размера. Но и тут есть кое какие теоретические и практические моменты, которые должны были в статье быть изложены. Во первых, только тренируемые APE обладают универсальной аппроксимацией. У RPE с этим проблемы. Во вторых есть очень интересные результаты, которые показывают, что на практике без PE(NPE) трансформер может опережать с PE. А самое интересное, что там же и теоретически доказано, что он может моделировать к примеру APE, а значит он обладает универсальной аппроксимацией. Так что можно интервьюеров посылать на три буквы — NPE, и говорить что PE не нужны:)

`Где θ — это функция от номера позиции m , например: ` - а примера нет ...

Sign up to leave a comment.

Articles