def METHOD_NAME(max_epochs, vec_size, alpha, tag_data):    
    model = Doc2Vec(vector_size=vec_size, alpha=alpha,min_alpha=0.00025, min_count=2, dm=1)
    model.build_vocab(tag_data)
    for epoch in range(max_epochs):
        model.train(skl_utils.shuffle(tag_data),
                   total_examples=model.corpus_count,
                   epochs=model.epochs)
        model.alpha -= 0.0002
        model.min_alpha = model.alpha
    #Doc2Vec.load(os.path.join(train_path,"doc2vec.model"))
    model.save(os.path.join(train_path,"doc2vec.model"))
    #logger.info("Model Saved")
    return model