Olá! Uma nova forma de treinar redes neurais: baseada em um rearranjo de antigas ideias de IA misturadas com o "save scumming" de videogames. É uma maneira de forçar um "kick" que pode resgatar certos tipos de modelos (especialmente topologias pequenas ou exóticas) quando estão presos. Cego. Evolutivo. Pressão.
Eu chamo isso de "Frustração": é como reiniciar um jogo salvo e tentar novamente a batalha contra o chefe. Como? Pegue uma época de Último Conhecido Bom (LKG), DEPOIS você mata um neurônio. Então re-treine. Ao contrário do Dropout, o dano não é um ruído transitório durante os lotes. Nós quebramos o modelo DEPOIS que ele melhora.
Na Frustração (Ablation [Estocástica] Persistente), o dano é um buraco que deve ser evitado e preenchido ao mesmo tempo durante a próxima época. 2 estratégias: eliminar todos os pesos (como em uma camada oculta) para um neurônio, ou apenas os que estão a entrar (como para um logit de saída).
Testámos com topologias de redes MLP simples, variando de milhões de parâmetros a centenas, catalogando a sua "treinabilidade" com base na largura (# de neurônios) versus profundidade (# de camadas). O PSA resgatou alguns modelos que o Dropout e a Decaída de Peso não conseguiram: um regime caótico (em azul).
Isto funciona mesmo em designs quebrados onde o Problema do Gradiente Desvanecido torna a retropropagação inútil. (O que, quando não tens conexões de salto, não são assim tantas camadas!) Além disso, podes fragmentar o dano e treinar múltiplos LKGs corrompidos ao mesmo tempo em diferentes GPUs.
O documento reflete a primeira prova de conceito e, sim, toda a ideia tem *muitas* limitações. Especialmente quão computacionalmente desperdício é o mecanismo de ratchet, ou que estava no conjunto de dados MNIST (um brinquedo) e não no ImageNet. Mas boas notícias! Os primeiros testes do ResMLP mostram resultados promissores!
Tentámos ser minuciosos. Testámos 98 topologias, muitas delas com configurações de correspondência de parâmetros (dimensões diferentes, mesmo número de parâmetros resultantes). Medimos 3 técnicas PSA diferentes contra 3 controles, em 10 ensaios cada. Um total de 5.880 ensaios. Reproduzível.
Mesmo em condições onde o Problema do Gradiente Desvanecente deveria ter tornado o treinamento impossível (como em um MLP simples 18x18), o PSA conseguiu treinar atacando os logits de saída no MNIST. Não acredita em mim? Experimente e veja!
Há muitos momentos legais de "aha" aqui. Tenha em mente que nenhuma das ideias subjacentes é nova. Nós apenas as organizamos de uma nova maneira para tentar algo que é realmente viável agora que as GPUs são tão poderosas.
Trabalho futuro: • Reproduzir os testes originais em ResMLP, CNN e Transformers (ResMLP corrige VGP, mas para topologias patológicas parece que PSA ainda ajuda) • Experimentar no ImageNet <- caro, mas esta é a prova real que precisamos.
Observações: • Matar o mesmo logit de saída consistentemente cria modelos "anti-expert", e quando você olha para suas matrizes de confusão, pode ver a dislexia em ação (matar 2 e a classificação transborda para 5, 7 e 8) • Não precisamos nos prender a ataques estocásticos
Por que isso é valioso? • Se funcionar em conjuntos de dados maiores e arquiteturas de modelos modernos, então espero que possa ser uma ferramenta valiosa na construção de Modelos de Linguagem Pequenos (SLMs).
GitHub com o artigo e o código aqui:
1,51K