How to use from the
Use from the
Transformers library
# Gated model: Login with a HF token with gated access permission
hf auth login
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("text-generation", model="raphaelfontes/Llama-3-8B-CONITEC-Extractor")
messages = [
    {"role": "user", "content": "Who are you?"},
]
pipe(messages)
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("raphaelfontes/Llama-3-8B-CONITEC-Extractor")
model = AutoModelForCausalLM.from_pretrained("raphaelfontes/Llama-3-8B-CONITEC-Extractor")
messages = [
    {"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
	messages,
	add_generation_prompt=True,
	tokenize=True,
	return_dict=True,
	return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
Quick Links

You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Llama 3 8B - Extrator JSON CONITEC

Visão Geral do Modelo

  • Licença: Apache-2.0
  • Modelo Base: unsloth/llama-3-8b-Instruct-bnb-4bit
  • Idioma principal: Português (pt-BR)

Este modelo é um fine-tuning do Llama-3-8B-Instruct otimizado especificamente para Extração de Entidades Nomeadas (NER) e Informações Farmacoeconômicas em relatórios técnicos da CONITEC (Ministério da Saúde - Brasil). O modelo foi treinado de forma acelerada (2x mais rápido) utilizando a biblioteca Unsloth e a biblioteca TRL da Hugging Face.

Ele atua como um extrator determinístico, recebendo contextos textuais fragmentados (chunks semânticos extraídos de PDFs) e estruturando dados financeiros e epidemiológicos em um payload JSON estrito.


Arquitetura de Dados e Pipeline (Lakehouse)

O modelo atua como o "motor de cognição" na camada Gold de um pipeline de dados orquestrado por Apache Airflow:

  1. Camada Bronze: Extração bruta dos PDFs dos relatórios da CONITEC no S3.
  2. Camada Silver: Conversão para Markdown, processamento espacial/geométrico das páginas (via PyMuPDF) e roteamento semântico (busca híbrida via Regex + Similaridade de Cosseno com TF-IDF) para isolar os parágrafos relevantes.
  3. Camada Gold: Inferência local com este modelo LLM para gerar a estrutura JSON final e consolidar em um Data Warehouse de Saúde Pública usando DuckDB e formato Parquet.

Schema JSON de Saída Esperado

O modelo foi condicionado para retornar rigorosamente o formato abaixo, utilizando null explícito para valores não encontrados na janela de contexto para evitar alucinações cognitivas:

{
  "cnpj": {"raw": "", "normalized": null},
  "laboratorio": {"raw": "", "normalized": null},
  "relatorio_tecnico": {"raw": "", "normalized": null},
  "data_publicacao": {"raw": "", "normalized": null},
  "medicamento": {"raw": "", "normalized": null},
  "apresentacao": {"raw": "", "normalized": null},
  "preco_cmed": {"raw": "", "normalized": null},
  "preco_inicial": {"raw": "", "normalized": null},
  "preco_final": {"raw": "", "normalized": null},
  "populacao_estimada": {"raw": "", "normalized": null}
}

Detalhes de Treinamento e Fine-Tuning

Ambiente e Hardware

  • Hardware: NVIDIA T4 (16GB VRAM) via Google Colab.
  • Frameworks: Unsloth, TRL, Transformers, Datasets.
  • Precisão de Treinamento: 4-bit Quantization (QLoRA) com Otimizador adamw_8bit e FP16/BF16 Misto (conforme suporte de hardware).

Configurações do Adaptador LoRA (PEFT)

  • Rank (r): 16
  • LoRA Alpha: 16
  • Target Modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
  • Dropout: 0.0
  • Bias: none

Hiperparâmetros do SFTTrainer

  • Max Sequence Length: 2048 tokens
  • Per Device Train Batch Size: 4
  • Gradient Accumulation Steps: 4
  • Learning Rate: 2e-5
  • LR Scheduler: Cosine
  • Num Epochs: 2
  • Warmup Steps: 0.03
  • Weight Decay: 0.01
  • Seed: 3407

Dataset

  • O dataset instrucional foi formatado utilizando o Chat Template nativo do modelo Llama-3 (contendo as roles system, user e assistant).
  • Divisão de Dados: 90% Treino / 10% Avaliação (test_size=0.1).
  • O prompt de sistema força a saída JSON e a simetria perfeita entre as chaves do banco de dados e a inferência final.

Limitações e Uso Indevido

  • Uso Exclusivo para Q&A e Extração: Este modelo sofreu fine-tuning agressivo para gerar JSON e obedecer regras determinísticas de extração de metadados. Ele não deve ser utilizado para geração de texto criativo livre, atuar como chatbot clínico ou prescrever tratamentos. Sua função é leitura e estruturação técnica.
  • Dependência de Contexto Filtrado: O modelo atinge altíssima performance quando alimentado com os chunks textuais já saneados pela arquitetura da camada Silver. O envio de relatórios em PDF inteiros e brutos para a sua janela de contexto resultará em degradação de precisão e provável estouro do limite de tokens (Context Window).
Downloads last month
-
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for raphaelfontes/Llama-3-8B-CONITEC-Extractor

Adapter
(159)
this model