File size: 974 Bytes
98d1e65
 
 
 
 
 
 
 
 
 
972b71a
98d1e65
6c01195
98d1e65
 
 
 
 
 
972b71a
98d1e65
 
 
 
 
972b71a
98d1e65
 
 
 
 
 
 
 
972b71a
98d1e65
 
 
 
 
 
 
 
6c01195
98d1e65
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from pathlib import Path

from src.task.config import ModelConfig
from src.task.model import load_model
from src.infra.tokenizer import CharacterTokenizer
from src.task.inference.inference import TextGenerator


# Runtime configs

checkpoint = "checkpoints/tiny_poet.pt"

TEXT_TOKENIZER_PATH = Path("checkpoints/shakespeare_tokenizer.json")
tokenizer = CharacterTokenizer.load(
    TEXT_TOKENIZER_PATH
    )

# Conf

generator_config = ModelConfig(context_length=128, d_model=128, d_ff=512, num_layers=4, number_of_heads=4)


# Load model/checkpoint from file 
model = load_model(
    checkpoint_path=checkpoint,
    config=generator_config,
    vocab_size=tokenizer.vocab_size,
)


# generator
text_generator = TextGenerator(
    model=model,
    tokenizer=tokenizer,
    context_length=generator_config.context_length,
)


# do generate
output = text_generator.generate(
    prompt_text="ROMEO:",
    max_new_tokens=300,
    temperature=0.7,
    top_p=0.8
)

print(output)