Expand description
§Kizzasi (兆候)
Autoregressive General-Purpose Signal Predictor (AGSP)
“Predicting the flux of the world with the precision of logic.”
Kizzasi is a Rust-native AGSP designed for continuous signal streams—audio, sensor data, robotics control signals, and video frames. Unlike traditional LLMs that operate on discrete text tokens, Kizzasi is built for the continuous domain.
§Core Innovation: Neuro-Symbolic Architecture
Kizzasi combines the learning capability of State Space Models (Mamba/RWKV) with the strict reliability of TensorLogic. This ensures that predicted signals not only follow statistical likelihoods but also adhere to defined physical laws, safety constraints, and logical rules.
§COOLJAPAN Ecosystem
This crate is part of the COOLJAPAN scientific computing ecosystem and follows the KIZZASI_POLICY.md for dependency management, using:
scirs2-corefor array and numerical operationstensorlogicfor constraint logic
§Quick Start
use kizzasi::prelude::*;
fn main() -> Result<()> {
// Initialize predictor with Mamba2 backend
let config = KizzasiConfig::new()
.model_type(ModelType::Mamba2)
.context_window(8192);
let mut predictor = Kizzasi::new(config)?;
// Single step prediction
let input = array![0.1, 0.2, 0.3];
let output = predictor.step(&input)?;
Ok(())
}§Common Use Cases
§Audio Processing
let mut predictor = KizzasiBuilder::audio_preset().build()?;
let sample = array![0.5]; // Single sample
let next = predictor.step(&sample)?;§Robotics Control
let mut predictor = KizzasiBuilder::robotics_preset(6).build()?; // 6-DOF
let joint_angles = array![0.1, 0.2, 0.3, 0.4, 0.5, 0.6];
let predicted = predictor.step(&joint_angles)?;§Sensor Monitoring
let mut predictor = KizzasiBuilder::sensor_preset(10).build()?;
let readings = array![/* 10 sensor values */];
let forecast = predictor.predict_n(&readings, 5)?; // 5 steps ahead§With Safety Constraints
use kizzasi::{ConstraintBuilder, Guardrail, GuardrailSet};
let mut predictor = KizzasiBuilder::robotics_preset(3).build()?;
// Add safety bounds
let mut guardrails = GuardrailSet::new();
let constraint = ConstraintBuilder::new()
.name("joint_limits")
.greater_eq(-3.14)
.less_eq(3.14)
.build()?;
guardrails.add_global(Guardrail::new(constraint, false));
predictor.set_guardrails(guardrails);§Features
std(default): Standard library supportfull(default): Enable all features (io, logic, async, config-files, macros)io: Physical world connectors (MQTT, Audio)logic: TensorLogic constraint enforcementasync: Async/streaming APIs, connection pooling with tokioconfig-files: TOML/YAML configuration file supportmacros: Derive macros for custom configurations
§Performance
Kizzasi is optimized for real-time inference:
- Zero-copy operations where possible
- Efficient state management
- SIMD-optimized computations via scirs2-core
- Batch processing support
Run benchmarks with: cargo bench --bench predictor_benchmarks
§Thread Safety
Kizzasi predictors are Send but not Sync. For concurrent predictions:
- Use
fork()to create independent predictors per thread - Or wrap in
Arc<Mutex<Kizzasi>>for shared access - Async APIs are available with the
asyncfeature
§Advanced Features
§Model Versioning and A/B Testing
Manage multiple model versions with deployment strategies:
use kizzasi::versioning::{ModelRegistry, DeploymentStrategy};
let mut registry = ModelRegistry::new();
registry.deploy("2.0.0", DeploymentStrategy::Canary { traffic_percent: 10 })?;
let model = registry.select_for_request(request_id)?;§Telemetry and Metrics
Production-grade metrics collection and monitoring:
use kizzasi::telemetry::{MetricsCollector, MetricEvent};
let metrics = MetricsCollector::new("my_service");
metrics.record(MetricEvent::Prediction { latency_us: 1500, input_dim: 64, output_dim: 64 });
let stats = metrics.snapshot();
println!("P99 latency: {:.2}ms", stats.p99_latency_ms);§Connection Pooling
Efficient resource management for I/O operations (requires async feature):
use kizzasi::pool::{ConnectionPool, PoolConfig};
let config = PoolConfig::default().with_max_connections(10);
let pool = ConnectionPool::new(factory, config).await?;
let conn = pool.acquire().await?;§Examples
See the examples/ directory for comprehensive examples:
basic_prediction- Core API usagewith_guardrails- Constraint enforcementaudio_processing- Audio signal predictionrobotics_control- Robot control systemsstreaming- Async streaming APIsanomaly_detection- Real-time anomaly detectionmodel_checkpointing- Save/load predictor configurationcustom_model- Advanced configuration patternsproduction_deployment- Full production setup with versioning, metrics, and poolingmetrics_monitoring- Comprehensive metrics and monitoring
Re-exports§
pub use autotuning::AdaptiveTuner;pub use autotuning::AutoTuner;pub use autotuning::TuningConfig;pub use autotuning::TuningRecommendation;pub use autotuning::WorkloadProfile;pub use ensemble::EnsemblePredictor;pub use ensemble::EnsembleStats;pub use ensemble::ModelStats;pub use ensemble::VotingStrategy;pub use optimization::CacheStats;pub use optimization::OptimizationConfig;pub use optimization::OptimizationStats;pub use optimization::OptimizedPredictor;pub use plugin::LoggingPlugin;pub use plugin::Plugin;pub use plugin::PluginContext;pub use plugin::PluginManager;pub use plugin::PluginPhase;pub use plugin::StatsPlugin;pub use telemetry::Instrumented;pub use telemetry::MetricEvent;pub use telemetry::MetricValue;pub use telemetry::MetricsCollector;pub use telemetry::MetricsConfig;pub use telemetry::MetricsSnapshot;pub use versioning::DeploymentStrategy;pub use versioning::ModelMetadata;pub use versioning::ModelRegistry;pub use versioning::ModelVersion;pub use versioning::RegistryStats;pub use versioning::SemanticVersion;pub use pool::ConnectionFactory;pub use pool::ConnectionPool;pub use pool::PoolConfig;pub use pool::PoolStats;pub use distributed::DistributedConfig;pub use distributed::DistributedPredictor;pub use distributed::LoadBalancingStrategy;pub use distributed::WorkerStats;pub use config::ConfigFile;pub use config::ConfigFormat;pub use config::ConfigLoader;
Modules§
- autotuning
- Automatic performance tuning and workload profiling
- config
- Configuration file loading support for TOML and YAML
- distributed
- Distributed prediction framework for Kizzasi
- ensemble
- Multi-model ensemble predictions with voting strategies
- optimization
- Advanced optimization system for high-performance predictions
- plugin
- Plugin system for extending Kizzasi functionality
- pool
- Connection pooling for efficient I/O resource management.
- prelude
- Prelude module for convenient imports
- telemetry
- Telemetry and metrics collection for production monitoring.
- versioning
- Model versioning and lifecycle management.
Macros§
Structs§
- Async
Predictor - Async predictor wrapper with channel-based I/O
- Audio
Config - Configuration for audio I/O
- Audio
Input - Audio input stream
- Checkpoint
Metadata - Metadata about the checkpoint
- Constrained
Projection - Projects predictions onto valid constraint manifolds
- Constraint
- A single constraint on signal values
- Constraint
Builder - Builder for constructing constraints
- Continuous
Embedding - Continuous embedding layer for signal values
- Full
State Checkpoint - Full state checkpoint including all model weights and hidden state
- Guardrail
- A single guardrail combining a constraint with enforcement policy
- Guardrail
Set - A set of guardrails for multi-dimensional signals
- Hidden
State - Represents the hidden state of the SSM
- Kizzasi
- The main Kizzasi AGSP predictor
- Kizzasi
Builder - Builder for constructing Kizzasi predictors with a fluent API
- Kizzasi
Config - Configuration for the Kizzasi AGSP engine
- Lazy
Kizzasi - Lazy-initialized Kizzasi predictor
- Memory
Stream - In-memory signal stream for testing
- Mqtt
Client - MQTT client for receiving sensor data
- Mqtt
Config - Configuration for MQTT connection
- Mqtt
Stream - Synchronous wrapper for MqttClient as SignalStream
- Prediction
Stream - Async signal stream that yields predictions
- Predictor
Checkpoint - Serializable representation of a Kizzasi predictor checkpoint
- SelectiveSSM
- Selective State Space Model (Mamba-style)
- Signal
Input - Wrapper type for signal inputs with ergonomic conversions
- Signal
Processor - Signal processor for pre-processing sensor data
- Stream
Config - Configuration for signal streams
- Stream
Processor - Stream adapter for processing signal streams asynchronously
Enums§
- Bound
Type - Type of bound constraint
- Composed
Constraint - Composed constraint from multiple constraints with logical operators
- Core
Error - Errors that can occur in the core SSM engine
- Error
Category - Error category for classification
- Filter
- Filter types for signal processing
- IoError
- Errors that can occur in the IO module
- Kizzasi
Error - Unified error type for Kizzasi with detailed context and recovery suggestions
- Logic
Error - Errors that can occur in the logic module
- Logical
Operator - Logical operators for combining constraints
- Model
Type - Type of state space model to use
Traits§
- Constrained
Inference - Trait for constrained inference
- Signal
Predictor - Core trait for autoregressive signal prediction
- Signal
Stream - Trait for signal streams
- State
Space Model - Trait for state space model implementations
Type Aliases§
- Array1
- one-dimensional array
- Array2
- two-dimensional array
- Core
Result - Result type alias for core operations
- IoResult
- Result type alias for IO operations
- Kizzasi
Result - Result type alias for Kizzasi operations
- Logic
Result - Result type alias for logic operations
Derive Macros§
- Instrumented
- Derive macro for metrics instrumentation.
- Kizzasi
Config - Derive macro for custom Kizzasi configurations.
- Preset
- Derive macro for generating preset constructors.