模型概述
模型特點
模型能力
使用案例
🚀 RuModernBERT-small
RuModernBERT-small 是現代化雙向僅編碼器 Transformer 模型 ModernBERT 的俄語版本。該模型在約 2 萬億個俄語、英語和代碼數據的標記上進行了預訓練,上下文長度可達 8192 個標記,使用的數據來自互聯網、書籍、科學資源和社交媒體。
🚀 快速開始
不要忘記更新 transformers
庫,如果你的 GPU 支持,還需安裝 flash-attn
。
from transformers import AutoTokenizer, AutoModelForMaskedLM
# 準備模型
model_id = "deepvk/RuModernBERT-small"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForMaskedLM.from_pretrained(model_id, attn_implementation="flash_attention_2")
model = model.eval()
# 準備輸入
text = "Мама мыла [MASK]."
inputs = tokenizer(text, return_tensors="pt")
masked_index = inputs["input_ids"][0].tolist().index(tokenizer.mask_token_id)
# 進行預測
outputs = model(**inputs)
# 顯示預測結果
predicted_token_id = outputs.logits[0, masked_index].argmax(axis=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print("Predicted token:", predicted_token)
# 預測的標記: посуду
✨ 主要特性
- 俄語版本的現代化雙向僅編碼器 Transformer 模型。
- 在約 2 萬億個俄語、英語和代碼數據的標記上進行預訓練。
- 上下文長度可達 8192 個標記。
📦 安裝指南
請確保更新 transformers
庫,如果你的 GPU 支持,還需安裝 flash-attn
。
💻 使用示例
基礎用法
from transformers import AutoTokenizer, AutoModelForMaskedLM
# 準備模型
model_id = "deepvk/RuModernBERT-small"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForMaskedLM.from_pretrained(model_id, attn_implementation="flash_attention_2")
model = model.eval()
# 準備輸入
text = "Мама мыла [MASK]."
inputs = tokenizer(text, return_tensors="pt")
masked_index = inputs["input_ids"][0].tolist().index(tokenizer.mask_token_id)
# 進行預測
outputs = model(**inputs)
# 顯示預測結果
predicted_token_id = outputs.logits[0, masked_index].argmax(axis=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print("Predicted token:", predicted_token)
# 預測的標記: посуду
高級用法
暫未提供高級用法示例。
📚 詳細文檔
模型參數
模型大小 | 隱藏維度 | 層數 | 詞表大小 | 上下文長度 | 任務 | |
---|---|---|---|---|---|---|
deepvk/RuModernBERT-small [本模型] | 35M | 384 | 12 | 50368 | 8192 | 掩碼語言模型 |
deepvk/RuModernBERT-base | 150M | 768 | 22 | 50368 | 8192 | 掩碼語言模型 |
訓練細節
分詞器
我們按照原始配置訓練了一個新的分詞器。我們保持了詞表的大小,並添加了相同的特殊標記。該分詞器在 FineWeb 中的俄語和英語混合數據上進行了訓練。
數據集
預訓練包括三個主要階段:大規模預訓練、上下文擴展和冷卻階段。與原始模型不同,我們在所有階段沒有使用相同的數據。在第二和第三階段,我們使用了更乾淨的數據源。
數據源 | 階段 1 | 階段 2 | 階段 3 |
---|---|---|---|
FineWeb (英語+俄語) | ✅ | ❌ | ❌ |
CulturaX-Ru-Edu (俄語) | ❌ | ✅ | ❌ |
Wiki (英語+俄語) | ✅ | ✅ | ✅ |
ArXiv (英語) | ✅ | ✅ | ✅ |
Book (英語+俄語) | ✅ | ✅ | ✅ |
代碼 | ✅ | ✅ | ✅ |
StackExchange (英語+俄語) | ✅ | ✅ | ✅ |
社交媒體 (俄語) | ✅ | ✅ | ✅ |
總標記數 | 1.3T | 250B | 50B |
上下文長度
在第一階段,模型在上下文長度為 1024
的情況下進行訓練。在第二和第三階段,上下文長度擴展到 8192
。
評估
為了評估模型,我們在 encodechka
和 Russian Super Glue (RSG)
基準測試上進行了質量評估。對於 RSG,我們進行了網格搜索以找到最佳超參數,並報告了 開發集 的指標。
為了進行公平比較,我們僅將 RuModernBERT 模型與未在檢索或句子嵌入任務上進行訓練的原始編碼器進行比較。
Russian Super Glue
模型 | RCB | PARus | MuSeRC | TERRa | RUSSE | RWSD | DaNetQA | 得分 |
---|---|---|---|---|---|---|---|---|
deepvk/deberta-v1-distill | 0.433 | 0.56 | 0.625 | 0.590 | 0.943 | 0.569 | 0.726 | 0.635 |
deepvk/deberta-v1-base | 0.450 | 0.61 | 0.722 | 0.704 | 0.948 | 0.578 | 0.760 | 0.682 |
ai-forever/ruBert-base | 0.491 | 0.61 | 0.663 | 0.769 | 0.962 | 0.574 | 0.678 | 0.678 |
deepvk/RuModernBERT-small [本模型] | 0.555 | 0.64 | 0.746 | 0.593 | 0.930 | 0.574 | 0.743 | 0.683 |
deepvk/RuModernBERT-base | 0.556 | 0.61 | 0.857 | 0.818 | 0.977 | 0.583 | 0.758 | 0.737 |
Encodechka
模型大小 | STS-B | 釋義器 | XNLI | 情感分析 | 毒性檢測 | 不當性檢測 | 意圖識別 | 意圖識別X | FactRu | RuDReC | 平均得分 | 平均得分+權重 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cointegrated/rubert-tiny | 11.9M | 0.66 | 0.53 | 0.40 | 0.71 | 0.89 | 0.68 | 0.70 | 0.58 | 0.24 | 0.34 | 0.645 | 0.575 |
deepvk/deberta-v1-distill | 81.5M | 0.70 | 0.57 | 0.38 | 0.77 | 0.98 | 0.79 | 0.77 | 0.36 | 0.36 | 0.44 | 0.665 | 0.612 |
deepvk/deberta-v1-base | 124M | 0.68 | 0.54 | 0.38 | 0.76 | 0.98 | 0.80 | 0.78 | 0.29 | 0.29 | 0.40 | 0.653 | 0.591 |
answerdotai/ModernBERT-base | 150M | 0.50 | 0.29 | 0.36 | 0.64 | 0.79 | 0.62 | 0.59 | 0.10 | 0.22 | 0.20 | 0.486 | 0.431 |
ai-forever/ruBert-base | 178M | 0.67 | 0.53 | 0.39 | 0.77 | 0.98 | 0.78 | 0.77 | 0.38 | 🥴 | 🥴 | 0.659 | 🥴 |
DeepPavlov/rubert-base-cased | 180M | 0.63 | 0.50 | 0.38 | 0.73 | 0.94 | 0.74 | 0.74 | 0.31 | 🥴 | 🥴 | 0.621 | 🥴 |
deepvk/RuModernBERT-small [本模型] | 35M | 0.64 | 0.50 | 0.36 | 0.72 | 0.95 | 0.73 | 0.72 | 0.47 | 0.28 | 0.26 | 0.636 | 0.563 |
deepvk/RuModernBERT-base | 150M | 0.67 | 0.54 | 0.35 | 0.75 | 0.97 | 0.76 | 0.76 | 0.58 | 0.37 | 0.36 | 0.673 | 0.611 |
🔧 技術細節
RuModernBERT-small 是基於 ModernBERT 架構的俄語版本模型。它在大規模的俄語、英語和代碼數據上進行了預訓練,使用了多種數據源,包括互聯網、書籍、科學資源和社交媒體。模型的上下文長度可達 8192 個標記,通過三個階段的預訓練過程進行優化。
📄 許可證
本項目採用 Apache-2.0 許可證。
📖 引用
@misc{deepvk2025rumodernbert,
title={RuModernBERT: Modernized BERT for Russian},
author={Spirin, Egor and Malashenko, Boris and Sokolov Andrey},
url={https://huggingface.co/deepvk/rumodernbert-base},
publisher={Hugging Face}
year={2025},
}



