All streams
Search
Write a publication
Pull to refresh
53
0
Илья @proxy3d

нейробиология, нейронные сети, AR/VR

Send message

https://youtu.be/lGnSQbEzI9s?si=OtzZdSh-I8VWF-to

Это с канала компании. В свое время тоже смотрел, пока не увидел управляющую насосами систему. И на некоторых видео слышно на сколько она шумная

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

https://youtu.be/aVJs_x2a9z4?si=RQAitkSBQEgHoXgk

Это уже давно и долго многие лаборатории разрабатывают.

В 2020 получал пол это грант в 2 млн руб. Сделали стендовое оборудование для проверки технологии. Дальше в РФ это заглохло.

https://vc.ru/tribuna/466947-stoit-li-sozdavat-v-rossii-novye-tehnologii-nash-opyt-razrabotki-tyanushcheysya-elektroniki-gflex

https://t.me/greenruff/1769?single

https://t.me/greenruff/1384

https://t.me/greenruff/1102?single

https://t.me/greenruff/1038

https://t.me/greenruff/387?single

https://t.me/greenruff/165?single

https://t.me/greenruff/48

https://t.me/greenruff/50?single

И так далее. Пока на заморозке. Может позже удастся вернуться к этому, но наверное в России нет смысла пробовать с этим дальше. Так как надо отрабатывать следующий шаг (более продвинутого производство) фотолитография тянущихся электронных плат. Материалы для этого разработали, технологию тоже, надо доделать R&D на отрыв маски от подложки после напыления жидкого сплава.

В свое время, мы обсуждали эту проблему. Я тогда описал, почему разный порядок данных влияет на процесс обучение, особенно в начале и набольших моделях (думаю и на крупных тоже будет разброс). Поэтому был проведен эксперимент, когда было проведено небольшое обучение GPT на одних и те же данные в чистой модели (не помню основа 2 или 3 версии бралась). Сначала порядок данных был от 1 до N, а затем сделали обучение когда скормили эти же данные но в порядке от N до 1. И оказалось что Loss и вообще качество обученной модели сильно отличаются друг от друга.

Я тогда описал на примере почему из одной и тоже логике получается разный результат. Так как в одном случае в начале обучения будет "Природа это добро. Природа важна.... Пауки важная часть природы и они ловят мух. Лягушки едят Пауков. " - что сделает связи в модели что Пауки это добро.

А при другом порядке данных будет "Природа это добро. Природа важна.... Лягушки едят Пауков. .... Люди хорошие.... Не люди плохие...Люди не любят пауков. ....Пауки важная часть природы и они ловят мух". Так вот во втором случае вывод сетки будет уже другой. Так как первичные связи более сильные и маршрут по ним уже проложен. Поэтому тут Пауки будет уже плохими. Хотя два одинаковых датасета.

Это можно сравнить с живым обучением. Если сказать, что кратчайший путь до магазина через ул. Маршала. Эти связи первичны для новой информации и будут наиболее сильные. Поэтому сказать человеку, что кратчайший пусть до магазина через ул. Кирова он запомнит, но все равно связь ул. Маршала будет сильнее, так как через нее уже много раз другие связи усилили этот маршрут. И чтобы теперь это изменилось на ул. Кирова, нужно чтобы условно это сказали 1000 раз.

Поэтому в итоге получаем кучу зашумленной информации. Обучение при этом усложняется, так как надо чтобы правильные ответы преобладали и вытеснили не правильные. На практике такого не будет. Если изначально в сетку ушло что 20*5 это 17, то она это запомнит (мы же в случайном порядке подаем данные). И вряд ли окажется, что будет огромное кол-во записей где будет описано что 20*5 = 100. Пример условный.

Поэтом порядок датасета играет первостепенную роль. А так же правило подачи данных. Вот LIMO - это про то что сейчас большие модели кишат такими не соответствиями. И если мы теперь скормим им правильные связи данных на основе длинных цепочке, позволяющие правильно связать эти разрозненные куски, то получаем отличный результат. И не нужно для этого обучать на новых и скармливать тонны информации. То что они делают, это как раз описывают правильные цепочки сразу "Природа это добро. Природа важна. Лягушки едят Пауков. Люди хорошие. Не люди плохие. Люди не любят пауков. Пауки важная часть природы и они ловят мух". Но делают это просто через длинные рассуждения, которые позволяют сразу охватить более длинные цепочки и правильно усилить эти связи.

С одной стороны согласен с данной гипотезой и одновременно нет. В свое время, часто писал, что последовательность обучения играет роль. То есть скормив одни и те же данные при обучении, но идущие в разном порядке приводят к разному качеству обучения. Проводили эксперименты.

Это можно привести на примере развития и обучения ребенка. Если мы скормим ему сразу кучу данных, но они будут менее структурированные и противоречивые. И эффективность будем маленькой. А затраты большие. Поэтому обучение делится на этапы, где сначала обучаем более обобщённым данным. Затем постепенно усложняем их на каждом шаге. Второй важный момент, это не просто скармливание данных, а скармливание обучающих данных, как это происходит в образовании. Где мы не изучаем все возможные тексты, а изучаем связи, объясняющие закономерности. Простой пример, временная шкала (у нейронок с ней были проблемы). То есть обучение работать с ней и понимать ее (завтра, послезавтра, сегодня, вчера и так далее).

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

Постоянно удаляет или изменяет код ради "оптимизации". Были уравнения расчета - выкинет часть, чтобы упростить расчеты.

Типа было x = a exp(b) sin(c + phi), а он упростит до x = N*sin(c), где введет константу N.

Фраза "не оптимизируй" не помогает. В реальности - это не оптимизация, а ломание логики. Пока объяснишь, забьется контекст и он выкинет уже другое. Так как теперь механизм внимания LLM выделит другие более яркие детали.

И если человек на все 100% не понимает, что ему написала сеть (сам бы не мог это написать), то на выходе выйдет макаронный монстр. Так как любые модели LLM быстро скатываются на дно на сложном коде. Подключение к базе или обработку простых запросов Django/Flask они написать могут. Не могут грамотно написать архитектуру нейронной сети или сложную архитектуру на том же Django/Flask.

Сейчас LLM напоминают автопилот Тесла. Руки всегда надо держать на руле.

Чаще ситуация "лень писать код", но сетка своими "исправлениями" доводит до состояния "биться головой об стенку" (объяснял, объяснял - чего тут сложного то?). И тут появляется агрессия, мотивация и силы - и направляешь это на написание кода самостоятельно.

Как я понял, там в основе лежит ODE Solvers
https://github.com/rtqichen/torchdiffeq

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

Сразу встает вопрос, почему это повсеместно не используется.

1) такие системы гораздо сложнее при обучении, так как очень чувствительны в параметрам настройки. То есть обучать их сложнее и дольше, поэтому их используют в специфических задачах, где итоговые модели не большие (вроде как для IoT).

2) они плохо заточены под GPU, а точнее не оптимизированы. Так как данные системы пока еще экспериментальные и не получили должного внимания, поэтому попыток их оптимизации под GPU либо нет либо в публичный доступ особо не выкладываются.

3) Во время обучения, стандартные оптимизаторы Adam и другие с ними плохо работают (если вообще работают) и поэтому под них нужны другие оптимизаторы во время обучения Optimazer ODE Solvers (заточенные именно под них). Это значит что под разные задачи надо писать свои

4) Адаптация множества уже готовых моделей, вроде трансформеров, механизмов внимания и так далее. Где надо видимо переделывать все под них.

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

Я не прав. Они именно реализовали иначе сигнал нейрона, сделал его ближе к биологическому, включая затухание сигнала и другие моменты. Тогда понятно почему он не выкладывают подробное описание архитектуры.

https://arxiv.org/abs/2006.04439
Нашел про Liquid Neural Networks (LNN)

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

  • Пластичность синапсов: Каждый нейрон или блок сети имеет свою «временную константу», которая определяет скорость затухания или интеграции сигнала. Эти константы являются обучаемыми параметрами, что позволяет сети адаптироваться к характерным временным структурам данных.

  • Непрерывное обучение: Модель обновляется без полного переобучения.

  • Устойчивость к шуму: Работают в условиях нестабильных или зашумленных данных.

Архитектура:

  • В отличие от стандартных дискретных RNN, LNN описывают эволюцию состояния с помощью обыкновенных дифференциальных уравнений (ODE). Это позволяет сети моделировать процессы на различных временных масштабах.

  • Включают рекуррентные связи и механизмы временной задержки.

  • Пример: Liquid Time-Constant Networks (LTC) от MIT, где нейроны имеют переменную временную постоянную.

Производительность слоя Mamba относительно слоя transformer, причем преимущество Mamba быстро растет с увеличением длины последовательности, Transformer: размерность модели 4096, 32 головы. Mamba-2: размерность модели 4096, размерность состояния 128, 8 групп 
Производительность слоя Mamba относительно слоя transformer, причем преимущество Mamba быстро растет с увеличением длины последовательности, Transformer: размерность модели 4096, 32 головы. Mamba-2: размерность модели 4096, размерность состояния 128, 8 групп 

Речь идет об этом (Mamba основана на SSM)
https://developer.nvidia.com/blog/nvidia-nemo-accelerates-llm-innovation-with-hybrid-state-space-model-support/

Про сами модели
https://docs.nvidia.com/nemo-framework/user-guide/24.07/llms/mamba/index.html

Статья об этом
https://arxiv.org/pdf/2405.21060

Так что похоже, что выше просто взяли Hybrid SSM и добавили LLN блок. Тут как файтюнить их модели
https://github.com/NVIDIA/NeMo/blob/main/tutorials/llm/mamba/mamba.rst

Сами модели для файтюнинга
https://huggingface.co/collections/nvidia/ssms-666a362c5c3bb7e4a6bcfb9c

Про Liquid Foundation Model на их сайте и везде описана сплошная вода.

"Это первый случай, когда архитектура без GPT значительно превосходит модели на основе трансформатора. " - вранье, Гибридные SSM обошли гораздо раньше трансформеры, да и просто SSM, вопрос только на каких данных.

"LFM имеют меньший объем памяти по сравнению с трансформаторными архитектурами. Это особенно актуально для длинных входов, где кэш KV в трансформаторных LLM растет линейно с длиной последовательности. " - намекает на то, что они используют SSM в основе.

В общем почитав их сайт и все что доступно. Доверия они не вызывают. Какое то ощущение, что взяли SSM туже Mamba и прикрутили блоки LNN, чтобы обеспечить латеральное торможение на входе в каждый блок SSM. Может я не прав, но ни каких серьезных намеков на описание их архитектуры нет. А в остальном, ну очень похоже на описанное выше.

Если я правильно понял, то главное отличие LNN это ингибирование у нейронов. Это когда наиболее ярко выраженные нейроны, подавляют рядом менее выраженные нейроны и тем самым создают контраст. Так происходит в некоторых слоях мозга.

Не могу найти полную архитектуру их llm модели, так как только на LLN принципиально не улучшить. Так совпало что сегодня как раз добавил ингибирование нейронов, но только реализовал немного иначе через модуляцию свёртки и softmax. Делал латеральное торможение у модели (сейчас обучается чтобы сравнить результат). Но это как дополнение архитектуры, с целью перенести латеральное торможение из биологии. Я к тому, что этого явно не достаточно чтобы стать лучше текущих реализаций llm.

Но в описании говорится про временные параметры. Это ни какого отношения к LLN не имеет. И есть сильно сильное подозрение, что тут использовали SSM модели и скрестили их латеральный торможением. Но SSM и без латерального торможения отлично работают.

Ограничение окна в 32К, намекает на то что они используют Hybryd SSM от NVIDIA из Nemo. Это гибрид трансформеров и SSM. Где Nvidia выкладывала предобученную модели (или описывала чужие , точно не помню) и в разделе Nemo -ssm есть на них ссылки для дообучения. Они действительно считаются, что превосходят трансформеры по всем пунктам описанным выше.

И если так, то это совсем другая история. И использование LNN подхода, просто возможно немного улучшили модель. Но в любом случае латеральное торможение это не панацея.

Так что смахивает на то-то взяли hybrid ssm, добавили к нему латеральное торможение реализованное через LNN и затем в описании описали свои дополнения с возможностями hybrid ssm. Но звучит это так, словно именно LNN привела к этому. Манипуляция какая то

Deepseek сделала прорыв не в архитектуре, а в оптимизации существующей архитектуры.

Так что с одной стороны он прав, а с другой существенная оптимизация текущей архитектуры LLM на базе трансформеров без потери качества, тоже большое достижение. В deepseek тоже была проделана большая научная работа, чтобы оптимизировать. Если на то пошло, то когда в llm сделали упор на механизм внимания, убрав много другого, то это тоже была своего рода оптимизация архитектуры. Так же адаптировали ее под эти изменения. Просто все шло постепенно, а не так что сразу открыли что то новое.

Но в целом да, deepseek именно оптимизировал текущую архитектуру трансформеров. Прорыв это? В плане удешевления обучения потребления ресурсов по прорыв. В плане принципиально новой архитектуры? Нет.

Поэтому стоит скопировать ответ из ChatGpt или чего там, перенести его в Deepseek и попросить повторить. "покритикуй. С чем согласна? С чем не согласна?"
Они так бесконечно могут высасывать из пальца проблемы. Тут главное во время остановиться. Но обычно в такой момент это уже становиться очевидным, когда например скажет "а вот это не учитывает чего то , что не входит в задачу"

Пробовал написать игру за неделю только средствами chstgpt. Все остановилось когда надо было склеивать код. Надо самому его адаптировать. Когда игра сложнее тетриса, то самому. Да и часть проблем, llm не может решить, когда сцены не правильно прогружались согласно инструкции chstgpt и куча нюансов. Так что все равно писать самому, чем потом разбираться что за разрозненные классы он насоздавал. Самому быстрее сделать .

А вот что реально помогло, это развёртывание своих gpu серверов на арендованных мощностях, через которые генерировал звуки, или изменял детали изображения на основе controlnet (или как правильно не помню точно называние), когда надо у рисунка изменить какие то делали не изменяя сам рисунок. Или поднимал сетку, которая генерирует сложные звуки, вроде шум дождя и на фоне должен звук приза.

Опишите такой опыт.

Вот тут была отличная книга по ним.

https://ozon.ru/t/wEdWXP2

Но если вы ещё напишите статьи об этом, то ценность будет огромная.

Очень хотелось бы, чтобы кто то написал ещё и более общую статью. Про использование расспараление на верхнем уровне, например rayserve. Со всеми auto scaling и прочими вещами. Я использую его, но там ещё думаю много скрытых моментов, которые не использовал и не изучал. Вдруг на Хабре есть эксперты, кто вдоль поперёк на них распаралеливал задачи обучения. И описал бы нюансы, а их там не мало (от настройки до ограничений пропускного канала и других мелочей).

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

Или буквально сегодня, просил написать bash скрипт, который пропишем разрешение программе доступ к папке в selinux. В итоге 6ой вариант только заработал. Хотя казалось задача простая. Но не одно из первых 5и решений не работали. И тут вопрос, что быстрее самому найти доки и прочитать или таким методом. Один плюс, попросил и делаешь другие задачи. В надежде что заработает . В каких то задачах решало, в каких то требовало времени, в каких то так и не справилась. И ни когда не знаешь, что быстрее самому или через модель.

Но вот какие то маленькие куски да. Предложил сам, просишь покритиковать. Или предложить самому несколько вариантов решений и через критику модели, устроить сам себе мозговой штурм, чтобы потом самому решить как более правильно. А модель может указать на возможные слабые места.

Так что я например чаще стал использовать llm для критики своих решений, или оценки моих разных вариантов решений или рассказать какие известные решения она знает (чтобы понять не упустил ли готовые). Это сокращает время на поиск.

Попросите модель написать вам код. Думаете верно? Попробуйте написать "покритикуй это решение. С чем согласна? С чем не согласна?". И так на каждом шаге. Увидите, как она будет менять свое мнение. А теперь скопируйте ее ответ из chstgpt в deepseek и повторите "покритикуй. С чем согласна? С чем не согласна?". И удивитесь, другая llm может указать вам, что данное решение плохое. И так меняйте ответы из одной llm в другую с этим комментарием.

Это хоть какой то шанс уйти от галлюцинаций, подойти к решению с критической стороны. Они могут так бесконечно изменять. Главное, чтобы они не начали забывать прежние ответы, иначе можете получить зоопарк на ваше решение написать код.

Это не спасает полностью, но небольшие участки позволяет править.

Вообще нужна такая автоматика. Чтобы вместо размышляющих, в них был токен "покритикуй" и желательно между двумя разными llm. Это будет аналог арбитра, когда в качестве него выступает либо сама модель либо другая крупная . Это существенно снижает галлюцинации.

Нет. Они изменили архитектуру. И именно в этом главная заслуга deepseek.

https://planetbanatt.net/articles/mla.html

Все остальное стало возможным благодаря этим изменениям. Если бы они взяли lora и на ее базе сделали такую большую модель, то ни какая дистилляция тут не спасла бы. А так благодаря изменениям, дистилляция ускоряет обучение на их архитектуре. Но это лишь следствие.

А может это механизм передачи данных между людьми, но в очень урезанном виде. Когда оставили только самые важные механизмы, отвечающие за обмен данными между людьми минуя какие то другие механизмы. В этом плюсы нейронок, что мы можем реализовывать работу, убирая какие то вещи реального мозга. Вроде слуха, фильтрации сигналов таламусом и так далее. С одной стороны это урезает возможности, с другой позволяет делать специфичные вещи, которые мозг не может, так как это пожелает баланс других процессов.

Я такое вижу сплошь и рядом в разных ариектутрах сеток. Например, redimnet для распознавания спикеров через свёртки, выкинули часть деталей реальной передачи между зонами мозга и оставили только самую базу. Что позволило создать специализированную сетку, которая является урезанной реализацией прохода сигнала через кохлеарное ядро, нижние холмики, оливу и так далее, сразу до славой коры зоны A1, выкинув фильтрацию сигнала таламусом. И получили, что она может отлично выполнять ряд функций, которые делали эти зоны, но не все.

Или тоже кохлеарное ядро, в мозге делиться на две зоны для низких и высоких частот. При чем для низких она сложнее (эхолокация). Но мозг так сделал ради экономи ресурсов, как компромисс. И у человека зона высоких частот развита не очень. В случае сеток, мы можем исправить это и сразу сделать на этом шаге более продвинутую модель, словно мозгу не нужно переживать за место (древние зоны не могут расти не в ущерб другим). И миллион лет эволюции. В этом сила сеток.

Что то мне подсказывает, что они переизбрали механизм обратной связи на уровне крупных зон мозга. Или механизм частично, который занимается консолидацией данных из кратковременной в долговременную , называется replay в нейробиологии. Только реализовали часть какую то.

Надо конкретно смотреть, что они сделали и как. Я сколько работаю с нейронками и архитектура и, пока не увидел ничего, чтобы отличалось от механизмов в мозге. Только в нейронках копируют часть механизма. Но постепенно усложняют приближаясь к биологии. Так что возможно, тут главное может оказаться то, что можно взять данную механику при реализации переносе из кратковременной памяти в долговременную. Надо разбираться.

Вообще удивительно, как исследования порой копируют многие механизмы мозга , но в урезанном виде. При этом не осознают этого.

Все таки, пока нейронки пока только зараждается как наука. И пока ещё ей предстоит пройти слияние с нейробиологией.

Уверен, что представленное исследование так же копирует какие то связи реальных зон мозга, как часть их механики. А потом удивляются результатам.

Я сейчас например реализую 6 слойная модель, которая лежит в основе любых зон мозга. И там есть слой VI, он помогает определить новизну сигнала, через выделение важных признаков. И затем подаётся на вход модели, чтобы усилить наиболее важные, чтобы модель на следующем шаге могла обратить на них внимание и усилить или ослабить.

Так вот, оказалось что это типичная модель классификации. Когда мы определяем что за данные: кошка, собака, музыка , шум и так далее. Только классификаторы это урезанный вариант работы слоя VI. По-сути этот слой находит признаки собаки, и затем усиливает каналы у входного сигнала, чтобы сосредоточиться на собаке.

Разработчики, сами того не понимая реализовали частично этот слой. Взяв только часть, а именно классификацию сигнала без обратной связи.

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

https://t.me/greenruff/2109?single

Тут как раз сейчас исследую, механизм сигнала новизны. И когда перенес его биологию из слоя VI, то оказалось что это типичный классификатор. Только у стандартного в сетках это урезанный слой VI в мозге. И если бы изначально пошли по пути нейробиологии, то увидели это. Плюс появилась бы возможность динамически влиять на сигнал.

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

Information

Rating
5,448-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity