Download scripts/benchmark_run.py from Amitkumar001/Law_Slm: direct link, hf CLI and curl.
- Browser
- Download file 1.54 kB
-
https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/scripts/benchmark_run.py
- Command line
-
hf download hf://Amitkumar001/Law_Slm/scripts/benchmark_run.py
-
curl -L -o benchmark_run.py https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/scripts/benchmark_run.py
1.54 kB
| """ | |
| Script to execute SLM inference and training benchmarks. | |
| """ | |
| import sys | |
| import os | |
| sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) | |
| from slm.config.model_config import ModelConfig | |
| from slm.model.transformer_lm import SLMForCausalLM | |
| from slm.evaluation.benchmark import benchmark_inference, benchmark_training_step | |
| from slm.utils.logger import get_logger | |
| from slm.utils.utils import get_device | |
| logger = get_logger("slm.scripts.benchmark") | |
| def run() -> None: | |
| device = get_device("auto") | |
| logger.info(f"Starting hardware benchmark on device={device}...") | |
| # Benchmark Nano model | |
| nano_cfg = ModelConfig(vocab_size=2000, d_model=128, n_heads=4, n_layers=2, d_ff=512) | |
| nano_model = SLMForCausalLM(nano_cfg) | |
| nano_inf = benchmark_inference(nano_model, batch_size=4, seq_len=128, device=device) | |
| logger.info("=== Nano Model Inference Benchmark ===") | |
| logger.info(f"Avg Latency: {nano_inf['avg_latency_ms']} ms") | |
| logger.info(f"Throughput: {nano_inf['tokens_per_sec']} tokens/sec") | |
| # Benchmark Standard model | |
| std_cfg = ModelConfig(vocab_size=32000, d_model=512, n_heads=8, n_layers=8, d_ff=2048) | |
| std_model = SLMForCausalLM(std_cfg) | |
| std_inf = benchmark_inference(std_model, batch_size=2, seq_len=256, device=device) | |
| logger.info("=== Standard Model Inference Benchmark ===") | |
| logger.info(f"Avg Latency: {std_inf['avg_latency_ms']} ms") | |
| logger.info(f"Throughput: {std_inf['tokens_per_sec']} tokens/sec") | |
| if __name__ == "__main__": | |
| run() | |