Référentiel officiel du Barcelone Supercomputing Center (BSC) Modèles de langue biomédicale et pré-étendue clinique pour l'espagnol.
Nous avons publié nos meilleurs modèles sous la Licence 2.0 Apache pour encourager le développement des applications NLP espagnoles dans les domaines biomédicaux et cliniques.
Nous avons formé deux modèles et les avons rendus disponibles sur HuggingFace 'Models Hub sur les liens suivants:
De plus, une version LongFormer a été formée pour pouvoir travailler avec des tâches qui nécessitent des contextes plus importants, tels que le codage clinique. Les corpus utilisés sont les mêmes que ci-dessous. Le modèle peut également être trouvé sur Hugginface:
Nous avons affiné nos modèles pour la tâche de reconnaissance d'entité nommée (NER) et rendons les meilleurs modèles disponibles sur HuggingFace 'Models Hub sur les liens suivants:
Les corpus de formation sont composés de plusieurs corpus biomédicaux en espagnol, collectés dans les corpus et robots accessibles au public, et un corpus clinique du monde réel recueilli à partir de plus de 278 000 documents cliniques et billets. Pour obtenir un corpus de formation de haute qualité tout en conservant les idiosyncrasies de la langue clinique, un pipeline de nettoyage n'a été appliqué qu'aux corpus biomédicaux, gardant le corpus clinique sans voie. Essentiellement, les opérations de nettoyage utilisées sont:
Ensuite, les corpus biomédicaux sont concaténés et la déduplication mondiale parmi les corpus biomédicaux a été appliquée. Les résultats sont un corpus clinique d'environ 91 millions de jetons et un corpus biomédical d'environ 963 m de jetons. Finalement, le corpus clinique est concaténé avec le corpus biomédical nettoyé résultant en un corpus biomédical-clinique de taille moyenne pour l'espagnol composé de plus de jetons 1B. Le tableau ci-dessous montre quelques statistiques de base des corpus nettoyés individuels:
| Nom | Non. | Description |
|---|---|---|
| Robot médical | 903 558 136 | Crawler de plus de 3 000 URL appartenant aux domaines biomédicals et de la santé espagnols. |
| Cas cliniques divers. | 102 855 267 | Un mal de contenu médical, essentiellement des cas cliniques. Notez qu'un rapport de cas clinique est une publication scientifique où les médecins partagent des cas de patients et il est différent d'une note ou d'un document clinique. |
| Documents de DSE | 95 267,20 | Collecte de plus de 278 000 documents cliniques, y compris des rapports de sortie, des notes de cours cliniques et des rapports de rayons X, pour un total de 91 millions de jetons. https://huggingface.co/plantl-gob-es/longformmer-base-4096-biomedical-clinical-es |
| SciElo | 60 007,289 | Les publications écrites en espagnol ont rampé du serveur SCIELO espagnol en 2017. |
| Barr2_background | 24 516 442 | Reconnaissance et résolution de l'abréviation biomédicale (BARR2) contenant des sections d'étude de cas cliniques espagnoles à partir de diverses disciplines cliniques. |
| Wikipedia_life_sciences | 13 890 501 | Les articles de Wikipedia ont éclaté le 04/01/2021 avec la bibliothèque de l'API Wikipedia Python à partir de la catégorie "Ciencias_DE_LA_VIDA" jusqu'à un maximum de 5 sous-catégories. Plusieurs liens vers les mêmes articles sont ensuite jetés pour éviter de répéter du contenu. |
| Brevets | 13 463 387 | Google brevet dans le domaine médical pour l'Espagne (espagnol). Les codes acceptés (domaine médical) pour les fichiers JSON des brevets sont: "A61B", "A61C", "A61F", "A61H", "A61K", "A61L", "A61M", "A61B", "A61P". |
| Emea | 5 377 448 | Documents côté espagnol extraits de corpus parallèles fabriqués à partir de documents PDF de l'Agence européenne des médicaments. |
| Mespen_Medline | 4 166 077 | Articles d'espagnol extraits d'une collection de corpus parallèles espagnol-anglais composés d'une littérature scientifique biomédicale. La collection de ressources parallèles est agrégée à partir de la source MedlinePlus. |
| Pubment | 1 858 966 | Les articles en libre accès du référentiel PubMed ont rampé en 2017. |
Les modèles ont été affinés sur les tâches de reconnaissance d'entités nommées (NER) à l'aide de trois ensembles de données NER cliniques, tels que le pharmaconer, le cantémiste et le ictusnet. Nous avons abordé la tâche NER en tant que problème de classification de jeton en utilisant une couche linéaire standard avec le schéma de balise bio. Nous avons comparé nos modèles avec le domaine général espagnol Roberta-Base-Bne, le modèle multilingue du domaine général qui soutient le MBERT espagnol, le modèle anglais spécifique au domaine Biobert et trois modèles spécifiques au domaine basés sur la pré-formation continue, Mbert-Gallén, XLM-R-Gallén et Beto-Galén. Le tableau ci-dessous montre les scores F1 obtenus:
| Tâches / modèles | bsc-bio-es | bsc-bio-ehr-es | XLM-R-GALÉN | Beto-galun | Mbert-Galun | Mbert | Biobert | Roberta-Base-Bne |
|---|---|---|---|---|---|---|---|---|
| Pharmaconer | 0,8907 | 0,8913 | 0,8754 | 0,8537 | 0,8594 | 0,8671 | 0,8545 | 0,8474 |
| Pomiriste | 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 |
L'exemple suivant, montrez comment prédire les entités le modèle BSC-Bio-Ehr-ES ajusté sur l'ensemble de données de pharmaconer:
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}
]
Premièrement, cloner le projet:
git clone https://github.com/PlanTL-GOB-ES/lm-biomedical-clinical-es/blob/master/README.md
Configurez un environnement virtuel Python et activez-le
python3.8 -m venv venv; source venv/bin/activate
Installez tous les packages Python requis dans l'environnement virtuel exécutant la ligne suivante à partir du dossier principal du projet: pip install -r requirements.txt .
Enfin, exécutez la commande suivante sur le dossier principal du projet: bash ner.sh [MODEL_NAME] [DATASET_NAME] [SEED] , où
[MODEL_NAME] : Nom du modèle HuggingFace 'du modèle pré-entraîné que vous souhaitez utiliser.[DATASET_NAME] : Nom de l'ensemble de données HuggingFace 'de l'ensemble de données NER à utiliser. Peut être choisi parmi "plantl-gob-es / cantémiste-ner" et "plantl-gob-es / pharmaconer", selon l'ensemble de données que vous souhaitez utiliser.[SEED] : La graine que vous souhaitez utiliser. Cela permet de reproduire les mêmes résultats. Le script ner.sh affine un modèle de langue pré-entraîné pour la tâche NER en appliquant une tête de classification linéaire. Par défaut, le réglage fin gardait 10 époques avec une évaluation sur l'ensemble de développement à chaque époque. Le modèle atteignant les meilleures performances de l'ensemble de développement est sélectionné comme modèle final et évalué sur l'ensemble de tests. Le modèle le mieux qualifié est le stockage dans un chemin de sortie du type ./output/model-$model_name/dataset-$dataset_name/seed-$seed avec les dossiers de points de contrôle et les données Tensorboard (à l'intérieur du répertoire tb ).
Par exemple, pour affiner le modèle de langue BSC-Bio-Ehr-ES sur l'ensemble de données Pharmaconer, exécutez la commande:
bash ner.sh PlanTL-GOB-ES/bsc-bio-ehr-es PlanTL-GOB-ES/pharmaconer 42
Si vous utilisez ces modèles, veuillez citer notre travail:
@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.",
}
Ce projet est sous licence Apache, version 2.0
Copyright (C) 2021 Secréaría de Estado de Digitalización E Inteligencia Artificiel (Sedia)
Ce travail a été financé par le Secrétariat d'État espagnol pour la numérisation et l'intelligence artificielle (Sedia) dans le cadre du Plan-TL.
Les modèles publiés dans ce référentiel sont destinés à un usage généraliste et sont disponibles pour des tiers. Ces modèles peuvent avoir un biais et / ou toute autre distorsion indésirable.
Lorsque des tiers, déploient ou fournissent des systèmes et / ou des services à d'autres parties en utilisant l'un de ces modèles (ou en utilisant des systèmes basés sur ces modèles) ou devenir des utilisateurs des modèles, ils doivent noter qu'il est de leur responsabilité d'atténuer les risques résultant de leur utilisation et, en tout état de cause, de respecter les réglementations applicables, y compris des réglementations concernant l'utilisation de l'intelligence artificielle.
En aucun cas, le propriétaire des modèles (Sedia - Secrétariat d'État pour la numérisation et l'intelligence artificielle) ne sera ni le Créateur (BSC - Barcelone Supercomputing Center) sera responsable de tout résultat résultant de l'utilisation faite par des tiers de ces modèles.
Los Modelsos publicados en este repositorio tiennen una finalidad généralista y están a disposcición de terceros. Estos Modelos Pueden Tener Sesgos y / u otro Tipo de Distorsiones Indesebles.
CUANDO TERCEROS DESPLIEGUEN O proporcionen Sistemas O / O Servicios A OTRAS Partes Usando Alguno de Estos Modelos (O Utilizando Sistemas Basados en Estos Modelos) O se coniertan en usuarios de los moditos, deben de la surin uso y, en todo caso, cumplir con la normativa aplicable, incluyendo la normativa en materia de uso de Inteligencia artificiel.
En ningún Caso El ProPietario de los Models (Sedia - Secretaría de Estado de Digitalización E Intelicia Artificial) ni el Creador (BSC - Barcelone Supercomputing Center) Serán Responables de Los Resuldados Derivados del uso que hagan terceros de Estos Modèles.