Expand description
Aprender Model Format (.apr)
Binary format for ML model serialization with built-in quality (Jidoka):
- CRC32 checksum (integrity)
- Ed25519 signatures (provenance)
- AES-256-GCM encryption (confidentiality)
- Zstd compression (efficiency)
- Quantization (
Q8_0,Q4_0,Q4_1- GGUF compatible) - Streaming/mmap (JIT loading)
§Format Structure
┌─────────────────────────────────────────┐
│ Header (32 bytes, fixed) │
├─────────────────────────────────────────┤
│ Metadata (variable, MessagePack) │
├─────────────────────────────────────────┤
│ Chunk Index (if STREAMING flag) │
├─────────────────────────────────────────┤
│ Salt + Nonce (if ENCRYPTED flag) │
├─────────────────────────────────────────┤
│ Payload (variable, compressed) │
├─────────────────────────────────────────┤
│ Signature Block (if SIGNED flag) │
├─────────────────────────────────────────┤
│ Checksum (4 bytes, CRC32) │
└─────────────────────────────────────────┘§Example
ⓘ
use aprender::format::{save, load, ModelType, SaveOptions};
use aprender::linear_model::LinearRegression;
let model = LinearRegression::new();
// ... train model ...
// Save with compression
save(&model, ModelType::LinearRegression, "model.apr", SaveOptions::default())?;
// Load with verification
let loaded: LinearRegression = load("model.apr", ModelType::LinearRegression)?;Re-exports§
pub use golden::verify_logits;pub use golden::GoldenTrace;pub use golden::GoldenTraceSet;pub use golden::GoldenVerifyReport;pub use golden::LogitStats;pub use golden::TraceVerifyResult;pub use model_card::ModelCard;pub use model_card::TrainingDataInfo;pub use validation::AprHeader;pub use validation::AprValidator;pub use validation::Category;pub use validation::CheckStatus;pub use validation::TensorStats;pub use validation::ValidationCheck;pub use validation::ValidationReport;pub use validation::no_validation_result;Deprecated pub use validation::fail_no_validation_rules;pub use validation::Gate;pub use validation::PokaYoke;pub use validation::PokaYokeResult;pub use converter::apr_convert;pub use converter::apr_export;pub use converter::apr_import;pub use converter::apr_merge;pub use converter::AprConverter;pub use converter::Architecture;pub use converter::ConvertOptions;pub use converter::ConvertReport;pub use converter::ExportFormat;pub use converter::ExportOptions;pub use converter::ExportReport;pub use converter::ImportError;pub use converter::ImportOptions;pub use converter::MergeOptions;pub use converter::MergeReport;pub use converter::MergeStrategy;pub use converter::QuantizationType;pub use converter::Source;pub use converter::TensorExpectation;pub use converter::ValidationConfig;pub use lint::lint_apr_file;pub use lint::lint_model;pub use lint::LintCategory;pub use lint::LintIssue;pub use lint::LintLevel;pub use lint::LintReport;pub use lint::ModelLintInfo;pub use lint::TensorLintInfo;pub use sharded::estimate_shard_memory;pub use sharded::get_shard_files;pub use sharded::is_sharded_model;pub use sharded::CacheStats;pub use sharded::CachedShard;pub use sharded::ImportPhase;pub use sharded::ImportProgress;pub use sharded::ImportReport;pub use sharded::ShardCache;pub use sharded::ShardIndex;pub use sharded::ShardedImportConfig;pub use sharded::ShardedImporter;pub use rosetta::ConversionOptions;pub use rosetta::ConversionPath;pub use rosetta::ConversionReport;pub use rosetta::FormatType;pub use rosetta::InspectionReport;pub use rosetta::RosettaStone;pub use rosetta::TensorInfo;pub use rosetta::VerificationReport;pub use rosetta_ml::AndonLevel;pub use rosetta_ml::AnomalyDetector;pub use rosetta_ml::CanaryFile;pub use rosetta_ml::CategorySummary;pub use rosetta_ml::ConversionCategory;pub use rosetta_ml::ConversionDecision;pub use rosetta_ml::ConversionIssue;pub use rosetta_ml::ErrorPattern;pub use rosetta_ml::ErrorPatternLibrary;pub use rosetta_ml::FixAction;pub use rosetta_ml::HanseiReport;pub use rosetta_ml::JidokaViolation;pub use rosetta_ml::PatternSource;pub use rosetta_ml::Priority;pub use rosetta_ml::Regression;pub use rosetta_ml::Severity;pub use rosetta_ml::TarantulaTracker;pub use rosetta_ml::TensorCanary;pub use rosetta_ml::TensorFeatures;pub use rosetta_ml::Trend;pub use rosetta_ml::WilsonScore;
Modules§
- compare
HuggingFaceweight comparison module (GH-121).- converter
- APR Converter Module - Import Pipeline
- converter_
types - APR Converter Types
- gguf
- GGUF Import/Export (spec §7.2)
- golden
- Golden Trace Verification
- hexdump
- Hex dump and data flow visualization for tensor inspection (GH-122).
- lint
- APR Format Lint Module - Best Practices & Conventions
- model_
card - Model Card for .apr format (spec §11)
- rosetta
- Rosetta Stone - Universal Model Format Converter
- rosetta_
ml - ML-Powered Rosetta Diagnostics (ROSETTA-ML-001)
- sharded
- Sharded model import module (GH-127).
- v2
- APR Format Module (GH-119)
- validation
- APR Format Validation Module - 100-Point QA Checklist
Structs§
- Distillation
Info - Complete distillation provenance (spec §6.3.2)
- Distillation
Params - Distillation hyperparameters (spec §6.3.2)
- Flags
- Feature flags (bitmask) - spec §3.2
- Header
- File header (32 bytes)
- Layer
Mapping - Layer mapping for progressive distillation (spec §6.3.2)
- License
Info - Commercial license information (spec §9.1)
- Metadata
- Model metadata (MessagePack-encoded)
- Model
Info - Model information (from inspection)
- Save
Options - Options for saving models
- Teacher
Provenance - Teacher model provenance for audit trails (spec §6.3.2)
- Training
Info - Training information
Enums§
- Compression
- Compression algorithm
- Distill
Method - Distillation method used (spec §6.3.1)
- License
Tier - License tier levels (spec §9.1)
- Model
Type - Model type identifiers
Constants§
- FORMAT_
VERSION - Current format version (1.0)
- HEADER_
SIZE - Header size in bytes
- MAGIC
- Magic number: “APRN” in ASCII (0x4150524E)
- MAX_
UNCOMPRESSED_ SIZE - Maximum uncompressed size (1GB safety limit)
- MMAP_
THRESHOLD - Threshold for switching to mmap loading (1MB)
Functions§
- inspect
- Inspect a model file without loading the payload
- inspect_
bytes - Inspect model data without loading the payload (spec §1.1)
- load
- Load a model from .apr format
- load_
auto - Load a model with automatic strategy selection based on file size
- load_
from_ bytes - Load a model from a byte slice (spec §1.1 - Single Binary Deployment)
- load_
mmap - Load a model using memory-mapped I/O (zero-copy where possible)
- save
- Save a model to .apr format