Finetuning de modelos BERT para classificação de laudos médicos
Universidade Federal do ABC - Bacharelado em Ciência e Tecnologia
Inteligência Artificial 2024/Q3
Lenin Cristi
[email protected]
Resumo: Este artigo apresenta uma visão geral teórica dos modelos BERT e suas variantes, destacando seus fundamentos e aplicações. Além disso, fornece um guia prático que pode ser usado como base para realizar o fine-tuning desses modelos em tarefas de classificação de texto demonstrando sua aplicabilidade em contextos clínicos.
Abstract: This article presents a theoretical overview of BERT models and their variants, highlighting their foundations and applications. Additionally, it provides a practical guide that can serve as a basis for fine-tuning these models on text classification tasks, demonstrating their applicability in clinical contexts.
O passo a passo do finetuning está no notebook BERTFinetuning.
O conjunto de dados utilizado como base foi o Breast Cancer Wisconsin (Diagnostic) ele é amplamente utilizado para análise e classificação de câncer de mama. Ele contém medições computacionais de características extraídas de imagens de massas celulares em exames de mamografia. As características foram calculadas a partir de imagens digitalizadas de aspirações por agulha fina (FNA), sendo usadas para prever se uma massa é maligna (câncer) ou benigna (não cancerígena). Estes dados foram disponibilizados no repositório UCI Machine Learning e originalmente coletados pelo Dr. William H. Wolberg da University of Wisconsin Hospitals, Madison.
A preparação dos dados está no notebook PrepareData.
Os dados originais foram aumentados sinteticamente somente para fins da demonstração do passo a passo do finetuning.
Para abordagens de mundo real, são necessários métodos de aumento mais robustos utilizando por exemplo
-
Modelos LLM para geração de dados sintéticos (como no exemplo curto SinteticData que usa Llama 3.2) baseados em dados de mundo real (como o Wisconsin Dataset usado aqui) e revisados por corpo médico regularmente registrado.
-
Dados anotados diretamente por corpo médico regularmente registrado.
É preciso ter em mente também que modelos de aprendizado de máquina implementados na área de saúde sempre devem:
-
Ter sua acurácia acompanhada por retorno humano (Human Feedback)
-
Ter explicabilidade (Explainability)
-
Ter critérios de honestidade definidos (Fairness)
-
(Para dados de Brasileiros) Obedecer a LGPD para treinamento do modelo e inferência dos dados
-
(Na União Européia) Obedecer a GPDR para treinamento do modelo e inferência dos dados
-
(Nos Estados Unidos) Obedecer a HIPAA para treinamento do modelo e inferência dos dados
Vamos mostrar a seguir um exemplo de como criar o ambiente necessário usando o gerenciador de ambientes e pacotes Anaconda como base com o arquivo environments.yml neste repositório.
Utilize a referência oficial Anaconda para instalar o miniconda no seu ambiente https://docs.anaconda.com/miniconda/install/
Para criar o ambiente com os pacotes base a partir do arquivo
conda env create -f environment.yml
Após a instalação do ambiente base, ative ele com
conda activate bert
Instale o pytorch conforme seu sistema e dispositivos disponíveis, usando a referência oficial aqui https://pytorch.org/get-started/locally/
Abaixo um comando usando dispositivos Nvidia
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Instale as bibliotecas Hugginface usando a referência oficial aqui https://huggingface.co/docs/transformers/installation
Abaixo um comando comum de instalação (a biblioteca sentencepiece não faz parte do Hugginface mas foi icluida aqui)
pip install transformers datasets evaluate
pip install accelerate
pip install huggingface_hub
pip install sentencepiece
J. Devlin, M. Chang, K. Lee, and K. Toutanova
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2019), North American Chapter of the Association for Computational Linguistics
https://arxiv.org/abs/1810.04805
A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, Ł. Kaiser, and I. Polosukhin
Attention is All You Need (2017), Advances in Neural Information Processing Systems 30 (NIPS 2017)
https://arxiv.org/abs/1706.03762
M. E. Peters, M. Neumann, M. Iyyer, M. Gardner, C. Clark, K. Lee, and L. Zettlemoyer
Deep contextualized word representations (2018), Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers)
https://arxiv.org/abs/1802.05365
A. Radford, K. Narasimhan, T. Salimans, and I. Sutskever
Improving Language Understanding by Generative Pre-Training (2018)
https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
Breast Cancer Wisconsin (Diagnostic)
https://archive.ics.uci.edu/dataset/17/breast+cancer+wisconsin+diagnostic
A Complete Guide to BERT with Code
https://towardsdatascience.com/a-complete-guide-to-bert-with-code-9f87602e4a11
Fine-tuning BERT for Text Classification: A Step-by-Step Guide
https://medium.com/@coderhack.com/fine-tuning-bert-for-text-classification-a-step-by-step-guide-1a1c5f8e8ae1
Mastering BERT: A Comprehensive Guide from Beginner to Advanced in Natural Language Processing (NLP)
https://medium.com/@shaikhrayyan123/a-comprehensive-guide-to-understanding-bert-from-beginners-to-advanced-2379699e2b51
Hugging Face
Fine-Tuned BERT Models (2024), HuggingFace.co
https://huggingface.co/models?sort=trending&search=BERT
Meta Llama 3.2
https://ai.meta.com/blog/meta-llama-3/
https://github.com/meta-llama/llama3
https://huggingface.co/meta-llama
https://huggingface.co/meta-llama/Llama-3.2-3B
https://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2
https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD.md
CMCC - Universidade Federal do ABC (UFABC) - Santo André - SP - Brasil