MRdev2 commited on
Commit
761e226
·
1 Parent(s): 1d6ef98

Upload chat-finetuned.py

Browse files
Files changed (1) hide show
  1. chat-finetuned.py +54 -0
chat-finetuned.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from transformers import GPT2LMHeadModel, GPT2Tokenizer, GPT2Config
3
+ from torch.utils.data import Dataset, DataLoader
4
+
5
+ # Definir um pequeno conjunto de dados fictício
6
+ class CustomDataset(Dataset):
7
+ def __init__(self, data):
8
+ self.data = data
9
+
10
+ def __len__(self):
11
+ return len(self.data)
12
+
13
+ def __getitem__(self, idx):
14
+ return self.data[idx]
15
+
16
+ # Exemplo de dados
17
+ training_data = [
18
+ "Usuário: O que é inteligência artificial?",
19
+ "Modelo: Inteligência artificial refere-se à capacidade de uma máquina aprender e tomar decisões sem ser explicitamente programada.",
20
+ "Usuário: Como as redes neurais funcionam?",
21
+ "Modelo: As redes neurais são modelos inspirados no funcionamento do cérebro humano, compostos por camadas de neurônios interconectados.",
22
+ "Usuário: olá, pode me ajudar?",
23
+ "Modelo: Claro, em que posso ajudar?",
24
+ "Usuário: Qual é o seu nome?",
25
+ "Modelo: Meu nome é Theo"
26
+ ]
27
+
28
+ # Criar uma instância do tokenizador GPT-2 e preparar os dados
29
+ tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
30
+ tokenized_data = tokenizer(training_data, return_tensors="pt", padding=True, truncation=True)
31
+
32
+ # Criar um DataLoader
33
+ dataset = CustomDataset(tokenized_data)
34
+ dataloader = DataLoader(dataset, batch_size=2, shuffle=True)
35
+
36
+ # Configurar o modelo GPT-2 para treinamento
37
+ config = GPT2Config.from_pretrained("gpt2")
38
+ model = GPT2LMHeadModel(config)
39
+ optimizer = torch.optim.AdamW(model.parameters(), lr=5e-5)
40
+
41
+ # Treinar o modelo por algumas épocas (isso é um exemplo básico, ajuste conforme necessário)
42
+ num_epochs = 3
43
+ for epoch in range(num_epochs):
44
+ for batch in dataloader:
45
+ optimizer.zero_grad()
46
+ outputs = model(**batch, labels=batch["input_ids"])
47
+ loss = outputs.loss
48
+ loss.backward()
49
+ optimizer.step()
50
+
51
+ # Salvar o modelo ajustado
52
+ model.save_pretrained("modelo_gpt2_finetuned")
53
+
54
+ print("Treinamento concluído. Modelo salvo.")