Salesforce/wikitext
Viewer • Updated • 3.71M • 1.31M • 725
Modelo de lenguaje preentrenado con la arquitectura HALO-S (Hierarchical Attention with Local Optimization – Sparse), una alternativa eficiente al Transformer estándar con complejidad O(N×K) en lugar de O(N²).
Entrenado durante 2 épocas sobre 30M tokens de WikiText-103 con tokenización BPE (GPT-2 tiktoken, vocab=50257), secuencias de 1024 tokens y batch efectivo de 32 (DataParallel en 2× T4, FP16 mixed precision).
⏳ Benchmark en progreso — resultados disponibles próximamente.
| Métrica | HALO-S | Transformer |
|---|---|---|
| Parámetros | — | — |
| Val Loss | — | — |
| Val Perplexity | — | — |
| Latencia forward (1024t, ms) | — | — |
| Pico Memoria GPU (GB) | — | — |
| Tiempo entrenamiento (min) | — | — |
pip install pyhalos safetensors tiktoken
import json
import torch
import tiktoken
from safetensors.torch import load_file
from halo.core.config import HaloConfig
from halo.models.halo_model import HaloSModel
# 1. Cargar config
with open("config.json") as f:
cfg = json.load(f)
config = HaloConfig(
vocab_size=cfg["vocab_size"],
hidden_size=cfg["hidden_size"],
num_layers=cfg["num_layers"],
num_heads=cfg["num_heads"],
num_kv_heads=cfg["num_kv_heads"],
num_globals=cfg["num_globals"],
local_window=cfg["local_window"],
dilated_offsets=cfg["dilated_offsets"],
num_random=cfg["num_random"],
dropout=0.0, # 0.0 en inferencia
use_swiglu=False,
max_seq_len=cfg["max_seq_len"],
)
# 2. Cargar pesos
model = HaloSModel(config)
state_dict = load_file("model.safetensors")
model.load_state_dict(state_dict)
model.eval()
# 3. Tokenizar y generar
enc = tiktoken.get_encoding("gpt2")
prompt = "The theory of relativity states that"
input_ids = torch.tensor([enc.encode(prompt)]).long()
with torch.no_grad():
output = model.generate(input_ids, max_new_tokens=100, temperature=0.7, top_k=50)
print(enc.decode(output[0].tolist()))
num_globals=2 tokens con atención densa compartidanum_kv_heads=2) para KV cache compactodilated_offsets=[1,2,4,8,16,32,64,128] para contexto lejano sin costo cuadráticonum_random=2 para diversidad en atenciónwikitext-103-raw-v1)vocab_size=50257)Este modelo requiere pyhalos — disponible en PyPI.
BUEORM — dalusx64@gmail.com