| Crates.io | bitnet-cli |
| lib.rs | bitnet-cli |
| version | 1.0.0 |
| created_at | 2025-07-16 17:47:42.783397+00 |
| updated_at | 2025-08-30 19:14:01.212836+00 |
| description | Command-line interface for BitNet model operations |
| homepage | https://github.com/Wavegoodvybe2929/bitnet-rust |
| repository | https://github.com/Wavegoodvybe2929/bitnet-rust |
| max_upload_size | |
| id | 1756084 |
| size | 121,353 |
Command-line interface for BitNet neural networks, providing tools for model conversion, inference, training, benchmarking, and profiling.
bitnet-cli provides a comprehensive command-line interface for BitNet operations:
โ ๏ธ This crate is currently a high-priority development target for the Commercial Readiness Phase.
The current src/main.rs contains only a placeholder, but BitNet CLI is essential for commercial customer adoption and is prioritized for immediate development in the commercial readiness phase.
Commercial Impact: CLI tools are critical for developer adoption and enterprise deployment workflows. Development Priority: HIGH - Essential for customer onboarding and production deployment Timeline: Month 1 of Commercial Phase (September 2025) Target Features: Model conversion, inference tools, performance benchmarking, deployment utilities
# Convert model formats
bitnet model convert --input model.pytorch --output model.safetensors --format safetensors
# Quantize model to BitNet format
bitnet model quantize --input model.safetensors --output model_bitnet.safetensors --bits 1.58
# Analyze model
bitnet model info model.safetensors
bitnet model analyze --detailed model.safetensors
# Optimize model
bitnet model optimize --input model.safetensors --output optimized.safetensors --target apple-silicon
# Interactive chat
bitnet chat --model model.safetensors --device auto
# Text completion
bitnet complete --model model.safetensors --prompt "The future of AI is" --max-length 100
# Batch inference
bitnet infer --model model.safetensors --input prompts.txt --output results.txt --batch-size 32
# Streaming inference
bitnet stream --model model.safetensors --prompt "Tell me a story" --stream-tokens
# Start training
bitnet train --model base_model.safetensors --dataset dataset.jsonl --config training_config.yaml
# LoRA fine-tuning
bitnet finetune lora --model model.safetensors --dataset dataset.jsonl --rank 16 --alpha 32
# QLoRA fine-tuning
bitnet finetune qlora --model model.safetensors --dataset dataset.jsonl --bits 4
# Resume training
bitnet train resume --checkpoint checkpoint_1000.pt
# Benchmark inference
bitnet benchmark inference --model model.safetensors --batch-sizes 1,8,32 --sequence-lengths 512,1024,2048
# Benchmark training
bitnet benchmark training --model model.safetensors --dataset dataset.jsonl --batch-sizes 8,16,32
# System profiling
bitnet profile system --model model.safetensors --duration 60s --output profile.json
# Compare models
bitnet compare models model1.safetensors model2.safetensors --metric throughput,memory,accuracy
# Validate model
bitnet validate --model model.safetensors --test-dataset test.jsonl
# Model diagnostics
bitnet diagnose --model model.safetensors --verbose
# Configuration management
bitnet config show
bitnet config set device.default gpu
bitnet config reset
# Help and documentation
bitnet help
bitnet help train
bitnet --version
bitnet-cli/src/
โโโ main.rs # Main CLI entry point
โโโ cli/ # CLI interface and parsing
โ โโโ mod.rs # CLI module interface
โ โโโ app.rs # Main CLI application
โ โโโ commands/ # Command implementations
โ โ โโโ mod.rs # Commands interface
โ โ โโโ model.rs # Model management commands
โ โ โโโ inference.rs # Inference commands
โ โ โโโ training.rs # Training commands
โ โ โโโ benchmark.rs # Benchmarking commands
โ โ โโโ profile.rs # Profiling commands
โ โ โโโ config.rs # Configuration commands
โ โ โโโ utils.rs # Utility commands
โ โโโ args/ # Command-line argument parsing
โ โ โโโ mod.rs # Args interface
โ โ โโโ model_args.rs # Model command arguments
โ โ โโโ inference_args.rs # Inference arguments
โ โ โโโ training_args.rs # Training arguments
โ โ โโโ common_args.rs # Common arguments
โ โโโ output/ # Output formatting
โ โโโ mod.rs # Output interface
โ โโโ formatters.rs # Output formatters
โ โโโ progress.rs # Progress indicators
โ โโโ tables.rs # Table formatting
โโโ config/ # Configuration management
โ โโโ mod.rs # Config interface
โ โโโ settings.rs # Application settings
โ โโโ profiles.rs # Configuration profiles
โ โโโ validation.rs # Config validation
โ โโโ migration.rs # Config migration
โโโ operations/ # Core operations
โ โโโ mod.rs # Operations interface
โ โโโ model_ops.rs # Model operations
โ โโโ inference_ops.rs # Inference operations
โ โโโ training_ops.rs # Training operations
โ โโโ benchmark_ops.rs # Benchmarking operations
โ โโโ profile_ops.rs # Profiling operations
โโโ interactive/ # Interactive modes
โ โโโ mod.rs # Interactive interface
โ โโโ chat.rs # Chat interface
โ โโโ repl.rs # REPL interface
โ โโโ wizard.rs # Configuration wizard
โ โโโ monitor.rs # Training monitor
โโโ utils/ # CLI utilities
โ โโโ mod.rs # Utils interface
โ โโโ logging.rs # Logging setup
โ โโโ error_handling.rs # Error handling
โ โโโ file_utils.rs # File utilities
โ โโโ system_info.rs # System information
โ โโโ validation.rs # Input validation
โโโ integrations/ # External integrations
โโโ mod.rs # Integrations interface
โโโ tensorboard.rs # TensorBoard integration
โโโ wandb.rs # Weights & Biases
โโโ mlflow.rs # MLflow integration
โโโ huggingface.rs # Hugging Face Hub
// Example command structure
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "bitnet")]
#[command(about = "BitNet neural network toolkit")]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
#[arg(long, global = true)]
pub verbose: bool,
#[arg(long, global = true)]
pub config: Option<PathBuf>,
}
#[derive(Subcommand)]
pub enum Commands {
/// Model management operations
Model {
#[command(subcommand)]
action: ModelCommands,
},
/// Inference operations
Infer(InferenceArgs),
/// Training operations
Train(TrainingArgs),
/// Benchmarking operations
Benchmark {
#[command(subcommand)]
benchmark_type: BenchmarkCommands,
},
/// Configuration management
Config {
#[command(subcommand)]
action: ConfigCommands,
},
}
| Feature | Description | Priority |
|---|---|---|
| Interactive Chat | Real-time chat interface | High |
| Progress Indicators | Visual progress for long operations | High |
| Auto-completion | Shell auto-completion support | Medium |
| Configuration Wizard | Guided setup for new users | Medium |
| Rich Output | Colored and formatted output | Medium |
| Operation | Expected Performance | Memory Usage |
|---|---|---|
| Model Loading | <5s for 7B model | <1GB overhead |
| Inference (single) | <200ms latency | <4GB total |
| Inference (batch) | >100 tok/s | <8GB total |
| Model Conversion | >1GB/s throughput | <2x model size |
| Platform | Support Level | Features |
|---|---|---|
| macOS (Apple Silicon) | Full | All features, Metal acceleration |
| macOS (Intel) | Full | All features, CPU only |
| Linux (x86_64) | Full | All features, CUDA support |
| Windows | Partial | Basic features, CPU only |
# Test CLI argument parsing
cargo test --package bitnet-cli cli
# Test command implementations
cargo test --package bitnet-cli commands
# Test configuration management
cargo test --package bitnet-cli config
# Test end-to-end workflows
cargo test --package bitnet-cli --test e2e_workflows
# Test model operations
cargo test --package bitnet-cli --test model_operations
# Test inference operations
cargo test --package bitnet-cli --test inference_operations
# Test CLI interface
cargo test --package bitnet-cli --test cli_interface
# Test interactive modes
cargo test --package bitnet-cli --test interactive_modes
# Test error handling
cargo test --package bitnet-cli --test error_handling
# Test user workflows
cargo test --package bitnet-cli --test user_workflows
# Test documentation examples
cargo test --package bitnet-cli --test doc_examples
# Test performance benchmarks
cargo bench --package bitnet-cli
# ~/.bitnet/config.yaml
device:
default: "auto"
fallback: ["cpu"]
memory_fraction: 0.8
inference:
default_batch_size: 1
max_sequence_length: 2048
temperature: 0.8
top_k: 50
top_p: 0.9
training:
default_learning_rate: 1e-4
default_batch_size: 8
checkpoint_interval: 1000
log_interval: 100
output:
format: "auto"
color: true
progress_bars: true
verbosity: "info"
paths:
models_dir: "~/.bitnet/models"
cache_dir: "~/.bitnet/cache"
logs_dir: "~/.bitnet/logs"
# training_config.yaml
model:
base_model: "microsoft/DialoGPT-medium"
quantization:
bits: 1.58
calibration_samples: 512
training:
learning_rate: 5e-5
batch_size: 16
num_epochs: 3
warmup_steps: 500
optimizer:
type: "adamw"
weight_decay: 0.01
scheduler:
type: "cosine"
warmup_ratio: 0.1
data:
train_file: "train.jsonl"
validation_file: "val.jsonl"
max_length: 1024
logging:
wandb:
project: "bitnet-finetuning"
entity: "my-team"
# Install from crates.io (when published)
cargo install bitnet-cli
# Install from source
git clone https://github.com/bitnet-rust/bitnet-rust.git
cd bitnet-rust
cargo install --path bitnet-cli
# Install with all features
cargo install bitnet-cli --features "metal,cuda,distributed"
# Generate shell completions
bitnet completion bash > ~/.bash_completion.d/bitnet
bitnet completion zsh > ~/.zsh/completions/_bitnet
bitnet completion fish > ~/.config/fish/completions/bitnet.fish
# Or install via package managers
brew install bitnet-cli # macOS
apt install bitnet-cli # Ubuntu/Debian
# Initialize configuration
bitnet config init
# Download a model
bitnet model download microsoft/DialoGPT-medium
# Convert to BitNet format
bitnet model quantize microsoft/DialoGPT-medium --output bitnet-dialog.safetensors
# Start interactive chat
bitnet chat bitnet-dialog.safetensors
# Run benchmarks
bitnet benchmark inference bitnet-dialog.safetensors
This crate needs complete implementation! Priority areas:
Licensed under the MIT License. See LICENSE for details.