--- license: mit language: - es - en tags: - ssm - state-space-model - mamba-like - text-generation - experimental --- # OxideLLM_TK_SSM_V1 🦀 **Transformer Killer** - Un modelo experimental basado en State Space Models (SSM) ## Descripción Este modelo utiliza una arquitectura **SSM (State Space Model)** inspirada en Mamba, que reemplaza el mecanismo de atención de los Transformers tradicionales con un escaneo secuencial selectivo de complejidad **O(n) lineal**. ### Características - **Arquitectura**: SSM Selectivo (Mamba-like) - **Parámetros**: ~770K - **Tokenizer**: Nivel de carácter (228 tokens) - **Contexto**: Teóricamente ilimitado (complejidad lineal) - **Entrenamiento**: Iter 1200+ ### Ventajas del SSM sobre Transformers | Aspecto | Transformer | SSM | |---------|-------------|-----| | Complejidad | O(n²) | O(n) | | Memoria | Crece cuadráticamente | Crece linealmente | | Contexto largo | Costoso | Eficiente | ## Uso ```python import torch from model import TransformerKiller from tokenizer import CharacterTokenizer # Cargar checkpoint cp = torch.load("ssm_checkpoint.pth", map_location="cpu") # Reconstruir tokenizer tokenizer = CharacterTokenizer() tokenizer.chars = cp['tokenizer_chars'] tokenizer.vocab_size = len(tokenizer.chars) tokenizer.stoi = {ch: i for i, ch in enumerate(tokenizer.chars)} tokenizer.itos = {i: ch for i, ch in enumerate(tokenizer.chars)} # Cargar modelo model = TransformerKiller( vocab_size=tokenizer.vocab_size, dim=128, n_layers=4, state_dim=16 ) model.load_state_dict(cp['model_state_dict']) model.eval() # Generar texto def generate(prompt, max_tokens=100): idx = torch.tensor([tokenizer.encode(prompt)], dtype=torch.long) with torch.no_grad(): for _ in range(max_tokens): logits = model(idx)[:, -1, :] probs = torch.softmax(logits / 0.8, dim=-1) idx = torch.cat((idx, torch.multinomial(probs, 1)), dim=1) return tokenizer.decode(idx[0].tolist()) print(generate("Hola")) ``` ## Archivos - `ssm_checkpoint.pth` - Checkpoint del modelo (pesos + tokenizer) - `model.py` - Arquitectura SSM - `tokenizer.py` - Tokenizer a nivel de carácter - `chat.py` - Script de chat interactivo ## Limitaciones ⚠️ Este es un modelo **experimental y educativo** con solo ~770K parámetros. No está diseñado para uso en producción. Las respuestas pueden ser incoherentes. ## Licencia MIT License ## Autor Entrenado con 🔥 usando PyTorch + CUDA