O repositório implementa um Transformer em NumPy, incluindo:
- blocos básicos de rede neural (camadas, ativações e otimizadores),
- integração desses blocos em um modelo completo,
- um script de treinamento manual,
- e validação de gradientes contra PyTorch.
/numpy-transformer
│
├── core/
│ ├── layers.py
│ ├── activations.py
│ └── optimizers.py
│
├── model.py
├── train.py
├── docs/
│ └── STRUCTURE.md
└── tests/
└── grad_check.py
Contém os componentes fundamentais usados para montar o modelo.
-
layers.py- Implementações de camadas (ex.:
Linear,LayerNorm,MultiHeadAttention). - Responsável por lógica de
forwardebackwarddas camadas.
- Implementações de camadas (ex.:
-
activations.py- Funções de ativação (ex.:
ReLU,Softmax) e seus gradientes. - Utilizadas por camadas e pelo fluxo de treinamento.
- Funções de ativação (ex.:
-
optimizers.py- Algoritmos de otimização (ex.:
SGDcom momentum,Adam). - Atualiza os parâmetros do modelo com base nos gradientes calculados.
- Algoritmos de otimização (ex.:
- Faz a integração dos blocos em uma arquitetura Transformer (encoder/decoder).
- Define como os componentes se conectam durante o
forwarde o treinamento.
- Contém o loop de treinamento manual.
- Orquestra: carregamento/preparo de dados, passo de
forward, cálculo de loss,backwarde atualização por otimizador.
grad_check.py- Script para validar gradientes da implementação NumPy.
- Compara resultados com PyTorch para aumentar confiança na correção matemática.
Para entender o projeto rapidamente:
- Comece por
model.pypara ver a arquitetura geral. - Siga para
core/layers.pyecore/activations.pypara os detalhes numéricos. - Veja
train.pypara o ciclo de treinamento completo. - Finalize com
tests/grad_check.pypara validar consistência dos gradientes.