Views
No views yet
tipo_logradouro: Tipo do logradouro (Rua, Avenida, Travessa, etc.)logradouro: Nome do logradouronumero: Númerocomplemento: Complemento (Apto, Bloco, Sala, etc.)bairro: Bairrocidade: Cidade/Municípiocep: CEPpip install transformers peft torch bitsandbytes accelerate1from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
2from peft import PeftModel
3import torch
4
5# Configuração de quantização
6bnb_config = BitsAndBytesConfig(
7 load_in_4bit=True,
8 bnb_4bit_use_double_quant=True,
9 bnb_4bit_quant_type="nf4",
10 bnb_4bit_compute_dtype=torch.float16
11)
12
13# Carrega modelo base
14base_model_name = "unsloth/llama-3.2-3b-instruct-unsloth-bnb-4bit"
15base_model = AutoModelForCausalLM.from_pretrained(
16 base_model_name,
17 quantization_config=bnb_config,
18 device_map="auto",
19 trust_remote_code=True
20)
21
22# Aplica adapter fine-tuned
23model = PeftModel.from_pretrained(base_model, "felipergcpqd/llama3b-finetunning-test")
24tokenizer = AutoTokenizer.from_pretrained("felipergcpqd/llama3b-finetunning-test")
25
26# Prompt
27system_prompt = """Você é um assistente especialista em estruturação de dados de endereços brasileiros.
28Sua tarefa é receber um endereço em texto não estruturado e extrair os componentes para o formato JSON."""
29
30user_content = "Estruture o seguinte endereço:\nRua das Flores 123 apto 45 Centro São Paulo SP 01234-567"
31
32messages = [
33 {"role": "system", "content": system_prompt},
34 {"role": "user", "content": user_content}
35]
36
37# Gera resposta
38text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
39inputs = tokenizer(text, return_tensors="pt").to(model.device)
40
41with torch.no_grad():
42 outputs = model.generate(
43 **inputs,
44 max_new_tokens=300,
45 temperature=0.1,
46 do_sample=True,
47 top_p=0.9
48 )
49
50response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
51print(response)1{
2 "tipo_logradouro": "Rua",
3 "logradouro": "das Flores",
4 "numero": "123",
5 "complemento": "apto 45",
6 "bairro": "Centro",
7 "cidade": "São Paulo",
8 "cep": "01234-567"
9}