File size: 3,548 Bytes
06e4b6f | 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 | //! Tecnologia Pensamento — módulos: motor, combinador ridge,
//! quebra-cabeça pós-treino (divisão SRP v0.10.0 — r-35 §2).
//! Tecnologia **Pensamento** v0.5.0 — N-redes neurais flexíveis paralelizadas
//! integradas ao NCM, conectadas ao Mecanismo de Atenção, com raciocínio
//! temporal-estratégico (item d = a + b + c).
//!
//! **O que é (motivação do usuário):** Pensamento é semelhante ao
//! pós-treinamento — N-redes paralelas de tentativas cooperativas para
//! resolver o problema do item c (requisição do usuário) quando a
//! informação tem POUCA CONFIANÇA para gerar novo conhecimento (fora dos
//! padrões comuns), a partir de:
//! - **a)** conhecimento aprendido durante o treinamento;
//! - **b)** estado de inferência corrente;
//! - **c)** a requisição (prompt) do usuário;
//! e da ativação de **difusores** (exploração estocástica) e
//! **combinadores/montadores** (re-encaixe de peças por projeção algébrica).
//!
//! **Ciclo d (raciocínio temporal-estratégico):**
//! `planejamento → construção de etapas e distribuição/desmembramento de
//! competências → volta ao planejamento OU envio da resposta ao usuário`.
//!
//! **Provas (completas em `docs/memorias/r-21-provas-pensamento-v050.md`):**
//! - **T-P1 (gatilho mensurável e causal):** o gatilho
//! `1{conf(p) < τ_c}` com `conf = 1 − H(p)/log K` é função apenas da
//! distribuição preditiva CORRENTE — não transporta informação do futuro,
//! preservando a causalidade (mesma estrutura do gate G1 do NCM).
//! - **T-P2 (tentativas paralelas — auto-consistência):** com N tentativas
//! independentes, cada uma correta com prob. `p > 1/2`, a votação por
//! maioria tem `P(erro) ≤ exp(−2N(p−1/2)²)` (Hoeffding); com seleção
//! best-of-N por verificador exato, `P(sucesso) ≥ 1−(1−p)^N`.
//! - **T-P3 (combinador ótimo):** o montador por mínimos quadrados com
//! regularização ridge resolve `r* = (WᵀW+εI)^{−1}Wᵀr_alvo` — o resíduo é
//! o MÍNIMO possível na norma (pseudo-inversa, Teo V-1' do outro agente).
//! - **T-P4 (terminação e soundness do planejador):** o potencial
//! `Φ(k) = B − k` decresce estritamente a cada iteração do ciclo d ⇒ o
//! loop termina em ≤ B iterações (indução bem-fundada); a resposta só é
//! emitida com confiança ≥ τ_c OU com orçamento esgotado (declaração
//! honesta de queda de confiança na telemetria).
//! - **T-P5 (neutralidade no nascimento na atenção):** com o gate de
//! atenção das tentativas inicializado em ZERO, a saída da atenção é
//! bit-a-bit a da atenção base; a perturbação é limitada por
//! `‖Δy‖ ≤ L·|g|·‖W_k z‖` (Lipschitz com constante L do softmax).
//! - **T-P6 (composição d = a + b + c):** o condicionamento de cada
//! tentativa é `cond = [a; b; c]` — a estrutura de independência
//! condicional `p(resposta | a, b, c)` fatoriza pelo estado conjunto; as
//! tentativas só veem o PASSADO (causalidade preservada).
use candle_core::{Device, Result, Tensor, Var};
use crate::camadas::Linear;
use crate::jepa::MlpJepa;
use crate::rng::RngDeterministico;
use std::collections::HashMap;
// ---- divisão SRP v0.10.0 (r-35 §2): submódulos + re-exports ----
#[cfg(test)]
mod testes;
mod combinador;
mod motor;
mod quebra_cabeca;
pub use combinador::*;
pub use motor::*;
pub use quebra_cabeca::*;
// ---- itens mantidos no próprio mod.rs ----
pub fn versao() -> &'static str {
"pensamento-0.7.0"
}
|