OpenMed ist eine Open-Source-KI-Modellierungsplattform für das Gesundheitswesen und die Biowissenschaften, die auf Hugging Face gehostet wird. Sie bietet über 380 kostenlose NER-Modelle (Named Entity Recognition), die sich auf die Extraktion von Schlüsselinformationen wie Medikamenten, Krankheiten, Genen und anatomischen Strukturen aus klinischen Texten und Forschungsliteratur konzentrieren. Diese Modelle basieren alle auf der Apache 2.0-Lizenz und können von jedermann frei verwendet werden.OpenMed hat sich zum Ziel gesetzt, die hohen Kostenbarrieren für KI im Gesundheitswesen zu beseitigen und Forschern, Ärzten und Entwicklern einen einfachen Zugang zu hochwertigen Tools zu ermöglichen, die die medizinische Forschung beschleunigen und die Patientenversorgung verbessern. Die Modelle der Plattform weisen eine hervorragende Leistung auf, die selbst teure kommerzielle Modelle bei mehreren Datensätzen mit bis zu 36% Hub übertrifft. openMed legt Wert auf Offenheit und die Zusammenarbeit mit der Gemeinschaft und begrüßt Beiträge und die Nutzung durch Nutzer aus der ganzen Welt.
Funktionsliste
- Bietet mehr als 380 Named Entity Recognition (NER)-Modelle für Medikamente, Krankheiten, Gene, Anatomie, Tumore und andere medizinische Bereiche.
- Unterstützt die Extraktion spezifischer Entitäten, wie z. B. chemische Substanzen, genetische Varianten, pathologische Informationen usw., aus klinischen Aufzeichnungen und Forschungsunterlagen.
- Die Modelle gibt es in verschiedenen Größen, von 65M bis 568M Parametern, und sind an unterschiedliche Hardwareumgebungen angepasst (z.B. 8GB bis 40GB GPUs).
- Nahtlose Integration in das Ökosystem der Hugging Face Transformers für einfaches Laden und Bereitstellen.
- Bietet eine Anwendung zur Modellsuche, mit der Benutzer Modelle nach Bereichen (z. B. Pharmakologie, Onkologie) oder Entitätstypen filtern können.
- Alle Modelle sind quelloffen, basieren auf der Apache 2.0-Lizenz und sind für den Einsatz in Forschungs- und Produktionsumgebungen frei.
- Unterstützt die Stapelverarbeitung medizinischer Textdaten, um die Effizienz einer umfangreichen Datenanalyse zu optimieren.
Hilfe verwenden
Installation und Vorbereitung der Umgebung
Die Modelle von OpenMed werden auf der Hugging Face-Plattform gehostet und die erforderliche Softwareumgebung muss vor der Nutzung installiert werden. Nachfolgend finden Sie die detaillierten Schritte:
- Installieren der Python-UmgebungStellen Sie sicher, dass Python 3.7 oder höher auf Ihrem System installiert ist. Dies kann mit dem folgenden Befehl überprüft werden:
python --version
Wenn Sie es nicht haben, können Sie es von der Python-Website herunterladen.
- Installation von Hanging Face TransformatorenDas OpenMed-Modell läuft auf dem Transformers-Framework, das installiert werden muss. Öffnen Sie ein Terminal und geben Sie ein:
pip install transformers datasets pandas
Dadurch werden Transformers, Datasets und Pandas für das Laden von Modellen und die Datenverarbeitung installiert.
- Überprüfen der GPU-Unterstützung (optional)Wenn Sie GPU-Beschleunigung verwenden, installieren Sie PyTorch oder TensorFlow und stellen Sie sicher, dass der GPU-Treiber und CUDA konfiguriert sind. Prüfen Sie die Verfügbarkeit von GPUs:
python -c "import torch; print(torch.cuda.is_available())"
Ausfuhren
True
Zeigt an, dass die GPU verfügbar ist.
Grundlegendes Nutzungsverfahren
Die Kernfunktion von OpenMed ist die Erkennung von benannten Entitäten (Named Entity Recognition, NER) zur Extraktion von strukturierten Informationen aus medizinischem Text. Unten ist ein Beispiel für OpenMed/OpenMed-NER-PharmaDetect-SuperClinical-434M
Modell als Beispiel, um zu zeigen, wie man das Modell lädt und verwendet:
- Modelle laden::
Hugging Face's verwendenpipeline
Schnittstelle zum Laden eines Modells. Der folgende Code lädt ein Drogenerkennungsmodell:from transformers import pipeline model_name = "OpenMed/OpenMed-NER-PharmaDetect-SuperClinical-434M" ner_pipeline = pipeline("token-classification", model=model_name, aggregation_strategy="simple")
model_name
: Geben Sie einen Modellnamen an, um andere Modelle auf der Seite OpenMed Models zu finden.aggregation_strategy="simple"
Aggregieren Sie die Ergebnisse zu vollständigen Entitäten, siehe die Dokumentation Hugging Face für Details.
- Behandlung von Einzeltext::
Geben Sie medizinischen Text ein, und das Modell erkennt die darin enthaltenen Entitäten. Beispiel:text = "患者服用10毫克阿司匹林治疗高血压。" entities = ner_pipeline(text) for entity in entities: print(f"实体: {entity['word']} ({entity['entity_group']}), 置信度: {entity['score']:.4f}")
Beispielhafte Ausgabe:
实体: 阿司匹林 (CHEMICAL), 置信度: 0.9987
Dies bedeutet, dass das Modell "Aspirin" als chemische Einheit erfolgreich identifiziert hat.
- Stapelverarbeitung von Text::
Bei großen Textmengen unterstützt OpenMed aus Gründen der Effizienz die Stapelverarbeitung. Der folgende Code zeigt, wie man mehrere Texte verarbeiten kann:texts = [ "患者服用10毫克阿司匹林治疗高血压。", "多柔比星治疗显示肿瘤显著消退。", "研究发现甲氨蝶呤对类风湿性关节炎有效。" ] results = ner_pipeline(texts, batch_size=8) for i, entities in enumerate(results): print(f"文本 {i+1} 实体:") for entity in entities: print(f" - {entity['word']} ({entity['entity_group']}): {entity['score']:.4f}")
Beispielhafte Ausgabe:
文本 1 实体: - 阿司匹林 (CHEMICAL): 0.9987 文本 2 实体: - 多柔比星 (CHEMICAL): 0.9972 文本 3 实体: - 甲氨蝶呤 (CHEMICAL): 0.9965
batch_size=8
Stapelgröße: Passen Sie die Stapelgröße entsprechend der Hardwareleistung an und verringern Sie den Wert, wenn der GPU-Speicher klein ist.
- Stapelverarbeitung mit Datensätzen::
OpenMed unterstützt die Verarbeitung von Hugging Face-Datensätzen. Der folgende Code zeigt, wie man den OpenMed-Datensatz lädt und verarbeitet:from datasets import load_dataset from transformers.pipelines.pt_utils import KeyDataset import pandas as pd # 加载医疗数据集 medical_dataset = load_dataset("BI55/MedText", split="train[:100]") data = pd.DataFrame({"text": medical_dataset["Completion"]}) dataset = Dataset.from_pandas(data) # 批量处理 batch_size = 16 results = [] for out in ner_pipeline(KeyDataset(dataset, "text"), batch_size=batch_size): results.extend(out) print(f"已处理 {len(results)} 条文本")
- Modelle nutzen, um Anwendungen zu entdecken::
OpenMed stellt unter OpenMed NER Model Discovery App eine interaktive Anwendung zur Verfügung, die von den Nutzern auf folgende Weise verwendet werden kann- Öffnen Sie die Anwendungsseite und geben Sie die Art der zu erkennenden Einheit ein (z. B. "chemischer Stoff" oder "Gen").
- Verwenden Sie die Filterfunktion, um geeignete Modelle nach Bereich (z. B. Pharmakologie, Onkologie) oder Modellarchitektur (BERT, RoBERTa) zu finden.
- Klicken Sie auf den Modell-Link, um den Modellnamen und das Code-Beispiel direkt zu erhalten, kopieren Sie es, um es lokal auszuführen.
Featured Function Bedienung
- Multidisziplinäre UnterstützungOpenMed-Modelle decken ein breites Spektrum von Bereichen wie Pharmakologie, Onkologie, Genomik, Pathologie und andere ab. Zum Beispiel ist die Verwendung von
OpenMed/OpenMed-NER-OncologyDetect-SuperClinical-434M
Identifizieren Sie krebsbezogene Entitäten:text = "KRAS基因突变驱动肿瘤形成。" entities = ner_pipeline(text) print(entities)
Beispielhafte Ausgabe:
[{'word': 'KRAS', 'entity_group': 'GENE', 'score': 0.9991}]
- Effiziente IntegrationDas Modell ist ökologisch kompatibel mit Hugging Face und unterstützt den schnellen Einsatz in Produktionsumgebungen. Benutzer können Modelle über Hugging Face Inference Endpoints bereitstellen, ohne dass lokale Hardware erforderlich ist.
- Beiträge der GemeinschaftBenutzer können OpenMed über die "Watch"-Funktion des Hugging Face folgen, um Funktionsanforderungen einzureichen oder neue Modelle beizusteuern.
caveat
- Sorgen Sie für eine stabile Internetverbindung, um die Modellgewichte herunterzuladen (einige Modelle sind sehr groß, z.B. benötigen 568M parametrische Modelle etwa 40GB Speicherplatz).
- Wenn der GPU-Speicher nicht ausreicht, empfiehlt es sich, ein kleineres Modell zu wählen (z. B. 65M Parameter für die
OpenMed-NER-PathologyDetect-TinyMed-65M
). - Prüfen Sie die OpenMed-Seite regelmäßig auf die neuesten Modell-Updates.
Anwendungsszenario
- Analyse von Krankenakten
Krankenhäuser können OpenMed-Modelle verwenden, um Informationen über Medikamente, Krankheiten usw. aus Patientenakten zu extrahieren. So kann beispielsweise der Name des Medikaments in "Patient nimmt Aspirin ein" schnell identifiziert und die Ärzte bei der Organisation der elektronischen Krankenakte unterstützt werden. - medizinische Forschung
Forscher können Modelle verwenden, um die Literatur zu analysieren und Informationen über Gene und Proteine zu extrahieren, um einen Wissensgraphen zu erstellen. So kann zum Beispiel der Zusammenhang zwischen dem BRCA2-Gen und Krebs aus einem Artikel extrahiert werden. - Entwicklung von Medikamenten
Pharmaunternehmen können Modelle nutzen, um Wechselwirkungen zwischen Chemikalien und Arzneimitteln zu ermitteln und die Arzneimittelentdeckung zu beschleunigen. Zum Beispiel die Analyse der Rolle von Doxorubicin in der Onkologiebehandlung. - Datenschutz für Patienten
Bei der De-Identifizierung durch das NER-Modell werden personenbezogene Daten (z. B. Name, Adresse) automatisch aus den Patientendaten entfernt und die Datenschutzbestimmungen wie HIPAA eingehalten.
QA
- Sind OpenMed-Modelle kostenlos?
Ja, alle Modelle basieren auf der Apache 2.0-Lizenz und sind für Forschung und kommerzielle Nutzung völlig frei. - Wie wählt man das richtige Modell?
Verwenden Sie die OpenMed NER Model Discovery App, um Modelle nach Domäne oder Entitätstyp zu filtern. Parametergrößen (z. B. 65M oder 434M) können auch auf der Grundlage von Hardwarebedingungen ausgewählt werden. - Welche Hardware wird für die Ausführung des Modells benötigt?
Die Modelle unterstützen GPUs mit 8 GB bis 40 GB, CPUs können auch kleinere Modelle ausführen, sind aber langsamer. Es werden mindestens 16 GB RAM empfohlen. - Wie gehen Sie mit großen Datenmengen um?
Verwenden Sie den Stapelverarbeitungscode, um diebatch_size
Parameter zur Anpassung an die Hardware. Siehe das Beispiel für die Stapelverarbeitung in der Hilfe.