Я думаю, что в коммерческих LLM и GPT уже никому не дано разобраться, а в трансформерах ещё есть шанс.
Утрируете многоуважаемый. Нет там ничего такого, чего бы не осилил пытливый ум, знакомый с основами, например который MLP сам может написать, без LLM. Трансформер в виде механизма внимания сам по себе — это довольно компактная и элегантная функция, в коммерческих системах положенная в много слоёв. Сложность возникает из количества повторений и масштаба данных, а не из концептуальной глубины.

В айтиинженерии полно алгоритмов на порядок запутаннее. Современные кодеки для видео или спектральные методы в обработке сигналов — там такая математическая вакханалия с эмпирическими коэффициентами, что трансформер покажется детским лепетом. Да полно есть штук принципиально сложнее. В трансформере же всё прозрачно: есть вход, эмбединги, есть механизм внимания, есть простая полносвязная сеть и нехитрая нормализация. Всё остальное — это просто повторение этого блока и разного рода произвольные композиции, этакая алхимия.
И если это вскормить терабайтом текста - то оно заговорит! Сама архитектура не содержит в себе "разума". Она просто создаёт условия, при которых из статистических закономерностей, размазанных по гигантскому объему текста, начинают прорастать структуры, похожие на знание. Ну то есть знание как бы и есть в системе, нам просто немыслимо как алгоритм смог, простите, ВЫСОСАТЬ, его из такого количества данных. Это как если бы вы дали человеку, не знающему нот, все партитуры мира и он бы заиграл на рояле как Моцарт. Так как мы это не можем в принципе(мозгом), то имеем когнитивный диссонанс. Это было сюрпризом и для тех кто в начале пичкал нейросетки всё большим объемом текста, когда рнн начали переводить лучше любых хардкодных систем и тд.
Да, код обучения модуля внимания с обратным распространением может выглядеть путанно. Но это проблема записи алгоритма на ЯП, а не сложности идеи. Производную от матричного умножения взять не сложнее, чем от обычного, просто она превращается в целое семейство произведений, и в коде это начинает напоминать магию с транспонированиями. Но это всё детали реализации, а не божественное откровение.
Код:
# вперёд
S = (Q @ K.T) / sqrt(d_k)
P = softmax(S, axis=1)
O = P @ V
# назад
dV = P.T @ dO
dP = dO @ V.T
dS = P * (dP - (P * dP).sum(axis=1, keepdims=True))
dQ = dS @ K / sqrt(d_k)
dK = dS.T @ Q / sqrt(d_k)
Всё, что сейчас навешивают сверху — рассуждения по шагам, вызов функций и прочие агентные художества — это уже чистое инженерное творчество, это даже и понимать не нужно, не принципиально, можно сделать бесконечностью способов. Сложность здесь агрегатная: она побеждается количеством инженерных рук или, что забавно, теперь с помощью самих же LLM для написания кода.
Так что узнать, как устроен трансформер, действительно не сложно. Достаточно сесть и прочитать оригинальную статью, как предлагалось, "Attention Is All You Need", на хабре полно уже статей есть. Ну или, как же без этого, спросить саму LLM )))
Но настоящее приключение — это попытаться проследить ход мысли авторов. Как они от рекуррентных сетей, которые жуют последовательности по порядку, пришли к идее "выкинуть всё к чертям, пусть слова общаются напрямую"? Почему они решили, что позицию слова можно просто закодировать синусом и косинусом и добавить к смыслу? А самое главное что можно каждое слово ОТДЕЛЬНО прогнать с позиционным смещением, а потом реультаты смиксовать… Вот где настоящий детектив, достойный исследования и что может подтолкнуть к принципиально новым открытиям.
PS Научпоп читать про это не очень будет полезн имхо, разве что если нравится...