Implementando LLaMA3 em 100 linhas de Jax puro
2025-02-19
Esta publicação demonstra como implementar o LLaMA3 do zero usando apenas 100 linhas de código Jax puro. O autor escolheu o Jax por sua estética limpa e recursos poderosos, como aceleração XLA, compilação JIT e vetorização vmap. O artigo detalha cada componente do modelo, incluindo a inicialização de pesos, tokenização BPE, embeddings dinâmicos, codificação posicional rotativa, atenção de consulta agrupada e a passagem direta. Recursos exclusivos do Jax, como o gerenciamento de chaves PRNG e a compilação JIT, também são explicados. Finalmente, o autor mostra como treinar o modelo em um conjunto de dados de Shakespeare, fornecendo o código do loop de treinamento.
Desenvolvimento