Cognição Artificial Fundamentada em Neuromorfologia — um motor de linguagem experimental que combina difusão mascarada bidirecional e dinâmica SNN.
O núcleo atual é escrito em Julia e reúne Transformer bidirecional, RoPE, Spiking Synchrony Attention, células PLIF/SFA e um reservatório hipercúbico 11D. Python cuida dos serviços, dados, avaliação RLAIF e observabilidade. Haskell e CUDA permanecem integrações experimentais e opcionais.
O repositório está em consolidação. A implementação canônica vive em
julia/src/; scripts autocontidos antigos não são uma segunda fonte do modelo.
Consulte a arquitetura e o
mapa de consolidação antes de alterar componentes.
assets/ identidade visual e diagramas
c/ aceleração CUDA experimental
docs/ arquitetura e decisões do projeto
haskell/ orquestração experimental
julia/src/ motor canônico
julia/*.jl lançadores e ferramentas de treino/inferência
python/ serviços, datasets e testes
Requisitos principais: Python 3.11+, Julia 1.10+ e, opcionalmente, uma GPU NVIDIA compatível com CUDA.
Copy-Item .env.example .env
python -m pip install -r python/requirements.txt
julia --project=julia -e 'using Pkg; Pkg.instantiate()'Verifique a instalação e os artefatos sem iniciar treino:
python python/cafune.py doctor
python python/cafune.py init-runtime
python -m pytest python/tests -q
julia --project=julia julia/smoke_test.jlAudite as metas experimentais contra a configuração e os artefatos locais:
python python/verify_research.pyA configuração de pesquisa atual possui 12 camadas, BPE SentencePiece de 1.999 tokens e 45.363.968 parâmetros reais. A contagem considera seis blocos MHA e seis blocos SSA. Loss de validação continua uma meta pendente até existir avaliação reproduzível. Latência é apenas diagnóstico: qualidade e execução local são os critérios principais.
Prepare os splits determinísticos antes do treino:
python python/prepare_splits.pyValide forward, backward, optimizer e checkpoint sem iniciar o treino longo:
julia --project=julia julia/main_training.jl --sanityO resultado fica isolado em julia/checkpoints/sanity/ e nunca é usado pela
inferência principal.
Avalie um checkpoint em splits congelados e máscaras determinísticas. O relatório inclui cross-entropy, accuracy e top-5 accuracy nos níveis 0,10 / 0,25 / 0,50 / 0,75 / 0,90, com média e desvio entre três seeds:
julia --project=julia julia/evaluate.jl --checkpoint julia/checkpoints/cafune_best.bson --split validationO melhor checkpoint do treino é selecionado por essa validation loss agregada,
nunca pela loss de treino. Os relatórios ficam em julia/evaluations/.
Para experimentar hipóteses sem treinar o modelo de 45M, use o CAFUNÉ-mini
(~7,07M parâmetros). Ele preserva tokenizer, dados e splits da baseline e isola
seus artefatos em julia/checkpoints/cafune-mini/:
julia --project=julia julia/main_training.jl --config config/experiments/cafune-mini.toml --sanityDashboard local:
python python/dashboard.pyDepois de existir um checkpoint compatível em julia/checkpoints/cafune_best.bson,
execute uma resposta inteiramente local com:
julia --project=julia julia/inference.jl "Olá, quem é você?"O daemon usado pelo bridge Python é iniciado com:
julia --project=julia julia/engine_mmap.jl- Há um único mmap canônico:
cafune_brain.mem, na raiz, com 2048 bytes. - Caminhos de runtime são definidos por
python/cafune_config.py. - Checkpoints, logs, caches e execuções W&B não pertencem ao código-fonte.
OPENROUTER_API_KEYhabilita o avaliador RLAIF externo.- CUDA, Haskell, BitNet e Flair são opcionais; o núcleo não deve depender deles para ser importado e testado.
Treino e RLAIF podem alterar checkpoints e consumir serviços externos. Rode o
doctor e os testes antes de iniciar esses processos. Nenhum comando de
verificação acima realiza treino ou chama APIs de modelos.
O código-fonte e a documentação autoral do CAFUNE são disponibilizados sob a Apache License 2.0. Datasets, modelos, pesos, vocabulários derivados, artefatos de treino e imagens não são automaticamente cobertos por essa licença; consulte DATA_AND_ASSETS.md antes de reutilizá-los.
julia --project=julia julia/main_training.jl --sanity --bitnet
julia --project=julia julia/main_training.jl --bitnetA baseline Float32 segue como padrão. A variante usa pesos mestres Float32 para
treino, pesos ternários no forward e checkpoints próprios em
julia/checkpoints/bitnet/.
RLAIF é opcional e só deve ser ativado quando um teacher compatível estiver respondendo pelo mmap:
julia --project=julia julia/main_training.jl --bitnet --rlaif