Forwarded from Нейроинтерфейсы (Sergei Shishkin)
Совсем свежее введение в LLM и их возможности от Андрея Карпатого, в прошлом одного из сооснователей OpenAI и директора по AI в Tesla. Говорят, очень ясное, простое и доходчивое.
YouTube
Deep Dive into LLMs like ChatGPT
This is a general audience deep dive into the Large Language Model (LLM) AI technology that powers ChatGPT and related products. It is covers the full training stack of how the models are developed, along with mental models of how to think about their "psychology"…
❤7🔥1
Давайте знакомиться
Меня зовут Александр Ковалев, я админ канала и пишу обзоры статей (вместе с Алексеем Тимченко).
Я почти все время совмещал работу в науке и в индустрии. Разрабатываю нейроинтерфейсы и тренирую разные детекторы, сегментаторы, матчинги. Также я сооснователь ALVI Labs - мы там с командой создали работающий мышечный интерфейс для людей без рук. Он классно работал (ссылка), правда, сейчас проект на паузе.
А сейчас о самом интересном - я на этой неделе начал работать над нейроимплантами для восстановления зрения в лаборатории Eduardo Fernandez в Испании. Они имплантируют электроды непосредственно в визуальную кору мозга, чтобы вернуть людям возможность видеть.
У них уже было четыре волонтёра, которые абсолютно ничего не могли видеть - каждый из них по полгода использовал Utah Array (представьте массив микроскопических электродов в мозге). И вскоре, возможно, присоединится пятый участник. Я её даже несколько раз видел в лабе.
Так что теперь официально: Research Scientist + PhD Student по биоинженерии. И пишите, если есть идеи по улучшению визуальных имплантов - всегда рад обсудить новые подходы!
Меня зовут Александр Ковалев, я админ канала и пишу обзоры статей (вместе с Алексеем Тимченко).
Я почти все время совмещал работу в науке и в индустрии. Разрабатываю нейроинтерфейсы и тренирую разные детекторы, сегментаторы, матчинги. Также я сооснователь ALVI Labs - мы там с командой создали работающий мышечный интерфейс для людей без рук. Он классно работал (ссылка), правда, сейчас проект на паузе.
А сейчас о самом интересном - я на этой неделе начал работать над нейроимплантами для восстановления зрения в лаборатории Eduardo Fernandez в Испании. Они имплантируют электроды непосредственно в визуальную кору мозга, чтобы вернуть людям возможность видеть.
У них уже было четыре волонтёра, которые абсолютно ничего не могли видеть - каждый из них по полгода использовал Utah Array (представьте массив микроскопических электродов в мозге). И вскоре, возможно, присоединится пятый участник. Я её даже несколько раз видел в лабе.
Моя главная задача - улучшить стимуляцию так, чтобы люди могли различать не просто вспышки света (фосфены), а действительно видеть сложные образы и формы. А в целом - сделать удобнее, круче, выше, сильнее.
Так что теперь официально: Research Scientist + PhD Student по биоинженерии. И пишите, если есть идеи по улучшению визуальных имплантов - всегда рад обсудить новые подходы!
🔥43🦄7 6❤5🤗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/
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/
The Transmitter
Rethinking mental health: The body’s impact on the brain
Mounting evidence illustrates how peripheral molecules can influence brain function, offering new therapeutic targets.
❤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 🙂
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
Figure сегодня показала своих роботов с новой системой управления. Обязательно посмотрите их отчёт - очень интересно! Видео взял прямиком из твиттера)
Technical report:
https://www.figure.ai/news/helix
5🔥6🤯2❤1
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]
вот и майкрософт, как оказывается, год назад уже смогли зафигачить модель мира на основе мультиплеер пвп 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гб
❤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
----
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
----
GitHub
GitHub - yantijin/dynamic-systems-DL: Collection of resources that combine dynamic systems, control with deep learning.
Collection of resources that combine dynamic systems, control with deep learning. - yantijin/dynamic-systems-DL
1❤6
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.me/neural_cell/135
Мы решили выложить детали нашего интерфейса для людей с ампутацией. Этой работой я очень горжусь и хочу всех поблагодарить за очень крутой результат!
Я начал работать над этим проектом, потому что узнал, что протезы работают плохо. И вместе с командой мы решили создать самую лучшую систему управления.
Что за система управления?
Мы хотели, чтобы человек с ампутацией управлял искусственной рукой, как настоящий. Для этого мы разработали продвинутую систему контроля для протезов.
Что сделали, чтобы приблизиться к цели?
1. Использовали 8 электродный браслет для записи мышечных сигнала(EMG)
2. Разработали приложение для виртуальных очков - это позволило нам записывать много данных.
3. Обучили трансформер предсказывать движения пальце по активности мышц,
4. Реализовали быструю систему калибровки интерфейса "на лету", чтобы человек мог видеть результаты и повторять наиболее сложные жесты. Связали очки вр, с компом, с браслетом и с сервером.
Теперь мы выкладываем в открытый доступ описание нашей системы! Со временем, мы выложим код и данные. Надеюсь, что это ускорит научные исследования и мы реально увидим удобные и полезные протезы.
Видео: https://youtu.be/Dx_6Id2clZ0?si=E4Cw8TTZG2opkdZg
Статья https://arxiv.org/abs/2502.21256v1
Прошлый пост: https://t.me/neural_cell/135
🔥13 6❤3
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.
I made a separate post on manifolds underlying neural activity, mostly to show that it's still a hot topic in neuro research.
Telegram
the last neural cell
✨ Continuing sharing newsletters for inspiration and general perspective broadening
Neural manifolds: Latest buzzword or pathway to understand the brain?
Check out this insightful piece from The Transmitter on neural manifolds and population coding.
The…
Neural manifolds: Latest buzzword or pathway to understand the brain?
Check out this insightful piece from The Transmitter on neural manifolds and population coding.
The…
🤓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
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 есть два процесса, прямой и обратный:
- В прямом мы зашумляем картинку, постепенно превращая в шум
- В обратном мы постепенно расшумляем, превращая в картинку
Существуют разные расписания шума, которые влияют на скорость и качество генерации.
Как мы учим модель расшумлять данные
Главное на что стоит обратить внимание — процесс стохастический. То есть даже во время генерации мы на каждом шаге добавляем шум. И как бы это ни звучало парадоксально, за счет этого шума мы как бы нивелируем небольшие неточности модели. То есть если модель на каком-то шаге свернула не туда, то добавленный шум может сгладить этот эффект. Это мое понимание. Если вы считаете иначе, пишите — обсудим.
Заключение
Надеюсь было полезно. Для более глубокого погружения - читаем отличный гайд на 80 страниц.
Tutorial on Diffusion Models for Imaging and Vision
В следующий раз поговорим про еще более простой способ.
Сейчас почти на каждом шагу можно встретить много разных генеративных моделей. Самый яркий пример — 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🔥8 3❤2🤓1
Разбираемся в генеративных моделях: Flow matching
Помните, в прошлый раз мы разбирали DDPM, где нужно было делать 1000 шагов для генерации? А что если я скажу, что можно сделать всё то же самое, но в разы проще и быстрее?
Сегодня поговорим про flow matching в его самой простой форме - linear interpolation. Если DDPM показался вам сложным, то тут вы офигеете насколько всё просто.
В чём основная идея? Вместо того чтобы учить модель убирать шум пошагово (как в DDPM), мы учим её находить прямой путь от шума к картинке. Да-да, просто рисуем линию из точки А в точку Б!
Как это работает:
1. Берём шум и настоящую картинку
2. Случайно выбираем точку между ними (это наше t)
3. Просим модель предсказать в какую сторону двигаться из этой точки
И всё! Вот честно - это весь алгоритм. Смотрите какой простой код для обучения:
А генерация ещё проще - просто идём маленькими шажками в нужном направлении:
А теперь самое интересное - то что мы тут делаем, по сути решаем обычный дифур!
Наш 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
Помните, в прошлый раз мы разбирали 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🔥4 2❤1
Давайте я тоже выйду из тени, следуя примеру Александра 👋
Я на обеих фотках справа, это мы забавно поймали Joscha Bach после конференции в моём городке в Германии.
Меня зовут Алексей Тимченко, мы учились вместе с Сашей на программе "Когнитивные науки и технологии" ВШЭ. Там и зародилась идея писать разборы статей и посты, совмещая наши интересы в ИИ и нейронауках.
Сейчас нас разбросало по миру: я осенью закончил вторую магистратуру (уже по вычислительным нейронаукам) в Тюбингене и начал свой PhD в молодом институте Hertie institute for AI in brain health, а Саша разрабатывает vision BCI в Испании.
Во всей этой движухе мной движут вопросы фундаментальной науки. При всей полезности приложений, мне интересно понимать как конкретно устроены объекты, которые мы изучаем. В частности, до PhD я занимался тем как спайки и мозговые ритмы взаимодействуют между собой (фотка с FENS 2024 как раз про это). А в общности, я хочу понимать как динамика мозговых процессов опосредует вычисления, необходимые для выживания. Помимо этого, мне интересно всё смежное: сознание и подходы к нему через естественные науки и философию, BCI, эмерджентность в AI, агентность и модели мира в predictive coding.
Начинаем с малого, однако - с обработки зрительной информации. Во время PhD я постараюсь понять как геометрия естественных стимулов отражается в активности последующих структур: retina, thalamus, superior colliculus и V1. Для этого я буду работать в парадигме computation through low-dimensional dynamics и изучать вызванную стимулами динамику во всех перечисленных структурах. Думаю, придется основательно засесть за топологию и дифф. геометрию, чтобы охарактеризовать эти самые надоедливые нейроманифолды 😵💫
Путь интересный и непроторенный, так что буду писать о рандомных вещах в канал. Кстати, дайте знать, насколько интересны разборы фундаментальных концептов и теорий, я люблю погружаться в такие кроличье норы ✨
Я на обеих фотках справа, это мы забавно поймали Joscha Bach после конференции в моём городке в Германии.
Меня зовут Алексей Тимченко, мы учились вместе с Сашей на программе "Когнитивные науки и технологии" ВШЭ. Там и зародилась идея писать разборы статей и посты, совмещая наши интересы в ИИ и нейронауках.
Сейчас нас разбросало по миру: я осенью закончил вторую магистратуру (уже по вычислительным нейронаукам) в Тюбингене и начал свой PhD в молодом институте Hertie institute for AI in brain health, а Саша разрабатывает vision BCI в Испании.
Во всей этой движухе мной движут вопросы фундаментальной науки. При всей полезности приложений, мне интересно понимать как конкретно устроены объекты, которые мы изучаем. В частности, до PhD я занимался тем как спайки и мозговые ритмы взаимодействуют между собой (фотка с FENS 2024 как раз про это). А в общности, я хочу понимать как динамика мозговых процессов опосредует вычисления, необходимые для выживания. Помимо этого, мне интересно всё смежное: сознание и подходы к нему через естественные науки и философию, BCI, эмерджентность в AI, агентность и модели мира в predictive coding.
Начинаем с малого, однако - с обработки зрительной информации. Во время PhD я постараюсь понять как геометрия естественных стимулов отражается в активности последующих структур: retina, thalamus, superior colliculus и V1. Для этого я буду работать в парадигме computation through low-dimensional dynamics и изучать вызванную стимулами динамику во всех перечисленных структурах. Думаю, придется основательно засесть за топологию и дифф. геометрию, чтобы охарактеризовать эти самые надоедливые нейроманифолды 😵💫
Путь интересный и непроторенный, так что буду писать о рандомных вещах в канал. Кстати, дайте знать, насколько интересны разборы фундаментальных концептов и теорий, я люблю погружаться в такие кроличье норы ✨
🔥32❤8 4🦄2
Forwarded from All about AI, Web 3.0, BCI
Berkeley developed a streaming “brain-to-voice” neuroprosthesis which restores naturalistic, fluent, intelligible speech to a person who has paralysis.
Researchers adopted streaming transducer techniques similar to methods used by popular ASR methods like Siri or Alexa, and repurposed them for personalized brain-to-voice synthesis.
This approach resulted in significant improvements in the decoding speed of the brain-to-voice neuroprosthesis compared to prior approaches with longer delays.
Researchers also show continuous long-form brain-to-voice synthesis, robustness to model-generated auditory feedback, and out-of-vocabulary brain-to-voice synthesis.
Researchers adopted streaming transducer techniques similar to methods used by popular ASR methods like Siri or Alexa, and repurposed them for personalized brain-to-voice synthesis.
This approach resulted in significant improvements in the decoding speed of the brain-to-voice neuroprosthesis compared to prior approaches with longer delays.
Researchers also show continuous long-form brain-to-voice synthesis, robustness to model-generated auditory feedback, and out-of-vocabulary brain-to-voice synthesis.
🔥7 1