Skip to main content

ferrox_models/
lib.rs

1//! ferrox-models: GGUF decoder, architecture registry, and structural
2//! presets for frontier stacks (GLM / DeepSeek V4 / Kimi).
3//!
4//! Unconfirmed preset fields go in `best_effort_fields` and must be
5//! overwritten from real `config.json` / GGUF metadata. Status of what
6//! actually runs: `docs/MODELS.md`. Presets `glm_5_2` / `deepseek_v4_pro`
7//! / `kimi_k3` are sketches for synthetic tests — not real-checkpoint
8//! support. Dedicated primitives live in `glm52_*`, `deepseek_v4_*`,
9//! `kimi_*` modules.
10
11pub mod block_residual;
12pub mod capability;
13pub mod chat_template;
14pub mod config;
15pub mod decoder;
16pub mod deepseek_v4_budget;
17pub mod deepseek_v4_decoder;
18pub mod device_budget;
19pub mod engine;
20pub mod engine_factory;
21pub mod execution_plan;
22pub mod gdn;
23pub mod gemma4_engine;
24pub mod gemma4_gguf_loader;
25pub mod glm52_decoder;
26pub mod glm52_gguf_loader;
27pub mod glm_dsa;
28pub mod hf_pull;
29#[cfg(feature = "hub")]
30pub mod hub;
31pub mod hybrid_engine;
32pub mod hybrid_gguf_loader;
33pub mod hyper_connections;
34pub mod kda;
35pub mod kimi_decoder;
36pub mod kimi_generate;
37pub mod kimi_gguf_loader;
38pub mod kimi_loader;
39pub mod kimi_tokenizer;
40pub mod kimi_validate;
41pub mod kv_budget;
42pub mod latent_moe;
43pub mod llama4_engine;
44pub mod loader;
45pub mod minimax_engine;
46pub mod mla;
47pub mod mla_gguf_loader;
48pub mod mmproj;
49pub mod output_projection;
50pub mod prefix_cache;
51pub mod recurrent_engine;
52pub mod residency_report;
53pub mod sampling;
54pub mod speculative;
55pub mod t5_engine;
56pub mod tensor_role;
57pub mod tokenizer;
58pub mod vision;
59pub mod vl_engine;
60
61pub use capability::{
62    architecture_catalog, coverage_report_markdown, resolve_architecture, resolve_profile,
63    ArchPath, ArchProfile, ArchScope, DecoderFamily, MemoryKind, QkNormStyle,
64};
65pub use config::{deepseek_v4_pro, glm_5_2, kimi_k3, FfnActivation, ModelConfig, RopeLayout};
66pub use decoder::{Decoder, MultiSeqKv};
67pub use device_budget::{BudgetBackend, DeviceBudget};
68pub use engine::{
69    DeepseekV4Engine, Engine, Glm52Engine, KimiEngine, MlaDenseFfn, MlaEngine, MlaLayerFfn,
70    MlaLayerWeights, MlaMoeFfn, MlaMoeRuntime, TextTokenizer,
71};
72pub use engine_factory::{
73    ensure_generic_decoder, load_gemma4_engine_from_path, load_glm52_engine_from_path,
74    load_mla_engine_from_path, select_engine_kind, EngineSelectError, SelectedEngineKind,
75    ServedEngine,
76};
77pub use execution_plan::{ExecutionPlan, FusedOpCaps, MemoryPlan, PlanGeometry};
78pub use gemma4_engine::{Gemma4Engine, Gemma4Hparams, GEMMA4_ARCHES};
79pub use kv_budget::{
80    Ceiling, ContextCap, ContextFit, KvBudget, KvBudgetError, KvElem, KvLayout, KvShape,
81    SlidingWindow, CTX_AUTO_GRANULARITY,
82};
83pub use loader::LoadError;
84pub use output_projection::grouped_output_projection;
85pub use prefix_cache::{PrefixCache, PrefixCacheStats, PrefixMatch};
86pub use sampling::{sampling_distribution, Sampler, SamplingParams};
87pub use speculative::{
88    accept_or_resample, speculative_decode, speculative_decode_with, DraftBlock, DraftDist,
89    Drafter, PromptLookupSpeculator, SpeculativeDecodeResult, SpeculativeOptions,
90};
91pub use tensor_role::TensorRole;
92pub use tokenizer::{
93    ByteTokenizer, GgufBpeTokenizer, GgufSpmTokenizer, GgufUnigramTokenizer, TokenizerLoadError,
94};
95
96#[cfg(feature = "metal")]
97pub use ferrox_metal::attn::{metal_greedy_argmax_active, set_metal_greedy_argmax};