Semantic diff tool for AI/ML models (PyTorch, Safetensors, NumPy, MATLAB). Provides tensor statistics, parameter comparisons, and automatic ML analysis.
Traditional diff doesn't understand binary ML files:
$ diff model_v1.pt model_v2.pt
Binary files model_v1.pt and model_v2.pt differdiffai shows meaningful analysis:
$ diffai model_v1.safetensors model_v2.safetensors
learning_rate_analysis: old=0.001, new=0.0015, change=+50.0%
gradient_analysis: flow_health=healthy, norm=0.021
~ fc1.weight: mean=-0.0002->-0.0001, std=0.0514->0.0716
~ fc2.weight: mean=-0.0008->-0.0018, std=0.0719->0.0883# As CLI tool
cargo install diffai
# As library (Cargo.toml)
[dependencies]
diffai-core = "0.5"# Basic
diffai model1.pt model2.pt
# JSON output for automation
diffai model1.safetensors model2.safetensors --output json
# With numerical tolerance
diffai weights1.npy weights2.npy --epsilon 0.001- PyTorch (.pt, .pth) - Full ML analysis + tensor statistics
- Safetensors (.safetensors) - Full ML analysis + tensor statistics
- NumPy (.npy, .npz) - Tensor statistics
- MATLAB (.mat) - Tensor statistics
--format <FORMAT> # Force input format (pytorch, safetensors, numpy, matlab)
--output <FORMAT> # Output format: json, yaml, text (default: text)
--epsilon <N> # Float comparison tolerance
--ignore-keys-regex RE # Ignore keys matching regex
--quiet # Return only exit code (0: same, 1: diff found)
--verbose # Show confirmation when no differences+Added tensor/parameter-Removed tensor/parameter~Modified tensor/parameter
When comparing PyTorch/Safetensors files, diffai automatically runs 11 specialized analyses:
- Learning Rate Analysis
- Optimizer Comparison
- Loss Tracking
- Accuracy Tracking
- Model Version Analysis
- Gradient Analysis
- Quantization Analysis
- Convergence Analysis
- Activation Analysis
- Attention Analysis
- Ensemble Analysis
# Detect model changes
if ! diffai production.pt candidate.pt --quiet; then
echo "Model has changed"
diffai production.pt candidate.pt --output json > changes.json
fiSee diffai-cli/tests/cmd/ for executable examples:
MIT