| # Ouroboros Model Architecture Test Checklist | |
| ## Supported ModelTypes (from brain.py) | |
| | ModelType | Interface | Test Method | Status | | |
| |-----------|-----------|-------------|--------| | |
| | `LLM` | `generate()` | Text completion/chat | ✅ | | |
| | `EMBEDDING` | `encode()` | Semantic vectors | ✅ | | |
| | `RL` | `act()` / `step()` | Action selection | ⬜ (needs SB3 loader) | | |
| | `VISION` | `detect()` | Object detection | ⬜ | | |
| | `PLANNER` | `plan()` | Trajectory generation | ⬜ | | |
| | `SLAM` | `update()` + `get_pose()` | Localization | ⬜ | | |
| | `CONTROL` | `control()` | Motor commands | ⬜ | | |
| | `SENSOR` | `fuse()` | Sensor fusion | ⬜ | | |
| | `COMMS` | `send()` / `recv()` | Message passing | ⬜ | | |
| | `STATE_MACHINE` | `tick()` | FSM transitions | ⬜ | | |
| | `INFINITY_EMBED` | infinity-emb async | High-throughput embed | ⬜ | | |
| | `INFINITY_RERANK` | infinity-emb async | Document reranking | ✅ | | |
| | `INFINITY_CLASSIFY` | infinity-emb async | Zero-shot classify | ⬜ | | |
| | `INFINITY_CLIP` | infinity-emb async | Image embedding | ⬜ | | |
| | `INFINITY_CLAP` | infinity-emb async | Audio embedding | ⬜ | | |
| | `GENERIC` | callable fallback | Direct invocation | ✅ | | |
| --- | |
| ## Available Pre-Downloaded Models (D:\huggingface\hub) | |
| ### 🔤 Text Generation (LLM) | |
| | Model | Size | Test Command | | |
| |-------|------|--------------| | |
| | `HuggingFaceTB/SmolLM2-1.7B-Instruct` | 1.7B | `plug_model("HuggingFaceTB/SmolLM2-1.7B-Instruct"); generate("Hello")` | | |
| | `HuggingFaceTB/SmolLM2-135M-Instruct` | 135M | `plug_model("HuggingFaceTB/SmolLM2-135M-Instruct"); generate("Hello")` | | |
| | `LiquidAI/LFM2.5-1.2B-Thinking` | 1.2B | Thinking/reasoning model | | |
| | `Qwen/Qwen2.5-0.5B-Instruct` | 0.5B | `generate("Explain quantum computing")` | | |
| | `Qwen/Qwen2.5-1.5B-Instruct` | 1.5B | `generate("Write a haiku")` | | |
| | `TinyLlama/TinyLlama-1.1B-Chat-v1.0` | 1.1B | Chat completion | | |
| | `google/flan-t5-small` | 77M | Seq2seq generation | | |
| | `google/gemma-3-1b-it` | 1B | Instruction-tuned | | |
| | `google/gemma-3-270m` | 270M | Small Gemma | | |
| | `google/gemma-3-270m-it` | 270M | Instruction-tuned | | |
| | `gpt2` / `openai-community/gpt2` | 124M | Causal LM baseline | | |
| | `openai-community/gpt2-medium` | 355M | Medium GPT-2 | | |
| | `ibm-granite/granite-4.0-micro` | micro | IBM Granite | | |
| | `unsloth/granite-4.0-350m` | 350M | Unsloth optimized | | |
| | `tiiuae/falcon-rw-1b` | 1B | Falcon base | | |
| | `aloobun/falcon-1b-cot-t2` | 1B | Chain-of-thought | | |
| | `microsoft/phi-2` | 2.7B | Phi-2 reasoning | | |
| | `mistralai/Mistral-7B-Instruct-v0.3` | 7B | Mistral instruct | | |
| | `meta-llama/Llama-3.2-1B` | 1B | Llama 3.2 | | |
| | `sshleifer/tiny-gpt2` | tiny | Unit test model | | |
| ### 🧮 Embedding Models | |
| | Model | Dims | Test Command | | |
| |-------|------|--------------| | |
| | `BAAI/bge-small-en-v1.5` | 384 | `plug_model("BAAI/bge-small-en-v1.5"); embed_text("test")` | | |
| | `BAAI/bge-base-en-v1.5` | 768 | Larger BGE | | |
| | `BAAI/bge-large-en-v1.5` | 1024 | Largest BGE | | |
| | `sentence-transformers/all-MiniLM-L6-v2` | 384 | Fast SBERT | | |
| | `sentence-transformers/all-MiniLM-L12-v2` | 384 | Deeper MiniLM | | |
| | `sentence-transformers/all-mpnet-base-v2` | 768 | MPNet base | | |
| | `sentence-transformers/distiluse-base-multilingual-cased` | 512 | Multilingual | | |
| | `intfloat/e5-small-v2` | 384 | E5 small | | |
| | `intfloat/e5-base-v2` | 768 | E5 base | | |
| | `thenlper/gte-small` | 384 | GTE small | | |
| | `thenlper/gte-large` | 1024 | GTE large | | |
| | `TaylorAI/gte-tiny` | 384 | Tiny GTE | | |
| | `nomic-ai/nomic-embed-text-v1.5` | 768 | Nomic embed | | |
| | `jinaai/jina-embeddings-v2-small-en` | 512 | Jina v2 | | |
| | `jinaai/jina-embeddings-v3` | 1024 | Jina v3 | | |
| | `Snowflake/snowflake-arctic-embed-xs` | 384 | Arctic embed | | |
| | `ibm-granite/granite-embedding-small-english-r2` | 384 | Granite embed | | |
| | `google/embeddinggemma-300m` | varies | Gemma embed | | |
| | `Qwen/Qwen3-Embedding-0.6B` | 1024 | Qwen embed | | |
| ### 🔁 Reranking Models | |
| | Model | Test Command | | |
| |-------|--------------| | |
| | `BAAI/bge-reranker-base` | `rerank(query, documents)` | | |
| ### 🖼️ Vision-Language Models (VLM) | |
| | Model | Size | Capabilities | | |
| |-------|------|--------------| | |
| | `Qwen/Qwen2-VL-2B-Instruct` | 2B | Vision + text | | |
| | `Qwen/Qwen2.5-VL-3B-Instruct` | 3B | Improved VL | | |
| | `Qwen/Qwen2.5-VL-7B-Instruct` | 7B | Large VL | | |
| | `vikhyatk/moondream2` | 1.6B | Tiny VLM | | |
| | `moondream/starmie-v1` | varies | Moondream variant | | |
| | `h2oai/h2ovl-mississippi-800m` | 800M | H2O VL | | |
| | `TIGER-Lab/VLM2Vec-Qwen2VL-2B` | 2B | VLM to vectors | | |
| | `owl10/ReCogDrive-VLM-2B` | 2B | Driving VLM | | |
| ### 🎮 Reinforcement Learning (RL) | |
| | Model | Environment | Test Command | | |
| |-------|-------------|--------------| | |
| | `sb3/ppo-CartPole-v1` | CartPole | `model.act(obs)` | | |
| | `sb3/ppo-LunarLander-v2` | LunarLander | `model.act(obs)` | | |
| | `sb3/ppo-Acrobot-v1` | Acrobot | `model.act(obs)` | | |
| | `sb3/ppo-BreakoutNoFrameskip-v4` | Breakout | Atari | | |
| | `sb3/ppo-PongNoFrameskip-v4` | Pong | Atari | | |
| | `sb3/ppo-SpaceInvadersNoFrameskip-v4` | Space Invaders | Atari | | |
| | `sb3/ppo-MsPacmanNoFrameskip-v4` | Ms. Pacman | Atari | | |
| | `sb3/ppo-QbertNoFrameskip-v4` | Q*bert | Atari | | |
| | `sb3/ppo-BeamRiderNoFrameskip-v4` | Beam Rider | Atari | | |
| | `sb3/ppo-EnduroNoFrameskip-v4` | Enduro | Atari | | |
| | `sb3/ppo-AsteroidsNoFrameskip-v4` | Asteroids | Atari | | |
| | `sb3/ppo-RoadRunnerNoFrameskip-v4` | Road Runner | Atari | | |
| | `sb3/ppo-SeaquestNoFrameskip-v4` | Seaquest | Atari | | |
| | `sb3/ppo-MiniGrid-*` | MiniGrid | Grid world | | |
| | `sb3/dqn-*` | Various | DQN variants | | |
| | `sb3/qrdqn-*` | Various | QR-DQN variants | | |
| | `qgallouedec/ppo-MiniGrid-FourRooms-v0` | MiniGrid | Four rooms | | |
| ### ♟️ Game AI | |
| | Model | Game | Test | | |
| |-------|------|------| | |
| | `Maxlegrec/ChessBot` | Chess | `model.act(board_state)` | | |
| | `notjing/chessai` | Chess | Chess AI | | |
| ### 💻 Code Models | |
| | Model | Task | Test | | |
| |-------|------|------| | |
| | `Salesforce/codet5-small` | Code generation | `generate("def fibonacci")` | | |
| | `microsoft/codebert-base` | Code understanding | Embeddings | | |
| ### 🎨 Image Generation | |
| | Model | Type | Test | | |
| |-------|------|------| | |
| | `CompVis/stable-diffusion-v1-4` | Diffusion | `generate_image("a cat")` | | |
| ### 📄 Document Processing | |
| | Model | Task | Test | | |
| |-------|------|------| | |
| | `ibm-granite/granite-docling-258M` | Document understanding | OCR/layout | | |
| --- | |
| ## Test Execution Plan | |
| ### Phase 1: Embedding Models (fastest, most reliable) | |
| ```python | |
| # Test all embedding models | |
| for model in ["BAAI/bge-small-en-v1.5", "sentence-transformers/all-MiniLM-L6-v2", ...]: | |
| plug_model(model) | |
| result = embed_text("The quick brown fox") | |
| assert len(result.embedding) > 0 | |
| ``` | |
| ### Phase 2: Text Generation (LLMs) | |
| ```python | |
| # Test text generation | |
| for model in ["HuggingFaceTB/SmolLM2-135M-Instruct", "Qwen/Qwen2.5-0.5B-Instruct", ...]: | |
| plug_model(model) | |
| result = generate("Hello, my name is", max_tokens=50) | |
| assert len(result.output) > 0 | |
| ``` | |
| ### Phase 3: Vision-Language Models | |
| ```python | |
| # Test VLMs with image input | |
| plug_model("vikhyatk/moondream2") | |
| result = forward({"image": "path/to/image.jpg", "text": "What is in this image?"}) | |
| ``` | |
| ### Phase 4: RL Models | |
| ```python | |
| # Test RL action selection | |
| from huggingface_sb3 import load_from_hub | |
| model = load_from_hub("sb3/ppo-CartPole-v1") | |
| plug_model(model) | |
| action = invoke_slot(0, obs, mode="forward") | |
| ``` | |
| ### Phase 5: Reranking | |
| ```python | |
| plug_model("BAAI/bge-reranker-base") | |
| result = rerank("What is AI?", ["AI is...", "Machine learning...", "Deep learning..."]) | |
| ``` | |
| ### Phase 6: Image Generation | |
| ```python | |
| plug_model("CompVis/stable-diffusion-v1-4") | |
| result = generate_image("a beautiful sunset over mountains") | |
| # Returns base64 image or file path | |
| ``` | |
| --- | |
| ## Rerun Visualization Verification | |
| | Path | What to Check | Status | | |
| |------|---------------|--------| | |
| | `mcp/tool` | Tool names appear | ⬜ | | |
| | `mcp/duration_ms` | Latency timeseries | ⬜ | | |
| | `inference/timing/*` | Per-stage latency | ⬜ | | |
| | `inference/embedding` | Tensor view | ⬜ | | |
| | `inference/dreamer/*` | Latent state norms | ⬜ | | |
| | `inference/council/*` | Per-councilor confidence | ⬜ | | |
| | `bag/size` | Item count | ⬜ | | |
| | `bag/ops` | Stash/summon activity | ⬜ | | |
| | `state/slots/activity` | Slot invocation bar chart | ⬜ | | |
| | `evolution/fitness/*` | Fitness curves (if compiling) | ⬜ | | |
| --- | |
| ## Quick Start Commands | |
| ```bash | |
| # Start MCP server (auto-inits Rerun) | |
| python your_capsule.py --mcp | |
| # Or in Python: | |
| from your_capsule import run_mcp_server | |
| run_mcp_server() | |
| ``` | |
| Then use MCP tools: | |
| - `plug_model("BAAI/bge-small-en-v1.5")` - Plug embedding model | |
| - `list_slots()` - See what's plugged | |
| - `embed_text("test query")` - Generate embeddings | |
| - `generate("Hello")` - Generate text | |
| - `forward({"text": "test"})` - Full inference path | |
| --- | |
| ## Notes | |
| - **Local models**: Set `HF_HOME=D:\huggingface` to use cached models | |
| - **GPU**: Most models benefit from CUDA; check `torch.cuda.is_available()` | |
| - **Memory**: 7B+ models need 16GB+ RAM or GPU offloading | |
| - **infinity-emb**: For high-throughput, use `infinity_server` with async embedding | |