Spaces:
Runtime error
Runtime error
File size: 1,381 Bytes
bb994e1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import ctranslate2
import transformers
import time
import os
def convert_model():
print("Converting model to CTranslate2...")
# System command for conversion
os.system("ct2-transformers-converter --model ./final_model --output_dir ./ct2_model --quantization int8")
def run_benchmark():
device = "cpu"
translator = ctranslate2.Translator("./ct2_model", device=device)
tokenizer = transformers.AutoTokenizer.from_pretrained("./final_model")
test_inputs = ["<hin> shanti", "<ben> namaskar", "<tam> vanakkam"]
tokens = [tokenizer.convert_ids_to_tokens(tokenizer.encode(t)) for t in test_inputs]
# Benchmark CTranslate2
start = time.time()
for _ in range(10): # Average over 10 runs
results = translator.translate_batch(tokens)
ct2_time = (time.time() - start) / 30 # 10 runs * 3 inputs
print(f"CTranslate2 Latency: {ct2_time:.4f}s per word")
# Size comparison
orig_size = sum(os.path.getsize(os.path.join("./final_model", f)) for f in os.listdir("./final_model") if os.path.isfile(os.path.join("./final_model", f)))
opt_size = sum(os.path.getsize(os.path.join("./ct2_model", f)) for f in os.listdir("./ct2_model") if os.path.isfile(os.path.join("./ct2_model", f)))
print(f"Compression Ratio: {orig_size / opt_size:.2f}x")
if __name__ == "__main__":
convert_model()
run_benchmark() |