Skip to main content

Module model_loader

Module model_loader 

Source
Expand description

Pure-Rust GGUF model metadata loader and thread-safe model registry.

This module is enabled by the gguf-loader Cargo feature.

§Overview

  • GgufParser — reads the GGUF v2/v3 file header (magic, version, key-value metadata, tensor shape/offset records) without loading tensor weights into RAM.
  • ModelRegistry — a thread-safe RwLock-protected store of ModelInfo records indexed by name-based ModelHandles.

Together these components provide the “model loading strategy” required by the LoRA phase-d fine-tuning scaffold: you can enumerate model architecture metadata (embedding dimension, vocab size, layer count, …) before committing to loading any weights, and the registry lets multiple threads share that metadata safely.

§Example

use oxirs_graphrag::model_loader::{GgufParser, ModelRegistry};

// Parse a minimal in-memory GGUF buffer (v3, 0 tensors, 0 kv entries):
let mut buf = Vec::new();
buf.extend_from_slice(&[0x47, 0x47, 0x55, 0x46]); // magic
buf.extend_from_slice(&3u32.to_le_bytes());         // version 3
buf.extend_from_slice(&0u64.to_le_bytes());         // n_tensors
buf.extend_from_slice(&0u64.to_le_bytes());         // n_kv

let meta = GgufParser::parse_bytes(&buf).expect("parse ok");
assert_eq!(meta.version, 3);
assert_eq!(meta.n_tensors, 0);
assert_eq!(meta.total_params(), 0);

let registry = ModelRegistry::new();
assert!(registry.is_empty());

Re-exports§

pub use gguf_parser::GgufMetadata;
pub use gguf_parser::GgufModelArch;
pub use gguf_parser::GgufParseError;
pub use gguf_parser::GgufParser;
pub use gguf_parser::GgufTensorInfo;
pub use gguf_parser::GgufValue;
pub use registry::ModelHandle;
pub use registry::ModelInfo;
pub use registry::ModelRegistry;
pub use registry::RegistryError;

Modules§

gguf_parser
Pure-Rust GGUF v2/v3 metadata parser.
registry
Thread-safe model registry for GGUF model metadata.