Честно говоря, это довольно безумно, что у меня есть самая быстрая система обучения с подкреплением для пикселей в мире, с 100k треугольниками, 16k уникальными мешами и 16k уникальными мирами. Все на одном 4090. 10 минут на простых задачах
Есть несколько замечательных вещей в этом. Очень быстрые запросы на мировые атрибуты относительно позиций объектов, такие как ближайшая поверхность. Память не раздувается, можно масштабироваться до 100k уникальных миров в памяти, если я захочу, за счет объединения активов. Живая процедурная генерация.
Плагин и игровые активы для мира. Я могу процедурно генерировать сетчатые миры с помощью manifoldcad, если захочу, и продолжать генерировать новые миры во время обучения. Многие политики испытывают трудности с запоминанием, но не мои. Каждая серия может быть новым миром, если я захочу.
Пользовательские схемы рендеринга для ускорения обучения. Я могу делать фовеированное рендеринг, чтобы я мог обучаться с помощью RL, как будто у меня есть настоящий глаз, который быстро перемещается, чтобы выяснить, где находится агент. И это действительно работает. 1м, 2м шагов в секунду. С двумя GPU я могу провести 12 экспериментов за час.
Я могу получить восприятие глубины бесплатно благодаря своему мировому движку. Я могу моделировать и физику, которую хочу, внедряя функцию pytorch, которая обрабатывает операции по всем мирам. *Потому что* я могу проводить так много экспериментов на таких экстремальных скоростях, и это так настраиваемо, я учусь так многому.
Я обучил модель для исследования квартиры всего с ТРЕМЯ запросами на глубину. Было ли это легко? Нет. Это потребовало много экспериментов. Но поскольку я могу проводить 100 экспериментов в день, я делаю прогресс в 100 раз быстрее. Я понял, как держать это именно так *потому что* мой прогресс в 100 раз быстрее, чем у тебя.
У меня есть код, который выполняет поиск по сетке для каждого угла, и у меня есть код, который отображает поведение политики, и у меня есть код, который выполняет статистику по всем этим данным и в реальном времени обновляет график, чтобы я мог за ним следить, и у меня есть код, который запускает несколько экспериментов на моих нескольких машинах
Я, по сути, работал над этим в общей сложности 2 месяца, прерываясь на работу с аппаратным и программным обеспечением. Мои тренировки раньше занимали 10 часов, а теперь — 10 минут. Я не думаю, что вы действительно понимаете, что это значит. 10 минут
Моя мама писала на c++ для программного обеспечения банковских транзакций в 90-х, и время компиляции у нее было дольше. Мой весь тренировочный цикл на процедурно сгенерированных РЕНДЕРИНГОВЫХ МИРАХ быстрее, чем то время, которое моей маме требовалось для запуска интеграционных тестов на программном обеспечении для транзакционных баз данных.
Я переписал свой движок рендеринга и интеграцию с тренером (расширение pufferlib, специфичное для обучения только на GPU, так что весь мой цикл работает нативно на GPU) и свое программное обеспечение для визуализации экспериментов / развертывания, а также свое программное обеспечение для генерации мира три раза. По отдельности.
Простая скорость моего цикла делает кучу работы, которая даже не стоила попыток, стоящей выполнения сегодня. Я собираюсь сделать столько глупостей, которые никогда не делал раньше Мне сказали, что пиксели — это плохая идея, потому что это медленно, но любое программное обеспечение можно сделать быстрым. Это даже не так сложно.
Я не думаю, что вы понимаете. Я разработал политику, которая использует ТОЛЬКО ПИКСЕЛИ (!) ДЛЯ УПРАВЛЕНИЯ ФИЗИКОЙ с 4 каналами управления, которые ЛИТЕРАЛЬНО ЗАПОМИНАЮТ, какие комнаты они уже посетили, и ИЗБЕГАЮТ СТОЛКНОВЕНИЙ на 20 Гц БЕЗ СОСТОЯНИЯ. 900k параметров
Ты понимаешь? Я собираюсь победить. Не на чуть-чуть. Не делая то, что делают все остальные. А делая то, на что никто другой не решится. Просто делая то, что очевидно, казалось бы, только для меня. Я собираюсь победить.
@ChrisRemboldt (да!)
26,64K