AnyaSchen commited on
Commit
0ed47fb
·
1 Parent(s): c76b450

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +46 -0
README.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - ru
4
+ tags:
5
+ - keywords2poetry
6
+ - Pushkin
7
+ - Mayakovsky
8
+ - Esenin
9
+ - Blok
10
+ - Tyutchev
11
+ ---
12
+ This repo contains the fune-tuned version of [ai-forever/rugpt3large_based_on_gpt2](https://huggingface.co/ai-forever/rugpt3large_based_on_gpt2), which can generate poetry from keywords in style of Pushkin, Mayakovsky, Esenin, Blok and Tyutchev.
13
+
14
+ To use this model, you can do this:
15
+
16
+ ```
17
+ from transformers import AutoTokenizer, AutoModelForCausalLM
18
+
19
+ def generate_poetry(input: str, model, num_beams=3):
20
+ input = input if len(input) > 0 else tokenizer.bos_token
21
+ input_ids = tokenizer.encode(input, return_tensors="pt").to(device)
22
+ # Create an attention mask
23
+ attention_mask = (input_ids != tokenizer.pad_token_id).float()
24
+
25
+ # Set the pad_token_id
26
+ tokenizer.pad_token_id = tokenizer.eos_token_id
27
+ with torch.no_grad():
28
+ out = model.generate(input_ids,
29
+ do_sample=True,
30
+ num_beams=num_beams,
31
+ temperature=2.0,
32
+ top_p=0.9,
33
+ max_length = 200,
34
+ eos_token_id=tokenizer.eos_token_id,
35
+ bos_token_id=tokenizer.bos_token_id,
36
+ attention_mask=attention_mask
37
+ ).to(device)
38
+ return tokenizer.batch_decode(out, skip_special_tokens=True)[0]
39
+
40
+ path = 'AnyaSchen/rugpt3-large-keywords2poetry'
41
+ tokenizer = AutoTokenizer.from_pretrained(path)
42
+ model = AutoModelForCausalLM.from_pretrained(path).to(device)
43
+
44
+ inp = 'Автор: Маяковский\nКлючевые слова:<write your keywords>'
45
+ print(generate_poetry(inp, model))
46
+ ```