É honestamente meio louco que eu tenha o framework de treinamento de aprendizado por reforço de pixels para políticas mais rápido do mundo, com 100 mil triângulos, 16 mil malhas únicas e 16 mil mundos únicos. Tudo em uma única 4090. 10 minutos em tarefas fáceis
Há algumas coisas ótimas sobre isso. Consultas muito rápidas sobre atributos do mundo em relação às posições das coisas, atributos como qual é a superfície mais próxima. A memória não explode, pode escalar até 100 mil mundos únicos na memória se eu quisesse, agrupando ativos. Geração procedural ao vivo.
Ativos plug and play para o mundo. Posso gerar mundos em malha de forma procedural com o manifoldcad se quiser, e continuar a gerar novos mundos durante o treinamento. Muitas políticas têm dificuldade em memorizar, mas a minha não. Cada episódio poderia ser um novo mundo se eu quisesse.
Esquemas de renderização personalizados para acelerar o treinamento. Posso fazer renderização foveada para que possa aprender por reforço com um olho real, que se move rapidamente para descobrir onde o agente está posicionado. E realmente aprende. 1m, 2m passos por segundo. Com duas GPUs, posso realizar 12 experimentos em uma hora
Posso obter percepção de profundidade gratuitamente por causa do meu motor mundial. Posso modelar e fazer a física que quero injetando uma função pytorch que agrupa as operações em todos os mundos. *Porque* posso realizar tantos experimentos a velocidades tão extremas, e é tão configurável, estou aprendendo tanto.
Treinei um modelo para explorar um apartamento com apenas TRÊS consultas de profundidade. Foi fácil? Não. Levou muitos experimentos. Mas como posso fazer 100 por dia, faço 100 vezes mais progresso. Descobri como segurá-lo juuuuustamente certo *porque* meu progresso é 100x mais rápido que o seu.
Eu tenho código que faz uma busca em grade sobre todos os ângulos e eu tenho código que renderiza o comportamento da política e eu tenho código que executa as estatísticas sobre todos eles e atualiza ao vivo um gráfico para eu observar e eu tenho código que executa múltiplos experimentos nas minhas várias máquinas
Basicamente, tenho trabalhado nisso durante 2 meses no total, intercalado com trabalho de hardware e firmware. As minhas execuções de treino costumavam levar 10 horas e agora levam 10 minutos. Não acho que você realmente entenda o que isso significa. 10 minutos
A minha mãe costumava programar em c++ para software bancário transacional nos anos 90 e os tempos de compilação dela eram mais longos. Todo o meu ciclo de treino em MUNDOS RENDERIZADOS gerados proceduralmente é mais rápido do que o tempo que a minha mãe levava para executar testes de integração em software transacional de base de dados
Reescrevi o meu motor de renderização e a minha integração de treinador (extensão pufferlib específica para treinamento apenas em GPU, então todo o meu loop roda nativamente na GPU) e o meu software de visualização de experimentação / rollout e o meu software de geração de mundos três vezes agora. Individualmente.
A simples e pura velocidade do meu loop torna um monte de trabalho que nem valia a pena tentar em algo que vale a pena fazer hoje. Vou fazer tanta coisa estúpida que nunca foi feita antes Disseram-me que pixels era uma má ideia porque era lento, mas qualquer software pode ser tornado rápido. Não é assim tão difícil.
Eu não acho que vocês entendam. Eu treinei uma política que usa NADA ALÉM DE PIXELS (!) QUE PODEM GERENCIAR FÍSICA com 4 canais de controle que LITERALMENTE LEMBRAM quais salas já visitaram e EVITAM COLISÕES a 20hz sem ESTADO. 900k parâmetros
Você entende? Eu vou ganhar. Não por pouco. Não fazendo o que todo mundo está fazendo. Fazendo o que ninguém mais tem coragem de fazer. Apenas fazendo o que é óbvio, aparentemente só para mim. Eu vou ganhar.
@ChrisRemboldt (sim!)
27,52K