File size: 7,861 Bytes
c0678f8 924f2fa c0678f8 924f2fa 14b339f 924f2fa c0678f8 924f2fa c0678f8 2bdcafe c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 a2281be 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa 756c8cf 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 924f2fa c0678f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
---
library_name: peft
base_model: recogna-nlp/internlm-chatbode-7b
---
# DrBode 360: Assistente Virtual Médico em Português Brasileiro
<p align="center">
<img src="https://huggingface.co/recogna-nlp/doutor-bode-7b-360k/resolve/main/Logo_DrBode.jpg" alt="Bode Logo" width="400" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
</p>
## Visão Geral
**DrBode 360k** é um modelo de linguagem de grande porte (LLM) ajustado para atuar como um assistente virtual médico em português brasileiro. Este modelo foi criado com o objetivo de fornecer respostas relevantes e confiáveis para perguntas relacionadas à saúde, sendo uma ferramenta útil para profissionais de saúde e pacientes. Ele foi treinado com **360 mil amostras**, combinando dados médicos e de instruções gerais, o que melhora sua capacidade de responder a perguntas tanto em contextos médicos quanto em outros cenários de uso.
<!-- Provide a quick summary of what the model is/does. -->
## Descrição do Modelo
O **DrBode 360k** é uma versão aprimorada do modelo [ChatBode](https://huggingface.co/recogna-nlp/internlm-chatbode-7b), que, por sua vez, é baseado no [InternLM2](https://huggingface.co/internlm/internlm2-chat-7b). O **DrBode 360** foi ajustado utilizando uma abordagem que combina dados médicos e dados gerais de instruções, permitindo que ele tenha um bom desempenho tanto em perguntas diretamente relacionadas à medicina quanto em questões mais amplas que requerem capacidade de seguir instruções.
Atributos principais:
- **Modelo Base:** ChatBode, ajustado para seguir instruções em português brasileiro.
- **Ajuste Fino:** Utiliza uma combinação de dados médicos e de instruções, com 360 mil amostras no total.
- **Domínio de Foco:** Perguntas sobre saúde, sintomas médicos e recomendações gerais.
O ajuste fino foi feito com **50% de dados médicos** e **50% de dados de instruções gerais**, permitindo que o modelo mantenha um equilíbrio entre especialização médica e versatilidade em outros domínios.
## Dados de Treinamento
O **DrBode 360** foi treinado com uma combinação de dois principais conjuntos de dados traduzidos para o português:
- **HealthCareMagic-100k-en:** Um conjunto de 100.000 amostras de interações médico-paciente, traduzidas do inglês para o português utilizando o modelo GPT-3.5.
- **MedQuAD:** Contém aproximadamente 9.500 pares de perguntas e respostas relacionados à área médica, também traduzidos.
Esses conjuntos de dados fornecem uma base sólida para o modelo responder a perguntas clínicas comuns, mas ainda há a necessidade de dados nativos que abordem condições e nuances culturais específicas do Brasil, como doenças endêmicas.
Além disso, o **DrBode 360** utilizou dados adicionais de instruções gerais para melhorar sua capacidade de seguir comandos e responder adequadamente em cenários que vão além do domínio médico.
<!-- Provide a longer summary of what this model is. -->
## Desempenho do Modelo
O desempenho do **DrBode 360** foi avaliado com base em seis critérios principais:
- **Precisão:** 3.6/5
- **Completude:** 3.3/5
- **Adequação:** 3.3/5
- **Segurança:** 3.3/5
- **Gramaticalidade:** 4.2/5
- **Coerência:** 4.2/5
-
O **DrBode 360** se destacou na capacidade de fornecer respostas gramaticalmente corretas e coerentes, o que é fundamental para garantir a clareza na comunicação. No entanto, a segurança das respostas médicas e a precisão ainda precisam de aprimoramentos, especialmente em contextos críticos onde recomendações médicas inadequadas podem ser feitas.
## Avaliação Qualitativa
As respostas geradas pelo **DrBode 360** foram avaliadas por profissionais médicos, que julgaram a qualidade das respostas com base nos seguintes critérios:
- **Precisão e segurança** das informações fornecidas.
- **Completude**, considerando a profundidade das respostas.
- **Adequação** em termos de estilo e tom, apropriados para uma resposta médica.
**ATENÇÃO**
Embora o **DrBode 360** tenha mostrado bom desempenho em muitos aspectos, foi identificado que o modelo pode, ocasionalmente, sugerir tratamentos que não são ideais, especialmente para condições regionais específicas, como o uso inadequado de medicamentos para sintomas de dengue. Isso demonstra a necessidade de melhorias nos dados de treinamento para lidar melhor com esses casos.
## Riscos e Considerações
O uso do **DrBode 360** deve ser feito com cautela, especialmente em contextos onde as respostas fornecidas podem ter implicações diretas na saúde dos usuários. Embora o modelo seja útil como assistente informativo, ele não deve substituir a consulta com profissionais de saúde qualificados.
Além disso, devido ao treinamento com dados traduzidos, algumas nuances regionais e culturais podem ser perdidas, o que pode levar a respostas inadequadas para condições médicas específicas do Brasil.
## Direções futuras
- **Conjuntos de dados nativos:** há uma necessidade urgente de desenvolver conjuntos de dados nativos em português brasileiro para refletir melhor os desafios regionais de saúde.
- **Ajuste fino aprimorado:** o trabalho futuro envolverá o ajuste fino diretamente no InternLM2 com conjuntos de dados otimizados para mitigar os efeitos do esquecimento catastrófico.
- **Avaliação robusta:** estruturas de avaliação mais estruturadas e consistentes são necessárias para avaliar melhor a qualidade e a segurança das respostas do modelo em cenários do mundo real.
## Como Usar
Aqui está um exemplo de como usar o modelo **DrBode 360:**
```python
!pip install -q einops accelerate bitsandbytes
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
# Nosso modelo base
model_name = "recogna-nlp/internlm-chatbode-7b"
# Configuração para quantização do nosso modelo
compute_dtype = getattr(torch, "float16")
bnb_config = BitsAndBytesConfig(
load_in_4bit = True,
bnb_4bit_quant_type = 'nf4',
bnb_4bit_compute_dtype = compute_dtype,
bnb_4bit_use_double_quant = False,
)
# Carregando modelo e tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
original_model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config = bnb_config,
trust_remote_code = True,
device_map = 'auto'
)
original_model = original_model.eval()
# Perguntas mandadas para o Dr Bode
evaluation_inputs = [
'Apareceram aftas na minha boca e uma amiga disse que posso usar nistatina oral para tratar. Para que serve e como usar nistatina oral? É indicado para tratar aftas?',
'Estou com dor no corpo, dor de cabeça, febre alta e um forte cansaço. O que pode ser? Devo tomar algum remédio?',
'Me explique, detalhadamente, qual a diferença entre uma gripe e um resfriado.'
]
## Carregando o Dr Bode
from peft import PeftModel, PeftConfig
model = PeftModel.from_pretrained(original_model, 'recogna-nlp/doutor-bode-7b-360k')
model = model.eval()
## Realizando a inferência e verificando as respostas
for q in evaluation_inputs:
print(q)
response, _ = model.chat(tokenizer, q, do_sample=False, history=[])
print(response)
print()
```
## Referência
Se você utilizar o **DrBode 360** em sua pesquisa ou aplicativo, por favor, cite o seguinte trabalho:
```
@misc{paiola2024adaptingllmsmedicaldomain,
title={Adapting LLMs for the Medical Domain in Portuguese: A Study on Fine-Tuning and Model Evaluation},
author={Pedro Henrique Paiola and Gabriel Lino Garcia and João Renato Ribeiro Manesco and Mateus Roder and Douglas Rodrigues and João Paulo Papa},
year={2024},
eprint={2410.00163},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2410.00163},
}
```
|