Random Translation Generation with Fairseq Model

  • Share this:

Code introduction


This function randomly selects an input text from the Fairseq model and translates it using a pretrained model. First, it loads the target dictionary, then tokenizes the input text, loads the pretrained model, performs the translation, and decodes the output tokens back into text.


Technology Stack : Fairseq, Dictionary, FairseqModel, torch

Code Type : The type of code

Code Difficulty : Intermediate


                
                    
import random
import torch
from fairseq.models import FairseqModel
from fairseq.data import Dictionary

def generate_random_translation(input_text, model_path, target_dictionary_path):
    # Load the dictionary
    dictionary = Dictionary.load(target_dictionary_path)
    
    # Tokenize the input text using the dictionary
    tokens = dictionary.encode_line(input_text, add_if_not_exist=False, append_eos=False)
    
    # Load the model
    model = FairseqModel.from_pretrained(model_path)
    
    # Generate the translation
    with torch.no_grad():
        output_tokens = model.translate(tokens)
    
    # Decode the output tokens to text
    output_text = dictionary.decode_line(output_tokens)
    
    return output_text