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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support