Text Generation
Transformers
Safetensors
Japanese
lfm2
medical
japanese
autocomplete
ghost-text
continued-pretraining
sft
conversational
Instructions to use genshiai-daichi/med-lfm2.5-1.2b-autocomplete with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use genshiai-daichi/med-lfm2.5-1.2b-autocomplete with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="genshiai-daichi/med-lfm2.5-1.2b-autocomplete") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("genshiai-daichi/med-lfm2.5-1.2b-autocomplete") model = AutoModelForCausalLM.from_pretrained("genshiai-daichi/med-lfm2.5-1.2b-autocomplete") 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 genshiai-daichi/med-lfm2.5-1.2b-autocomplete with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "genshiai-daichi/med-lfm2.5-1.2b-autocomplete" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "genshiai-daichi/med-lfm2.5-1.2b-autocomplete", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/genshiai-daichi/med-lfm2.5-1.2b-autocomplete
- SGLang
How to use genshiai-daichi/med-lfm2.5-1.2b-autocomplete 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 "genshiai-daichi/med-lfm2.5-1.2b-autocomplete" \ --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": "genshiai-daichi/med-lfm2.5-1.2b-autocomplete", "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 "genshiai-daichi/med-lfm2.5-1.2b-autocomplete" \ --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": "genshiai-daichi/med-lfm2.5-1.2b-autocomplete", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use genshiai-daichi/med-lfm2.5-1.2b-autocomplete with Docker Model Runner:
docker model run hf.co/genshiai-daichi/med-lfm2.5-1.2b-autocomplete
| language: ja | |
| license: other | |
| license_name: lfm-license | |
| license_link: https://huggingface.co/LiquidAI/LFM2.5-1.2B-Base/blob/main/LICENSE | |
| library_name: transformers | |
| pipeline_tag: text-generation | |
| tags: [medical, japanese, autocomplete, ghost-text, lfm2, continued-pretraining, sft] | |
| base_model: LiquidAI/LFM2.5-1.2B-Base | |
| gated: manual | |
| extra_gated_heading: アクセス申請(研究・評価目的) | |
| extra_gated_prompt: >- | |
| 本モデルは日本語の医療テキストで学習した、医療文の補完モデルです。 | |
| 利用は LFM Open License v1.0 に従います(年商1,000万ドルを超える企業の商用利用は Liquid AI との個別契約が必要)。 | |
| 本モデルは下書き支援であり、自律的な診断・処方の判断には使用しないでください(出力は必ず医療者が確認)。 | |
| 以下に同意のうえ申請してください。内容を確認し、手動で承認します。 | |
| extra_gated_fields: | |
| 氏名: text | |
| 所属機関: text | |
| 所属種別: | |
| type: select | |
| options: | |
| - 大学・研究機関 | |
| - 病院・医療機関 | |
| - 企業 | |
| - 個人 | |
| 所属機関のメールアドレス: text | |
| 利用目的(具体的に): text | |
| LFM Open License および上記の医療上の利用条件に同意します: checkbox | |
| extra_gated_button_content: 申請する | |
| # med-lfm2.5-1.2b-autocomplete | |
| `LiquidAI/LFM2.5-1.2B-Base` を、日本語の医療オートコンプリート(ゴーストテキスト補完)向けに段階適応させた 1.2B の小型モデルです。 | |
| 医療文を書き始めると、続きをインラインで提案します。コードではなく散文を対象にした、GitHub Copilot の医療版だと考えてください。CPU だけで、オフラインでも軽く動くことを目指しました。 | |
| `main` ブランチが最終フェーズ(`qa`)です。推論には `main`(=`qa`)をお使いください。 | |
|  | |
| *↑ 入力した文の続きをグレーで提案し、`Tab` で確定します(Copilot 風のゴーストテキスト補完)。提案文は本モデル(qa)の実際の greedy 出力です。* | |
| ## 想定利用シーン | |
| いずれも書いている最中のインライン補完です。全文をまとめて自動生成するものではありません(human-in-the-loop)。 | |
| - **カルテ・診療記録**:所見や経過を打ち始めると、続きを補完します。CPU だけでオフライン動作するので、患者データが端末の外に出ません。 | |
| - **退院サマリー・紹介状**:定型の言い回しや構成を、書いている途中で補います。全文を生成するのではなく、下書きを速くするための用途です。 | |
| - **JOSLER の病歴要約**:専攻医が症例登録の要約を書くときの、筆記の補助に使えます。 | |
| - **医学コンテンツの執筆**:専門的な医療文の起草を支援します。 | |
| 本モデルが担うのは、主に文章の流暢さです。用量や薬剤名といった事実の正しさは、外部検索(RAG)の側で確かめる前提で設計しています(後述の「安全性と利用上の注意」)。 | |
| ## 学習パイプライン(4段階・bf16) | |
| 4 段階を順に学習させました。各段階は `phase-*` ブランチで固定して取得できます。 | |
| `cpt` → `comp` → `qa-comp` → `qa` | |
| | phase | 内容 | | |
| |---|---| | |
| | ① cpt | 医療テキストで継続事前学習(全トークン loss)。ドメイン言語の獲得。| | |
| | ② comp | 医療文を prefix→continuation に変換し continuation 側のみ loss。補完文体。| | |
| | ③ qa-comp | QA の answer だけを prefix→continuation 化(question は不使用)。回答文体を補完素材に。| | |
| | ④ qa | 実 Q→A を少量(≤10万)で味付け。autocomplete を保ちつつ具体回答力を付与。| | |
| ## 生成例(素の LFM2.5 → 本モデル) | |
| 同じプロンプトを greedy で生成させた例です。医療データで学習させたことで、素の LFM2.5 が多肢選択クイズを作ってしまう挙動から、日本語の医療補完へと変わりました。 | |
| | プレフィックス | BASE(素の LFM2.5-1.2B) | **本モデル(qa)** | | |
| |---|---|---| | |
| | 心不全の薬物治療の基本は、 | 「次のうちどれ? A:利尿剤 B:β遮断薬… 正解:D」と勝手にクイズ化し、無関係な話に脱線 | 循環動態を改善し、肺水腫や浮腫などの症状を軽減させることである。 | | |
| | 2型糖尿病で第一選択となる経口血糖降下薬は | 「A.グリピジド B.メトホルミン…」と選択肢を並べるだけ | **メトホルミンである。** | | |
| | 急性心筋梗塞を疑った場合の初期対応として、 | 「A)輸液 B)アスピリン… 正解:B」とクイズ化 | まずどのような検査を行うべきかという点が重要な臨床課題となっている。 | | |
| | 高血圧の診断基準は診察室血圧で | 「A.120/80 B.<90/60 C.>140/90…」とクイズ化 | 確定する。 | | |
| 素の LFM2.5 も医療知識は持っていますが、出力が多肢選択クイズの形になってしまい、そのままでは補完に使えません。学習後は、正しい知識(たとえば第一選択薬はメトホルミン)を含んだ普通の医療文として続きを返します。なお、これは簡易的な greedy 生成による定性的な例で、厳密なベンチマークではありません。 | |
| ## 使い方(transformers / GPU) | |
| ```python | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| import torch | |
| tok = AutoTokenizer.from_pretrained("genshiai-daichi/med-lfm2.5-1.2b-autocomplete") | |
| m = AutoModelForCausalLM.from_pretrained("genshiai-daichi/med-lfm2.5-1.2b-autocomplete", dtype=torch.bfloat16).cuda().eval() | |
| ids = tok("心不全の薬物治療の基本は、", return_tensors="pt").to("cuda") | |
| out = m.generate(**ids, max_new_tokens=64, repetition_penalty=1.3) | |
| print(tok.decode(out[0][ids.input_ids.shape[1]:], skip_special_tokens=True)) | |
| ``` | |
| ### CPU / エッジ(llama.cpp) | |
| このモデルは、CPU とオフラインでの動作を狙って作りました。配布しているのは transformers 用の bf16 safetensors です。CPU で動かす場合は、`convert_hf_to_gguf.py` で GGUF に変換し、`Q4_K_M` に量子化してから `llama.cpp` で読み込んでください。量子化済みの GGUF は、いずれこのリポジトリに追加する予定です。 | |
| 補完は前方向が中心になります。句点や改行での停止、`n_predict` の上限、入力中のデバウンスを組み合わせると扱いやすくなります。 | |
| ## 安全性と利用上の注意 | |
| - 本モデルは、下書きを支援するツールです。診断や処方の最終判断を自律的に任せないでください。出力は必ず医療者が確認してください。 | |
| - 1.2B の小型モデル単体では、事実の正しさは保証できません。用量や第一選択薬、診断基準といった事実は、最新の一次情報や RAG で確かめてください。古い版の内容を出すことがあります。 | |
| - 日本の薬機法・医師法の枠内で、人が確認しながら使う下書き支援として設計しています。医療機器や診断支援としての承認は受けていません。 | |
| ## メモと限界 | |
| - 前処理では、NFKC 正規化と、日本語 OCR 由来の余分な空白の除去を行いました。補完系のデータは continuation 側にだけ loss をかけています。 | |
| - 1.2B のため、大きなモデルに比べると具体性は劣ります。数値や手順があいまいになることがあります。 | |
| ## ライセンス | |
| 本モデルは `LiquidAI/LFM2.5-1.2B-Base` の派生物です。LiquidAI の LFM Open License v1.0 がそのまま継承されます(Apache-2.0 ではありません)。 | |
| - 年商 1,000 万ドル(USD)を超える企業が商用利用する場合は、Liquid AI との個別契約が必要です(base ライセンスに従います)。 | |
| - 学習には、日本語の医療ドメインのコーパスと合成 QA を使いました。研究や評価での利用を想定しています。 | |
| 利用の前に、[base モデルのライセンス](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Base/blob/main/LICENSE) を必ずご確認ください。 | |