File size: 4,207 Bytes
58349f1 a006332 d84a1f3 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 58349f1 a006332 d291843 492b9d3 d291843 58349f1 a006332 7a78b96 a006332 58349f1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | <div align="center">
<img src="https://i.postimg.cc/52GtGkf7/file-00000000dfb071f5a6ef76a83be7ff92.png" alt="Delta Ultra Mini" width="400"/>
</div>
---
<div align="center">
# Delta Ultra Mini
**Um LLM compacto, educacional e experimental criado pela PyraLabs.**
[](https://opensource.org/licenses/MIT)
[]()
[]()
[]()
[]()
</div>
---
> **Delta Ultra Mini** é um modelo Transformer decoder-only causal de ~50M parâmetros, projetado para aprender como um LLM compacto é estruturado, treinado, checkpointed e amostrado. Não inclui REST API, API key server, browser SDK ou Python HTTP SDK.
> 🎉 **Marco pessoal:** este é o **primeiro LLM criado pelo autor** — do zero, do tokenizer ao treinamento. Um ponto de partida histórico.
---
## Arquitetura
| Propriedade | Valor |
|---|---|
| Arquitetura | Decoder-only causal Transformer |
| Parâmetros | ~50M |
| Context length | 512 tokens |
| Tokenizer | BPE com chat tokens |
| Licença | MIT |
---
## Instalação
```bash
pip install -r requirements.txt
```
---
## Estrutura de arquivos
```
delta-ultra-mini/
├── delta/
│ ├── model.py # Transformer model
│ ├── tokenizer.py # Treinamento, loading e chat formatting
│ ├── generator.py # Geração autoregressiva local
│ ├── dataset.py # Loader de datasets text/jsonl
│ └── trainer.py # Integração com HuggingFace Trainer
├── configs/
│ └── ultra_mini.json # Configuração do modelo
├── scripts/
│ ├── train_tokenizer.py # Entrypoint de treinamento do tokenizer
│ ├── train_delta.py # Entrypoint de treinamento do modelo
│ └── generate_delta.py # Entrypoint de inferência local
├── data/ # Seed dataset MIT-licensed
└── tokenizer.json # Tokenizer treinado
```
---
## Inferência local
> Certifique-se de ter um checkpoint treinado antes de rodar a geração.
**Checkpoint em `runs/`:**
```bash
python scripts/generate_delta.py \
--prompt "O que e PyTorch?" \
--checkpoint_path runs/delta-ultra-mini/delta_checkpoint.pt \
--tokenizer_path tokenizer.json
```
**Checkpoint na raiz do projeto:**
```bash
python scripts/generate_delta.py \
--prompt "Quem e voce?" \
--checkpoint_path delta_checkpoint.pt \
--tokenizer_path tokenizer.json
```
---
## Treinar o tokenizer
```bash
python scripts/train_tokenizer.py \
--corpus_files data/tokenizer_corpus.txt \
--output_path tokenizer.json
```
---
## Treinar o modelo
```bash
python scripts/train_delta.py \
--data_path data \
--output_dir runs/delta-ultra-mini \
--epochs 1 \
--batch_size 2 \
--tokenizer_path tokenizer.json
```
---
## Dataset
O dataset seed incluído serve para boostrap de experimentos e verificação do pipeline end-to-end. Para melhor qualidade, construa um dataset maior com exemplos variados, respostas limpas, splits de validação e revisão cuidadosa.
**Formato recomendado (`.jsonl`):**
```jsonl
{"text":"[SYS] You are Delta. [SEP]\n[USR] Question [SEP]\n[ASS] Answer [SEP]"}
```
---
## Limitações
- O seed checkpoint pode memorizar exemplos e generalizar mal para inputs novos.
- O modelo **não é safety-aligned** como assistentes de produção em larga escala.
- Pode produzir respostas incorretas, incompletas ou misturadas.
- Deve ser avaliado cuidadosamente antes de qualquer uso real.
---
## Licença
Este projeto é distribuído sob a licença **MIT**. Veja o arquivo `LICENSE` para mais detalhes.
---
## Aviso
Não deve se esperar muito deste modelo LLM, pois foi desenvolvido as pressas, sendo treinado em um dataset nano de 357 exemplos em json-l (pouco mais de 1400 linhas em corpus.txt).
Ele foi desenvolvido em apenas 4 dias, e 18 horas de treinamento (em CPU Celeron N4020).
<div align="center">
Criado por **Pyra**
</div> |