|
Download README.md from PowerMachine/gru-ring-v13-9-2: direct link, hf CLI and curl.
- Browser
- Download file 7.66 kB
-
https://huggingface.co/PowerMachine/gru-ring-v13-9-2/resolve/main/README.md
- Command line
-
hf download hf://PowerMachine/gru-ring-v13-9-2/README.md
-
curl -L -o README.md https://huggingface.co/PowerMachine/gru-ring-v13-9-2/resolve/main/README.md
7.66 kB
| 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 = '.') ✓ | |