Search
Write a publication
Pull to refresh
419
0
Роман @Ariman

ML-исследователь

Send message

Так и не надо любить numpy.

Надо любить JAX.

Там и нампай, и автодифференцирование и JIT-компиляция хоть под GPU, хоть под TPU, хоть под CPU.

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

Впервые такое вижу. У меня и на линуксе и на винде работает. Разумеется, видюха будет использоваться, если стартовать это все на линуксе - там же по дефолту JAX на CUDA считает. Если ему сказать, чтоб считал на CPU, будет на CPU. На винде у него выбора нет, поэтому он сразу на CPU считает.

Черный экран - значит MuJoCoвский опенгл рендер, видимо, не проходит - смотрите, что у вас с опенГЛем.

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

Киньте мне вашего агента куда-нибудь, например, в телеграм, я посмотрю, как он справляется.

Он каждые секунд 30 пересохраняется, по идее (агент в checkpoints/имя агента/last). Этот код я не менял уже очень давно, там не должно быть никаких ошибок.

Лучше подождать до 2 млн итераций тогда, он сам завершится. Ну или ctrl+c)

Лучше не прерывать. Честно говоря, хоть я и закодил загрузку стейта, мне каждый раз кажется, что после загрузки учится хуже.
Но тестировать-то можно на CPU.

Это примерно на миллионе итераций?

Ну это нормальная динамика. Вот, например, график last reward моего прошлого чемпиона.

P.S. Так пайплайн же автоматом сохраняет прогресс, как только прошлый рекорд побит.

Его уже можно тестировать! Кидаете agent.flax в корень проекта, запускаете arena.py. Ваш будет оранжевым, противником по дефолту - агрессивный чемпион.

Вполне возможно, что надо еще подождать. Еще у вас размер буфера меньше.

Ох, тогда это будет долго и муторно... Я в итоге сменил на 4070, и время обучения сократилось с 5 суток до 30 часов. Даже сейчас это долго, трудно итеративно улучшать систему, когда каждый эксперимент занимает больше суток, но когда он занимал почти неделю, это было совсем печально.

Шикарно! С учетом того, что вы - единственный, кто запустил пайплайн, у вас уже техническая победа надо всеми читателями с Хабра)

А что у вас за видюха? Жаль, буфер пришлось уменьшить, боюсь, скажется на производительности агента.

Не только этого, а вообще ни одного, кроме системных. Потому что данные еще не отправлены в Wandb. Сначала выполняется 2к (ну или сколько там в настройках) шагов случайными агентами, наполняется буфер. Потом начинается обучение, тогда пойдут первые данные. Валидация начинается еще позже, где-то с 5к итераций.

У меня он на 32 ГБ расчитан. Можно уменьшить размер буфера в RAM, если не лезет.

buffer_size=4*4.096e6,

Ну, модели у меня пока есть, спасибо. Вы лучше агента обучите, себе и мне на радость, посмотрим, как они будут драться.

Физические модели мне сейчас не нужны. Вот от красивой 3д-модели, натянутой поверх физической, я бы не отказался. MuJoCo это позволяет через skin, но я пока глубоко не разбирался с этим. Там менее удобно, чем даже в бледере риг делать (а блендер - далеко не вершина UX/UI)

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

Писали ли в Бостон Динамикс алгоритмы руками - не знаю, может быть, но у меня нет такой информации. То есть, до какого-то момента, наверно писали. Но как только сети предоставили возможность этого не делать, в основном стали переходить на них. Например те же робо-собаки теперь вполне реализуемы с куда более скромными ресурсами, чем у BD. Кстати, есть MIT Dog, он точно на нейросетевом управлении.

Впрочем, вы всегда можете продемонстрировать мощь алгоритмов на арене, мои нейросетевые агенты ждут противников)

Кстати, должен заметить, что дело не только в степенях свободы, а еще и в размерности входных данных (наблюдений). Может быть две степени свободы, но если на входе картинка, вам придется писать распознавание образов. У моих моделек на арене 8 управляющих сигналов, но на вход им идет вектор размерности 72.

Я руками писал, совместно с ИИ. Совсем неудобно, этот XML - не то, с чем хочется возиться)

Задаются плотности, массы и моменты инерции вычисляются на основании формы объектов.

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

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

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

А какой именно аспект вы хотите повторить? Загрузку агентов с центрального сервера? Многоагентность? Разделение на травоядных и хищников?

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

Например, используется рандомизация среды - в каждой инстанции меняются физические параметры симулируемой системы, например - коэффициенты трения, варьируются массы и моменты инерций компонентов и т.п. Таким образом сеть обучается адаптироваться к незнакомой ей среде, и при переносе "в железо" воспринимает ее как еще одну вариацию симуляции.

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

Вы меня не обманете.

Дэвид Майер - первый человек, сознание которого загрузили и теперь используют вместо чатГПТ.

Свободу Дэвиду Майеру!

Ага, у меня про это даже песенка есть. "Оп-па, оп-па, грустные примеры! Сети будут песни петь, а ты иди в курьеры!"

1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity