med-ruri-v3-70m-v2-from-med

日本語医療ドメインの文埋め込みモデル (ruri-v3 / ModernBERT-Ja ベース)。学習進行中の自動アップロードです。

このモデルの位置づけ

継続学習: 既に医療 fine-tune 済みの genshiai-daichi/med-ruri-v3-70m(v1) の上に v2 レシピで追加学習

  • 現在の step: 6159 / in-domain nDCG@10: 0.5117
  • 各 step は step-6159revision ブランチで固定取得可。main は最新/最終。

性能 (in-domain nDCG@10)

※ 同一ガイドライン分布の held-out クエリ + 3万 distractor での検索性能汎化/temporal の優劣はこの指標では測れない (別途 ood_affinity で評価)。

  • baseline (学習前): 0.4137
  • final: 0.5117 (Δ +0.0980)
  • best (全step中): 0.5117
step nDCG@10
500 0.4235
1000 0.4371
1500 0.4498
2000 0.4565
2500 0.4669
3000 0.4713
3500 0.4840
4000 0.4919
4500 0.4983
5000 0.5061
5500 0.5044
6000 0.5117
6159 0.5117

ログ / TensorBoard

  • step毎 nDCG: 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=検索文書: (付けないと精度が大きく落ちる)

使い方

from sentence_transformers import SentenceTransformer
m = SentenceTransformer("genshiai-daichi/med-ruri-v3-70m-v2-from-med", 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 を参照。
Downloads last month
102
Safetensors
Model size
70M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for genshiai-daichi/med-ruri-v3-70m-v2-from-med