OpenMedは、ヘルスケアとライフサイエンスに特化したオープンソースのAIモデリングプラットフォームで、Hugging Face上でホストされています。臨床テキストや研究文献から、薬、病気、遺伝子、解剖学的構造などの重要な情報を抽出することに焦点を当てた、380以上の無料の固有表現認識(NER)モデルを提供しています。これらのモデルはすべてApache 2.0ライセンスに基づいており、誰でも自由に使用することができます。OpenMedの目標は、医療AIに対する高コストの障壁を取り除き、研究者、医師、開発者が、医学研究を加速し、患者サービスを向上させる高品質のツールに簡単にアクセスできるようにすることです。openMedは、オープン性とコミュニティのコラボレーションを重視しており、世界中のユーザーからの貢献と利用を歓迎している。
機能一覧
- 薬、病気、遺伝子、解剖学、腫瘍、その他の医療分野をカバーする380以上の名前付き固有表現認識(NER)モデルを提供。
- 臨床記録や研究論文から、化学物質、遺伝的変異体、病理学的情報など、特定のエンティティの抽出をサポート。
- このモデルには、65Mから568Mまでのさまざまなサイズがあり、さまざまなハードウェア環境(たとえば、8GBから40GBのGPU)に対応している。
- ハギング・フェイス・トランスフォーマーのエコシステムとのシームレスな統合により、ローディングと展開が容易に。
- ドメイン(薬理学、腫瘍学など)やエンティティの種類によってモデルをフィルタリングできるモデル発見アプリケーションを提供します。
- すべてのモデルはApache 2.0ライセンスに基づくオープンソースであり、研究および生産環境での使用は無料である。
- 医療テキストデータのバッチ処理をサポートし、大規模データ解析の効率を最適化。
ヘルプの使用
インストールと環境の準備
OpenMedのモデルはHugging Faceプラットフォーム上でホストされており、使用前に必要なソフトウェア環境をインストールする必要があります。以下はその詳細な手順です:
- Python環境のインストールPython 3.7以降がシステムにインストールされていることを確認してください。これは以下のコマンドで確認できます:
python --version
お持ちでない方は、Pythonのウェブサイトからダウンロードできます。
- ハギング・フェイス・トランスフォーマーの設置OpenMedモデルはTransformersフレームワーク上で動くので、それをインストールする必要がある。ターミナルを開いて
pip install transformers datasets pandas
これにより、モデルのロードとデータ処理のためのTransformers、Datasets、Pandasがインストールされる。
- GPUサポートの確認(オプション)GPUアクセラレーションを使用する場合は、PyTorchまたはTensorFlowをインストールし、GPUドライバとCUDAが設定されていることを確認してください。GPUの可用性を確認してください:
python -c "import torch; print(torch.cuda.is_available())"
輸出
True
GPUが使用可能であることを示す。
基本的な使用プロセス
OpenMedの中核機能は、医療テキストから構造化された情報を抽出するための名前固有表現認識(NER)である。以下はその例である。 OpenMed/OpenMed-NER-PharmaDetect-SuperClinical-434M
モデルをロードして使用する方法を例として示します:
- 積載モデル::
ハギング・フェイスの使用pipeline
モデルをロードするインターフェース。次のコードは薬物認識モデルをロードします: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
モデル名を指定すると、OpenMed Models ページで他のモデルを検索できます。aggregation_strategy="simple"
詳細はハギング・フェイスのドキュメントを参照。
- 単一テキストの取り扱い::
医療用テキストを入力すると、モデルがその中のエンティティを認識する。例text = "患者服用10毫克阿司匹林治疗高血压。" entities = ner_pipeline(text) for entity in entities: print(f"实体: {entity['word']} ({entity['entity_group']}), 置信度: {entity['score']:.4f}")
出力例:
实体: 阿司匹林 (CHEMICAL), 置信度: 0.9987
これは、モデルが「アスピリン」を化学的実体として同定することに成功したことを意味する。
- テキスト一括処理::
大量のテキストを処理する場合、OpenMedは効率化のためにバッチ処理をサポートしています。次のコードは、複数のテキストを処理する方法を示しています: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}")
出力例:
文本 1 实体: - 阿司匹林 (CHEMICAL): 0.9987 文本 2 实体: - 多柔比星 (CHEMICAL): 0.9972 文本 3 实体: - 甲氨蝶呤 (CHEMICAL): 0.9965
batch_size=8
ハードウェアの性能に応じてバッチサイズを調整し、GPUメモリが少ない場合は値を小さくします。
- データセットによるバッチ処理::
OpenMedはHugging Faceデータセットの処理をサポートしている。次のコードは、OpenMedデータセットを読み込んで処理する方法を示しています: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)} 条文本")
- モデルを使ってアプリケーションを発見する::
OpenMedは、OpenMed NER Model Discovery Appでインタラクティブなモデルディスカバリーアプリケーションを提供しています:- アプリケーション・ページを開き、認識するエンティティのタイプ(「化学物質」や「遺伝子」など)を入力します。
- フィルター機能を使用して、ドメイン(薬理学、腫瘍学など)またはモデル・アーキテクチャ(BERT、RoBERTa)によって適切なモデルを検索します。
- モデルのリンクをクリックすると、モデル名とコード例が直接表示されます。
注目の機能操作
- 学際的サポートOpenMedモデルは、薬理学、腫瘍学、ゲノム学、病理学など幅広い分野をカバーしています。例えば
OpenMed/OpenMed-NER-OncologyDetect-SuperClinical-434M
がんに関連する事業体を特定する:text = "KRAS基因突变驱动肿瘤形成。" entities = ner_pipeline(text) print(entities)
出力例:
[{'word': 'KRAS', 'entity_group': 'GENE', 'score': 0.9991}]
- 効率的な統合このモデルはHugging Faceと生態学的に互換性があり、本番環境への迅速な展開をサポートします。ユーザーはローカルハードウェアを必要とせず、Hugging Face推論エンドポイントを介してモデルを展開することができます。
- 地域貢献Hugging Faceの "Watch "機能を使ってOpenMedをフォローし、機能要望を提出したり、新しいモデルを投稿することができます。
ほら
- モデルウェイトをダウンロードするために、安定したインターネット接続を確保する(モデルによってはサイズが大きく、例えば568Mのパラメトリックモデルには約40GBのストレージが必要)。
- GPUメモリが不足する場合は、より小さいモデル(例えば、65Mのパラメータを持つ
OpenMed-NER-PathologyDetect-TinyMed-65M
). - OpenMedのページを定期的にチェックして、最新のモデルアップデートをご確認ください。
アプリケーションシナリオ
- 臨床記録の分析
病院はOpenMedモデルを使用して、患者の記録から薬や病気などに関する情報を抽出することができる。例えば、"Patient taking aspirin"(アスピリンを服用している患者)の薬剤名を素早く特定し、医師が電子カルテを整理する手助けをすることができる。 - 医学研究
研究者はこのモデルを使って文献を分析し、遺伝子やタンパク質に関する情報を抽出して知識グラフを構築することができる。例えば、BRCA2遺伝子とがんとの関連を論文から抽出することができる。 - 医薬品開発
製薬会社はモデルを使って化学物質と薬物の相互作用を特定し、創薬を加速することができる。例えば、がん治療におけるドキソルビシンの役割の分析などである。 - 患者のプライバシー
NERモデルによる非識別化は、患者記録から個人情報(氏名、住所など)を自動的に削除し、HIPAAなどのプライバシー規制に準拠する。
品質保証
- OpenMedのモデルは無料ですか?
はい、すべてのモデルはApache 2.0ライセンスに基づいており、研究および商用利用は完全に無料です。 - 正しいモデルの選び方は?
OpenMed NER Model Discovery Appを使用して、ドメインやエンティティタイプでモデルをフィルタリングします。パラメータサイズ(例:65Mまたは434M)は、ハードウェアの条件に基づいて選択することもできます。 - モデルの実行に必要なハードウェアは?
8GBから40GBのGPUをサポートするモデルもあり、CPUはそれ以下のモデルも動作させることができるが、速度が遅くなる。少なくとも16GBのRAMを推奨する。 - 大規模なデータセットをどのように扱っていますか?
バッチ処理コードを使用してbatch_size
パラメータをハードウェアに合わせる。ヘルプのバッチ処理例を参照してください。