Text Generation
PEFT
Safetensors
Transformers
Portuguese
llama
text-generation-inference
unsloth
llama-3
medical
pharmacoeconomics
json-extraction
conitec
conversational
Instructions to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with PEFT:
Task type is invalid.
- Transformers
How to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with Transformers:
# 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "raphaelfontes/Llama-3-8B-CONITEC-Extractor" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "raphaelfontes/Llama-3-8B-CONITEC-Extractor", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/raphaelfontes/Llama-3-8B-CONITEC-Extractor
- SGLang
How to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "raphaelfontes/Llama-3-8B-CONITEC-Extractor" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "raphaelfontes/Llama-3-8B-CONITEC-Extractor", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "raphaelfontes/Llama-3-8B-CONITEC-Extractor" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "raphaelfontes/Llama-3-8B-CONITEC-Extractor", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Unsloth Studio new
How to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for raphaelfontes/Llama-3-8B-CONITEC-Extractor to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for raphaelfontes/Llama-3-8B-CONITEC-Extractor to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for raphaelfontes/Llama-3-8B-CONITEC-Extractor to start chatting
Load model with FastModel
pip install unsloth from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="raphaelfontes/Llama-3-8B-CONITEC-Extractor", max_seq_length=2048, ) - Docker Model Runner
How to use raphaelfontes/Llama-3-8B-CONITEC-Extractor with Docker Model Runner:
docker model run hf.co/raphaelfontes/Llama-3-8B-CONITEC-Extractor
| base_model: unsloth/llama-3-8b-Instruct-bnb-4bit | |
| library_name: peft | |
| tags: | |
| - text-generation-inference | |
| - transformers | |
| - unsloth | |
| - llama | |
| - llama-3 | |
| - medical | |
| - pharmacoeconomics | |
| - json-extraction | |
| - conitec | |
| license: apache-2.0 | |
| language: | |
| - pt | |
| pipeline_tag: text-generation | |
| inference: | |
| parameters: | |
| temperature: 0.0 | |
| max_new_tokens: 512 | |
| # Llama 3 8B - Extrator JSON CONITEC | |
| [<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>](https://github.com/unslothai/unsloth) | |
| ## 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](https://github.com/unslothai/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: | |
| ```json | |
| { | |
| "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*). | |