import torch from model import TinyGPT from tokenizer import simple_tokenizer, detokenizer, load_vocab def test_model(): vocab = load_vocab() # Load model model = TinyGPT(vocab_size=len(vocab), embed_size=32, num_heads=2, num_layers=2).cuda() model.load_state_dict(torch.load("ruby_model.pth", weights_only=True)) # Set weights_only=True model.eval() # Test input test_input = torch.tensor(simple_tokenizer("abc", vocab), dtype=torch.long).cuda() with torch.no_grad(): output = model(test_input.unsqueeze(0), test_input.unsqueeze(0)) predicted_idx = output.argmax(-1).squeeze()[-1].item() predicted_char = detokenizer([predicted_idx], vocab) print(f"Ruby says: {predicted_char}") if __name__ == "__main__": test_model()