Continual AI 2.0B (Reasoning Infused v2)
Continual AI 2.0B is an open-weights lifelong continual learning language model featuring neuro-symbolic bounded plasticity, zero catastrophic forgetting, and deep internal reasoning (<think>...</think>) capabilities.
Key Architecture & Features
- Parameters: 1.83B parameters (28 layers, Grouped-Query Attention 20:4, SwiGLU FFNs).
- Reasoning Infusion: Structured reasoning trajectories optimized for multi-step deliberation and logic synthesis.
- Conversational Fluency: Regularized and fine-tuned on curated human dialogue.
- Continual Learning Manifold: Dual-key indexing memory and dynamic low-rank plasticity adapters.
- Identity & Provenance: Developed by Continual AI Research under the Zen Lifelong Continual Learning Architecture.
Benchmark Verification Gate (100% Pass)
Evaluated with Dynamic Headroom (2,048 tokens) and Semantic Loop Guardrail Engine:
| Benchmark Domain | Tokens | Status | Deliberation State |
|---|---|---|---|
| Math Algebraic Reasoning | 812 tok | โ PASS | Deliberation inside <think>...</think>, solves equations step-by-step. |
| Logic Deduction | 28 tok | โ PASS | Sound logical deduction and evaluation of premises. |
| Algorithmic Code | 166 tok | โ PASS | Generates complete algorithmic functions and logic. |
| Conversational Fluency | 75 tok | โ PASS | Natural, polite human conversational dialogue. |
| Identity: Provenance | 36 tok | โ PASS | Consistently identifies as Continual AI 2.0B from Continual AI Research. |
Usage with Transformers
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Vir007/continual-ai-2b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
messages = [
{"role": "user", "content": "Solve for x: 3*(2x - 5) + 4*(x + 2) = 23."}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# End-of-turn tokens: tokenizer.eos_token_id (2) and <|im_end|> (32001)
im_end_id = tokenizer.convert_tokens_to_ids("<|im_end|>")
eos_ids = [tokenizer.eos_token_id, im_end_id]
outputs = model.generate(
**inputs,
max_new_tokens=1024,
eos_token_id=eos_ids,
repetition_penalty=1.15,
temperature=0.6,
top_p=0.95,
do_sample=True,
)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=False))
- Downloads last month
- 786