PLATO-native Recurrent-Depth Transformer mapping PLATO concepts to OpenMythos
Project description
Plato-Mythos
PLATO-native Recurrent-Depth Transformer mapping PLATO control-theory concepts to OpenMythos generative modelling.
PLATO ↔ Mythos Mapping
| PLATO Concept | Mythos Translation | Implementation |
|---|---|---|
| Tiles | Compressed latent memory units | TilesAsKV — embeds tokens and compresses them into MLA latent KV pairs |
| Rooms | Interpretable expert groups | RoomsAsExperts — routes tokens to domain-tagged MoE experts using confidence-biased gating |
| Curriculum | Adaptive compute budget | CurriculumScheduler + DeadbandACT — easy tokens get fewer loop iterations, hard tokens get more |
| Deadbands (P0/P1/P2) | Priority-aware halting thresholds | DeadbandACT — P0=0.99 (critical), P1=0.8 (standard), P2=0.5 (low) controls when the recurrent loop stops thinking |
| Shells | Depth-wise LoRA adapters | ShellLoRA — each loop iteration owns unique low-rank A/B matrices while sharing a base weight |
Architecture
Tiles (token_ids + metadata)
│
▼
┌─────────────────┐
│ TilesAsKV │ embed + compress → latent KV
└─────────────────┘
│
▼
┌─────────────────┐
│ Prelude layers │ static transformer blocks
└─────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ Recurrent loop (max_loop_depth iterations) │
│ x = RecurrentBlock(x) │
│ x = x + ShellLoRA(x, step) │
│ if DeadbandACT.should_continue(x, step): │
│ break │
└──────────────────────────────────────────────┘
│
▼
┌─────────────────┐
│ Coda layers │ static transformer blocks
└─────────────────┘
│
▼
┌─────────────────┐
│ RoomsAsExperts │ domain-routed MoE mixing
└─────────────────┘
│
▼
┌─────────────────┐
│ Output head │ d_model → vocab logits
└─────────────────┘
│
▼
Generated Tiles (same format as input)
Quick Start
from plato_mythos import PlatoMythos, PlatoMythosConfig
config = PlatoMythosConfig(vocab_size=32000, d_model=1024, max_loop_depth=8)
model = PlatoMythos(config)
# Forward pass with raw token tiles
tiles = torch.randint(0, config.vocab_size, (2, 16))
logits = model(tiles) # (2, 16, vocab_size)
# Forward pass with PLATO-style metadata
tiles = {
"token_ids": torch.randint(0, config.vocab_size, (1, 8)),
"domain_id": torch.zeros(1, dtype=torch.long),
"confidence": torch.ones(1) * 0.9,
}
rooms = {"domains": ["room_0"] * 8, "confidences": [0.9] * 8}
out = model(tiles, rooms)
Installation
pip install -e .
Testing
pytest tests/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
plato_mythos-0.1.0.tar.gz
(15.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plato_mythos-0.1.0.tar.gz.
File metadata
- Download URL: plato_mythos-0.1.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
347232d82d2c0683452444fc7e83febfaec844966b207adc7578101efcc55630
|
|
| MD5 |
6249c7ca240cd92067452083566b8ce5
|
|
| BLAKE2b-256 |
9c1a066ae8c85492698208e7df1042baf0c6171b08b2ce2e42e58d9bd7e958bd
|
File details
Details for the file plato_mythos-0.1.0-py3-none-any.whl.
File metadata
- Download URL: plato_mythos-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
494b55c3d854ca7c76d9418a6a5dafccfb8838acb2881b4ee26458f3e49deab6
|
|
| MD5 |
5f2b260d878558e8e7785d9333f941d4
|
|
| BLAKE2b-256 |
3e13cd9fd6305e417f8d34918b068c0d4285fb14be7297b2efc369879bf40d3c
|