Geomatrix BERT — BERT-base модель, обученная с нуля на корпусе русскоязычной научной, технической и исторической литературы.
| Параметр | Значение |
|---|---|
| Архитектура | BERT-base (12 слоёв, 768 hidden, 12 голов) |
| Параметры | 110M |
| Словарь | 100,000 токенов (SentencePiece Unigram) |
| Корпус | 176,409 книг, 831M предложений |
| Длительность обучения | ~11 дней на 2×GPU |
| Макс. длина | 512 токенов |
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained("terratensor/geomatrix-bert-base")
tokenizer = AutoTokenizer.from_pretrained("terratensor/geomatrix-bert-base")
# Токенизация
text = "Москва — столица России"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
# Эмбеддинги
embeddings = outputs.last_hidden_state- Полная документация
- Подготовка корпуса
- Обучение токенизатора
- Сборка датасета
- Обучение модели
- Запуск в Docker
pip install transformers sentencepiecegit clone https://github.com/terratensor/book2bert-v2
cd book2bert-v2
pip install -r requirements.txtfrom transformers import AutoModel, AutoTokenizer
import torch
model = AutoModel.from_pretrained("terratensor/geomatrix-bert-base")
tokenizer = AutoTokenizer.from_pretrained("terratensor/geomatrix-bert-base")
def get_embedding(text):
inputs = tokenizer(text, return_tensors="pt", max_length=512, truncation=True)
with torch.no_grad():
outputs = model(**inputs)
return outputs.last_hidden_state[:, 0, :].squeeze().numpy()
text = "Квантовая механика — фундаментальная физическая теория"
embedding = get_embedding(text)
print(embedding.shape) # (768,)from transformers import pipeline
fill_mask = pipeline("fill-mask", model="terratensor/geomatrix-bert-base")
result = fill_mask("Москва — [MASK] России")
print(result[0]["token_str"]) # "столица"| Задача | Метрика | Значение |
|---|---|---|
| MLM Accuracy | Top-1 | XX% |
| MLM Accuracy | Top-5 | XX% |
| Perplexity | — | XX |
Бенчмарки на русскоязычных датасетах будут добавлены.
book2bert-v2/
├── cmd/ # Go-утилиты
├── pkg/ # Go-пакеты
├── services/ # Python-сервисы
├── scripts/ # Python-скрипты
├── models/ # Обученные модели
├── data/ # Данные
├── docs/ # Документация
├── docker/ # Docker-файлы
├── docker-compose.yml # Docker Compose конфигурация
├── requirements.txt # Python-зависимости
├── go.mod # Go-зависимости
└── LICENSE # Apache 2.0
- Корпус собран из открытых источников (flibusta, militera, geomatrix)
- Сегментация текста — razdel
- Токенизация — SentencePiece
Apache 2.0. Подробнее в файле LICENSE.