File size: 7,663 Bytes
d686683
 
 
28620b9
250e8de
28620b9
 
 
250e8de
28620b9
7d3ef3b
28620b9
250e8de
28620b9
 
 
 
 
 
250e8de
28620b9
250e8de
28620b9
 
250e8de
28620b9
 
 
 
 
 
250e8de
28620b9
 
 
250e8de
28620b9
250e8de
28620b9
 
 
 
 
 
250e8de
28620b9
 
 
250e8de
28620b9
250e8de
28620b9
 
 
 
 
 
250e8de
28620b9
250e8de
28620b9
 
 
 
 
 
 
 
 
250e8de
28620b9
250e8de
 
 
 
 
 
28620b9
250e8de
28620b9
250e8de
 
 
28620b9
7d3ef3b
28620b9
 
 
 
7d3ef3b
 
28620b9
250e8de
28620b9
 
 
250e8de
28620b9
250e8de
28620b9
 
 
 
 
 
ea0df8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
---
license: mit
---
# GRU-RING v13.9.2 — PowerMachine

Modelo neural GRU-RING 4-camadas cooperativas (GRU Bidirecional + Transformer)
treinado em datasets PT-BR. 16.36M parâmetros. Quantização W8A8 QOperator
opcional para inferência otimizada.

## Versão atual: v13.9.2-finetune-v3

Treinamento cumulativo em **12 datasets únicos** (350 optimizer steps no total):

| Stage | Dataset | Samples | Opt Steps | Notas |
|-------|---------|---------|-----------|-------|
| 1-8 | 8 datasets base (ultrachat_br, corpus-ptbr-v2, multimodal_175k, GigaVerbo, OpenMathReasoning, MathVision, OpenMathInstruct-2, restore-punctuation) | 100 each | 200 | Treino base v13.9.2 |
| 9 | carolina-c4ai/corpus-carolina | 200 | 50 | Fine-tune Carolina (workaround lxml.iterparse) |
| 10 | orion-research + cnmoro + strak2005 | 600 (200/ds) | 50 | v13.9.2-finetune-v2 |
| 11 | orion-research + cnmoro + strak2005 | 600 (200/ds) | 50 | **v13.9.2-finetune-v3** (format standardization) |

### v3 — Padronização ### Instruction:/### Response:

A versão v3 introduz padronização do formato de texto para os datasets com
estrutura de instrução/resposta:

- **orion-research/translations-en_US-pt_BR**:
  `### Instruction:\nTranslate the following text to Portuguese:\n{EN}\n\n### Response:\n{PT-BR}`
- **cnmoro/Instruct-PTBR-10M**:
  `### Instruction:\n{INSTRUCTION}\n\n### Response:\n{RESPONSE}`
- **strak2005/corpus-ptbr-v1**: mantido como texto puro (corpus sem estrutura
  de instrução — padronização não se aplica).

**Nenhum parâmetro ou elemento de arquitetura foi alterado**. Apenas o pré-
processamento de texto para os dois datasets instruction/response. Os 9
datasets base permanecem com o comportamento legado (concatenação simples).

## Métricas finais

| Versão | Best Loss | Final Loss | Final PPL | PPL Reduction |
|--------|-----------|------------|-----------|---------------|
| v13.9.2 base (8 ds) | 5.91 | 7.38 | 1794.71 | 89.44% |
| v13.9.2-carolina (9 ds) | 6.72 | 7.38 | 1794.71 | 89.44% |
| v13.9.2-finetune-v2 (12 ds) | 5.44 | 6.89 | 973.52 | 94.27% |
| **v13.9.2-finetune-v3 (12 ds + format)** | **6.06** | **6.38** | **588.59** | **96.54%** |

A redução de perplexidade final de 973.52 (v2) → 588.59 (v3) confirma que a
padronização ### Instruction:/### Response: melhora a coerência do modelo
em prompts estruturados.

## Arquitetura (congelada desde v13.9)

- **4 camadas cooperativas**: GRU Bidirecional + Bridge + MHA + 3 SwiGLU FFNs + Confidence Gate
- **Hypothesis Network**: 16 hipóteses com mapeamento de possibilidades
- **Trust Network**: TD-learning trust update com softmax normalization
- **RoPE** (Rotary Position Embeddings)
- **BidirectionalBridge** com constraint Banach (α+β+γ=1 via softmax)
- **Gradient checkpointing** para economia de RAM

## Quantização W8A8 QOperator

| Métrica | Valor |
|---------|-------|
| Camadas quantizadas | 128 |
| Camadas puladas (GRU/emb) | 0 |
| Erro médio | 0.49% |
| Erro máximo | 1.51% |
| Compressão | 1.44× |
| Tamanho fp32 | 62.5 MB |
| Tamanho W8A8 | 74.3 MB |

## Inferência

```python
import torch
from tokenizers import Tokenizer
from flexnet.gru_ring_v13_9 import create_gru_ring_v139

# fp32
model, config = create_gru_ring_v139()
state = torch.load("model_final/pytorch_model.bin", map_location="cpu")
model.load_state_dict(state)
model.eval()

tokenizer = Tokenizer.from_file("model_final/tokenizer/tokenizer.json")

# Geração
input_ids = torch.tensor([tokenizer.encode("O presidente anunciou que").ids])
out = model.generate(input_ids, max_new_tokens=32, top_k=50, repetition_penalty=1.2)
print(tokenizer.decode(out[0].tolist()))
```

## Scripts

- `scripts/train_from_v13_9_2.py` — Fine-tune script (aceita `--datasets`)
- `scripts/streaming_datasets_v13_9.py` — Streaming loaders (9 base + 4 PT-BR)
  - v3: `format_template="instruction_response"` em `_normalize_sample`

## Reproducibilidade

```bash
python scripts/train_from_v13_9_2.py \
  --model-path model_final/pytorch_model.bin \
  --tokenizer-path model_final/tokenizer/tokenizer.json \
  --datasets orion-research/translations-en_US-pt_BR,cnmoro/Instruct-PTBR-10M,strak2005/corpus-ptbr-v1 \
  --max-samples 200 --max-steps 50 --grad-accum 16 --lr 2e-5 --max-seq-len 64
```

---

## v13.9.2-finetune-v4 (2026-07-27)

**4ª passagem de fine-tuning** nos 3 datasets PT-BR, com **2.5× mais amostras**
(1500 vs 600 do v3) e **BUG-V4-1 corrigido** (empty HF_TOKEN causing auth
header failure).

### Mudanças desta versão

- **BUG-V4-1 fix** (train_from_v13_9_2.py): `hf_token = os.environ.get('HF_TOKEN') or None`
  — empty string `""` was being passed to huggingface_hub, causing
  `Illegal header value b'Bearer '`. Public datasets don't need auth.
- **Streaming timeout**: 180s → 600s (justificado por tool limitation para
  carregar 500+ amostras de strak2005 em conexões lentas).
- **NENHUMA mudança** de arquitetura, parâmetros, ou design do modelo.
- **NENHUMA** renomeação de arquivos no HF (congelamento respeitado).

### Treino

| Parâmetro              | v3 (anterior) | v4 (atual)        |
|------------------------|---------------|-------------------|
| Samples por dataset    | 200           | 500               |
| Total de amostras      | 600           | 1500 (2.5×)      |
| Optimizer steps        | 50            | 40                |
| Grad accum             | 16            | 16                |
| Learning rate          | 2e-5          | 1e-5 (mais baixo) |
| Micro-batches totais   | 800           | 640               |
| Tempo                  | 5.3 min       | 4.0 min           |

### Resultados

| Métrica              | v3         | v4 (canonical)   | Δ              |
|----------------------|------------|------------------|----------------|
| Best loss (stage)    | 6.06       | 5.74             | -5.3%          |
| Final loss (stage)   | 6.38       | 6.99 (step 40)   | (instabilidade)|
| Canonical ppl        | 588.59     | 507.81           | **-13.7%**     |
| Canonical source     | final      | step 20 best ckpt| (ver nota)     |
| W8A8 mean error      | 0.49%      | 0.50%            | estável        |
| W8A8 max error       | 1.51%      | 1.53%            | estável        |
| Compression ratio    | 1.44×      | 1.44×            | estável        |

**Nota sobre canonical source**: o script de treino salva o estado FINAL
(step 40), não o BEST. Em v4, o modelo degradou após step 30 (spike de loss
em step 35, provável bad batch no range cnmoro 500-1000). O **canonical
model** enviado ao HF é o **checkpoint do step 20** (loss 6.23, ppl 507.81),
que é melhor que o v3 final (ppl 588.59) em 13.7%.

### Acumulado (4 passagens)

- **15 stages** totais no training_report_v13_9_2.json
- **390 optimizer steps** acumulados (300 anteriores + 40 v4 + 50 v3 = 390)

  * 9 datasets v13.9.2 base (200 opt steps)
  * + carolina finetune (50 opt steps)
  * + 3 PT-BR datasets finetune-v2 (50 opt steps)
  * + 3 PT-BR datasets finetune-v3 (50 opt steps, com format standardization)
  * + 3 PT-BR datasets finetune-v4 (40 opt steps, 2.5× amostras, BUG-V4-1 fix)

- **Format standardization** `### Instruction:\n...\n### Response:\n...`
  aplicado a orion (tradução EN→PT) e cnmoro (instruções PT-BR).
- strak2005 mantido como texto puro (corpus sem estrutura instruction/response).

### Validação (inferência)

- fp32 load: 0 missing, 0 unexpected ✓
- Forward: 30.8 ms, sem NaN/Inf, logits shape (1, 64, 16384) ✓
- Geração 3 prompts PT-BR: 0.61-0.85s, sem collapse ✓
- W8A8 load: 0 missing, 0 unexpected ✓
- W8A8 erro mean 0.065%, max 0.009 (vs fp32) ✓
- Top-1 fp32 vs W8A8: **concordam** (token 17 = '.') ✓