🚀 WiNGPT2
WiNGPT は、GPTに基づく医療分野の大規模言語モデルです。専門的な医学知識、医療情報、データを統合し、医療業界に智能化された医療質問応答、診断支援、医学知識などの情報サービスを提供し、診療効率と医療サービスの質を向上させることを目的としています。
🚀 クイックスタート
WiNGPT(衛寧健康医療言語大モデル、以下WiNGPTと略称)の開発とトレーニングは2023年1月に始まりました。
3月には、衛寧健康人工知能研究所がWiNGPT - 001の実現可能性検証を完了し、内部テストを開始しました。WiNGPT - 001は汎用的なGPTアーキテクチャを採用し、60億のパラメータを持ち、事前学習から微調整までの全過程を独自開発しています。
今年5月までに、WiNGPT - 001のトレーニングデータ量は、9720項目の医薬品知識、18種類の医薬品タイプ、7200項目以上の疾病知識、2800項目以上の検査検体知識、53冊の書籍知識、1100以上のガイド文書に達し、総トレーニングトークン数は37億になりました。
7月には、WiNGPTは7Bにアップグレードされ、最新のモデルアーキテクチャを採用し、検索式強化生成機能が追加されるとともに、13Bモデルのトレーニングと業界招待テストが開始されました。
9月には、最新バージョンのWiNGPT2がリリースされました。新しいバージョンは簡単に拡張およびカスタマイズでき、下流の様々なアプリケーションシーンに使用できます。
オープンソースコミュニティに貢献するため、WiNGPT2 - 7B/14Bバージョンをオープンソース化しました。私たちの目的は、より多くのオープンソースプロジェクトを通じて、医療言語大モデル技術と業界の共同発展を加速し、最終的に人類の健康に貢献することです。
✨ 主な機能
- 核心機能
- 医学知識問答:医学、健康、疾病などの分野に関する質問に答えることができ、症状、治療、薬剤、予防、検査などを含みます。
- 自然言語理解:医学用語、病歴などの医療テキスト情報を理解し、重要な情報を抽出して分類します。
- 多輪対話:医師などの様々な医療専門家の役割を果たしてユーザーと対話し、文脈に基づいてより正確な回答を提供します。
- 多タスクサポート:32の医療タスク、8つの医療シーンの18サブシーンをサポートします。
- モデルアーキテクチャ
- Transformerベースの70億/140億パラメータ規模の大規模言語モデルで、RoPE相対位置符号化、SwiGLU活性化関数、RMSNormを採用し、事前学習モデルとしてQwen - 7b1を使用しています。
- 主な特徴
- 高い精度:大規模な医療コーパスでトレーニングされており、高い精度と低い誤診率を持っています。
- シーン指向:様々な医療シーンと実際のニーズに合わせて最適化されており、アプリケーションの実装に適しています。
- 反復最適化:最新の医学研究を継続的に収集し学習し、モデルの性能とシステム機能を不断に向上させます。
📦 インストール
推論
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
model_path = "WiNGPT2-7B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
model = model.eval()
generation_config = GenerationConfig(
num_beams=1,
top_p=0.75,
top_k=30,
repetition_penalty=1.1,
max_new_tokens=1024
)
text = 'User: WiNGPT, 你好<|endoftext|>\n Assistant: '
inputs = tokenizer.encode(text, return_tensors="pt").to(device)
outputs = model.generate(inputs, generation_config=generation_config)
output = tokenizer.decode(outputs[0])
response = output.replace(inputs, '')
注意事項
WiNGPT2 - 7B - Chatはカスタムのプロンプト形式を使用しています。
ユーザーロール:User/Assistant
プロンプトテンプレート:User:[ここにスペース]WiNGPT, 你好<|endoftext|>\n[ここにスペース]Assistant:;多輪対話はこのテンプレートに従って結合します。例えば:
"User: WiNGPT, 你好<|endoftext|>\n Assistant:你好!今天我能为你做些什么?<|endoftext|>\n User: 你是谁?<|endoftext|>\n Assistant:"
デコード時にはrepetition_penalty = 1.1 [greedy search]を使用することをおすすめします。
企業サービス
13Bモデルプラットフォームテスト(直接申請キー)
📚 ドキュメント
訓練データ
- データ概要
- 医療専門データ
データソース |
タイプ |
数量 |
医薬品説明書 |
知識ベース |
15000件 |
多病種知識ベース |
知識ベース |
9720項目 |
医療専門書籍 |
教材 |
300冊 |
臨床パス知識ベース |
知識ベース |
1400件 |
検査検体知識 |
知識ベース |
110万件 |
多学科臨床ガイド |
書籍 |
18科室合計1100部 |
医療知識グラフ |
知識ベース |
256万三元組 |
人工アノテーションデータセット |
指令 |
5万件 |
医学資格試験問題 |
試題 |
30万件 |
医療症例、レポート |
知識ベース |
100万件 |
- その他の公開データ
データソース |
タイプ |
数量 |
医学普及書籍 |
書籍 |
500冊 |
その他の多学科書籍 |
書籍 |
1000冊 |
コード |
指令 |
20万件 |
汎用試題 |
試題 |
300万件 |
様々な自然言語処理タスク |
指令 |
90万件 |
インターネットテキスト |
インターネット |
300万件 |
医療質問応答、対話 |
指令 |
500万件 |
- 継続事前学習
- モデルの医療知識ベースを拡充するため、事前学習データと一部の指令データを使用します。
- 指令微調整
- 書籍、ガイド、症例、医療レポート、知識グラフなどのデータから自動的に医療指令セットを構築します。
- 人工アノテーションによる指令セットを作成し、データソースは電子カルテシステム、看護カルテシステム、PACSシステム、臨床研究システム、手術管理システム、公衆衛生シーン、医務管理シーン、ツールアシスタントシーンなどです。
- FastChat2、Self - Instruct3、Evol - Instruct4などの手法を用いて、指令セットを拡張し、指令セットの多様性を高めます。
- データエンジニアリング
- データ分類:トレーニング段階とタスクシーンに基づいて分類します。
- データクリーニング:関係のない情報を削除し、データのスペルミスを修正し、重要な情報を抽出し、プライバシーを保護します。
- データ重複削除:embedding手法を用いて重複データを削除します。
- データサンプリング:データセットの品質と分布の要件に基づいてサンプリングします。
モデルカード
- トレーニング設定とパラメータ
| モデル名 | 長さ | 精度 | 学習率 | Weight_decay | Epochs | GPUs |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| WiNGPT2 - 7B - Base | 2048 | bf16 | 5e - 5 | 0.05 | 3 | A1008 |
| WiNGPT2 - 7B - Chat | 4096 | bf16 | 5e - 6 | 0.01 | 3 | A1008 |
- 分散トレーニング戦略とパラメータ
- deepspeed + cpu_offload + zero_stage3
- gradient_checkpointing
評価
- 中国語基礎モデル評価C - EVAL(Zero - shot/Few - shot)
| | 平均 | 平均(Hard) | STEM | 社会科学 | 人文科学 | その他 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| [bloomz - mt - 176B](https://cevalbenchmark.com/static/model.html?method=bloomz - mt - 176B*) | 44.3 | 30.8 | 39 | 53 | 47.7 | 42.7 |
| [Chinese LLaMA - 13B](https://cevalbenchmark.com/static/model.html?method=Chinese%20LLaMA - 13B) | 33.3 | 27.3 | 31.6 | 37.2 | 33.6 | 32.8 |
| [ChatGLM - 6B*](https://cevalbenchmark.com/static/model.html?method=ChatGLM - 6B*) | 38.9 | 29.2 | 33.3 | 48.3 | 41.3 | 38 |
| [baichuan - 7B](https://cevalbenchmark.com/static/model.html?method=baichuan - 7B) | 42.8 | 31.5 | 38.2 | 52 | 46.2 | 39.3 |
| [Baichuan - 13B](https://cevalbenchmark.com/static/model.html?method=Baichuan - 13B) | 53.6 | 36.7 | 47 | 66.8 | 57.3 | 49.8 |
| [Qwen - 7B](https://cevalbenchmark.com/static/model.html?method=Qwen - 7B) | 59.6 | 41 | 52.8 | 74.1 | 63.1 | 55.2 |
| [WiNGPT2 - 7B - Base](https://huggingface.co/winninghealth/WiNGPT2 - 7B - Base) | 57.4 | 42.7 | 53.2 | 69.7 | 55.7 | 55.4 |
- 中国語医療専門評価MedQA - MCMLE(Zero - shot)
| モデル名 | 平均 | 血液系疾病 | 代謝・内分泌系疾病 | 精神神経系疾病 | 運動系疾病 | リウマチ免疫性疾病 | 小児科疾病 | 感染症・性感染症 | その他の疾病 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| [Baichuan - 7B](https://huggingface.co/baichuan - inc/Baichuan - 7B) | 23.1 | 25.6 | 20.2 | 25.8 | 17.9 | 26.5 | 20.6 | 26.1 | 17.1 |
| [Baichuan - 13B - Base](https://huggingface.co/baichuan - inc/Baichuan - 13B - Base) | 37.2 | 34.4 | 36.2 | 40.7 | 38.4 | 57.1 | 31.6 | 30.8 | 34.3 |
| [Baichuan2 - 7B - Base](https://huggingface.co/baichuan - inc/Baichuan2 - 7B - Base) | 46.4 | 46.9 | 41.4 | 53.8 | 48.3 | 50.0 | 38.6 | 52.7 | 42.9 |
| [Baichuan2 - 13B - Base](https://huggingface.co/baichuan - inc/Baichuan2 - 13B - Base) | 62.9 | 68.8 | 64.4 | 69.7 | 64.9 | 60.3 | 50.9 | 61.2 | 62.9 |
| [HuatuoGPT - 7B](https://huggingface.co/FreedomIntelligence/HuatuoGPT - 7B) | 22.9 | 14.6 | 17.2 | 31.2 | 25.8 | 14.3 | 22.4 | 23.1 | 17.1 |
| [MedicalGPT](https://huggingface.co/shibing624/vicuna - baichuan - 13b - chat) | 17.9 | 21.9 | 15.5 | 19.5 | 9.3 | 7.1 | 16.7 | 20.9 | 9.5 |
| [qwen - 7b - Base](https://huggingface.co/Qwen/Qwen - 7B) | 59.3 | 55.2 | 56.9 | 57.0 | 60.9 | 60.3 | 50.4 | 60.4 | 61.0 |
| [WiNGPT2 - 7B - Base](https://huggingface.co/winninghealth/WiNGPT2 - 7B - Base) | 82.3 | 83.3 | 82.8 | 86.0 | 81.5 | 85.7 | 75.1 | 78.0 | 80 |
** 現在の公開評価には一定の制限があり、結果は参考にすぎません。
** より専門的な評価をお楽しみに。
制限事項と免責事項
(a) WiNGPT2は医療専門分野の大規模言語モデルで、一般ユーザーに擬人化AI医師の問診と質問応答機能、および一般的な医学分野の知識問答を提供します。専門の医療関係者に対しては、患者の病状の診断、投薬、健康アドバイスなどの回答は参考にすぎません。
(b) あなたはWiNGPT2がただの情報とアドバイスを提供するだけで、医療専門家の意見、診断、治療アドバイスを代替できないことを理解する必要があります。WiNGPT2の情報を使用する前に、医師または他の医療専門家のアドバイスを求め、提供された情報を独自に評価してください。
(c) WiNGPT2の情報には誤りや不正確な部分が含まれる可能性があります。衛寧健康はWiNGPT2の正確性、信頼性、完全性、品質、安全性、タイムリネス、性能、または適合性について、明示的または暗示的な保証を一切行いません。WiNGPT2を使用して生じた結果と決定については、あなた自身が責任を負います。第三者の原因によってあなたに損害が生じた場合も同様です。
📄 ライセンス
- 本プロジェクトのライセンスはApache License 2.0です。モデルの重みは基礎モデル[Qwen - 7B](https://github.com/QwenLM/Qwen - 7B)の関連協定および[ライセンス](https://github.com/QwenLM/Qwen - 7B/blob/main/LICENSE)に従う必要があります。詳細はそのウェブサイトを参照してください。
- 本プロジェクト(モデルの重みを含む)を使用する場合は、本プロジェクトを引用してください:https://github.com/winninghealth/WiNGPT2
参考資料
- https://github.com/QwenLM/Qwen - 7B
- https://github.com/lm - sys/FastChat
- https://github.com/yizhongw/self - instruct
- https://github.com/nlpxucan/evol - instruct
お問い合わせ
ウェブサイト:https://www.winning.com.cn
メールアドレス:wair@winning.com.cn