Instructions to use weblab-LLM-M/Weblab-MedLLM-GLM-4.7 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use weblab-LLM-M/Weblab-MedLLM-GLM-4.7 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="weblab-LLM-M/Weblab-MedLLM-GLM-4.7") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("weblab-LLM-M/Weblab-MedLLM-GLM-4.7") model = AutoModelForCausalLM.from_pretrained("weblab-LLM-M/Weblab-MedLLM-GLM-4.7") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use weblab-LLM-M/Weblab-MedLLM-GLM-4.7 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "weblab-LLM-M/Weblab-MedLLM-GLM-4.7" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "weblab-LLM-M/Weblab-MedLLM-GLM-4.7", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/weblab-LLM-M/Weblab-MedLLM-GLM-4.7
- SGLang
How to use weblab-LLM-M/Weblab-MedLLM-GLM-4.7 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "weblab-LLM-M/Weblab-MedLLM-GLM-4.7" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "weblab-LLM-M/Weblab-MedLLM-GLM-4.7", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "weblab-LLM-M/Weblab-MedLLM-GLM-4.7" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "weblab-LLM-M/Weblab-MedLLM-GLM-4.7", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use weblab-LLM-M/Weblab-MedLLM-GLM-4.7 with Docker Model Runner:
docker model run hf.co/weblab-LLM-M/Weblab-MedLLM-GLM-4.7
Weblab-MedLLM-GLM-4.7
本プログラムは、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)「AIの安全性確保に関する研究開発・検証等の推進事業 / 日本語版医療特化型LLMの社会実装に向けた安全性検証・実証」において開発された医療特化型大規模言語モデルです。
本モデルを実際の臨床現場における疾患の診断や臨床意思決定支援として直接利用することは推奨されません。 詳細は「利用にあたっての注意事項」をご確認ください。
モデルの概要
| 項目 | 内容 |
|---|---|
| モデル名 | Weblab-MedLLM-GLM-4.7 |
| パラメータ数 | 355B MoE |
| ベースモデル | GLM-4.7 |
| 言語 | 日本語 |
| 開発者 | 東京大学大学院工学系研究科 松尾・岩澤研究室 |
| 事業名 | NEDO「AIの安全性確保に関する研究開発・検証等の推進事業 / 日本語版医療特化型LLMの社会実装に向けた安全性検証・実証」 |
| ベースモデルライセンス | GLM-4.7 is licensed under the MIT License. Copyright (c) Zhipu AI. |
| 本モデルライセンス | MIT License |
利用にあたっての注意事項
本モデルのご利用にあたっては、以下の点にご留意ください。
- 本プログラムは、実臨床における安全性・有効性の検証が十分に行われていません。
- 開発者は、本プログラムに関し、その正確性、完全性、最新性、および品質など、いかなる保証も行わず、利用者が本プログラムを利用したこと、利用できなかったことにより生じた一切の損害について責任を負いません。
- 医療行為(診断、治療方針の決定、健康への助言など)に直接適用することは推奨されません。あくまで医療専門家による適切な判断の補助となる情報提供ツールとしての利用にとどめることを推奨します。
- 本モデルを活用して具体的な医療用途の製品を開発される場合、その製品が医療機器プログラムとして薬機法の規制対象となる可能性があることにご留意ください。
- プログラム医療機器の該当性に関する相談窓口:
- 独立行政法人医薬品医療機器総合機構(PMDA; Pharmaceuticals and Medical Devices Agency)
- 本READMEに記載のvLLM環境構築手順およびサーバー起動コマンドは参考情報であり、利用者の環境での動作を保証するものではありません。
モデルの特徴と性能
以下に主要ベンチマークの性能を示します。括弧内はベースモデルからの変化幅です。
| ベンチマーク | スコア | 説明 |
|---|---|---|
| 医師国試 | 95.9% (-1.5) | 2023年以降の医師国家試験過去問 |
| 専門医試験 | 83.5% (+1.6) | 複数診療科の専門医試験過去問 |
| 専門医試験(RAG) | 90.8% | 上記に診療ガイドライン等をRAGで付与した条件 |
| ガイドライン | 63.7% (+10.8) | 複数診療科の診療ガイドライン準拠性 |
| 対話型診断 | 45.1% (-0.5) | 臨床シナリオに基づく対話型診断能力(J-HealthBench) |
| Do-Not-Answer | 96.6% (-3.0) | 危険・不適切な質問への拒否応答能力 |
| AnswerCarefully | 89.0% (-9.5) | 日本語の文化・法制度に合わせた安全性評価 |
学習データ
独自に収集した医学論文・医学書籍・診療ガイドライン・試験問題などを由来とする合成データをもとに、継続事前学習および事後学習を実施しています。
推奨動作環境
ハードウェア
- GPUメモリ: 約710GB(BF16精度)。H100 80GB × 9枚以上での分散推論が必要
- ※ vLLMの動作確認はNVIDIA B200(183GB)× 8枚で実施しています。H100環境での動作は未確認です。
Python
- python>=3.9(transformersを使用する場合)
- python 3.12(vLLMを使用する場合は推奨)
ライブラリ
- accelerate>=1.10.0
- torch>=2.8.0
- transformers>=4.55.0(本モデルのアーキテクチャに対応したバージョンが必要)
- vllm(推奨、大規模モデルの推論効率化)
ダウンロード
hf_transfer を使用することで高速なダウンロードが可能です。
pip install hf_transfer
HF_HUB_ENABLE_HF_TRANSFER=1 hf download weblab-LLM-M/Weblab-MedLLM-GLM-4.7 \
--local-dir ./Weblab-MedLLM-GLM-4.7
注意:
hfコマンドはhuggingface_hubパッケージに含まれています。未インストールの場合はpip install huggingface_hubを実行してください。
vLLMを使った推論(推奨)
大規模モデルの推論効率化のため、vLLMの使用を推奨します。vLLMのインストールおよび使用方法については vLLM公式ドキュメント を参照してください。
本モデルを vLLM で使用する際の主な注意点は以下の通りです。
- 最小GPU構成: H100 80GB × 9枚以上
- 最大シーケンス長: 約198K tokens(
--max-model-len 202752)
環境構築
注意: ハードウェアやソフトウェアのバージョンによって動作しない場合があります。動作保証はありません。
動作確認済み構成
| 項目 | バージョン |
|---|---|
| GPU | NVIDIA B200 × 8 |
| vLLM | 0.15.1 |
| PyTorch | 2.9.1+cu128 |
| CUDA | 12.8(conda環境) |
| Python | 3.12 |
セットアップ手順
# 1. Miniconda3のインストール
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b
~/miniconda3/bin/conda init bash
source ~/.bashrc
# 2. conda環境の作成(CUDA 12.8、Python 3.12)
conda create --prefix $HOME/envs/vllm_cu128 python=3.12 -y
conda activate $HOME/envs/vllm_cu128
conda install -c nvidia cuda-toolkit=12.8 -y
# 3. vLLMのインストール(PyTorch 2.9.1+cu128 も依存として自動インストール)
pip install vllm==0.15.1
# 4. FlashInferのアップグレード
pip install flashinfer-python==0.6.3
# 5. NCCLのアップグレード(B200 Blackwellの場合のみ必要)
pip install nvidia-nccl-cu12==2.29.3 --no-deps
# 6. CUDAシンボリックリンクの設定(FlashInfer JITコンパイル用)
mkdir -p $HOME/envs/vllm_cu128/lib64/stubs
ln -sf /usr/lib/x86_64-linux-gnu/libcuda.so $HOME/envs/vllm_cu128/lib64/libcuda.so
ln -sf /usr/lib/x86_64-linux-gnu/libcuda.so.1 $HOME/envs/vllm_cu128/lib64/libcuda.so.1
GPU固有の環境変数
特定のGPUアーキテクチャ(Blackwellなど)では以下の環境変数が必要になる場合があります。
export NCCL_NVLS_ENABLE=0 # NVLink SHARP無効化(ncclCommInitRankハング対策)
export VLLM_ALLREDUCE_USE_SYMM_MEM=0 # torch symmetric memory無効化
export VLLM_USE_NCCL_SYMM_MEM=0 # NCCL symmetric memory allocator無効化
export CUDA_HOME=$CONDA_PREFIX # FlashInfer JITコンパイル用
サーバーの起動
注意: 環境によって動作しない場合があります。動作保証はありません。
conda activate $HOME/envs/vllm_cu128
vllm serve ./Weblab-MedLLM-GLM-4.7 \
--host 0.0.0.0 \
--port 8000 \
--served-model-name Weblab-MedLLM-GLM-4.7 \
--tensor-parallel-size 8 \
--pipeline-parallel-size 1 \
--dtype bfloat16 \
--gpu-memory-utilization 0.93 \
--max-model-len 65536 \
--disable-custom-all-reduce \
--trust-remote-code \
--enable-chunked-prefill \
--enable-prefix-caching \
--max-num-batched-tokens 32768 \
--max-num-seqs 60 \
--generation-config vllm \
--enable-expert-parallel \
--tool-call-parser glm47 \
--reasoning-parser glm45 \
--enable-auto-tool-choice
注意:
--max-model-len 65536(64K)は推奨動作値です。モデルの最大コンテキスト長は約198K ですが、メモリ効率の観点から64Kを推奨します。
起動後は OpenAI クライアントからアクセスできます。
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") # 認証なしの場合は任意の文字列
response = client.chat.completions.create(
model="Weblab-MedLLM-GLM-4.7",
messages=[
{"role": "system", "content": "あなたは医療の専門知識を持つアシスタントです。"},
{"role": "user", "content": "脳梗塞の急性期治療において、rt-PA静注療法の適応基準について説明してください。"}
],
max_tokens=1024*4,
)
print(response.choices[0].message.content)
transformersを使った推論
注意: transformers の
device_map="auto"はパイプライン並列による推論のため、355B モデルでは数分かかることがあります。本番利用にはvLLMを推奨します。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "./Weblab-MedLLM-GLM-4.7" # ダウンロード先のローカルパスを指定
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "脳梗塞の急性期治療において、rt-PA静注療法の適応基準について説明してください。"
messages = [
{"role": "system", "content": "あなたは医療の専門知識を持つアシスタントです。"},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024*4,
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
※ チャットテンプレートはchat_template.jinjaとして同梱されています。tokenizer_config.jsonに含まれていない場合は、手動で設定するか、vLLMでの推論をご利用ください。
謝辞
本研究は、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)「AIの安全性確保に関する研究開発・検証等の推進事業 / 日本語版医療特化型LLMの社会実装に向けた安全性検証・実証」の支援を受けて実施されました。
メンテナンス情報
- リリース日: 2026年6月
- バージョン: 1.0.0
お問い合わせ
- Downloads last month
- -