CoolFace
Modelpublic

genshiai-daichi/med-ruri-v3-310m-v2-from-med

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes447downloads
Model Card

med-ruri-v3-310m-v2-from-med

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

このモデルの位置づけ

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

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

性能 (in-domain nDCG@10)

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

  • —baseline (学習前): 0.4244
  • —final: 0.5348 (Δ +0.1104)
  • —best (全step中): 0.5348
stepnDCG@10
5000.4195
10000.4300
15000.4422
20000.4640
25000.4623
30000.4700
35000.4775
40000.4920
45000.4916
50000.5025
55000.4996
60000.5008
65000.5120
70000.5179
75000.5243
80000.5287
85000.5305
90000.5343
92380.5348

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

使い方

python
from sentence_transformers import SentenceTransformer
m = SentenceTransformer("genshiai-daichi/med-ruri-v3-310m-v2-from-med", revision="step-9238")  # 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 を参照。