Fairseq-Based Random Sentence Generator

  • Share this:

Code introduction


This function simulates generating a random sentence from a source language to a target language using functionalities from the Fairseq library such as model loading, translation, and data processing.


Technology Stack : Fairseq, PyTorch, collate_tokens, FairseqModel, translate

Code Type : Function

Code Difficulty : Intermediate


                
                    
def random_sentence_generator(source_lang, target_lang, model_path, beam_size=5, max_len=50):
    import torch
    from fairseq.data.data_utils import collate_tokens
    from fairseq.models import FairseqModel
    from fairseq.translate import translate

    # Load the model
    model = FairseqModel.from_pretrained(model_path)

    # Dummy input to simulate a sentence
    dummy_input = torch.randint(0, 10000, (1, 1))

    # Collate dummy input to match model input requirements
    dummy_input_collated = collate_tokens([dummy_input], src_lang=source_lang, tgt_lang=target_lang)

    # Translate the dummy input using the model
    translated_output = translate(model, dummy_input_collated, beam=beam_size, max_len=max_len)

    return translated_output[0][0]