MCPcopy Index your code
hub / github.com/microsoft/BitNet / main

Function main

utils/test_perplexity.py:539–604  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

537
538
539def main():
540 parser = argparse.ArgumentParser(description='Test model perplexity on multiple datasets')
541 parser.add_argument('--model', '-m',
542 required=True,
543 help='Path to GGUF model file')
544 parser.add_argument('--data-dir', '-d',
545 default='data',
546 help='Directory containing dataset folders (default: data)')
547 parser.add_argument('--threads', '-t',
548 type=int,
549 default=16,
550 help='Number of threads (default: 16)')
551 parser.add_argument('--ctx-size', '-c',
552 type=int,
553 default=512,
554 help='Context size (default: 512)')
555 parser.add_argument('--output-dir', '-o',
556 default='perplexity_results',
557 help='Output directory for results (default: perplexity_results)')
558 parser.add_argument('--llama-perplexity',
559 default='./build/bin/llama-perplexity',
560 help='Path to llama-perplexity binary (default: ./build/bin/llama-perplexity)')
561 parser.add_argument('--quick', '-q',
562 action='store_true',
563 help='Quick test mode: test all datasets with first 4096 characters and reduced context size (128)')
564 parser.add_argument('--test-embeddings', '-e',
565 action='store_true',
566 help='Test different embedding quantization types (f32, f16, q8_0, q6_k, q5_0, q4_0, q3_k, tq2_0)')
567 parser.add_argument('--csv-output',
568 help='Custom path for CSV output file (e.g., results/my_ppl_results.csv)')
569 parser.add_argument('--quantize-bin',
570 default='./build/bin/llama-quantize',
571 help='Path to llama-quantize binary (default: ./build/bin/llama-quantize)')
572
573 args = parser.parse_args()
574
575 try:
576 tester = PerplexityTester(
577 model_path=args.model,
578 llama_perplexity_bin=args.llama_perplexity,
579 data_dir=args.data_dir,
580 output_dir=args.output_dir,
581 quick_mode=args.quick,
582 quantize_bin=args.quantize_bin,
583 test_embeddings=args.test_embeddings,
584 csv_output=args.csv_output
585 )
586
587 tester.run_all_tests(
588 threads=args.threads,
589 ctx_size=args.ctx_size
590 )
591
592 except FileNotFoundError as e:
593 print(f"❌ Error: {e}")
594 return 1
595 except KeyboardInterrupt:
596 print("\n\n⚠️ Test interrupted by user")

Callers 1

test_perplexity.pyFile · 0.70

Calls 2

run_all_testsMethod · 0.95
PerplexityTesterClass · 0.85

Tested by

no test coverage detected