BioGPT - このリポジトリには、Renqian Luo、Liai Sun、Yingce Xia、Tao Qin、Sheng Zhang、Hoifung Poon、Tie-Yan LiuによるBioGPT:生物医学テキストの生成とマイニングのための生成事前トレーニングトランスフォーマーの実装が含まれています。

(NULL)

Created at: 2022-08-15 13:55:55
Language: Python
License: MIT

バイオGPT

このリポジトリには、Renqian Luo、Liai Sun、Yingce Xia、Tao Qin、Sheng Zhang、Hoifung Poon、Tie-Yan LiuによるBioGPT:生物医学テキストの生成とマイニングのための生成事前トレーニングトランスフォーマーの実装が含まれています。

ニュース!

  • 1.5Bパラメータを持つBioGPT-Largeモデルが登場し、現在、81%の精度のSOTAパフォーマンスを備えたPubMedQAタスクで利用可能です。評価については、PubMedQAでの質問応答を参照してください。

要件とインストール

  • PyTorch バージョン == 1.12.0
  • Python バージョン == 3.10
  • フェアシーケンスバージョン== 0.12.0:
git clone https://github.com/pytorch/fairseq
cd fairseq
git checkout v0.12.0
pip install .
python setup.py build_ext --inplace
cd ..
  • モーセ
git clone https://github.com/moses-smt/mosesdecoder.git
export MOSES=${PWD}/mosesdecoder
  • 高速BPE
git clone https://github.com/glample/fastBPE.git
export FASTBPE=${PWD}/fastBPE
cd fastBPE
g++ -std=c++11 -pthread -O3 fastBPE/main.cc -IfastBPE -o fast
  • サクレモーセ
pip install sacremoses
  • sklearn
pip install scikit-learn

環境変数を設定し、後で必要になるため、モーゼとfastBPEのパスに繰り返し設定することを忘れないでください。

MOSES
FASTBPE

はじめ

事前トレーニング済みモデル

事前トレーニング済みのBioGPTモデルチェックポイントと、ダウンストリームタスク用の微調整されたチェックポイントを提供します

モデル 形容 リンク
バイオGPT 事前トレーニング済みの BioGPT モデルのチェックポイント リンク
バイオGPT-ラージ 事前トレーニング済みの BioGPT - 大規模モデル チェックポイント リンク
BioGPT-QA-PubMedQA-BioGPT PubMedQAでの質問応答タスクのための微調整されたBioGPT リンク
BioGPT-QA-PubMEDQA-BioGPT-Large PubMedQAでの質問応答タスクのための微調整されたBioGPT-Large。 リンク
バイオGPT-RE-BC5CDR BC5CDRにおける関係抽出タスクのための微調整されたBioGPT リンク
BioGPT-RE-DDI DDIにおける関係抽出タスクのための微調整されたBioGPT リンク
BioGPT-RE-DTI KD-DTIにおける関係抽出タスクのための微調整されたBioGPT リンク
バイオGPT-DC-HoC HoCでの文書分類タスクのための微調整されたBioGPT リンク

それらをダウンロードして、このプロジェクトのフォルダに解凍します。

checkpoints

例えば:

mkdir checkpoints
cd checkpoints
wget https://msramllasc.blob.core.windows.net/modelrelease/BioGPT/checkpoints/Pre-trained-BioGPT.tgz
tar -zxvf Pre-trained-BioGPT.tgz

使用例

コードで事前トレーニング済みの BioGPT モデルを使用します。

import torch
from fairseq.models.transformer_lm import TransformerLanguageModel
m = TransformerLanguageModel.from_pretrained(
        "checkpoints/Pre-trained-BioGPT", 
        "checkpoint.pt", 
        "data",
        tokenizer='moses', 
        bpe='fastbpe', 
        bpe_codes="data/bpecodes",
        min_len=100,
        max_len_b=1024)
m.cuda()
src_tokens = m.encode("COVID-19 is")
generate = m.generate([src_tokens], beam=5)[0]
output = m.decode(generate[0]["tokens"])
print(output)

コード内の薬物標的相互作用のために、KD-DTIで微調整されたBioGPTモデルを使用します。

import torch
from src.transformer_lm_prompt import TransformerLanguageModelPrompt
m = TransformerLanguageModelPrompt.from_pretrained(
        "checkpoints/RE-DTI-BioGPT", 
        "checkpoint_avg.pt", 
        "data/KD-DTI/relis-bin",
        tokenizer='moses', 
        bpe='fastbpe', 
        bpe_codes="data/bpecodes",
        max_len_b=1024,
        beam=1)
m.cuda()
src_text="" # input text, e.g., a PubMed abstract
src_tokens = m.encode(src_text)
generate = m.generate([src_tokens], beam=args.beam)[0]
output = m.decode(generate[0]["tokens"])
print(output)

より下流のタスクについては、以下を参照してください。

ダウンストリームタスク

の対応するフォルダを参照してください。

BC5CDRにおけるリレーション抽出

KD-DTI でのリレーション抽出

DDIでのリレーション抽出

HoCでの文書分類

PubMedQAでの質問応答

テキスト生成

ライセンス

BioGPTはMITライセンスを取得しています。 ライセンスは、事前トレーニング済みモデルにも適用されます。

貢献

このプロジェクトは、貢献と提案を歓迎します。ほとんどの投稿では、 コントリビューターライセンス契約(CLA)は、あなたが私たちに付与する権利があり、実際に付与することを宣言しています あなたの投稿を使用する権利。詳しくは、https://cla.opensource.microsoft.com をご覧ください。

プルリクエストを送信すると、CLAボットは、提供する必要があるかどうかを自動的に判断します CLAであり、PRを適切に装飾します(ステータスチェック、コメントなど)。指示に従ってください ボットによって提供されます。これは、CLAを使用してすべてのリポジトリで一度だけ行う必要があります。

このプロジェクトでは、マイクロソフト オープンソース行動規範を採用しています。 詳細については、行動規範に関するFAQまたは 追加の質問やコメントがある場合は opencode@microsoft.com に連絡してください。

商標

このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。マイクロソフトの許可された使用 商標またはロゴは、Microsoft の商標およびブランド ガイドラインの対象であり、それに従う必要があります。 このプロジェクトの修正バージョンでのマイクロソフトの商標またはロゴの使用は、混乱を引き起こしたり、マイクロソフトのスポンサーシップを暗示したりしてはなりません。 第三者の商標またはロゴの使用は、それらの第三者のポリシーの対象となります。