PowerMachine commited on
Commit
b183c36
·
verified ·
1 Parent(s): 7852cca

Upload cnn_bigru/README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. cnn_bigru/README.md +178 -0
cnn_bigru/README.md ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CNN-BiGRU — Modelo Multimodal Cooperativo Autoaprendível
2
+
3
+ Implementação completa de um LLM multimodal com arquitetura **CNN-BiGRU cooperativa**,
4
+ inspirada nos projetos de referência:
5
+
6
+ - `PowerMachine/gru-ring-v13-9-2/xavante_work/`
7
+ - `PowerMachine/BiGRU_T_version/src/bigru_t/`
8
+
9
+ O projeto é **diferente** dos anteriores: agrupa todos os componentes multimodais
10
+ (texto + imagem + áudio) num único pipeline cooperativo, com divisão por competências.
11
+
12
+ ---
13
+
14
+ ## Características Principais
15
+
16
+ ### 1. Arquitetura Cooperativa de 3 Níveis (do `dados.txt`)
17
+
18
+ | Nível | Mecanismo | Descrição |
19
+ |-------|-----------|-----------|
20
+ | 1 | Cross-Attention Global | Ponte de cooperação pós-CNN entre redes A e B, com máscaras de padding |
21
+ | 2 | Célula GRU Cooperativa Passo-a-Passo | `CellStepCooperativaComAtenuacao` com porta Gated (alfa ∈ [0,1]) que regula o quanto uma rede aceita da outra |
22
+ | 3 | Fusão Final | Concatenação forward+backward de cada rede (128+128=256) |
23
+
24
+ ### 2. Multimodal (Texto + Imagem + Áudio)
25
+
26
+ - **Texto**: Dual-stream CNN-BiGRU cooperativo (streams A e B)
27
+ - **Imagem**: `ImageEncoder` (CNN 2D → flatten → projeção)
28
+ - **Áudio**: `AudioEncoder` (CNN 1D sobre espectrograma)
29
+ - **Fusão**: `MultimodalFusion` com gated fusion por modalidade
30
+
31
+ ### 3. Autoaprendizado (parâmetros matematicamente ajustados)
32
+
33
+ Conforme `dados.txt` seções 9-10:
34
+
35
+ - **Ajuste Dinâmico de LR**:
36
+ - `fator_G = exp(-κ * ||grad_G||) * (1 + v_media) / 2`
37
+ - `fator_V = exp(-κ * ||grad_V||) / (1 + L_V_media)`
38
+ - **Controle de Gradiente**: clipping L2 + spectral normalization (power iteration)
39
+ - **Inicialização Ortogonal**: matrizes recorrentes e convolucionais
40
+ - **Estimativa de Curvatura**: aproximação por diferenças finitas
41
+
42
+ ### 4. Mecanismo de Hipóteses (ativado em punições)
43
+
44
+ Quando o verificador pune um passo (v < THRESHOLD_ERR), ativa:
45
+
46
+ - **N hipóteses paralelas** com transforms lineares diferentes
47
+ - **Seleção via Gumbel-Softmax** (diferenciável)
48
+ - **Porta de ativação** baseada em v
49
+
50
+ ### 5. Synergy Search (N tentativas de acerto)
51
+
52
+ No início de cada época, busca N combinações de hiperparâmetros (pesos das perdas)
53
+ e seleciona a configuração de menor perda.
54
+
55
+ ### 6. Múltiplas Funções de Perda
56
+
57
+ Conforme `dados.txt` seção 8:
58
+
59
+ ```
60
+ L_total = α * L_G_total + β * L_V + γ * L_AH + δ * L_reg
61
+ L_G_total = L_G + λ * L_penal_linear + μ * L_penal_exp
62
+ L_penal_linear = Σ (1 - v_t)
63
+ L_penal_exp = Σ exp(γ * (1 - v_t)) se v_t < threshold
64
+ L_V = BCE(v_t, rotulo_real)
65
+ L_AH = Σ (1 - τ_t) (anti-alucinação fuzzy)
66
+ L_reg = L2 + curvatura
67
+ ```
68
+
69
+ ### 7. Camada Anti-Alucinação (Lógica Fuzzy de Łukasiewicz)
70
+
71
+ ```python
72
+ NOT(x) = 1 - sigmoid(x)
73
+ AND(x,y) = relu(sigmoid(x) + sigmoid(y) - 1)
74
+ OR(x,y) = min(1, sigmoid(x) + sigmoid(y))
75
+ IMP(x,y) = min(1, 1 - sigmoid(x) + sigmoid(y))
76
+ ```
77
+
78
+ ### 8. Inferência Avançada
79
+
80
+ - Temperatura, Top-K, Top-P (Nucleus Sampling)
81
+ - Presence Penalty, Frequency Penalty
82
+ - Avaliação de Perplexidade (PPL)
83
+
84
+ ---
85
+
86
+ ## Estrutura por Competências
87
+
88
+ ```
89
+ cnn_bigru/
90
+ ├── tokenizer/ # Competência: tokenização
91
+ │ └── bbpe_tokenizer.py # BBPE byte-level tokenizer
92
+ ├── utils/ # Competência: utilitários de runtime
93
+ │ ├── xeon_runtime.py # Ativação Intel Xeon (AVX512+AMX+IPEX)
94
+ │ ├── memory_optimizer.py # Otimização de memória (AMP, GC, offload)
95
+ │ └── semantic_embeddings.py # Embeddings semânticos (Sinkhorn OT)
96
+ ├── data/ # Competência: carregamento de dados
97
+ │ └── streaming_dataset.py # Dataset streaming multimodal
98
+ ├── models/ # Competência: modelos neurais
99
+ │ ├── cooperative_bigru.py # Núcleo CNN-BiGRU cooperativo
100
+ │ ├── multimodal_encoders.py # Encoders de imagem/áudio + fusão
101
+ │ ├── multimodal_model.py # Modelo multimodal completo
102
+ │ └── generator_verifier.py # Gerador + Verificador + Anti-alucinação
103
+ ├── losses/ # Competência: funções de perda
104
+ │ └── losses.py # Multi-loss com penalidades linear+exp
105
+ ├── training/ # Competência: treinamento
106
+ │ ├── auto_learner.py # Ajuste dinâmico LR + spectral norm
107
+ │ ├── hypothesis_controller.py # Hipóteses + synergy search
108
+ │ └── trainer.py # Loop de treinamento cooperativo
109
+ ├── inference/ # Competência: inferência
110
+ │ └── inference.py # Sampling + PPL
111
+ └── tests/ # Competência: testes
112
+ └── test_50_samples.py # Teste de 50 amostras
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Como Executar
118
+
119
+ ### Requisitos
120
+
121
+ ```bash
122
+ pip install torch tokenizers transformers huggingface_hub datasets psutil tqdm
123
+ ```
124
+
125
+ ### Teste de 50 Amostras
126
+
127
+ ```bash
128
+ python -m cnn_bigru.tests.test_50_samples
129
+ ```
130
+
131
+ O teste executa:
132
+ 1. Ativação do runtime Xeon
133
+ 2. Treino do BBPE tokenizer
134
+ 3. Criação do dataset streaming (50 amostras)
135
+ 4. Instanciação dos modelos
136
+ 5. Treinamento cooperativo com synergy + hipóteses + auto-learn
137
+ 6. Inferência com sampling
138
+ 7. Avaliação de perplexidade
139
+ 8. Relatório de erros lógicos ou falhas
140
+
141
+ ### Resultado Esperado
142
+
143
+ ```
144
+ ✓ NENHUM ERRO CRÍTICO encontrado
145
+ Amostras processadas: 50
146
+ Synergy attempts: 3
147
+ Hypothesis activations: variável
148
+ STATUS: SUCESSO
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Referências
154
+
155
+ - `dados.txt` (arquivo de entrada com pseudocódigo completo)
156
+ - `huggingface.co/PowerMachine/gru-ring-v13-9-2/tree/main/xavante_work/`
157
+ - `huggingface.co/PowerMachine/BiGRU_T_version/blob/main/src/bigru_t/tokenizer/bbpe_tokenizer.py`
158
+ - `huggingface.co/PowerMachine/gru-ring-v13-9-2/blob/main/xavante_work/xavante/utils/semantic_embeddings.py`
159
+ - `huggingface.co/PowerMachine/gru-ring-v13-9-2/blob/main/xavante_work/xavante/utils/memory_optimizer.py`
160
+ - `huggingface.co/PowerMachine/gru-ring-v13-9-2/tree/main/xavante_work/xavante/training`
161
+ - `huggingface.co/PowerMachine/BiGRU_T_version/blob/main/src/bigru_t/utils/xeon_runtime.py`
162
+ - `huggingface.co/PowerMachine/gru-ring-v13-9-2/blob/main/xavante_work/flexnet/streaming_datasets_v13_9.py`
163
+
164
+ ---
165
+
166
+ ## Notas de Segurança
167
+
168
+ - **HF_TOKEN**: usado apenas para push inicial ao repositório. Após o push, o token
169
+ é removido do ambiente e dos scripts. Os scripts publicados não contêm nenhum
170
+ token embutido.
171
+ - **Exceções**: todos os módulos usam `try/except` com logging adequado para
172
+ garantir robustez. O treinamento continua mesmo se alguns batches falharem.
173
+
174
+ ---
175
+
176
+ ## Licença
177
+
178
+ MIT