Nepali-Tamang-English Machine Translation Model
This model was converted from a Fairseq checkpoint to Hugging Face Transformers format. It performs machine translation between Nepali, Tamang, and English.
Model Details
- Architecture: FSMT (Fairseq Machine Translation)
- Original Framework: Fairseq
- Languages: Nepali, Tamang, English
Usage
This model requires specific language tokens to indicate the target language:
__ne__: Translate to Nepali__ta__: Translate to Tamang__en__: Translate to English
Installation
pip install transformers
Python Example
from transformers import FSMTForConditionalGeneration, FSMTTokenizer
model_name = "rishi70612/nepali-tamang-english-mt"
tokenizer = FSMTTokenizer.from_pretrained(model_name)
model = FSMTForConditionalGeneration.from_pretrained(model_name)
def translate(text, target_lang_token):
# Prepend the language token
input_text = f"{target_lang_token} {text}"
input_ids = tokenizer.encode(input_text, return_tensors="pt")
# Generate with beam search for better quality
outputs = model.generate(input_ids, num_beams=5, max_length=100)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Examples
print("Nepali:", translate("I love machine learning.", "__ne__"))
print("Tamang:", translate("I love machine learning.", "__ta__"))
print("English:", translate("मलाई नेपाल मन पर्छ।", "__en__"))
Usage in Kaggle
You can use the following code snippet directly in a Kaggle Notebook cell to run inference.
# 1. Install transformers
# !pip install transformers
# !pip install sacremoses
import torch
from transformers import FSMTForConditionalGeneration, FSMTTokenizer
# 2. Load Model
model_name = "rishi70612/nepali-tamang-english-mt"
print(f"Loading model from {model_name}...")
tokenizer = FSMTTokenizer.from_pretrained(model_name)
model = FSMTForConditionalGeneration.from_pretrained(model_name)
if torch.cuda.is_available():
model = model.cuda()
print("Moved model to GPU.")
# 3. Define Translation Function
def translate(text, target_lang_token):
# Prepare input (e.g. "__ne__ I love AI")
input_text = f"{target_lang_token} {text}"
input_ids = tokenizer.encode(input_text, return_tensors="pt")
if torch.cuda.is_available():
input_ids = input_ids.cuda()
outputs = model.generate(input_ids, num_beams=5, max_length=100, early_stopping=True)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# 4. Run
print("Nepali:", translate("I love machine learning.", "__ne__"))
print("Tamang:", translate("I love machine learning.", "__ta__"))
- Downloads last month
- 6