import tracemalloc import time from datetime import datetime from .mana_tokenizer import ManaTokenizer tokenizer = ManaTokenizer() # Example text for tokenization sample_text = "شرکت آسا پرداز آریسا در سال 96 با استقرار در شهرک علمی و فناوری اصفهان فعالیت رسمی خود را در زمینه سامانه های پردازش سریع (hpc) و رایانش ابری (cloud) آغاز کرد. این شرکت اولین ارائه دهنده تخصصی کاملاً مبتنی بر شتاب دهنده های گرافیکی برای محاسبات پردازش سریع در ایران است. این شرکت توانست در سال 1400 آزمایشگاه پردازشی_گرافیکی خیام را در شهرک علمی تحقیقاتی اصفهان ایجاد و تجهیز کند.این آزمایشگاه مجهز به بیش از 8600 هسته پردازشی و بیش از 800 هزار هسته پردازش گرافیکی کودا می باشد که در اختیار محققان,معماران,مهندسان و … ,برای انجام تمامی تحقیقات و پروژهای علمیشان قرار داده میشود.این آزمایشگاه دارای فضای ذخیره سازی 1.5 پتابایت همچنین فضای رم 15 هزار گیگابایتی میباشد. این آزمایشگاه مجهز به جدید ترین سرورها و پردازنده های گرافیکی روز دنیا می باشد که از تمامی نرم افزار های پیشرفته ی طراحی,معماری,مهندسی,شبیه سازی,حل مسائل پیش بینی مالی,بازی و سرگرمی,پزشکی و درمان پشتیبانی می کند." # Tokenize a sample text to verify tokenizer function encoded_sample = tokenizer.encode(sample_text) tokens2 = encoded_sample.tokens vocab_size2 = len(tokenizer.get_vocab()) print(f"Mana Vocabulary: {vocab_size2}") print(f"Mana Algorithm: {tokenizer.__class__.__name__}") # Print current date and time current_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") print(f"Current Date and Time: {current_date}") # Batch benchmark function using batch_encode def benchmark_tokenizer_batch(tokenizer, texts): start_time = time.time() tokenizer.batch_encode(texts) # Use batch encoding here end_time = time.time() return end_time - start_time # Large texts for benchmarking large_texts = ["سال 96 با استقرار در شهرک علمی و فناوری اصفهان فعالیت رسمی خود را در زمینه سامانه های پردازش سریع (hpc) و رایانش ابری (cloud) آغاز."] * 1000 # Run the batch benchmark time2 = benchmark_tokenizer_batch(tokenizer, large_texts) print(f"Mana Batch Encode Time: {time2} seconds") # Batch memory usage function def memory_usage_tokenizer_batch(tokenizer, texts): tracemalloc.start() tokenizer.batch_encode(texts) # Use batch encoding here snapshot = tracemalloc.take_snapshot() tracemalloc.stop() top_stats = snapshot.statistics('lineno') return top_stats[0].size / 1024 # Measure memory usage for batch encoding memory2 = memory_usage_tokenizer_batch(tokenizer, large_texts) print(f"Mana Batch Encode Memory Usage: {memory2} KB") # Calculate and print the total character count for large_texts total_chars_large_texts = sum(len(text) for text in large_texts) print(f"Total characters in large_texts: {total_chars_large_texts}")