У нее многие статьи это скорее рассуждающие, то есть теоретические (чем она и занимается по своей специальности). Сложно назвать их научными в плане исследований, а скорее научными в плане рассуждений. Это как если бы был специальный habr для физиков-математиков.
Насчет цитируемости, то она еще в 2019 году писала статью:
"В данной работе мы описываем и представляем результаты работы простой нейронной сети, которая прогнозирует будущие показатели цитирования отдельных исследователей на основе различных данных из их прошлой деятельности."
Они делали простую нейросеть и прогнозировали цитируемость. На научную работу это не тянет. На хабре многие пишут статью, как что-то спрогнозировали. На GitHub такого много тоже, но для исследования это как-то мелко сегодня. Но тема цитируемости, явно "близка" ей.
Но в остальном, у нее много интересных работ "A derivation of Born’s rule from symmetry", где есть предположение, что вероятности должны быть согласованы с юнитарной структурой гильберта. И из этого ее объяснение показывает, что правило Борна не является случайной догадкой, а математически единственный возможный вариант, совместимый с симметрией квантовой механики. И таких статей у нее много. Они о построении различных гипотез, связях и так далее.
Если обобщить это, то тема цитируемости ей очень близка + большинство ее это гипотезы и рассуждения, но безусловно очень интересные. Так что понятно почему ее лично волнуют LLM статьи:
1) написание большего кол-ва статей, приведет к тому, что ей будет сложнее конкурировать с ними
2) ее статьи как раз рассуждающие, с различными гипотезами, теоретические но под разным углом и разными предположениями. Такое очень удобно делать с помощью LLM.
Другое дело, что LLM сами ничего не сделают. Для этого надо понимать, что они пишут, что попросить проанализировать, разобрать что они написали и отсеять бред. Так что автор либо боится что будет завалено мусором (но мусорных научных статей и так большинство), либо что упростит порог входа и написание теоретически рассуждающих статей другими физиками либо это просто страх неопределенности.
При этом данное добавление обосновано, но должно быть сделано правильно. Оно нужно для связи разных уровней иерархии. Когда какое то слово, может усилить например сигнал на уровне целой главы, а не только следующего уровня иерархии как сейчас (например слово - параграфа).
Следующим шагом следует связать все блоки и выходной сигнал:
Смысл данного подхода в том, что текст это многоуровневая иерархическая цепь условных вероятностей. Сейчас современные LLM используют выход только последнего уровня иерархии. Но это не правильно. Представим себе предложение:
Привет, как дела?
В нем нет дальних зависимостей и длинных связей. Но из-за текущей архитектуры LLM, только последний выход даёт основной вклад в генерацию цепочки. Это можно условно представить как: слоги, слова, синтагмы, предложения, абзацы.. В предложении выше, сложность ограничена связями внутри предложения, все что выше, даёт шум, так как для этого просто нет информации (для глав, параграфов и так далее). То есть верхние уровни связей дадут вклад, но он будет избыточным и слабым. Но в текущих LLM именно самый верхний уровень и даст максимальный вклад, так как остальные уровни не имеют прямого выхода и не могут напрямую вносить свой вклад, усиливая сигнал. Как итог, LLM выдает нам тонны избыточного текста, словно связь была на уровне целой главы и объем текста растет и растет. Если только искусственно через регуляризацию не обучали сокращать текст, но тогда там где нужен длинный текст, она тоже сократит его.
Вот эти два подхода, позволяют LLM правильно согласовывать сигналы разных уровней. И это реально даёт видимый эффект и имеет математическое обоснование. А вот подход усложнения residual как выше, приводит к нестабильности, так как не несёт смысла в усложнении.
В лучшем случае, мы можем добавить в residual линейный слой, чтобы увеличить его размерность в том случае, если мы решили повысить размерность следующего блока. В мозге именно так и происходит. Например, слуховая зона a1-a2-a3. Каждая последующая область содержит больше нейронов где то ~1,5 раза (условно). Это аналогично, как если бы мы напрямую связывали a1 (например 400 тыс нейронов) с a3 (например 800 тыс нейронов). В этом случаев residual играл бы роль пирамидальных нейронов, которые напрямую связывают a1 и a3 и для согласования размерности, мы должны расширить размерность сигнала a1 в a3 с 200 тыс до 800 тыс, через linear. Но никаких избыточных решений как предложено в статье, там нет. Есть прямые связи, которые расширяются.
Какой пост, я не автор поста или вы про комментарий? Вы реально считаете, что нейронная сеть сможем сгенерировать подобный комментарий, да еще и провести сама исследование и показать это наглядно как выше? Нет, LLM бы вам на это сгенерировала тонну правдоподобного мусора, так как это тот случай, когда в обучающих ее данных нет данного ответа. Я видел опечатку про "смелые яблоки", но не стал править, так дальше было прекрасно понятно о чем речь. В том моем комментарии опечаток гораздо больше.
Странное улучшение, если рассматривать это как "выразительность" описывающая более сложные функции, то выглядит это очень натянуто. Мы можем хоть SSM добавить в residual, чтобы придать больше "выразительности", вопрос в том, а надо ли? В исследовании я не увидел аргументов, зачем авторы это делают. кроме как чтобы "улучшить".
Аргумент авторов: n потоков внутри блока → больше "параллельных путей", которые комбинируются через обучаемую матрицу H_res. Но они не приводят доказательств, что именно эта выразительность нужна.
Можно было бы просто увеличить линейные слои внутри residual и теоретически любая функция X→Y записывалась бы.
Увеличение потоков ≈ увеличение числа параметров, без явного анализа, зачем каждый поток нужен.
Пока это спорное не доказанное преимущество, скорее гипотеза что "несколько путей = более выразительно".
Сами же авторы пишут "каждый поток может специализироваться". На каких подзадачах? Никаких формальных разложений задачи внутри блока не приводят. Residual не решает несколько задач явно, это просто функция слоя. Если и существует какая-то декомпозиция задачи, то она не формализована в исследовании.
Можно было просто увеличить линейные слои внутри residual с размером, равным n раз больше → то же количество "параллельных путей" без сложной матрицы H_res.
Далее, авторы пишут, что H_res позволяет решать, какой поток важнее.
На самом деле: x(k+1) = H1(x(k)) + H2(x(k)) + … + H_n(x(k)) + F(x(k)) → это просто линейное сложение N функций.
Нет softmax или gating, чтобы явно выбрать поток → каждый поток всегда участвует одинаково (по весам H_res, которые ограничены многообразием).
Чтобы была реальная маршрутизация → нужно MoE‑подобный routing.
Поэтому все это не доказано, а скорее является интуитивными формулировками.
Ну и как итог, в статье авторы приводят эксперименты на крупных моделях (~27B параметров), где mHC стабилизирует обучение и немного улучшает loss/accuracy по сравнению с HC и baseline. Но нет прямого сравнения с альтернативой "увеличение ширины linear внутри residual", которая теоретически даёт тот же результат. Преимущество скорее в стабильности, чем в "выразительности" или "специализации потоков". Улучшения есть, но не настолько сильные, чтобы однозначно утверждать, что n потоков внутри блока принципиально нужны.
Я вижу, что фактически: это скорее маркетинговая подача, чем проверенная теория.
Все сложнее. Текст является цепями Маркова. Но, это не просто непрерывная цепь Маркова, а иерархическая цепь Маркова, где иерархии верхнего уровня, связывают разрыв цепей нижнего уровня.
Если мы посмотрим распределение вероятностей у логитов в LLM, то увидим:
Вероятности выбранных токенов на выходе из LLM
Здесь модель еще не обучена полностью, но суть передает. Мы видим условные вероятности перехода между токенами с учетом всей иерархии.
Рассмотрим слово «жильцов», представленное последовательностью токенов:
Проблема в том, что стандартные методы top-k / top-p не способны правильно оставлять возможные вероятности для следующего выбора токена.
Как уже было сказано, мы имеем дело с иерархическими цепями Маркова, которые имеют точки разрыва. Поэтому на каждом следующем шаге, мы не можем выбрать все вероятности в ни по интервалу K (top-k) ни по суммарной вероятности P (top-p).
Пусть после двух первых токенов:
P1 ⋅ P2 ≳ θ, где θ— порог разрыва цепи Маркова.
Тогда при выборе следующего токена допустимы только такие условные вероятности P3, для которых:
P1 ⋅ P2 ⋅ P3 ≥ θ
Это резко сужает пространство допустимых токенов и приводит к тому, что:
в конце слова выбор возможен только среди токенов с высокой условной вероятностью;
именно поэтому мы наблюдаем пики вероятности на окончаниях слов.
Если мы выбираем argmax (нулевая температура), то все нормально. Цепь Маркова разрывается и начинается новая. Но argmax в рамках существующих архитектур LLM это статика. Он не способен динамически учитывать контекст. Это приводит к застреванию в локальных максимумах и мы получаем усредненный текст. Это не значит, что он оптимальный, это значит, что при использовании dropout в процессе обучения, в случае неопределенности мы случайно добавляем смещение. Это приводит к статичным локальным маршрутам, которые и отражает генерация текста при температуре 0.
Если же мы используем температуру от личную от 0, то это нормально. Но, тут у нас возникает другая проблема. Если при выборе следующего токена, мы выбираем токен который уменьшить вероятность цепи Маркова ниже допустимого порога, то по сути добавляем шум. Поэтому на каждом шаге мы должны выбирать только такие токены, чья условная вероятность P(v) не уменьшит PMarkov ⋅ P(v) < θ.
Маркер М означает, начало новой цепи Маркова. p - условная вероятность, P вероятность всей цепи Маркова.
При правильном подходе, мы получаем то, что цепь не нарушается и не добавляет шум. Это хорошо видно при начальном обучении модели.
Для примера, при начальном обучении модели LLM (1000 примеров обучения):
Цепи Маркова с порогом разрыва цепи: всего слов: 187, сломанных слов: 22, коэффициент F: 22/187 = 0.1176
Чем меньше F, тем меньше ошибок в словах в целом. Цепь Маркова немного выигрывает Top-K (аналогично Top-pP). На самом деле, если мы посмотрим на сломанные слова у Top-K и Цепи Маркова, что увидим разницу. Top-K - ломает слова полностью "обгваласько"/"беззвольте", а цепь Маркова "гулятьвающиеся"/"покосившимский"/"горизонтело" ("гулять" и шум "вающиеся" на конце, "покосившим" и шум "ский", "горизонт" и шум "ело") из-за маленькой статистики собранной при обучении на 1000 примера. Причина у них разная, в первом случае мы работаем с шумом и пытаемся его продолжить, а во втором случае мы получаем на конце шум, так как еще не собрали достаточно статистики.
Несмотря на маленькую разницу, данный подход показывает, что при использовании цепи Маркова в качестве критерия отсечения logits, мы смещаем шум в конец. В этом случае все упирается в качество обучения. В то время как при использовании Top-K, даже при качественном обучении мы можем получить шум в середине или начале слова, что приведет галлюцинациям и при продолжении, что можем вызвать цепную реакцию галлюцинаций при продолжении генерации.
Поэтому использование top-k/top-p эта одна из причин галлюцинаций современных LLM. Если мы используем только top-p, это может привести к тому, что цепь Маркова выберет недопустимый элемент, который является шумом (при его выборе) для продолжения цепи. Высокая вероятность элемента, не может гарантировать, что он не является шумом. Например: "яблоко кра...". Продолжением может быть красное и красивое. Оба варианта имеют высокую вероятность такого продолжения. Но возможно что вероятность одного из них приведет вероятность цепи Маркова ниже порога. Это значит будет являться шумом. Например, контекст в начале указывает, что мы выбираем смелые яблоки на рынке и красный цвет важен. В то время как выбор красивый, приведет к продолжению галлюцинаций и генерацией текста связанного с красотой, а не выбором по цвету спелые яблоки или нет.
Это одна из форм галлюцинаций, которая возникают как накопление таких отклонений. Каждое, может сильнее отклонить генерацию текста от контекста. Галлюцинации в LLM возникают не как результат одного ошибочного токена, а как следствие накопления локально допустимых, но глобально несогласованных выборов, которые экспоненциально сужают пространство согласованных продолжений.
Снёс gigacode в прошлом месяце, ставил год назад по-моему или больше. Пользы 0, ресурсы жрет прилично. Но не нашел, как нормально сделать его деинсталляцию. Пришлось просто удалять всю папку.
Пока Сбер не начнет серьезно вкладывать в нормальные R&D, так и будет всегда как АвтоВАЗ , брать готовое и улучшать. То что вижу на Хабре и в их списке исследований за год - к серьезному R&D не имеет отношения, скорее оптимизации и выводы из своих ошибок и результата обучения. При таком подходе они не отличаются от стартапа AAA из любой страны, где есть нормальный доступ к недорогому дообучению моделей на видеокартах.
Можно было бы сказать, что Сбер адаптирует по русский текст и поэтому лучше. Но и это не так. Ниже простой пример разницы между фундаментальным R&D и косметическим подходом Сбера. На примере токенизатора.
Это пример начала обучения на токенизаторе Сбера (Яндекс токенизатор даёт такой же результат) классической LLM на 1000 примерах. На выходе высокочастотный шум.
А это результат обучения LLM на тех же 1000 примерах, но специально разработанном токенизаторе.
Разница огромная. А все дело в R&D, реальных исследованиях, разработке математического аппарата, теории, поверка ее и так далее. И как результат получения нового вида токенизатора. То есть Сбер просто взял обычный BPE, вместо того, чтобы проводить реальные R&D. И для этого не нужно миллиарды $ или множество видеокарт.
Поэтому какой смысл от gigacode, если он не способен дать качественный скачек и проигрывает всем. Это аналог АвтоВАЗ, где взяли чужую доступную модель, немного украсили и выдали. Завтра крупные компании закроют opensource архитектуры, и Сбер будет 10 лет выпускать "ваз 2106" (на базе архитектуры deepseek или qwen).
В свое время разрабатывал под грант оборудование для производства тянущихся электронных плат. Там одно из исследований было связано с теплопроводностью. При добавлении нанотрубок в нужных пропорциях теплопроводность улучшалась в ~20 раз.
Из минусов:
Нельзя наносить на алюминий
Стоимость, так как нанотрубки не дешёвые
Но если понятие элитная термопаста существовала бы, то ее состав был бы такой. Термопаста на основе сплавов галлия не новое, но с нанотрубками не видел ни разу. На сегодня это лучший состав, который я только могу себе представить, так как проводили исследования на эту тему. А разработали составов и провели их замеры и исследования не мало. Там можно регулировать и уровень вязкости и критической температуры. В описанном составе, термопроводность высокая при температуре от -20 градусах. Целью было как раз добиться высоких показателей при минусовой температуре, а с плюсовой там проблем совсем нет.
Я правильно понимаю, что профессора математики и физики, который прекрасно умеет абстрагировать, при большой выборке покажут ниже IQ, чем депутаты? При условии, что мы возьмём большую выборку. Так как жизненный успех первых будет гораздо ниже, чем у вторых.
Но по IQ тестам уже миллион раз делали разборы и тесты. Более того, забросим вас в Африку, где племя Массаев покажет больше жизненного успеха и решения проблем в Африке, чем вы. Значит ли это, что IQ при смене территории перетекает между людьми? Или нам нужен тогда новый тест IQ? И какой считать правильным?
Чушь полная. Прекрасно можно менять эмоциональный стиль, получая очень агрессивные ответы, или наоборот, копируя стиль от гопника до сдержанного психолога и даже психа с множеством личностей.
Когда нужно было настраивать характер персонажа, чтобы он не терялся спустя тонны диалогов. И при этом на выходе были и маньяки агрессивные, и нервозные официанты и так далее.
Это только касалось текстовой части, для голосовой было более сложная модель, через баланс распознавания базовых признаков в голосе, историей, внутренним состоянием и так далее. Но для текста выше отлично работает, хотя это только для задания характера. Для того, чтобы внутреннее эмоциональное состояние модели (через тексты) менялось, там тоже немного сложнее было.
Ни какого смысла модели не теряют. Запихивать такое в системный промпт бесполезно.
Легко. У меня этот шлак постоянно выдает. Все дело в сложности вопрос. Пока он на уровне - "какого цвета неба?", все классно. Как только он сложнее - это полнейшая чушь и бред.
Буквально вчера, решил посмотреть что мне предложить LLM (было несколько попыток новых чатов с нуля):
Сейчас при обучении нейронных сетей в llm мы используем предсказание следующего токена через loss кросс энтропии.
Допустим, мы знаем что текущий токен A, и знаем все вероятности перехода токена A в другие токены, так как собрали статистику. Это значит, что мы можем для каждого значения логита, учесть его вероятность. То есть, не один loss на все значения логита, а для вектор loss для всех значений логита. Где мы оцениваем, насколько точно предсказана вероятность этого значения логита. Или это не будет работать лучше?
Тут она выдала сносный ответ, хотя частично не верный. И затем я задал уточняющий вопрос.
Проблема в том, что логиты имеют распределение вероятности токенов. Особенно сырые логиты, хотя они и не являются вероятностями. Проблема в том, что не все из этих значений логитов являются допустимыми для продолжения. Некоторые являются шумом. Top-k и top-p не позволяют отличить допустимые токены от шума. Текст это марковские цепи. И даже если следующий токен имеет высокую вероятность, это не значит, что он допустимый. Вероятность цепи Маркова это умножение всех вероятностей перехода ее элементов. И есть порог разрыва цепи Маркова. Если сейчас вероятность цепи Маркова 0.1, а порог разрыва 0.05, то не каждая вероятность подойдёт как следующий токен. Если вероятность следующего токена 0.2, то он приведет к тому, что цепь Маркова будет меньше 0.05, поэтому этот токен не допустим и является шумов на данном шаге. Но top-k и top-p ничего не знают об этом. В их диапазон легко могут попасть такие токены.
Поэтому я пытаюсь понять, как этого можно избежать. Тут три варианта:
как то обучить llm, чтобы она выдавала сырые логиты в таком виде, что все значения следующих которые приведут к шуму, должны быть ниже какой-то границы.
какая-то дополнительная архитектура после LLM, возможно со скрытым состоянием, которая сможет отследить и выдать только допустимые значения логитов. Но не понятно, как ее обучать и какой должна быть архитектура.
самостоятельно отслеживать текущую вероятность цепочки на выходе. И брать только допустимые значения логитов для выбора следующего токена. Предварительно собрав статистику по переходу всех токенов. Но тут мы можем отслеживать только цепь Маркова первого уровня. Это лучше чем argmax, но не идеально.
Что ты об этом думаешь? Какие есть предложения? Возможно кто-то уже решил эту проблему?
И тут Остапа понесло. Отборный бред помноженный на размышления и на сжатие ответа (анг. вставки не к месту, укороченные слова и бред).
В ответе много такого, как ниже:
N (candidates): 50–200 — хороший компромисс.
H (horizon) для меток: старт 1–3, для production 3–10 при ресурсах.
K (rollouts per candidate): 4–16 — tradeoff bias/variance.
s_min (acceptor threshold): 0.5–0.8 по ROC/PR.
α (power for s): если acceptor достаточно надёжен, α=2..4; иначе α≈1.
Calibrate p_i: temperature scaling на dev set, особенно если используешь raw logits.
Fallback: если фильтр убрал всё, выбирать argmax из original p (или ослабить threshold).
Monitoring: следи за diversity (тип токенов), average chain logprob, human eval.
Пока разберешься, что она имела ввиду, что сократила, проверишь все это и увидишь бред, требует нормально времени и мозг работающий на всю катушку. Я уже молчу про код, который она предложила без каких-то доказательств, без явной логике. Просто по принципу тут соединим и отлично. Произвольный код и я могу написать, только какой мне прок в этом.
И главное, если человек не понимает тему, он ее ответ проглотит, решив, что тут очень умное и правильное. И пойдет хвалить, как сетка написал код.
beta это температура. здесь обучение на 1000 примерах, с разным подходом обучения температуре. В одном она задалась жестко и постепенно увеличивалась, а на другом система сама во время обучения LLM обучалась температуре (постепенно увеличивая ее).
Недавно как раз делал подстройку температуры, где модель для нее обучается отдельно.
Но там температура при этом в связке влияет на токенизатор, механизм внимания и FFN и отсутствует на выходе из модели. Модель сама регулирует и на каждом шаге подстраивает ее.
Как итог на 1000 примерах обучения с нуля, модель выдает не высокочастотный шум, а начинает формировать связи. https://t.me/greenruff/2499 так что регулирование важно, а то что относят к top_k и случайный выбор это немного другая проблема, связанная не с температурой.
Триллион параметров — но благодаря MoE активируется только 32B на токен
Когда пишут про огромное кол-во параметров с использованием MoE, на самом деле это не совсем реальные размеры модели.
Чтобы это понять, представьте, что у вас есть функция F(X) которая аппроксимирует несколько максимумом. Но для этого нужен большой размер FFN. Тогда в место одной F(X) делаете N функций аппроксимации F1(X), F2(X)... Fn(X), каждая из которых аппроксимирует только один максимум. Эти функции по сути схожи, но отличаются немного в параметрах.
Таким образом вы раздули размерность, потому что большая FFN для F(X) у вас не влезает в память. Поэтому вы вынуждены сделать N разных FFN для F1(X), F2(X)... Fn(X), где их размер меньше, для достаточной точности. При этом вы загружаете в память только какую-то одну. Например, только F1(X). То есть мы в N раз увеличили кол-во параметров, из за наших ограничений. Фактически F1(X), F2(X)... Fn(X) эта одна и та функция, только с разными настройками параметров.
В этом легко убедиться, если сначала в MoE включить только один FFN, обучить его. Затем скопировать его веса в остальных экспертов и дальше дообучать деталям.
Поэтому триллионы, секстилионы параметров MoE мало что значат, если у нас там изначально меньше максимумов, которые можно интерпретировать. Я приводил пример, и сейчас использую этот подход для ускорения обучения MoE https://t.me/greenruff/2509
Текущая архитектура LLM это просто архиватор последовательности данных, только в отличии от Zip архиватора, LLM сжимает с учётом иерархии.
Выше простой пример, слово да встречается часто. Какой следующий токен будет оптимален для сжатия цепочки? В данном случае тот, который часто встречается, так как кодирование его в токен увеличивает сжатие.
Вы можете хоть 100 раз регенерировать ответ моделью и она в данном случае будет выдавать вам слово Да. Если только вы не добавите в системный промпт много предложений , где будет встречаться слово нет.
Тогда и zip архиватор следует признать зачатками сознания. А архив сжатый через фрактальное сжатие проявлением сознания.
У них же нет обучения с нуля. В свое время на заборе была статья от Сбера, где была ссылка на их репозиторий с моделью. Как раз после того как deepseek выложил в opensource. Они по-моему писали что взяли ее и дообучали. Я смотрел код их модели на том гмтхабе, там косметические изменения были. Так что, эти крупные модели Сбера не обучены с нуля, а используют в своей основе Deepseek.
Проблема галлюцинаций моделей за последние годы так и не была решена. Однако практический опыт (включение поиска в ChatGPT) показывает, что проблема почти полностью исчезает и взаимодействие с моделью выходит на принципиально иной уровень надежности.
Проблема ни куда не исчезает, она ещё и множится и усугубляется. Возможно для простых вещей, вроде рецепт приготовления супа все нормально, но более сложных - полнейшее фиаско и галлюцинации.
Это отлично видно на математике, где важна точность и логика. Через поиск она находит какую-то работу, берет из нее фрагмент, который косвенно связан. Переформулирует на свое усмотрение и выдает, что "согласно исследованиям/теореме, мы получаем". Смотришь, а там другое, да слова совпадают и даже есть аналогия, но формулы другие, речь о другом. И такое постоянно.
А режим исследования в ChatGPT, вы пробовали смотреть на что он опирается? Там можно посмотреть весь список материалов. Так вот там легко вам может попасться срач на форуме мамочки.ру (условно), где они обсуждали мозги. А ты попросил исследований конкретной темы по неокортексу. Так как модель не может отличить значимость мамочки.ру и сайт с публикацией исследований, особенно когда они рядом в выводе.
Нейронки в текущей архитектуре как были подвержены галлюцинациям, так и будут. Так как проблема не в доступе к информации, не в рассуждениях. Это проблема самой архитектуры, ее ограничений.
Чтобы не вводить в заблуждение, это скорее расширение. Так как в основе также трансформеры ограниченные контекстным окном. То есть временной рад ограничен временным окном трансформера.
Таких кросс моделей сейчас делают много. Китайцы как дополнительные модальности пихают все в своих работах, от разных форматов документов до видео, картинок и так далее.
По сути, в данной работе временной ряд кодируют патчами, как видео. И вставляют токены "временного ряда" с токенами текста.
Точно так же делают когда объединяют модальности видео и текста, картинок и текста и другие.
Так что вещь ограниченная и очень специфичная при такой реализации
Плохо у них с ними. Не раз пробовал с помощью них доказывать теоремы. Постоянно уносит не туда или в рекурсию. Например, асимптотике начинают вводить константы, потом ругаются, что константы надо расписать их значения, где из этого снова говорят что для новых значений надо константы и надо... в итоге начинают выкидывать важные детали.
Другой пример, так как они не понимают, а просто пытаются обобщить, то легко могут проигнорировать прежние теоремы и начинают рассматривать случаи, которые не вписываются в теоремы. То есть самостоятельно не способны обобщить и понять, что какие-то условия ограничены и эти ограничения понятны обычному человеку, но не LLM и она начинает пытаться натянуть сову на глобус. То есть ей надо разжевать все, подобно описать все, почему и откуда, ткнуть прям, и тогда она "решит". Хотя несколькими сообщениями выше все было расписано. Просто механизм внимания это проигнорировал. То есть она хорошо может разложить формулу и объединить (хотя тут очень очень часто косячит тоже).
Но вот в оформлении теорем - они очень удобны, так как когда все расписано, они дополнят все дополнительными замечаниями, которые писать самостоятельно отнимает время и силы.
Так "решат" они любую задачу. Но только решение будет бредом, если досконально не прописать формулировку и план доказательства. Но по сути это и есть решение задачи, самая сложная часть. Если доказательство вытекает из описанного плана решения и точных формулировок.
И это я еще молчу, про то что они могут сослаться на "работы", которых либо нет, либо в которых говорится о другом.
Поэтому если оставить их доказывать самостоятельно, они докажут что у них просят и что земля плоская и солнце это обезьяна. Только по факту это будет бред полный.
Потратил целый вечер, чтобы разобраться. Лень расписывать. Но, слишком громкие заголовки, в реальности не увидел там чего-то принципиально нового.
1) дальние зависимостей у них под вопросом. В статье они говорят, что BDH-GPU содержит “linear attention” как один из механизмов.
Они утверждают, что макро-механизмы внимания трансформера могут быть “аппроксимированы” через их локальные динамики с состоянием, особенно когда активность и связи ведут себя определённо. Не верю - это не доказано. Локально да, но для иерархических данных - нет.
В разделе "6.1 Macro-expressiveness of attention in BDH-GPU" они обсуждают, как attention может быть выражено в BDH-GPU и как "state capacity vs distinction capacity" работает. Они также упоминают, что BDH-GPU оперирует в "высоком измерении нейронов" и что state (состояние) хранятся на нейронах, а не на связях, что позволяет более "глобальное" внимание скрыто реализовываться.
Но главное, что они говорят: теория говорит, что макро-внимание может быть "синтезировано" из комбинации линейного внимания + локальной динамики + "скрытого состояния", а не что они прямо реализуют классический softmax attention на весь контекст.
Это все вызывает вопросы, так как их мат аппарат приведен не до конца (подтверждений не нашел), а исходники дают еще меньше информации. Нет явной иерархической структуры внимания (например, одни слои — локальные, другие — глобальные) — внимание однородно по всем слоям, но может маскироваться / модулироваться локально через xy_sparse и через ReLU.
2) скрытые состояния есть у SSM. То, что модель хранит скрытое состояние, реагирует на входы при помощи него, обновляет его - это не новшество. Структурированные SSM (State-Space Models), RNN с памятью, LSTM, управляемые динамикой модели уже делают это. BDH утверждает, что его скрытые состояния "локализованы на нейрон-нейронных парах" (синапсы), дают интерпретируемость, и что они поддерживают "локальные графовые правила". Но в коде этого нет, чтобы такие "графовые правила" были явно реализованы.
3) В коде нет динамического изменения связей (пластичности) во время forward. Одна из ключевых обещанных идей - пластичность, Hebbian обучение во время вывода, динамическое изменение "синапсов" на основе активаций - в коде этого нет. Это означает, что реальное поведение модели ближе к “фиксированным параметрам + некоторым маскирующим процедурам” чем к активной сети, которая перестраивается на лету (как их гипотеза).
4) Про тот же residual, не нашёл доказательств, что в BDH каждый токен в истории может перескакивать напрямую через "top-down" путь без прохождения через цепочки нейронов или промежуточного состояния. То есть идея "перескока" напрямую (skip) — не явно.
5) Масштабируемость: размер ρ - матрица n х d или n х n может быть дорогим, особенно если n велико. Здесь ρ скрытое состояние ~ "синапсы", n - число "нейронов", модель работает в пространстве размерности n. Скрытое состояние модели (на шаг времени / слой) представляется матрицей (или набором матриц) ρ. Не понятно, дает ли это преимущество или наоборот раздувает размер. Статья не позволяет оценить.
То есть код выглядит ближе к модификации архитектуры Transformer, где есть attention + MLP + residual, но с добавлением sparse@ шагами и перемножениями для модуляции.
И там много всего еще. Потратив кучу времени, нашел лишь некоторые доказательства их реализации, но не доказательства, что это будет работать как обещают. Мат аппарат либо не весь выложен либо не доказывает, то что обещают.
Я не понимаю, чем их текущая реализация сейчас лучше гибридных SSM с локальным вниманием и скрытыми состояниями.
Ну и про биологию неокортекса - тут вообще без комментариев.
Либо я не понял вас. Вы просто выше сравнивали LLM и трансформеры (их архитектуру в основе LLM) с перцептрон, говоря о том что те не туда ушли. Или я не так понял.
Чтобы не было путаницы, я говорю о том, что классический RNN это аппроксимация марковской цепи. Под классическим я подразумевая MLP с рекуррентной связью.
Я не говорю, что через MLP нельзя выстроить иерархию. Тот же трансформер - это архитектурное решение MLP. FFN - это MLP практически. Головы - это множество MLP. И все отличие тут - это механизм внимания, который и описывает иерархию связей. То есть разорванные марковские цепи. Каждый блок трансформера - выделяет отдельные уровни структуры (пусть будут признаки). Головы - находят локальные максимумы на данном уровне, это локальные расстояния, где связи наиболее сильные (как на примере картинки что я приводил, где идут волны).
Например, MoE легко делается через множество MLP, где множество Softmax на выходе (как было изображено выше) и формируют иерархическую сетку.
SSM делает тоже самое, но классическая реализация не имеет иерархии. Но формально он аппроксимирует тоже, что и MLP только немного иначе. Но у него есть преимущество, он может динамически подстраиваться под данные, так как описывает периодические функции (тот же linOSS как расширение SSM описывает еще и затухание).
Марковские цепи имеют историю - информация о ней зашита в соседнем элементе. Да, разложить обратно из цепочки в элементы мы не можем. В марковской сети от последнего элемента зависит предсказание следующего. Это и есть RNN.
Разрыв необходим. Иерархия как раз позволяет связать в разрывы. В мозге например в неокортексе это называет top-down связи, когда верхние уровни иерархии, модулируют предыдущие области (нижние уровни иерархии).
разрыв происходит из за бифуркации, когда вероятность для ограниченного набора "словаря" (не путать со словарем букв, тут это набор уникальных значений) приводит к разрыву марковской цепи. Единственный способ сохранить информацию между цепочками - это их связь через верхний уровень.
что касается backprop, то прогоните эти теоремы через сетку. Она может быть лучше объяснит как backprop связан с этим. Там она как раз и получается из теорем R.4, но для нее нужно прогнать остальные теоремы.
Вы правы так и есть, это и есть марковские цепи. Но, они иерархические. И их иерархия закодирована в механизме внимания, который связывает дальние зависимости на расстоянии D. Как раз, то что и показывает собранная статистика выше. Без этого, мы получаем просто классический RNN с быстрых затуханием марковской цепи без иерархии. То о чем вы сейчас говорите это классический RNN. Но без иерархии, марковская цепь быстро исчезает, ее вероятность становиться очень-очень маленькой. Система нашла выход из этого, через разрывы марковской цепи, когда они не различимы с равномерным распределением. Но чтобы не потерять связи между разрывами, они связаны через иерархию, сегмент верхнего уровня. Тут не ни какой магии.
У нее многие статьи это скорее рассуждающие, то есть теоретические (чем она и занимается по своей специальности). Сложно назвать их научными в плане исследований, а скорее научными в плане рассуждений. Это как если бы был специальный habr для физиков-математиков.
Насчет цитируемости, то она еще в 2019 году писала статью:
https://www.researchgate.net/publication/332884179_Predicting_authors'_citation_counts_and_h-indices_with_a_neural_network
"В данной работе мы описываем и представляем результаты работы простой нейронной сети, которая прогнозирует будущие показатели цитирования отдельных исследователей на основе различных данных из их прошлой деятельности."
Они делали простую нейросеть и прогнозировали цитируемость. На научную работу это не тянет. На хабре многие пишут статью, как что-то спрогнозировали. На GitHub такого много тоже, но для исследования это как-то мелко сегодня. Но тема цитируемости, явно "близка" ей.
Но в остальном, у нее много интересных работ "A derivation of Born’s rule from symmetry", где есть предположение, что вероятности должны быть согласованы с юнитарной структурой гильберта. И из этого ее объяснение показывает, что правило Борна не является случайной догадкой, а математически единственный возможный вариант, совместимый с симметрией квантовой механики. И таких статей у нее много. Они о построении различных гипотез, связях и так далее.
Если обобщить это, то тема цитируемости ей очень близка + большинство ее это гипотезы и рассуждения, но безусловно очень интересные. Так что понятно почему ее лично волнуют LLM статьи:
1) написание большего кол-ва статей, приведет к тому, что ей будет сложнее конкурировать с ними
2) ее статьи как раз рассуждающие, с различными гипотезами, теоретические но под разным углом и разными предположениями. Такое очень удобно делать с помощью LLM.
Другое дело, что LLM сами ничего не сделают. Для этого надо понимать, что они пишут, что попросить проанализировать, разобрать что они написали и отсеять бред. Так что автор либо боится что будет завалено мусором (но мусорных научных статей и так большинство), либо что упростит порог входа и написание теоретически рассуждающих статей другими физиками либо это просто страх неопределенности.
Реальное заметное улучшение даёт связь всех блоков и embedding слоя со всеми блоками.
Я делал это и показал, что данный подход более качественно улучшает обучение: https://t.me/greenruff/2497
При этом данное добавление обосновано, но должно быть сделано правильно. Оно нужно для связи разных уровней иерархии. Когда какое то слово, может усилить например сигнал на уровне целой главы, а не только следующего уровня иерархии как сейчас (например слово - параграфа).
Следующим шагом следует связать все блоки и выходной сигнал:
Тоже проводил это: https://t.me/greenruff/2543
Смысл данного подхода в том, что текст это многоуровневая иерархическая цепь условных вероятностей. Сейчас современные LLM используют выход только последнего уровня иерархии. Но это не правильно. Представим себе предложение:
Привет, как дела?
В нем нет дальних зависимостей и длинных связей. Но из-за текущей архитектуры LLM, только последний выход даёт основной вклад в генерацию цепочки. Это можно условно представить как: слоги, слова, синтагмы, предложения, абзацы.. В предложении выше, сложность ограничена связями внутри предложения, все что выше, даёт шум, так как для этого просто нет информации (для глав, параграфов и так далее). То есть верхние уровни связей дадут вклад, но он будет избыточным и слабым. Но в текущих LLM именно самый верхний уровень и даст максимальный вклад, так как остальные уровни не имеют прямого выхода и не могут напрямую вносить свой вклад, усиливая сигнал. Как итог, LLM выдает нам тонны избыточного текста, словно связь была на уровне целой главы и объем текста растет и растет. Если только искусственно через регуляризацию не обучали сокращать текст, но тогда там где нужен длинный текст, она тоже сократит его.
Вот эти два подхода, позволяют LLM правильно согласовывать сигналы разных уровней. И это реально даёт видимый эффект и имеет математическое обоснование. А вот подход усложнения residual как выше, приводит к нестабильности, так как не несёт смысла в усложнении.
В лучшем случае, мы можем добавить в residual линейный слой, чтобы увеличить его размерность в том случае, если мы решили повысить размерность следующего блока. В мозге именно так и происходит. Например, слуховая зона a1-a2-a3. Каждая последующая область содержит больше нейронов где то ~1,5 раза (условно). Это аналогично, как если бы мы напрямую связывали a1 (например 400 тыс нейронов) с a3 (например 800 тыс нейронов). В этом случаев residual играл бы роль пирамидальных нейронов, которые напрямую связывают a1 и a3 и для согласования размерности, мы должны расширить размерность сигнала a1 в a3 с 200 тыс до 800 тыс, через linear. Но никаких избыточных решений как предложено в статье, там нет. Есть прямые связи, которые расширяются.
Какой пост, я не автор поста или вы про комментарий? Вы реально считаете, что нейронная сеть сможем сгенерировать подобный комментарий, да еще и провести сама исследование и показать это наглядно как выше? Нет, LLM бы вам на это сгенерировала тонну правдоподобного мусора, так как это тот случай, когда в обучающих ее данных нет данного ответа. Я видел опечатку про "смелые яблоки", но не стал править, так дальше было прекрасно понятно о чем речь. В том моем комментарии опечаток гораздо больше.
Странное улучшение, если рассматривать это как "выразительность" описывающая более сложные функции, то выглядит это очень натянуто. Мы можем хоть SSM добавить в residual, чтобы придать больше "выразительности", вопрос в том, а надо ли? В исследовании я не увидел аргументов, зачем авторы это делают. кроме как чтобы "улучшить".
Аргумент авторов: n потоков внутри блока → больше "параллельных путей", которые комбинируются через обучаемую матрицу H_res. Но они не приводят доказательств, что именно эта выразительность нужна.
Можно было бы просто увеличить линейные слои внутри residual и теоретически любая функция X→Y записывалась бы.
Увеличение потоков ≈ увеличение числа параметров, без явного анализа, зачем каждый поток нужен.
Пока это спорное не доказанное преимущество, скорее гипотеза что "несколько путей = более выразительно".
Сами же авторы пишут "каждый поток может специализироваться". На каких подзадачах? Никаких формальных разложений задачи внутри блока не приводят. Residual не решает несколько задач явно, это просто функция слоя. Если и существует какая-то декомпозиция задачи, то она не формализована в исследовании.
Можно было просто увеличить линейные слои внутри residual с размером, равным n раз больше → то же количество "параллельных путей" без сложной матрицы H_res.
Далее, авторы пишут, что H_res позволяет решать, какой поток важнее.
На самом деле: x(k+1) = H1(x(k)) + H2(x(k)) + … + H_n(x(k)) + F(x(k)) → это просто линейное сложение N функций.
Нет softmax или gating, чтобы явно выбрать поток → каждый поток всегда участвует одинаково (по весам H_res, которые ограничены многообразием).
Чтобы была реальная маршрутизация → нужно MoE‑подобный routing.
Поэтому все это не доказано, а скорее является интуитивными формулировками.
Ну и как итог, в статье авторы приводят эксперименты на крупных моделях (~27B параметров), где mHC стабилизирует обучение и немного улучшает loss/accuracy по сравнению с HC и baseline. Но нет прямого сравнения с альтернативой "увеличение ширины linear внутри residual", которая теоретически даёт тот же результат. Преимущество скорее в стабильности, чем в "выразительности" или "специализации потоков". Улучшения есть, но не настолько сильные, чтобы однозначно утверждать, что n потоков внутри блока принципиально нужны.
Я вижу, что фактически: это скорее маркетинговая подача, чем проверенная теория.
Все сложнее. Текст является цепями Маркова. Но, это не просто непрерывная цепь Маркова, а иерархическая цепь Маркова, где иерархии верхнего уровня, связывают разрыв цепей нижнего уровня.
Если мы посмотрим распределение вероятностей у логитов в LLM, то увидим:
Здесь модель еще не обучена полностью, но суть передает. Мы видим условные вероятности перехода между токенами с учетом всей иерархии.
Рассмотрим слово «жильцов», представленное последовательностью токенов:
« ж»→«ильц»→«ов».
Вероятность соответствующей марковской цепи равна:
PMarkov = P1(« ж») ⋅ P2(«ильц»∣« ж») ⋅ P3(«ов»∣«ильц»)
Проблема в том, что стандартные методы top-k / top-p не способны правильно оставлять возможные вероятности для следующего выбора токена.
Как уже было сказано, мы имеем дело с иерархическими цепями Маркова, которые имеют точки разрыва. Поэтому на каждом следующем шаге, мы не можем выбрать все вероятности в ни по интервалу K (top-k) ни по суммарной вероятности P (top-p).
Пусть после двух первых токенов:
P1 ⋅ P2 ≳ θ, где θ— порог разрыва цепи Маркова.
Тогда при выборе следующего токена допустимы только такие условные вероятности P3, для которых:
P1 ⋅ P2 ⋅ P3 ≥ θ
Это резко сужает пространство допустимых токенов и приводит к тому, что:
в конце слова выбор возможен только среди токенов с высокой условной вероятностью;
именно поэтому мы наблюдаем пики вероятности на окончаниях слов.
Если мы выбираем argmax (нулевая температура), то все нормально. Цепь Маркова разрывается и начинается новая. Но argmax в рамках существующих архитектур LLM это статика. Он не способен динамически учитывать контекст. Это приводит к застреванию в локальных максимумах и мы получаем усредненный текст. Это не значит, что он оптимальный, это значит, что при использовании dropout в процессе обучения, в случае неопределенности мы случайно добавляем смещение. Это приводит к статичным локальным маршрутам, которые и отражает генерация текста при температуре 0.
Если же мы используем температуру от личную от 0, то это нормально. Но, тут у нас возникает другая проблема. Если при выборе следующего токена, мы выбираем токен который уменьшить вероятность цепи Маркова ниже допустимого порога, то по сути добавляем шум. Поэтому на каждом шаге мы должны выбирать только такие токены, чья условная вероятность P(v) не уменьшит PMarkov ⋅ P(v) < θ.
При правильном подходе, мы получаем то, что цепь не нарушается и не добавляет шум. Это хорошо видно при начальном обучении модели.
Для примера, при начальном обучении модели LLM (1000 примеров обучения):
Top-K: всего слов: 130, сломанных слов: 17, коэффициент F: 17/130 = 0.1307
Цепи Маркова с порогом разрыва цепи: всего слов: 187, сломанных слов: 22, коэффициент F: 22/187 = 0.1176
Чем меньше F, тем меньше ошибок в словах в целом. Цепь Маркова немного выигрывает Top-K (аналогично Top-pP). На самом деле, если мы посмотрим на сломанные слова у Top-K и Цепи Маркова, что увидим разницу. Top-K - ломает слова полностью "обгваласько"/"беззвольте", а цепь Маркова "гулятьвающиеся"/"покосившимский"/"горизонтело" ("гулять" и шум "вающиеся" на конце, "покосившим" и шум "ский", "горизонт" и шум "ело") из-за маленькой статистики собранной при обучении на 1000 примера. Причина у них разная, в первом случае мы работаем с шумом и пытаемся его продолжить, а во втором случае мы получаем на конце шум, так как еще не собрали достаточно статистики.
Несмотря на маленькую разницу, данный подход показывает, что при использовании цепи Маркова в качестве критерия отсечения logits, мы смещаем шум в конец. В этом случае все упирается в качество обучения. В то время как при использовании Top-K, даже при качественном обучении мы можем получить шум в середине или начале слова, что приведет галлюцинациям и при продолжении, что можем вызвать цепную реакцию галлюцинаций при продолжении генерации.
Поэтому использование top-k/top-p эта одна из причин галлюцинаций современных LLM. Если мы используем только top-p, это может привести к тому, что цепь Маркова выберет недопустимый элемент, который является шумом (при его выборе) для продолжения цепи. Высокая вероятность элемента, не может гарантировать, что он не является шумом. Например: "яблоко кра...". Продолжением может быть красное и красивое. Оба варианта имеют высокую вероятность такого продолжения. Но возможно что вероятность одного из них приведет вероятность цепи Маркова ниже порога. Это значит будет являться шумом. Например, контекст в начале указывает, что мы выбираем смелые яблоки на рынке и красный цвет важен. В то время как выбор красивый, приведет к продолжению галлюцинаций и генерацией текста связанного с красотой, а не выбором по цвету спелые яблоки или нет.
Это одна из форм галлюцинаций, которая возникают как накопление таких отклонений. Каждое, может сильнее отклонить генерацию текста от контекста. Галлюцинации в LLM возникают не как результат одного ошибочного токена, а как следствие накопления локально допустимых, но глобально несогласованных выборов, которые экспоненциально сужают пространство согласованных продолжений.
Снёс gigacode в прошлом месяце, ставил год назад по-моему или больше. Пользы 0, ресурсы жрет прилично. Но не нашел, как нормально сделать его деинсталляцию. Пришлось просто удалять всю папку.
Пока Сбер не начнет серьезно вкладывать в нормальные R&D, так и будет всегда как АвтоВАЗ , брать готовое и улучшать. То что вижу на Хабре и в их списке исследований за год - к серьезному R&D не имеет отношения, скорее оптимизации и выводы из своих ошибок и результата обучения. При таком подходе они не отличаются от стартапа AAA из любой страны, где есть нормальный доступ к недорогому дообучению моделей на видеокартах.
Можно было бы сказать, что Сбер адаптирует по русский текст и поэтому лучше. Но и это не так. Ниже простой пример разницы между фундаментальным R&D и косметическим подходом Сбера. На примере токенизатора.
Это пример начала обучения на токенизаторе Сбера (Яндекс токенизатор даёт такой же результат) классической LLM на 1000 примерах. На выходе высокочастотный шум.
А это результат обучения LLM на тех же 1000 примерах, но специально разработанном токенизаторе.
Разница огромная. А все дело в R&D, реальных исследованиях, разработке математического аппарата, теории, поверка ее и так далее. И как результат получения нового вида токенизатора. То есть Сбер просто взял обычный BPE, вместо того, чтобы проводить реальные R&D. И для этого не нужно миллиарды $ или множество видеокарт.
Поэтому какой смысл от gigacode, если он не способен дать качественный скачек и проигрывает всем. Это аналог АвтоВАЗ, где взяли чужую доступную модель, немного украсили и выдали. Завтра крупные компании закроют opensource архитектуры, и Сбер будет 10 лет выпускать "ваз 2106" (на базе архитектуры deepseek или qwen).
Самую лучшую термопасту можно сделать следующим образом:
Правильно подобрать сплав галлия - индий - олово - висмут
Добавляем нанотрубки в нужных пропорциях
https://vc.ru/tribuna/466947-stoit-li-sozdavat-v-rossii-novye-tehnologii-nash-opyt-razrabotki-tyanusheisya-elektroniki-gflex
В свое время разрабатывал под грант оборудование для производства тянущихся электронных плат. Там одно из исследований было связано с теплопроводностью. При добавлении нанотрубок в нужных пропорциях теплопроводность улучшалась в ~20 раз.
Из минусов:
Нельзя наносить на алюминий
Стоимость, так как нанотрубки не дешёвые
Но если понятие элитная термопаста существовала бы, то ее состав был бы такой. Термопаста на основе сплавов галлия не новое, но с нанотрубками не видел ни разу. На сегодня это лучший состав, который я только могу себе представить, так как проводили исследования на эту тему. А разработали составов и провели их замеры и исследования не мало. Там можно регулировать и уровень вязкости и критической температуры. В описанном составе, термопроводность высокая при температуре от -20 градусах. Целью было как раз добиться высоких показателей при минусовой температуре, а с плюсовой там проблем совсем нет.
Я правильно понимаю, что профессора математики и физики, который прекрасно умеет абстрагировать, при большой выборке покажут ниже IQ, чем депутаты? При условии, что мы возьмём большую выборку. Так как жизненный успех первых будет гораздо ниже, чем у вторых.
Но по IQ тестам уже миллион раз делали разборы и тесты. Более того, забросим вас в Африку, где племя Массаев покажет больше жизненного успеха и решения проблем в Африке, чем вы. Значит ли это, что IQ при смене территории перетекает между людьми? Или нам нужен тогда новый тест IQ? И какой считать правильным?
Чушь полная. Прекрасно можно менять эмоциональный стиль, получая очень агрессивные ответы, или наоборот, копируя стиль от гопника до сдержанного психолога и даже психа с множеством личностей.
Ранее приводил пример как это делается через скрытые микродиалоги: https://t.me/greenruff/2240
Когда нужно было настраивать характер персонажа, чтобы он не терялся спустя тонны диалогов. И при этом на выходе были и маньяки агрессивные, и нервозные официанты и так далее.
Это только касалось текстовой части, для голосовой было более сложная модель, через баланс распознавания базовых признаков в голосе, историей, внутренним состоянием и так далее. Но для текста выше отлично работает, хотя это только для задания характера. Для того, чтобы внутреннее эмоциональное состояние модели (через тексты) менялось, там тоже немного сложнее было.
Ни какого смысла модели не теряют. Запихивать такое в системный промпт бесполезно.
Легко. У меня этот шлак постоянно выдает. Все дело в сложности вопрос. Пока он на уровне - "какого цвета неба?", все классно. Как только он сложнее - это полнейшая чушь и бред.
Буквально вчера, решил посмотреть что мне предложить LLM (было несколько попыток новых чатов с нуля):
Сейчас при обучении нейронных сетей в llm мы используем предсказание следующего токена через loss кросс энтропии.
Допустим, мы знаем что текущий токен A, и знаем все вероятности перехода токена A в другие токены, так как собрали статистику. Это значит, что мы можем для каждого значения логита, учесть его вероятность. То есть, не один loss на все значения логита, а для вектор loss для всех значений логита. Где мы оцениваем, насколько точно предсказана вероятность этого значения логита.Или это не будет работать лучше?
Тут она выдала сносный ответ, хотя частично не верный. И затем я задал уточняющий вопрос.
Проблема в том, что логиты имеют распределение вероятности токенов. Особенно сырые логиты, хотя они и не являются вероятностями.Проблема в том, что не все из этих значений логитов являются допустимыми для продолжения. Некоторые являются шумом.
Top-k и top-p не позволяют отличить допустимые токены от шума.
Текст это марковские цепи. И даже если следующий токен имеет высокую вероятность, это не значит, что он допустимый.
Вероятность цепи Маркова это умножение всех вероятностей перехода ее элементов. И есть порог разрыва цепи Маркова. Если сейчас вероятность цепи Маркова 0.1, а порог разрыва 0.05, то не каждая вероятность подойдёт как следующий токен. Если вероятность следующего токена 0.2, то он приведет к тому, что цепь Маркова будет меньше 0.05, поэтому этот токен не допустим и является шумов на данном шаге.
Но top-k и top-p ничего не знают об этом. В их диапазон легко могут попасть такие токены.
Поэтому я пытаюсь понять, как этого можно избежать.Тут три варианта:
как то обучить llm, чтобы она выдавала сырые логиты в таком виде, что все значения следующих которые приведут к шуму, должны быть ниже какой-то границы.какая-то дополнительная архитектура после LLM, возможно со скрытым состоянием, которая сможет отследить и выдать только допустимые значения логитов. Но не понятно, как ее обучать и какой должна быть архитектура.самостоятельно отслеживать текущую вероятность цепочки на выходе. И брать только допустимые значения логитов для выбора следующего токена. Предварительно собрав статистику по переходу всех токенов. Но тут мы можем отслеживать только цепь Маркова первого уровня. Это лучше чем argmax, но не идеально.Что ты об этом думаешь? Какие есть предложения? Возможно кто-то уже решил эту проблему?И тут Остапа понесло. Отборный бред помноженный на размышления и на сжатие ответа (анг. вставки не к месту, укороченные слова и бред).
В ответе много такого, как ниже:
N (candidates): 50–200 — хороший компромисс.H (horizon)для меток: старт 1–3, для production 3–10 при ресурсах.K (rollouts per candidate): 4–16 — tradeoff bias/variance.s_min (acceptor threshold): 0.5–0.8 по ROC/PR.α (power for s): если acceptor достаточно надёжен, α=2..4; иначе α≈1.Calibrate p_i: temperature scaling на dev set, особенно если используешь raw logits.Fallback: если фильтр убрал всё, выбирать argmax из original p (или ослабить threshold).Monitoring: следи за diversity (тип токенов), average chain logprob, human eval.Пока разберешься, что она имела ввиду, что сократила, проверишь все это и увидишь бред, требует нормально времени и мозг работающий на всю катушку. Я уже молчу про код, который она предложила без каких-то доказательств, без явной логике. Просто по принципу тут соединим и отлично. Произвольный код и я могу написать, только какой мне прок в этом.
И главное, если человек не понимает тему, он ее ответ проглотит, решив, что тут очень умное и правильное. И пойдет хвалить, как сетка написал код.
Недавно как раз делал подстройку температуры, где модель для нее обучается отдельно.
Но там температура при этом в связке влияет на токенизатор, механизм внимания и FFN и отсутствует на выходе из модели. Модель сама регулирует и на каждом шаге подстраивает ее.
Как итог на 1000 примерах обучения с нуля, модель выдает не высокочастотный шум, а начинает формировать связи. https://t.me/greenruff/2499 так что регулирование важно, а то что относят к top_k и случайный выбор это немного другая проблема, связанная не с температурой.
Триллион параметров— но благодаря MoE активируется только 32B на токенКогда пишут про огромное кол-во параметров с использованием MoE, на самом деле это не совсем реальные размеры модели.
Чтобы это понять, представьте, что у вас есть функция F(X) которая аппроксимирует несколько максимумом. Но для этого нужен большой размер FFN. Тогда в место одной F(X) делаете N функций аппроксимации F1(X), F2(X)... Fn(X), каждая из которых аппроксимирует только один максимум. Эти функции по сути схожи, но отличаются немного в параметрах.
Таким образом вы раздули размерность, потому что большая FFN для F(X) у вас не влезает в память. Поэтому вы вынуждены сделать N разных FFN для F1(X), F2(X)... Fn(X), где их размер меньше, для достаточной точности. При этом вы загружаете в память только какую-то одну. Например, только F1(X). То есть мы в N раз увеличили кол-во параметров, из за наших ограничений. Фактически F1(X), F2(X)... Fn(X) эта одна и та функция, только с разными настройками параметров.
В этом легко убедиться, если сначала в MoE включить только один FFN, обучить его. Затем скопировать его веса в остальных экспертов и дальше дообучать деталям.
Поэтому триллионы, секстилионы параметров MoE мало что значат, если у нас там изначально меньше максимумов, которые можно интерпретировать. Я приводил пример, и сейчас использую этот подход для ускорения обучения MoE https://t.me/greenruff/2509
Текущая архитектура LLM это просто архиватор последовательности данных, только в отличии от Zip архиватора, LLM сжимает с учётом иерархии.
Выше простой пример, слово да встречается часто. Какой следующий токен будет оптимален для сжатия цепочки? В данном случае тот, который часто встречается, так как кодирование его в токен увеличивает сжатие.
Вы можете хоть 100 раз регенерировать ответ моделью и она в данном случае будет выдавать вам слово Да. Если только вы не добавите в системный промпт много предложений , где будет встречаться слово нет.
Тогда и zip архиватор следует признать зачатками сознания. А архив сжатый через фрактальное сжатие проявлением сознания.
У них же нет обучения с нуля. В свое время на заборе была статья от Сбера, где была ссылка на их репозиторий с моделью. Как раз после того как deepseek выложил в opensource. Они по-моему писали что взяли ее и дообучали. Я смотрел код их модели на том гмтхабе, там косметические изменения были. Так что, эти крупные модели Сбера не обучены с нуля, а используют в своей основе Deepseek.
Проблема ни куда не исчезает, она ещё и множится и усугубляется. Возможно для простых вещей, вроде рецепт приготовления супа все нормально, но более сложных - полнейшее фиаско и галлюцинации.
Это отлично видно на математике, где важна точность и логика. Через поиск она находит какую-то работу, берет из нее фрагмент, который косвенно связан. Переформулирует на свое усмотрение и выдает, что "согласно исследованиям/теореме, мы получаем". Смотришь, а там другое, да слова совпадают и даже есть аналогия, но формулы другие, речь о другом. И такое постоянно.
А режим исследования в ChatGPT, вы пробовали смотреть на что он опирается? Там можно посмотреть весь список материалов. Так вот там легко вам может попасться срач на форуме мамочки.ру (условно), где они обсуждали мозги. А ты попросил исследований конкретной темы по неокортексу. Так как модель не может отличить значимость мамочки.ру и сайт с публикацией исследований, особенно когда они рядом в выводе.
Нейронки в текущей архитектуре как были подвержены галлюцинациям, так и будут. Так как проблема не в доступе к информации, не в рассуждениях. Это проблема самой архитектуры, ее ограничений.
Чтобы не вводить в заблуждение, это скорее расширение. Так как в основе также трансформеры ограниченные контекстным окном. То есть временной рад ограничен временным окном трансформера.
Таких кросс моделей сейчас делают много. Китайцы как дополнительные модальности пихают все в своих работах, от разных форматов документов до видео, картинок и так далее.
По сути, в данной работе временной ряд кодируют патчами, как видео. И вставляют токены "временного ряда" с токенами текста.
Точно так же делают когда объединяют модальности видео и текста, картинок и текста и другие.
Так что вещь ограниченная и очень специфичная при такой реализации
Плохо у них с ними. Не раз пробовал с помощью них доказывать теоремы. Постоянно уносит не туда или в рекурсию. Например, асимптотике начинают вводить константы, потом ругаются, что константы надо расписать их значения, где из этого снова говорят что для новых значений надо константы и надо... в итоге начинают выкидывать важные детали.
Другой пример, так как они не понимают, а просто пытаются обобщить, то легко могут проигнорировать прежние теоремы и начинают рассматривать случаи, которые не вписываются в теоремы. То есть самостоятельно не способны обобщить и понять, что какие-то условия ограничены и эти ограничения понятны обычному человеку, но не LLM и она начинает пытаться натянуть сову на глобус. То есть ей надо разжевать все, подобно описать все, почему и откуда, ткнуть прям, и тогда она "решит". Хотя несколькими сообщениями выше все было расписано. Просто механизм внимания это проигнорировал. То есть она хорошо может разложить формулу и объединить (хотя тут очень очень часто косячит тоже).
Но вот в оформлении теорем - они очень удобны, так как когда все расписано, они дополнят все дополнительными замечаниями, которые писать самостоятельно отнимает время и силы.
Так "решат" они любую задачу. Но только решение будет бредом, если досконально не прописать формулировку и план доказательства. Но по сути это и есть решение задачи, самая сложная часть. Если доказательство вытекает из описанного плана решения и точных формулировок.
И это я еще молчу, про то что они могут сослаться на "работы", которых либо нет, либо в которых говорится о другом.
Поэтому если оставить их доказывать самостоятельно, они докажут что у них просят и что земля плоская и солнце это обезьяна. Только по факту это будет бред полный.
Аналогично хотел написать об этом, но понял что авторы вес равно не прочитают комментарии. Нет смысла тратить силы.
https://arxiv.org/html/2509.26507v1
Разбирал для себя, что они на самом деле сделали. Там есть их работа, для себя разбирал.
А так же полез в их исходники.
https://github.com/pathwaycom/bdh/blob/main/bdh.py
Потратил целый вечер, чтобы разобраться. Лень расписывать. Но, слишком громкие заголовки, в реальности не увидел там чего-то принципиально нового.
1) дальние зависимостей у них под вопросом. В статье они говорят, что BDH-GPU содержит “linear attention” как один из механизмов.
Они утверждают, что макро-механизмы внимания трансформера могут быть “аппроксимированы” через их локальные динамики с состоянием, особенно когда активность и связи ведут себя определённо. Не верю - это не доказано. Локально да, но для иерархических данных - нет.
В разделе "6.1 Macro-expressiveness of attention in BDH-GPU" они обсуждают, как attention может быть выражено в BDH-GPU и как "state capacity vs distinction capacity" работает. Они также упоминают, что BDH-GPU оперирует в "высоком измерении нейронов" и что state (состояние) хранятся на нейронах, а не на связях, что позволяет более "глобальное" внимание скрыто реализовываться.
Но главное, что они говорят: теория говорит, что макро-внимание может быть "синтезировано" из комбинации линейного внимания + локальной динамики + "скрытого состояния", а не что они прямо реализуют классический softmax attention на весь контекст.
Это все вызывает вопросы, так как их мат аппарат приведен не до конца (подтверждений не нашел), а исходники дают еще меньше информации. Нет явной иерархической структуры внимания (например, одни слои — локальные, другие — глобальные) — внимание однородно по всем слоям, но может маскироваться / модулироваться локально через xy_sparse и через ReLU.
2) скрытые состояния есть у SSM. То, что модель хранит скрытое состояние, реагирует на входы при помощи него, обновляет его - это не новшество. Структурированные SSM (State-Space Models), RNN с памятью, LSTM, управляемые динамикой модели уже делают это. BDH утверждает, что его скрытые состояния "локализованы на нейрон-нейронных парах" (синапсы), дают интерпретируемость, и что они поддерживают "локальные графовые правила". Но в коде этого нет, чтобы такие "графовые правила" были явно реализованы.
3) В коде нет динамического изменения связей (пластичности) во время forward. Одна из ключевых обещанных идей - пластичность, Hebbian обучение во время вывода, динамическое изменение "синапсов" на основе активаций - в коде этого нет. Это означает, что реальное поведение модели ближе к “фиксированным параметрам + некоторым маскирующим процедурам” чем к активной сети, которая перестраивается на лету (как их гипотеза).
4) Про тот же residual, не нашёл доказательств, что в BDH каждый токен в истории может перескакивать напрямую через "top-down" путь без прохождения через цепочки нейронов или промежуточного состояния. То есть идея "перескока" напрямую (skip) — не явно.
5) Масштабируемость: размер ρ - матрица n х d или n х n может быть дорогим, особенно если n велико. Здесь ρ скрытое состояние ~ "синапсы", n - число "нейронов", модель работает в пространстве размерности n. Скрытое состояние модели (на шаг времени / слой) представляется матрицей (или набором матриц) ρ. Не понятно, дает ли это преимущество или наоборот раздувает размер. Статья не позволяет оценить.
То есть код выглядит ближе к модификации архитектуры Transformer, где есть attention + MLP + residual, но с добавлением sparse@ шагами и перемножениями для модуляции.
И там много всего еще. Потратив кучу времени, нашел лишь некоторые доказательства их реализации, но не доказательства, что это будет работать как обещают. Мат аппарат либо не весь выложен либо не доказывает, то что обещают.
Я не понимаю, чем их текущая реализация сейчас лучше гибридных SSM с локальным вниманием и скрытыми состояниями.
Ну и про биологию неокортекса - тут вообще без комментариев.
Либо я не понял вас. Вы просто выше сравнивали LLM и трансформеры (их архитектуру в основе LLM) с перцептрон, говоря о том что те не туда ушли. Или я не так понял.
Чтобы не было путаницы, я говорю о том, что классический RNN это аппроксимация марковской цепи. Под классическим я подразумевая MLP с рекуррентной связью.
Я не говорю, что через MLP нельзя выстроить иерархию. Тот же трансформер - это архитектурное решение MLP. FFN - это MLP практически. Головы - это множество MLP. И все отличие тут - это механизм внимания, который и описывает иерархию связей. То есть разорванные марковские цепи. Каждый блок трансформера - выделяет отдельные уровни структуры (пусть будут признаки). Головы - находят локальные максимумы на данном уровне, это локальные расстояния, где связи наиболее сильные (как на примере картинки что я приводил, где идут волны).
Например, MoE легко делается через множество MLP, где множество Softmax на выходе (как было изображено выше) и формируют иерархическую сетку.
SSM делает тоже самое, но классическая реализация не имеет иерархии. Но формально он аппроксимирует тоже, что и MLP только немного иначе. Но у него есть преимущество, он может динамически подстраиваться под данные, так как описывает периодические функции (тот же linOSS как расширение SSM описывает еще и затухание).
Марковские цепи имеют историю - информация о ней зашита в соседнем элементе. Да, разложить обратно из цепочки в элементы мы не можем. В марковской сети от последнего элемента зависит предсказание следующего. Это и есть RNN.
Разрыв необходим. Иерархия как раз позволяет связать в разрывы. В мозге например в неокортексе это называет top-down связи, когда верхние уровни иерархии, модулируют предыдущие области (нижние уровни иерархии).
разрыв происходит из за бифуркации, когда вероятность для ограниченного набора "словаря" (не путать со словарем букв, тут это набор уникальных значений) приводит к разрыву марковской цепи. Единственный способ сохранить информацию между цепочками - это их связь через верхний уровень.
https://telegra.ph/Rangovaya-model-veroyatnostej-i-bifurkacii-kak-utraty-asimmetrii-07-17
что касается backprop, то прогоните эти теоремы через сетку. Она может быть лучше объяснит как backprop связан с этим. Там она как раз и получается из теорем R.4, но для нее нужно прогнать остальные теоремы.
https://disk.yandex.ru/d/b8fr7DIiT23AGA
Вы правы так и есть, это и есть марковские цепи. Но, они иерархические. И их иерархия закодирована в механизме внимания, который связывает дальние зависимости на расстоянии D. Как раз, то что и показывает собранная статистика выше. Без этого, мы получаем просто классический RNN с быстрых затуханием марковской цепи без иерархии. То о чем вы сейчас говорите это классический RNN. Но без иерархии, марковская цепь быстро исчезает, ее вероятность становиться очень-очень маленькой. Система нашла выход из этого, через разрывы марковской цепи, когда они не различимы с равномерным распределением. Но чтобы не потерять связи между разрывами, они связаны через иерархию, сегмент верхнего уровня. Тут не ни какой магии.