Sentence Similarity
sentence-transformers
Safetensors
Japanese
modernbert
medical
japanese
ruri
embedding
text-embeddings-inference
Instructions to use genshiai-daichi/med-ruri-v3-70m-v2-from-ruri with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use genshiai-daichi/med-ruri-v3-70m-v2-from-ruri with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("genshiai-daichi/med-ruri-v3-70m-v2-from-ruri") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
| language: ja | |
| license: apache-2.0 | |
| library_name: sentence-transformers | |
| pipeline_tag: sentence-similarity | |
| tags: [sentence-transformers, medical, japanese, ruri, modernbert, embedding] | |
| base_model: cl-nagoya/ruri-v3-70m | |
| # med-ruri-v3-70m-v2-from-ruri | |
| 日本語**医療ドメイン**の文埋め込みモデル (ruri-v3 / ModernBERT-Ja ベース)。**学習進行中の自動アップロード**です。 | |
| ## このモデルの位置づけ | |
| **新規学習**: 素の `cl-nagoya/ruri-v3-70m`(汎用)から医療データで v2 レシピ学習(医療知識ゼロから付与) | |
| - **現在の step**: `6159` / **in-domain nDCG@10**: `0.4885` | |
| - 各 step は `step-6159` の **revision ブランチ**で固定取得可。`main` は最新/最終。 | |
| ## 性能 (in-domain nDCG@10) | |
| ※ 同一ガイドライン分布の held-out クエリ + 3万 distractor での**検索性能**。 | |
| **汎化/temporal の優劣はこの指標では測れない** (別途 `ood_affinity` で評価)。 | |
| - **baseline (学習前)**: 0.3123 | |
| - **final**: 0.4885 (Δ +0.1761) | |
| - **best (全step中)**: 0.4885 | |
| | step | nDCG@10 | | |
| |---|---| | |
| | 500 | 0.3859 | | |
| | 1000 | 0.4028 | | |
| | 1500 | 0.4185 | | |
| | 2000 | 0.4333 | | |
| | 2500 | 0.4466 | | |
| | 3000 | 0.4497 | | |
| | 3500 | 0.4609 | | |
| | 4000 | 0.4708 | | |
| | 4500 | 0.4773 | | |
| | 5000 | 0.4835 | | |
| | 5500 | 0.4857 | | |
| | 6000 | 0.4884 | | |
| | 6159 | 0.4885 | | |
| ### ログ / TensorBoard | |
| - step毎 nDCG: [`metrics_progress.json`](./metrics_progress.json) | |
| - TensorBoard event は各 `step-N` ブランチの `runs/` に同梱 (`tensorboard --logdir runs` で loss/nDCG を可視化可)。 | |
| ## v2 学習レシピ | |
| - **精度**: fp32 重み + **TF32 matmul**(ModernBERT は bf16 計算で grad nan 崩壊するため。TF32 で安定かつ高速) | |
| - **NFKC 正規化**: PDF 由来の康熙部首などの tokenizer 汚染を除去 | |
| - **strip-year**: ヘッダの発行年【…(YYYY)…】を除去し、埋め込みを版非依存に | |
| - **temporal hard-negative**: 旧版チャンクを hard-neg に(年号への過適合=「学習分布に近い版」嗜好を抑制), oversample ×10 | |
| - **loss**: MultipleNegativesRankingLoss (scale=50, temp=0.02), lr=1e-5 | |
| - **prefix (必須)**: query=`検索クエリ: ` / document=`検索文書: `(付けないと精度が大きく落ちる) | |
| ## 使い方 | |
| ```python | |
| from sentence_transformers import SentenceTransformer | |
| m = SentenceTransformer("genshiai-daichi/med-ruri-v3-70m-v2-from-ruri", revision="step-6159") # main で最新も可 | |
| q = m.encode(["検索クエリ: 心不全の標準治療は"], normalize_embeddings=True) | |
| d = m.encode(["検索文書: 【…】 …本文…"], normalize_embeddings=True) | |
| ``` | |
| ## 注意 | |
| - **serving 側も train と同じ前処理 (NFKC + strip-year) が必須**(train/serve skew 回避)。 | |
| - 学習中の中間 checkpoint です。最終版・各 step の nDCG@10 比較は `metrics_progress.json` を参照。 | |