Downloads · 30 days
11
2% of all-time downloads
psikosen/canopy-258m-r3-v3
canopy-258m-r3-v3 is a text generation model from psikosen. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Canopy-258M-R3 v3 is an ultra-efficient 258.56M parameter Recurrent Mixture-of-Experts (MoE) model optimized for high-speed edge computing, tool synthesis, and browser automation.
Downloads · 30 days
11
2% of all-time downloads
All-time downloads
462
Public
Parameters
296M
593 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors593 MB · 99%
From the Hugging Face model README
Canopy-258M-R3 v3 is an ultra-efficient 258.56M parameter Recurrent Mixture-of-Experts (MoE) model optimized for high-speed edge computing, tool synthesis, and browser automation.
v3 introduces the Hybrid Input Protocol and Event-Driven DOM Synchronization, achieving a 2.02x speedup across real-world browser batteries and a 5.1x acceleration (500%+) on multi-step interactive forms.
Hybrid Input Protocol (ActionExecutor):
fill() with standard DOM input and change event dispatch, dropping typing latency from >1,400 ms down to <40 ms (35x acceleration).BrowserAction(stream_input=True|False).Snappy Cubic Bézier Motor Kinematics:
Event-Driven Scroll Mutation Synchronization:
scroll and resize window event notifications.IntersectionObserver handlers and dynamic infinite scroll listeners without stalling.Structured Data Scraping & Web Extraction Engine:
controller.scrape_table(), controller.scrape_element(), and controller.scrape_page().Visual Step Logging & Audit Receipts:
| Test Scenario | Modality | v2 Latency | v3 Latency | Latency Reduction | Speedup |
|---|---|---|---|---|---|
| 1. Dropdowns & Multi-Select | 3 Selects + 1 Button Click | 434.6 ms | 375.0 ms | -59.6 ms | 1.16x |
| 2. Modal Dialog Overlays | Open Modal + Email Entry + Save | 1,893.8 ms | 497.1 ms | -1,396.7 ms | 3.81x |
| 3. Paginated Data Tables | Next Page + Row Approve Action | 499.6 ms | 433.1 ms | -66.5 ms | 1.15x |
| 4. Infinite Scroll Hydration | Wheel Scroll + Checkpoint Ack | 1,484.0 ms | 984.1 ms | -499.9 ms | 1.51x |
| 5. Radio & Checkbox Toggles | Radio Sel + Webhook Check + Save | 935.7 ms | 749.9 ms | -185.8 ms | 1.25x |
| 6. Autocomplete & Typeahead | Stream Search + Suggestion Click | 715.6 ms | 465.6 ms | -250.0 ms | 1.54x |
| 7. Multi-Step Form Wizard | 2-Stage Multi-Field Flow + Finish | 2,381.4 ms | 433.3 ms | -1,948.1 ms | 5.50x (550%+) |
| Cumulative Battery Total | 7 Scenarios / 20 Actions | 8,344.6 ms | 3,938.1 ms | -4,406.5 ms | 2.12x FASTER |
| Chained Complex Action Scenario | Total Actions | Execution Latency | Verdict |
|---|---|---|---|
| Chain 1: E-Commerce Multi-Stage Cart & Checkout | 12 actions across 3 stages | 1,774.4 ms | ✓ PASS |
| Chain 2: ETL Bulk Filter & Modal Dispatch | 7 actions | 1,313.8 ms | ✓ PASS |
| Chain 3: Spatial Grounding & Dynamic Extraction | 4 actions | 453.0 ms | ✓ PASS |
| Live Public Web Navigation (Hacker News) | Real Network | 577.7 ms | ✓ PASS |
| Speculative Action Chunking Speedup | Multi-Field Form | 1.50x Faster (224 ms vs 336 ms) | ✓ PASS |
| Hyperparameter | Value | Description |
|---|---|---|
| Total Parameters | 258,555,654 | Exact standalone weights with tied embeddings |
| Active Parameters | ~112,000,000 | Active parameter compute per token |
| Recurrent Visited Layers | 18 effective layers | 3 Prelude + 6 Recurrent (visited 2x) + 3 Coda |
| MoE Routing | Top-2 of 8 Experts | Dense first 3 layers, MoE middle/coda layers |
| Tokenwise Thought Bus | 192 channels | Auxiliary persistent reasoning state across recurrent passes |
| Context Window | 2,048 tokens | RoPE position embeddings |
| Vocabulary Size | 49,152 | Byte-level BPE tokenizer (Cosmo-2) |
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "psikosen/canopy-258m-r3-v3"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
device_map="auto",
)
prompt = "<|im_start|>user\nWrite a Python function to extract all email addresses from a web page.<|im_end|>\n<|im_start|>assistant\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.2)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
miniswardbower)import asyncio
from miniswardbower.browser.controller import BrowserController
from miniswardbower.core.config import BrowserConfig
from miniswardbower.core.schemas import BrowserAction, BrowserActionType
async def run_agent():
controller = BrowserController(BrowserConfig(headless=True))
await controller.start()
try:
await controller.goto("https://news.ycombinator.com")
# 1. Scrape structured data
page_data = await controller.scrape_page()
print("Page Title:", page_data.get("title"))
# 2. Fast atomic fill
await controller.execute_action(
BrowserAction(op=BrowserActionType.TYPE, target="input[name='q']", text="LLM Edge", stream_input=False)
)
await controller.execute_action(
BrowserAction(op=BrowserActionType.PRESS, key="Enter")
)
finally:
await controller.stop()
asyncio.run(run_agent())
Released under the Apache 2.0 License.