模型:
cointegrated/rut5-base-paraphraser
这是一个俄语句子的改写器,描述了 in this Habr post 。
建议使用带有encoder_no_repeat_ngram_size参数的模型:
from transformers import T5ForConditionalGeneration, T5Tokenizer MODEL_NAME = 'cointegrated/rut5-base-paraphraser' model = T5ForConditionalGeneration.from_pretrained(MODEL_NAME) tokenizer = T5Tokenizer.from_pretrained(MODEL_NAME) model.cuda(); model.eval(); def paraphrase(text, beams=5, grams=4, do_sample=False): x = tokenizer(text, return_tensors='pt', padding=True).to(model.device) max_size = int(x.input_ids.shape[1] * 1.5 + 10) out = model.generate(**x, encoder_no_repeat_ngram_size=grams, num_beams=beams, max_length=max_size, do_sample=do_sample) return tokenizer.decode(out[0], skip_special_tokens=True) print(paraphrase('Каждый охотник желает знать, где сидит фазан.')) # Все охотники хотят знать где фазан сидит.