Repositório Oficial do Centro de Supercomputação de Barcelona (BSC) Modelos de idiomas biomédicos e clínicos para espanhol.
Lançamos nossos melhores modelos sob a licença Apache 2.0 para incentivar o desenvolvimento de aplicações espanholas de PNL nos domínios biomédicos e clínicos.
Treinamos dois modelos e os disponibilizamos no hub de modelos Huggingface nos links a seguir:
Além disso, uma versão do Longformer foi treinada para poder trabalhar com tarefas que requerem contextos maiores, como a codificação clínica. O corpora usado é o mesmo que abaixo. O modelo também pode ser encontrado no Hugginface:
Ajustamos nossos modelos para a tarefa de reconhecimento de entidade nomeado (NER) e disponibilizamos os melhores modelos disponíveis no hub de modelos Huggingface nos links a seguir:
Os corpora de treinamento são compostos por várias corpora biomédicas em espanhol, coletadas de corpora e rastreadores disponíveis ao público, e um corpus clínico do mundo real coletado de mais de 278 mil documentos e notas clínicas. Para obter um corpus de treinamento de alta qualidade, mantendo as idiossincrasias do idioma clínico, um pipeline de limpeza foi aplicado apenas ao corpora biomédico, mantendo o corpus clínico sumo. Essencialmente, as operações de limpeza utilizadas são:
Em seguida, os corpora biomédico são concatenados e foram aplicadas desduplicação global adicional entre os corpora biomédica. Os resultados são um corpus clínico de cerca de 91 milhões de tokens e um corpus biomédico de cerca de 963 milhões de tokens. Eventualmente, o corpus clínico é concatenado para o corpus biomédico limpo, resultando em um corpus clínico biomédico de tamanho médio para espanhol composto por mais de 1B tokens. A tabela abaixo mostra algumas estatísticas básicas da corporação limpa individual:
| Nome | Não. Tokens | Descrição |
|---|---|---|
| Rastreador médico | 903.558.136 | Rastreador de mais de 3.000 URLs pertencentes a domínios biomédicos e de saúde espanhóis. |
| Casos clínicos Misc. | 102.855.267 | Uma miscelânea de conteúdo médico, casos essencialmente clínicos. Observe que um relato de caso clínico é uma publicação científica em que os médicos compartilham casos de pacientes e é diferente de uma nota ou documento clínico. |
| Documentos EHR | 95.267,20 | Coleção de mais de 278 mil documentos clínicos, incluindo relatórios de alta, notas de curso clínico e relatórios de raios-X, para um total de 91 milhões de tokens. https://huggingface.co/plantl-gob-es/longformer-base-4096-biomedical-clínico-es |
| Scielo | 60.007.289 | Publicações escritas em espanhol se arrastaram do servidor espanhol Scielo em 2017. |
| Bar2_background | 24.516.442 | Reconhecimento e resolução biomédica da abreviação (Barr2) contendo seções espanholas de estudo de caso clínico de uma variedade de disciplinas clínicas. |
| Wikipedia_life_sciences | 13.890.501 | Os artigos da Wikipedia se arrastaram em 04/01/2021 com a biblioteca Python API da Wikipedia, a partir da categoria "Ciencias_DE_LA_VIDA" até um máximo de 5 subcategorias. Vários links para os mesmos artigos são descartados para evitar repetir o conteúdo. |
| Patentes | 13.463.387 | Patente do Google em domínio médico para a Espanha (espanhol). Os códigos aceitos (domínio médico) para os arquivos JSON de patentes são: "A61b", "A61C", "A61F", "A61H", "A61K", "A61L", "A61M", "A61B", "A61p". |
| EMEA | 5.377.448 | Documentos do lado espanhol extraídos de corpora paralelos feitos de documentos em PDF da Agência Europeia de Medicamentos. |
| MESPEN_MEDLINE | 4.166.077 | Artigos do lado espanhol extraídos de uma coleção de corpus paralelo espanhol-inglês que consiste em literatura científica biomédica. A coleção de recursos paralelos é agregada da fonte MedLinePlus. |
| PubMed | 1.858.966 | Artigos de acesso aberto do repositório do PubMed rastejados em 2017. |
Os modelos foram ajustados nas tarefas de reconhecimento de entidade nomeadas (NER) usando três conjuntos de dados clínicos, como farmaconador, cantemist e ICTUSNET. Abordamos a tarefa NER como um problema de classificação de token usando uma camada linear padrão junto com o esquema de marcação biográfico. Comparamos nossos modelos com o espanhol Roberta-Bne-BNE, no domínio geral, o modelo multilíngue de domínio geral que suporta Mbert espanhol, o modelo inglês específico do domínio BioBert e três modelos específicos de domínio baseados em pré-treinamento contínuo, Mbert-Galén, XLM-R-Galén e Beto-Galén. A tabela abaixo mostra as pontuações F1 obtidas:
| Tarefas/modelos | BSC-Bio-es | BSC-Bio-EHR-ES | XLM-R-Galén | BETO-GALÉN | Mbert-Galén | Mbert | BioBert | ROBERTA-BASE-BNE |
|---|---|---|---|---|---|---|---|---|
| Farmaconer | 0,8907 | 0,8913 | 0,8754 | 0,8537 | 0,8594 | 0,8671 | 0,8545 | 0,8474 |
| Cantemist | 0,8220 | 0,8340 | 0,8078 | 0,8153 | 0,8168 | 0,8116 | 0,8070 | 0,7875 |
| ICTUSNET | 0,8727 | 0,8756 | 0,8716 | 0,8498 | 0,8509 | 0,8631 | 0,8521 | 0,8677 |
No exemplo a seguir, mostre como prever entidades que o modelo BSC-BIO-EHR-ES Fine ajustado no conjunto de dados do farmaconer:
from transformers import AutoTokenizer , AutoModelForTokenClassification , pipeline
tokenizer = AutoTokenizer . from_pretrained ( "PlanTL-GOB-ES/bsc-bio-ehr-es-pharmaconer" )
model = AutoModelForTokenClassification . from_pretrained ( "PlanTL-GOB-ES/bsc-bio-ehr-es-pharmaconer" )
pipe = pipeline ( task = 'token-classification' , model = 'PlanTL-GOB-ES/bsc-bio-ehr-es-pharmaconer' )
sentence = 'Por el hallazgo de múltiples fracturas por estrés, se procedió a estudio en nuestras consultas, realizándose análisis con función renal, calcio sérico y urinario, calcio iónico, magnesio y PTH, que fueron normales.'
results = pipe ( sentence )
print ( results ) # Expected output with the predicted entities:
[
{'word': 'Ġcalcio', 'score': 0.9963880181312561, 'entity': 'B-NORMALIZABLES', 'index': 24, 'start': 137, 'end': 143}, {'word': 'Ġcalcio', 'score': 0.9965023398399353, 'entity': 'B-NORMALIZABLES', 'index': 29, 'start': 163, 'end': 169}, {'word': 'Ġmagnesio', 'score': 0.996299147605896, 'entity': 'B-NORMALIZABLES', 'index': 32, 'start': 178, 'end': 186}, {'word': 'ĠPTH', 'score': 0.9950509667396545, 'entity': 'B-PROTEINAS', 'index': 34, 'start': 189, 'end': 192}
]
Primeiro, clone o projeto:
git clone https://github.com/PlanTL-GOB-ES/lm-biomedical-clinical-es/blob/master/README.md
Configure um ambiente virtual em Python e ative -o
python3.8 -m venv venv; source venv/bin/activate
Instale todos os pacotes Python necessários no ambiente virtual executando a seguinte linha da pasta principal do projeto: pip install -r requirements.txt .
Por fim, execute o seguinte comando na pasta principal do projeto: bash ner.sh [MODEL_NAME] [DATASET_NAME] [SEED] , onde
[MODEL_NAME] : o nome do modelo Huggingface 'do modelo pré -treinado que você deseja usar.[DATASET_NAME] : Huggingface 'Nome do conjunto de dados do conjunto de dados NER para usar. Pode ser escolhido de "Plantl-GOB-ES/Cantemist -ner" e "Plantl-GOB-ES/Farmaconer", dependendo do conjunto de dados que você deseja usar.[SEED] : a semente que você deseja usar. Isso permite reproduzir os mesmos resultados. O script ner.sh ajustou um modelo de idioma pré-treinamento para a tarefa NER aplicando um chefe de classificação linear. Por padrão, o ajuste fino de 10 épocas com uma avaliação sobre o desenvolvimento de todas as épocas. O modelo que atinge o melhor desempenho no conjunto de desenvolvimento é selecionado como o modelo final e avaliado no conjunto de testes. O modelo mais bem treinado é armazenar em um caminho de saída do tipo ./output/model-$model_name/dataset-$dataset_name/seed-$seed junto com as pastas de pontos de verificação e os dados de tensorboard (dentro do diretório tb ).
Por exemplo, para ajustar o modelo de idioma BSC-Bio-EHR-ES no conjunto de dados do farmaconer, execute o comando:
bash ner.sh PlanTL-GOB-ES/bsc-bio-ehr-es PlanTL-GOB-ES/pharmaconer 42
Se você usar esses modelos, cite nosso trabalho:
@inproceedings{carrino-etal-2022-pretrained,
title = "Pretrained Biomedical Language Models for Clinical {NLP} in {S}panish",
author = "Carrino, Casimiro Pio and
Llop, Joan and
P{`a}mies, Marc and
Guti{'e}rrez-Fandi{~n}o, Asier and
Armengol-Estap{'e}, Jordi and
Silveira-Ocampo, Joaqu{'i}n and
Valencia, Alfonso and
Gonzalez-Agirre, Aitor and
Villegas, Marta",
booktitle = "Proceedings of the 21st Workshop on Biomedical Language Processing",
month = may,
year = "2022",
address = "Dublin, Ireland",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.bionlp-1.19",
doi = "10.18653/v1/2022.bionlp-1.19",
pages = "193--199",
abstract = "This work presents the first large-scale biomedical Spanish language models trained from scratch, using large biomedical corpora consisting of a total of 1.1B tokens and an EHR corpus of 95M tokens. We compared them against general-domain and other domain-specific models for Spanish on three clinical NER tasks. As main results, our models are superior across the NER tasks, rendering them more convenient for clinical NLP applications. Furthermore, our findings indicate that when enough data is available, pre-training from scratch is better than continual pre-training when tested on clinical tasks, raising an exciting research question about which approach is optimal. Our models and fine-tuning scripts are publicly available at HuggingFace and GitHub.",
}
Este projeto está licenciado sob a licença Apache, versão 2.0
Copyright (c) 2021 Secretaría de Estado de Digitalización e Inteligncia Artificial (Sedia)
Este trabalho foi financiado pelo Secretariado do Estado espanhol para digitalização e inteligência artificial (Sedia) dentro da estrutura do Plano-TL.
Os modelos publicados neste repositório destinam -se a fins generalistas e estão disponíveis para terceiros. Esses modelos podem ter viés e/ou quaisquer outras distorções indesejáveis.
Quando terceiros, implante ou forneça sistemas e/ou serviços a outras partes usando qualquer um desses modelos (ou usando sistemas com base nesses modelos) ou se tornam usuários dos modelos, eles devem observar que é sua responsabilidade mitigar os riscos decorrentes de seu uso e, em qualquer caso, para cumprir os regulamentos aplicáveis, incluindo regulamentos relativos ao uso da inteligência artificial.
Em nenhum caso o proprietário dos modelos (Sedia - Secretariado do Estado de Digitalização e Inteligência Artificial) nem o Centro de Supercomputação do Criador (BSC - Barcelona) será responsável por quaisquer resultados decorrentes do uso feito por terceiros desses modelos.
Los Modelos Publicados en Este repositorio tienen una Finalidad generalista y Están A Dispossición de Terceros. Estos modelos pueden tener sesgos y/u otro topo de distorsions indesaberáveis.
Cuando terceros desplieguen o proporcionen sistemas y/o servicios a otras partes usando alguno de estos modelos (o utilizando sistemas basados en estos modelos) o se conviertan en usuarios de los modelos, deben tener en cuenta que es su responsabilidad mitigar los riesgos derivados de su Uso y, pt TODO Caso, Cumplir con la normativa applicable, incluyendo la normative en Materia de Uso de Inteligência Artificial.
Enningún Caso el ProPietario de Los Modelos (Sedia - Secretaría de Estado de Digitalizan e Inteligência Artificial) Ni El Creador (BSc - Barcelona Supercomputing Center) Serán Responsable De Los Resultados Derivados del Uso Uso Que Hagan Terceros de Estas Modelos Modelos.