As questões de saúde mental são muitas vezes mal compreendidas ou não totalmente compreendidas pelo público em geral. Essa falta de compreensão pode gerar medo, desconforto e percepções negativas sobre as condições de saúde mental. As representações mediáticas sobre a saúde mental perpetuam frequentemente estereótipos negativos, conduzindo a conceitos errados e ao medo. Superar o estigma da saúde mental requer uma abordagem multifacetada que envolva educação, sensibilização, promoção de empatia e compreensão, desafio de estereótipos e garantia de cuidados de saúde mental acessíveis e de qualidade. A saúde mental impacta diretamente o bem-estar geral, a qualidade de vida e a capacidade de funcionar efetivamente na vida diária de um indivíduo. Uma boa saúde mental é essencial para experimentar felicidade, realização e um senso de propósito. A saúde mental e a saúde física estão intimamente interligadas. Problemas de saúde mental não tratados podem levar ou agravar problemas de saúde física, como doenças cardiovasculares, sistema imunológico enfraquecido e condições crônicas.
Os chatbots oferecem uma plataforma prontamente disponível e acessível para indivíduos que buscam suporte. Eles podem ser acessados a qualquer hora e em qualquer lugar, prestando assistência imediata a quem precisa. Os chatbots podem oferecer respostas empáticas e sem julgamentos, fornecendo suporte emocional aos usuários. Embora não possam substituir inteiramente a interação humana, podem ser um complemento útil, especialmente em momentos de angústia.
NOTA: É importante observar que, embora os chatbots de saúde mental possam ser úteis, eles não substituem os cuidados profissionais de saúde mental. Podem complementar os serviços de saúde mental existentes, fornecendo apoio e recursos adicionais.
O conjunto de dados foi selecionado a partir de perguntas frequentes on-line relacionadas à saúde mental, blogs populares de saúde como WebMD, Mayo Clinic e Healthline, e outros artigos wiki relacionados à saúde mental. O conjunto de dados foi pré-processado em formato conversacional de forma que tanto as perguntas feitas pelo paciente quanto as respostas dadas pelo médico estejam no mesmo texto. O conjunto de dados para esta IA conversacional de saúde mental pode ser encontrado aqui: heliosbrahma/mental_health_chatbot_dataset.
NOTA: Todas as perguntas e respostas foram anonimizadas para remover quaisquer dados PII e pré-processadas para remover quaisquer caracteres indesejados.
Esta é a etapa principal de todo o projeto. Usei o modelo pré-treinado Falcon-7B fragmentado e o ajustei para usar a técnica QLoRA em meu conjunto de dados de saúde mental personalizado. Todo o processo de ajuste fino levou menos de uma hora e foi totalmente ajustado na Nvidia A100 do Google Colab Pro. Mas também pode ser treinado em GPU de nível gratuito usando Nvidia T4 fornecida pela Colab. Nesse caso, temos que garantir o uso de max_steps inferiores a 150. A lógica por trás do uso do modelo pré-treinado fragmentado é mencionada em minha postagem no blog: Ajuste fino do modelo de linguagem grande Falcon-7B usando QLoRA no conjunto de dados de saúde mental
Adicionando aqui o relatório de rastreamento de métricas de perda de treinamento dos registros de monitoramento WandB para execução de treinamento de 180 etapas: registros de treinamento/perda para Falcon-7B PEFT
NOTA: Tente alterar os hiperparâmetros em TrainingArguments e LoraConfig com base em seus requisitos. Com as configurações citadas no notebook, consegui 0,031 de perda de treino após 320 passos.
O modelo ajustado PEFT foi atualizado aqui: heliosbrahma/falcon-7b-sharded-bf16-finetuned-mental-health-conversational.
Execute o notebook gradio_chatbot_app.ipynb
para obter uma interface semelhante a um chatbot usando Gradio como frontend para demonstração. Experimente diferentes configurações de hiperparâmetros para geração de respostas e execute várias consultas para verificar a qualidade da resposta gerada.
Demora menos de 3 minutos para gerar a resposta do modelo. Compare a resposta do modelo PEFT com a resposta do modelo original no notebook funetuned_qlora_falcon7b.ipynb
.
Escrevi um blog técnico detalhado explicando os principais conceitos do método de ajuste fino QLoRA e PEFT: Ajuste fino do modelo de linguagem grande Falcon-7B usando QLoRA no conjunto de dados de saúde mental. Se você ainda tiver alguma dúvida, pode abrir um issue neste repositório ou comentar no meu blog.
Se você gosta deste projeto, por favor, este repositório .