Views
No views yet
[!NOTE] 🌐 Live Web Demo: Try 100% offline in your browser athuggingface.co/spaces/rudrakshrakeshzodage/nllb-200-onnx-browser-demo
This model is part of a suite of optimized/quantized versions of the base model. Other variants in this direction:
- FP32 (Full Precision / Base):
rudrakshrakeshzodage/nllb-200-distilled-600M-fp32- FP16 (Half Precision):
rudrakshrakeshzodage/nllb-200-distilled-600M-fp16- INT8 (Dynamic Quantization - CPU):
rudrakshrakeshzodage/nllb-200-distilled-600M-int8-cpu- NF4 (4-bit GPU Quantization):
rudrakshrakeshzodage/nllb-200-distilled-600M-nf4-4bit-gpu(Current)
facebook/nllb-200-distilled-600M

NF4) format via bitsandbytes.torch.float16 for execution on CUDA Tensor Cores.| Metric | NF4 4-bit (GPU) | FP16 Base (GPU) | Speedup / Savings |
|---|---|---|---|
| VRAM Footprint | ~1.5 GB | ~3.8 GB | 60.5% VRAM reduction |
| Avg Latency (Per Lang) | ~806 ms | ~3,950 ms | 4.9× Faster |
| Throughput | 74 languages / min | ~15 languages / min | 4.9× Higher |
| 200-Lang Benchmark Run | ~2.7 minutes | ~13.3 minutes | 10.6 min saved |
| BLEU Score (vs FP16) | ~42.0 | ~42.1 | < 0.1 BLEU loss |
| Loop Anomalies | 1 (Central Kanuri) | 1 (Central Kanuri) | Identical baseline behavior |
bitsandbytes>=0.39.0, transformers>=4.28.01import torch
2from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig
3
4quant_config = BitsAndBytesConfig(
5 load_in_4bit=True,
6 bnb_4bit_quant_type="nf4",
7 bnb_4bit_compute_dtype=torch.float16,
8 bnb_4bit_use_double_quant=True,
9)
10
11model = AutoModelForSeq2SeqLM.from_pretrained(
12 "YOUR_USERNAME/nllb-200-distilled-600M-nf4-4bit-gpu",
13 quantization_config=quant_config,
14 device_map="cuda",
15)
16
17tokenizer = AutoTokenizer.from_pretrained(
18 "YOUR_USERNAME/nllb-200-distilled-600M-nf4-4bit-gpu"
19)
20
21# Translate English to Hindi (hin_Deva)
22inputs = tokenizer("Hello world, how are you?", return_tensors="pt").to("cuda")
23translated_tokens = model.generate(
24 **inputs,
25 forced_bos_token_id=tokenizer.lang_code_to_id["hin_Deva"],
26 max_length=100
27)
28print(tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0])