the last neural cell
1.15K subscribers
91 photos
8 videos
14 files
117 links
we write about BCI, AI and brain research.

authors:
@kovalev_alvi - visual neural interfaces - UMH, Spain | CEO of ALVI Labs
@Altime - comp neuro phd @ GTC Tübingen

Our chat: @neural_cell_chat
Download Telegram
Forwarded from rizzearch
FAST: Efficient Action Tokenization for Vision-Language-Action Models

зачем-то physical intelligence, которые делали pi0, себе второй домен забабахали pi.website, на котором запостили как они сделали токенизатор для робо действий

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

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

при том идея хороша тем, что построена она из привычных рабочих техник

- надо бы как-то эффективно сжимать временные ряды действий. можно бинаризовать - ок, но в случае высокой герцовки робота получается все больше бинов за все меньшее количество времени → медленный инференс. но можно вспомнить (или просто почитать предположение авторов), что траектории действий во времени являются все-таки гладкими, а значит и это можно использовать для компрессии
- lets go to the Discrete Cosine Transform! да, вот такой переход потому что это уже своего рода классика: будем получать наибольшее количество информации в низких частотах, а значит и можно будет сжимать очень многие высокие частоты)
- получим матрицу для каждого action chunk (о важности чего мы упоминали здесь), которую нам неплохо было бы представить в виде последовательности, чтобы потом использовать БПЕ (потому что скорее всего это тоже привычно и довольно удобно) → давайте флаттенить, да при том чтобы низкие частоты были в начале последовательности, а высокие (незначительные) в конце + допом сделаем scale-and-round операцию чтобы округлить до нулей все незначимое
- тогда и можно запускать бпе бррррр

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

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

при том это настолько хорошо вкладывается в пайплайн физикал интеллиженса, что они утверждают о возможности зеро-шота на DROID + там где происходит фейл на эпизоде, полиси делает не вообще полностью что-то рандомное

теперь к вопросам, которые появились

- перед DCT происходит нормализация в рейндж от - 1 до 1 на основе статистик датасета по первой и 99 квантили. FAST+, который они выпустили в опенсурс построен аналогичным путем и заявляет о своей универсальности. звучит немного странно с учетом такой нормализации. да, их датасет основан на многих роботах + 1млн траекторий
- но это все равно как будто слишком уникальное дело по поводу токенизации акншнов для робота + так же в экспериментах они говорят об низкой чувствительности к scale параметру перед округлением и вокаб сайзом для БПЕ → выбирают 10 и 1024. как будто второе число довольно-таки мало (особенно сравнивая с вокаб сайзом для лмок что не очень честно но хоть что-то), чтобы с удобоваримым пресижном сжимать действия,

но может я чего-то не понимаю в этой жизни и это довольно-таки интересный инсайт о природе рободействий в нашей реальности

👀 link, демки, code вроде выложили но там нету самой процедуры обучения токенизатора
Кто хотел разобраться как этот ваш ChatGPT работает? И что там под капотом?

Пожалуйста 3 часа чистого кайфа от Андрея Карпатного!
2
Forwarded from Нейроинтерфейсы (Sergei Shishkin)
Совсем свежее введение в LLM и их возможности от Андрея Карпатого, в прошлом одного из сооснователей OpenAI и директора по AI в Tesla. Говорят, очень ясное, простое и доходчивое.
7🔥1
Brain-to-Text Decoding: A Non-invasive Approach via Typing

link
paper
17🔥21
Давайте знакомиться

Меня зовут Александр Ковалев, я админ канала и пишу обзоры статей (вместе с Алексеем Тимченко).

Я почти все время совмещал работу в науке и в индустрии. Разрабатываю нейроинтерфейсы и тренирую разные детекторы, сегментаторы, матчинги. Также я сооснователь ALVI Labs - мы там с командой создали работающий мышечный интерфейс для людей без рук. Он классно работал (ссылка), правда, сейчас проект на паузе.

А сейчас о самом интересном - я на этой неделе начал работать над нейроимплантами для восстановления зрения в лаборатории Eduardo Fernandez в Испании. Они имплантируют электроды непосредственно в визуальную кору мозга, чтобы вернуть людям возможность видеть.

У них уже было четыре волонтёра, которые абсолютно ничего не могли видеть - каждый из них по полгода использовал Utah Array (представьте массив микроскопических электродов в мозге). И вскоре, возможно, присоединится пятый участник. Я её даже несколько раз видел в лабе.

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


Так что теперь официально: Research Scientist + PhD Student по биоинженерии. И пишите, если есть идеи по улучшению визуальных имплантов - всегда рад обсудить новые подходы!
🔥43🦄765🤗4
😬 Experiencing stress is linked to changes in the brain.

The paradigm is shifting from brain-centric to brain-body connection recognition. Possibly we will unlock many more channels of gut-brain information exchange.

Practically, one way to modulate this axis is vagus nerve stimulation, which can be done minimally invasively via placing electrodes on the ear.

Exciting stuff, embodied cognition is becoming more of a dogma than just a hypothesis

https://www.thetransmitter.org/neuroimmunology/rethinking-mental-health-the-bodys-impact-on-the-brain/
4🔥2
LLM_interpretability_AI _summary.pdf
71.2 KB
Over the past time I collected some interesting mechanistic interpretability papers - trying to understand the information processing in AI systems.

Since I'm not an expert, I delegated some of the work to AI itself 🙃

Why I find it interesting? Well, the field of "AI neuroscience" is emerging. This, firstly, brings two fields closer together (neuroAI doesn't count). Second, I believe both understanding of AI and the brain can be advanced by testing theories on the systems where everything can be measured and controlled.

Of course, LLMs are far from natural biological nervous systems, but I believe there are fundamental information processing principles that are shared.

💡Some insights:
> Activations in RNNs mirror the statistics of their input data
> Apparently chunking of computations is present akin to brain's hierarchical processing
> "Grandmother cell" are real but sparse, distributed processing is more likely to be happening

Have a look, it's fun 🙂
4🔥2🤓2
This media is not supported in your browser
VIEW IN TELEGRAM
Helix: A Vision-Language-Action Model for Generalist Humanoid Control

Figure сегодня показала своих роботов с новой системой управления. Обязательно посмотрите их отчёт - очень интересно! Видео взял прямиком из твиттера)

Technical report:
https://www.figure.ai/news/helix
5🔥6🤯21
Forwarded from rizzearch
World and Human Action Models towards gameplay ideation

вот и майкрософт, как оказывается, год назад уже смогли зафигачить модель мира на основе мультиплеер пвп bleeding edge от ninja theory (оказывается помимо devil may cry & hellblade они еще вот такое делали). но почему-то решили это отправить nature а не на архив по классике

собрали 28 террабайт датасета траекторий игроков (полмиллиона игровых сессий, 1.4B фреймов при 10Гц, 7+ лет реального времени, еще отфильтровали под конкретную карту примерно год по объему)

обсервейшны (картинки) 300х180х3 и действия маппят в одно и то же пространство токенов, при том для первых обучают сначала ViT-VQGAN в 300м параметров на реконструкцию и perpectual лоссы, а потом и добавляют ган обжектив непосредственно. в качестве ворлд модели выступает отдельный каузальный трансформер который моделирует последовательность токенов обсервейшнов и действий (в качестве них кстати выступают сигналы с контроллеров хбокс геймпада)

назвали это WHAM - World and Human Action Model

самый большой трансформер смогли натренить размером в 1.6B что не оч много но при этом довольно классные на глаз результаты получились (с учетом маленького разрешения фреймов). и присутствует то, что авторы называют persistency, diversity, consistency: генерации соответствуют игровой механике и более-менее геймер интерфейсу, они получаются разнообразными и способны адаптироваться под нововведенные объекты посреди инференса (например если добавить врага или какой-то игровой объект то очень естественно произойдет с ними взаимодействие)

насчет последнего так же они еще релизнули WHAM Demonstrator - как я понял это своеобразная гуишка, которая позволяет удобнее производить такие интервенции в момент генерации + смотреть на каких фреймах может происходить расхождения по разным сценариям с одинакового начального картиночного промпта (то что относится к диверсити)


paper

weights

dataset 75гб


P.S. у нас еще есть другие посты про модели мира - [1] [2] [3]
3🔥2
📚A collection of papers & tools on dynamical systems and deep learning

https://github.com/yantijin/dynamic-systems-DL

It's divided into the following topics:

Differential Equations in Deep Learning

General Architectures
Neural ODEs (ordinary diff. eq.)
Neural SDEs, CSDEs, CDEs...
Normalizing Flows
Applications

Energy based models

Hamilton
Applications
Lagrange

Deep Learning Methods for Differential Equations

Solving Differential Equations
Learning PDEs
Applications
Model Discovery

Deep Control

Model-Predictive-Control

Dynamical System View of Deep Learning

Recurrent Neural Networks
Theory and Perspectives
Optimization
Signals and systems

Software and Libraries

Python
Julia

Websites and Blogs

----
16
ALVI Interface: Towards Full Hand Motion Decoding for Amputees Using sEMG

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

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

Что за система управления?

Мы хотели, чтобы человек с ампутацией управлял искусственной рукой, как настоящий. Для этого мы разработали продвинутую систему контроля для протезов.

Что сделали, чтобы приблизиться к цели?

1. Использовали 8 электродный браслет для записи мышечных сигнала(EMG)
2. Разработали приложение для виртуальных очков - это позволило нам записывать много данных.
3. Обучили трансформер предсказывать движения пальце по активности мышц,
4. Реализовали быструю систему калибровки интерфейса "на лету", чтобы человек мог видеть результаты и повторять наиболее сложные жесты. Связали очки вр, с компом, с браслетом и с сервером.

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

Видео: https://youtu.be/Dx_6Id2clZ0?si=E4Cw8TTZG2opkdZg

Статья https://arxiv.org/abs/2502.21256v1

Прошлый пост: https://t.iss.one/neural_cell/135
🔥1363
Low-rank RNNs are thought to underly neural manifolds (see works of Ostojic and Langdon), which in turn are linked the population coding of behavioral variables. So this short article about low-rank RNNs might be useful to get familiar with the theoretical basis.

I made a separate post on manifolds underlying neural activity, mostly to show that it's still a hot topic in neuro research.
🤓2
Forwarded from the Turing Machine
Low-rank RNNs in ten minutes

Artificial neural networks are super cool. They are known for all sorts of computational prowesses, and they also happen to model brain processes quite well. Among artificial neural networks, there are recurrent neural networks (RNNs), which contain a pool of interconnected neurons, whose activity evolves over time. These networks can be trained to perform all sorts of cognitive tasks, and they exhibit activity patterns that are quite similar to what is observed in many brain areas... [ Read more ]

A post by Adrian Valente

Follow: @theTuringMachine
🤓5
Разбираемся в генеративных моделях: diffusion

Сейчас почти на каждом шагу можно встретить много разных генеративных моделей. Самый яркий пример — text-to-image/video модели, которые по текстовому описанию генерируют картинку или видео. Давайте погрузимся в термины diffusion и flow matching и разберемся, как это всё работает верхнеуровнево.

Предыстория и контекст

DDPM (Denoising Diffusion Probabilistic Models) стала одним из главных открытий в 2020 году. После этого ученые всерьез начали заниматься диффузиями и немного забросили работы по GAN, хотя их было очень много в то время.

Я прекрасно помню тот момент. Я работал в Huawei над улучшениями качества картинок, и в соседних командах потихоньку люди начинали обращать внимание на normalizing flows и diffusion. Мы тогда обучали U-Net подобные архитектуры и не отвлекались ни на что другое.

Проблема генерации данных

Собственно в чем суть. Чтобы генерировать данные, круто было бы понимать как эти данные распределены, в идеале иметь доступ к функции распределения. Ведь чтобы что-то генерировать/сэмплировать вам нужна эта функция.

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

А как же быть с многомерными картинками? Ответ — никак, но... Невозможно получить распределение картинок, но можно его как-то попытаться смоделировать/аппроксимировать.

Основная идея диффузионных моделей

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

Получаем шум, прогоняем модель, получаем картинку — вот так просто. Может это звучит немного странно, однако таким образом работают VAE и GAN.

Что особенного в диффузии?

Главное отличие заключается в том, что мы трансформируем шум в данные в несколько шагов, вместо одного. То есть мы учим нашу модель двигаться постепенно. Вот тебе 1000 шагов — потихоньку превращай шум в картинку.

И это работает просто и хорошо! Решаются проблемы VAE с размытостью генераций и GAN с нестабильным обучением. Да, процесс стал медленнее, но взамен мы получили стабильность и качество, а сам процесс обучения стал значительно проще.

Как это работает более подробно

В DDPM есть два процесса, прямой и обратный:
- В прямом мы зашумляем картинку, постепенно превращая в шум
- В обратном мы постепенно расшумляем, превращая в картинку

Существуют разные расписания шума, которые влияют на скорость и качество генерации.

Как мы учим модель расшумлять данные

def ddpm_train_step(self, x0):
"""
x0 - исходные данные
"""
batch_size = x0.shape[0]
# Выбираем случайный шаг времени
t = torch.randint(0, timesteps, (batch_size, 1))
# Добавляем шум к исходным данным
x_t, target_noise = add_noise(x0, t)
# Модель предсказывает добавленный шум
predicted_noise = model(x_t, t)
# Учим модель предсказывать правильно
loss = F.mse_loss(predicted_noise, target_noise)
return loss


Главное на что стоит обратить внимание — процесс стохастический. То есть даже во время генерации мы на каждом шаге добавляем шум. И как бы это ни звучало парадоксально, за счет этого шума мы как бы нивелируем небольшие неточности модели. То есть если модель на каком-то шаге свернула не туда, то добавленный шум может сгладить этот эффект. Это мое понимание. Если вы считаете иначе, пишите — обсудим.

Заключение
Надеюсь было полезно. Для более глубокого погружения - читаем отличный гайд на 80 страниц.

Tutorial on Diffusion Models for Imaging and Vision

В следующий раз поговорим про еще более простой способ.
5🔥832🤓1
Разбираемся в генеративных моделях: Flow matching

Помните, в прошлый раз мы разбирали DDPM, где нужно было делать 1000 шагов для генерации? А что если я скажу, что можно сделать всё то же самое, но в разы проще и быстрее?

Сегодня поговорим про flow matching в его самой простой форме - linear interpolation. Если DDPM показался вам сложным, то тут вы офигеете насколько всё просто.

В чём основная идея? Вместо того чтобы учить модель убирать шум пошагово (как в DDPM), мы учим её находить прямой путь от шума к картинке. Да-да, просто рисуем линию из точки А в точку Б!

Как это работает:

1. Берём шум и настоящую картинку
2. Случайно выбираем точку между ними (это наше t)
3. Просим модель предсказать в какую сторону двигаться из этой точки

И всё! Вот честно - это весь алгоритм. Смотрите какой простой код для обучения:

def train_step(self, x0):
batch_size = len(x0)
z = torch.randn(batch_size, self.dim).to(self.device)
t = torch.rand(batch_size, 1).to(self.device)
xt = (1 - t) * z + t * x0 # линейная интерполяция между шумом и картинкой
pred_field = self.vector_field(xt, t)

true_field = x0 - z # вот оно - направление от шума к картинке
loss = F.mse_loss(pred_field, true_field)
return loss # возвращаем loss, а не x


А генерация ещё проще - просто идём маленькими шажками в нужном направлении:

def sample(self, batch_size=64, steps=100):
dt = 1.0 / steps
x = torch.randn(batch_size, self.dim).to(self.device)
for i in range(steps):
t = torch.ones(batch_size, 1).to(self.device) * i * dt
v = self.vector_field(x, t)
x = x + dt * v
return x


А теперь самое интересное - то что мы тут делаем, по сути решаем обычный дифур!

Наш vector_field это просто производная dx/dt, а в sample мы используем метод Эйлера для решения этого дифура. И тут открывается целое поле для экспериментов - можно использовать любые солверы: Рунге-Кутту, multistep методы и прочие штуки из мира численных методов.

В общем берите любой солвер из scipy.integrate и вперёд! Некоторые из них позволят ещё сильнее уменьшить количество шагов при генерации.

Главные преимущества по сравнению с DDPM:

- Не нужно возиться с расписаниями шума
- Процесс полностью детерминированный (мы же просто решаем дифур!)
- Генерация работает в разы быстрее
- Код настолько простой, что его можно написать за 5 минут

Я сам офигел когда первый раз это запустил - на многих задачах качество получается сравнимое с DDPM, а кода в три раза меньше.

Единственный небольшой минус - модель иногда бывает менее стабильной при обучении, т.к. нет стохастичности как в DDPM. Но это решается правильным подбором learning rate.

Flow Matching Guide and Code: https://arxiv.org/pdf/2412.06264
5🔥421