ArGrigorov's picture
Upload folder using huggingface_hub
056d296 verified
Raw
History Blame Contribute Delete
6.55 kB
"""AGIWSNeuralQuant — Universal neural network quantization library.
Unified architecture: one parameterized Quantizer for all formats,
QuantizedWeight/QuantizedActivation containers, dual-path cross-quantization
distillation, chunked dequant for minimal VRAM, QAT with learnable parameters
via STE, SSM-aware exclusion patterns.
Quantization primitives (pure tensor-level functions, no nn.Module wrappers):
- ternary (BitNet 1.58): ternarize_tensor, ternary_dequantize, fake_ternarize
- nf4 (QLoRA): NF4_LUT, quantize_nf4, dequantize_nf4, pack/unpack, double_quant
- fp8 (E4M3/E5M2): FP8 LUTs, quantize/dequantize
- fp4 (E2M1 / NVFP4 / MXFP4): FP4 LUT, quantize/dequantize, pack/unpack, E8M0
- ste (Straight-Through Estimator): STEQuantize, fake_quantize
Layer wrappers live ONLY in base.py (QuantizedModule) — no per-format
nn.Module classes. The unified Quantizer (quantizer.py) + presets (presets.py)
configure all 40+ formats as parameters, not separate classes.
"""
__version__ = "0.3.0"
# Core unified architecture
from agiws_neural_quant.dispatch import quantize_model, count_quantizable_layers, make_quantizer, save_model, load_model
from agiws_neural_quant.base import QuantizedModule, QuantizedWeight, QuantizedActivation
from agiws_neural_quant.quantizer import Quantizer
from agiws_neural_quant.presets import FORMAT_PRESETS, get_preset
# SSM-aware exclusion patterns (KDA / Mamba / RWKV / linear attention)
from agiws_neural_quant.ssm_patterns import (
get_ssm_exclude_patterns,
get_ssm_subtree_patterns,
)
# QAT + dual-path distillation (unified)
from agiws_neural_quant.training_unified import (
UnifiedQATWrapper,
dual_path_loss,
strip_latent,
)
# Quantization primitives (pure functions / LUTs — no nn.Module wrappers)
from agiws_neural_quant.training import fake_quantize, STEQuantize
from agiws_neural_quant.training.ste import STECodebook, fake_codebook_quantize
from agiws_neural_quant.ternary import (
ternarize_tensor,
ternary_dequantize,
fake_ternarize,
)
from agiws_neural_quant.nf4 import (
NF4_LUT,
quantize_nf4,
dequantize_nf4,
pack_nf4,
unpack_nf4,
double_quantize_scales_2d,
dequantize_scales_2d,
)
from agiws_neural_quant.fp8 import (
FP8_E4M3_LUT,
FP8_E5M2_LUT,
quantize_fp8,
dequantize_fp8,
)
from agiws_neural_quant.fp4 import (
FP4_E2M1_LUT,
quantize_fp4,
dequantize_fp4,
pack_fp4,
unpack_fp4,
E8M0_LUT,
)
from agiws_neural_quant.fp6 import (
FP6_E3M2_LUT,
FP6_E2M3_LUT,
quantize_fp6,
dequantize_fp6,
pack_fp6,
unpack_fp6,
)
from agiws_neural_quant import kquant
from agiws_neural_quant.kquant import (
quantize_blocks,
dequantize_blocks,
)
# Subsystem: teacher-cache for distillation
from agiws_neural_quant.cache import (
get_cache_dir,
get_cache_path,
is_cache_valid,
get_sources_needing_cache,
save_cache,
load_cache,
CaptureConfig,
select_modules,
capture_with_hooks,
save_layer_cache,
load_layer_cache,
load_layer_io,
list_cached_names,
validate_cache_contents,
clean_old_cache,
TeacherCache,
)
# Subsystem: checkpoint extraction (vision encoders, submodules, shards)
from agiws_neural_quant.extract import (
extract_subcheckpoint,
extract_vision_encoder,
extract_module_group,
load_subcheckpoint,
list_shards,
find_keys,
ExtractReport,
)
# Subsystem: universal file-to-file converter (low memory)
from agiws_neural_quant.converters import (
convert_model,
detect_format,
list_safetensors_keys,
read_safetensors_tensor,
stream_safetensors,
write_safetensors,
detect_quant_layout,
GGUFReader,
convert_nvfp4_safetensors_tensor,
dequantize_nvfp4_safetensors,
)
# Subsystem: layer analysis (per-layer quantization suitability)
from agiws_neural_quant.analysis import LayerAnalyzer, SplitReport, LayerResult, AnomalyReport
# Subsystem: TradingLR scheduler (auto-LR on technical indicators — separate concern)
from agiws_neural_quant.trading_lr import TradingLR, DEMA, ATR, RSI
__all__ = [
# Core
"quantize_model",
"count_quantizable_layers",
"make_quantizer",
"save_model",
"load_model",
"QuantizedModule",
"QuantizedWeight",
"QuantizedActivation",
"Quantizer",
"FORMAT_PRESETS",
"get_preset",
# SSM patterns
"get_ssm_exclude_patterns",
"get_ssm_subtree_patterns",
# QAT + dual-path
"UnifiedQATWrapper",
"dual_path_loss",
"strip_latent",
# Primitives: STE
"fake_quantize",
"STEQuantize",
"STECodebook",
"fake_codebook_quantize",
# Primitives: ternary (BitNet 1.58)
"ternarize_tensor",
"ternary_dequantize",
"fake_ternarize",
# Primitives: NF4 (QLoRA)
"NF4_LUT",
"quantize_nf4",
"dequantize_nf4",
"pack_nf4",
"unpack_nf4",
"double_quantize_scales_2d",
"dequantize_scales_2d",
# Primitives: FP8
"FP8_E4M3_LUT",
"FP8_E5M2_LUT",
"quantize_fp8",
"dequantize_fp8",
# Primitives: FP4 / NVFP4 / MXFP4
"FP4_E2M1_LUT",
"quantize_fp4",
"dequantize_fp4",
"pack_fp4",
"unpack_fp4",
"E8M0_LUT",
# Primitives: FP6 (E3M2 / E2M3)
"FP6_E3M2_LUT",
"FP6_E2M3_LUT",
"quantize_fp6",
"dequantize_fp6",
"pack_fp6",
"unpack_fp6",
# Primitives: kquant (GGUF k-quants super-block layout)
"kquant",
"quantize_blocks",
"dequantize_blocks",
# Teacher cache
"get_cache_dir",
"get_cache_path",
"is_cache_valid",
"get_sources_needing_cache",
"save_cache",
"load_cache",
"CaptureConfig",
"select_modules",
"capture_with_hooks",
"save_layer_cache",
"load_layer_cache",
"load_layer_io",
"list_cached_names",
"validate_cache_contents",
"clean_old_cache",
"TeacherCache",
# Extraction
"extract_subcheckpoint",
"extract_vision_encoder",
"extract_module_group",
"load_subcheckpoint",
"list_shards",
"find_keys",
"ExtractReport",
# Universal converter
"convert_model",
"detect_format",
"list_safetensors_keys",
"read_safetensors_tensor",
"stream_safetensors",
"write_safetensors",
"detect_quant_layout",
"GGUFReader",
"convert_nvfp4_safetensors_tensor",
"dequantize_nvfp4_safetensors",
# Layer analysis
"LayerAnalyzer",
"SplitReport",
"LayerResult",
"AnomalyReport",
# TradingLR (separate subsystem)
"TradingLR",
"DEMA",
"ATR",
"RSI",
]