fschwartzer commited on
Commit
d0b6b88
1 Parent(s): 7abb0f2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -10
app.py CHANGED
@@ -3,8 +3,9 @@ import pandas as pd
3
  import torch
4
  from transformers import AutoTokenizer, AutoModelForCausalLM
5
 
6
- tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-1.3B")
7
- model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-neo-1.3B")
 
8
 
9
  # Set the padding token to the end-of-sequence token
10
  if tokenizer.pad_token is None:
@@ -15,23 +16,22 @@ df = pd.read_csv('anomalies.csv')
15
  # Função para gerar resposta
16
  def response(question):
17
  prompt = f"Considerando os dados: {df.to_string(index=False)}, onde 'ds' está em formato DateTime, 'real' é o valor da despesa e 'group' é o grupo da despesa. Pergunta: {question}"
18
- inputs = tokenizer(prompt, return_tensors='pt', padding='max_length', truncation=True, max_length=512)
19
  attention_mask = inputs['attention_mask']
20
  input_ids = inputs['input_ids']
21
 
22
  generated_ids = model.generate(
23
  input_ids,
24
  attention_mask=attention_mask,
25
- max_length=len(input_ids[0]) + 100, # Aumentar o limite de geração
26
- temperature=0.65, # Ajustar a criatividade
27
- top_p=0.9, # Usar nucleus sampling
28
- no_repeat_ngram_size=2 # Evitar repetições desnecessárias
 
29
  )
30
 
31
  generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
32
- # Processando para extrair apenas a resposta após "Resposta:"
33
- response_part = generated_text.split("Resposta:")[1] if "Resposta:" in generated_text else "Resposta não encontrada."
34
- final_response = response_part.split(".")[0] + "." # Assumindo que a resposta termina na primeira sentença.
35
 
36
  return final_response
37
 
 
3
  import torch
4
  from transformers import AutoTokenizer, AutoModelForCausalLM
5
 
6
+ tokenizer = AutoTokenizer.from_pretrained("distilgpt2")
7
+ model = AutoModelForCausalLM.from_pretrained("distilgpt2", torch_dtype=torch.float16)
8
+ model = model.to('cuda') if torch.cuda.is_available() else model.to('cpu')
9
 
10
  # Set the padding token to the end-of-sequence token
11
  if tokenizer.pad_token is None:
 
16
  # Função para gerar resposta
17
  def response(question):
18
  prompt = f"Considerando os dados: {df.to_string(index=False)}, onde 'ds' está em formato DateTime, 'real' é o valor da despesa e 'group' é o grupo da despesa. Pergunta: {question}"
19
+ inputs = tokenizer(prompt, return_tensors='pt', padding='max_length', truncation=True, max_length=256)
20
  attention_mask = inputs['attention_mask']
21
  input_ids = inputs['input_ids']
22
 
23
  generated_ids = model.generate(
24
  input_ids,
25
  attention_mask=attention_mask,
26
+ max_length=len(input_ids[0]) + 50, # Reduce max_length to speed up response
27
+ temperature=0.7,
28
+ top_p=0.9,
29
+ no_repeat_ngram_size=2,
30
+ num_beams=3, # Adding beams for more reliable generation
31
  )
32
 
33
  generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
34
+ final_response = generated_text.split("Resposta:")[-1].split(".")[0] + "."
 
 
35
 
36
  return final_response
37