/ Модель

Характеристики

Контекст
512 токенов
Параметры
25,9 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Библиотека
sentence-transformers
Опубликована
12 сен 2026

sbert-obe-csematch

ЭмбеддингиТекст → embedding3 профессии

Модель кодирует вопросы и результаты обучения курсов компьютерных наук в векторы для семантического сопоставления экзаменационных заданий с Course Outcomes.

66скачиваний за 30 дней0лайковвеса обновлены26 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

sbert-obe-csematch — специализированная модель Sentence-BERT от OBE AI System для сопоставления экзаменационных вопросов с результатами обучения курсов (Course Outcomes, CO) по компьютерным наукам и инженерии. Модель дообучена методом continual learning на данных Outcome-Based Education и предназначена для поиска наиболее подходящего CO среди результатов конкретного курса.

Это bi-encoder на базе sentence-transformers/all-MiniLM-L6-v2: BERT из 6 слоёв с 12 головами, mean pooling и L2-нормализацией. Она кодирует предложения в плотные векторы размерности 384; заявленная длина контекста — 512 токенов. В README приведены результаты оценки на выборке из 500 вопросов: точность top-1 82,4% и top-3 95,4%; эти показатели относятся к описанному набору курсов и протоколу проверки.

Модель подходит для автоматической привязки экзаменационных вопросов к CO и поиска семантически близких описаний результатов обучения в CSE-курсах. Она принимает текст и выдаёт векторы для сравнения по сходству, поэтому её качество за пределами указанного образовательного домена не подтверждено. Лицензия — Apache-2.0.

Сценарии применения

  • Сопоставление экзаменационного вопроса с подходящим Course Outcome
  • Ранжирование результатов обучения одного курса по близости к вопросу
  • Поиск семантически близких описаний CO
  • Автоматическая разметка экзаменационных вопросов результатами обучения
  • Построение сервиса сопоставления вопросов и CO для CSE-курсов

Ограничения

Специализирована на сопоставлении вопросов и Course Outcomes в курсах компьютерных наук; приведённые метрики получены на ограниченной выборке и не гарантируют такое же качество на других курсах или вне этой области. Контекст ограничен 512 токенами.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

sbert-obe-csematch — Continual Learning v3.0

OBE AI System | Course Outcome (CO) Semantic Matching Engine for Computer Science Engineering

This is a domain-specific Sentence-BERT model fine-tuned on Outcome-Based Education (OBE) data for Computer Science & Engineering courses. It maps exam questions and course outcome descriptions into a shared 384-dimensional dense vector space, enabling high-accuracy semantic matching of exam questions to their corresponding Course Outcomes (COs).


🚀 What's New in v3.0 (Continual Learning Release)

  • Warm-started from existing fine-tuned weights (domain knowledge preserved)
  • Trained on the expanded & balanced OBE_Augmented_Dataset (7,009 rows vs 6,387 previously)
  • Top-1 Accuracy improved from 54.6% → 82.4% (+50.9% relative gain)
  • Macro F1-Score improved from 47.9% → 79.6% (+66.1% relative gain)
  • Cosine Separation Margin improved from 0.089 → 0.214 (+139.6% discriminative boost)
  • All embeddings remain 384-dimensional — zero breaking changes to downstream APIs

📋 Model Details

PropertyValue
Model TypeSentence Transformer (Bi-Encoder)
Base Architecturesentence-transformers/all-MiniLM-L6-v2
Output Dimensions384d (L2-normalized dense vectors)
Max Sequence Length256 tokens
Similarity FunctionCosine Similarity
Training ApproachContinual Learning (warm-start from v2.x weights)
Loss FunctionMultipleNegativesRankingLoss (in-batch hard negatives)
LanguageEnglish
LicenseApache 2.0

Architecture Modules

SentenceTransformer(
  (0): Transformer[BertModel] — 6 layers, 12 heads, 384 hidden
  (1): Pooling — mean pooling strategy
  (2): Normalize — L2 normalization
)

🏋️ Training Configuration

HyperparameterValue
DatasetOBE_Augmented_Dataset.xlsx → Sheet: Unique_Master_Questions
Dataset Size7,009 rows (Original Exam + Class Test + Augmented)
Train / Val Split90% / 10% (group-aware — zero data leakage)
Training Examples6,387 InputExample pairs (Question ↔ CO Description)
Validation Pairs622 (positive + shuffled-negative for proper score variance)
Epochs4
Batch Size32
OptimizerAdamW
Learning Rate2e-5
Weight Decay0.01
Warmup Steps80 (10% of 800 total steps)
Training Speed184.7 samples/sec on NVIDIA RTX 4050 (6.4 GB VRAM)
Total Training Time~2.4 minutes
Final Train Loss0.6683

Data Split Strategy

Groups are defined by (Course Name, CO) pairs, ensuring all augmented variants of the same exam question land entirely in train OR validation — zero data leakage guaranteed by assertion.


📊 Benchmark Results (N=500, seed=42)

Evaluated on 500 randomly sampled questions (23 courses) from Unique_Master_Questions. Each question is matched only against the valid COs of its own course.

MetricBase Model (all-MiniLM)Fine-Tuned (sbert-obe-csematch)Delta
Top-1 Accuracy54.60%82.40%+27.80 (+50.9%) 🚀
Top-3 Accuracy88.60%95.40%+6.80 (+7.7%) ✅
Macro Precision47.76%75.80%+28.04 (+58.7%) 🚀
Macro Recall48.71%86.48%+37.77 (+77.5%) 🚀
Macro F1-Score47.90%79.57%+31.67 (+66.1%) 🚀
Weighted Precision54.83%82.82%+27.99 (+51.0%) 🚀
Weighted Recall54.60%82.40%+27.80 (+50.9%) 🚀
Weighted F1-Score54.46%82.38%+27.92 (+51.3%) 🚀
Mean Positive Similarity0.34560.5148+0.1692 ✅
Mean Negative Similarity0.25650.3012+0.0447
Cosine Separation Margin0.08910.2135+0.1245 🚀

Cosine Separation Margin = Mean Positive Similarity − Mean Negative Similarity. A higher margin means the model is more discriminative between correct and distractor COs.


💻 Usage

Basic CO Matching

from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer("obe-ai-system/sbert-obe-csematch")

# Exam question
question = "Implement a Binary Search Tree and explain its traversal methods."

# Course outcome candidates
course_outcomes = [
    "CO1: Implement fundamental data structures including trees, graphs, and heaps.",
    "CO2: Analyze time and space complexity of common algorithms.",
    "CO3: Apply sorting and searching algorithms to solve computational problems.",
    "CO4: Design recursive and iterative solutions to complex programming problems.",
]

# Encode and compute similarity
q_emb  = model.encode(question, normalize_embeddings=True)
co_emb = model.encode(course_outcomes, normalize_embeddings=True)
scores = util.cos_sim(q_emb, co_emb)[0]

# Rank by similarity
ranked = sorted(zip(course_outcomes, scores.tolist()), key=lambda x: x[1], reverse=True)
for co, score in ranked:
    print(f"{score:.4f}  {co[:60]}")

Batch Evaluation

import numpy as np
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("obe-ai-system/sbert-obe-csematch")

questions = ["...", "..."]  # list of exam questions
co_descs  = ["...", "..."]  # corresponding CO descriptions

q_embs  = model.encode(questions, normalize_embeddings=True, batch_size=64)
co_embs = model.encode(co_descs,  normalize_embeddings=True, batch_size=64)

# Pair-wise cosine similarity
similarities = np.einsum("ij,ij->i", q_embs, co_embs)
print(f"Mean cosine similarity: {similarities.mean():.4f}")

🗂️ Repository Files

FileDescription
model.safetensorsFine-tuned BERT weights (6-layer, 384-hidden)
config.jsonTransformer architecture config
config_sentence_transformers.jsonSentenceTransformer pipeline config
tokenizer.jsonWordPiece tokenizer
tokenizer_config.jsonTokenizer settings
modules.jsonPipeline module definitions (Transformer → Pooling → Normalize)
sentence_bert_config.jsonSBERT max sequence length config
1_Pooling/config.jsonMean pooling configuration
2_Normalize/config.jsonL2 normalization configuration

🔌 Integration — OBE AI System FastAPI Service

This model powers the /api/v1/co-match endpoint of the OBE AI System:

# POST /api/v1/co-match
{
    "question": "Explain the concept of virtual memory and page replacement.",
    "course_code": "CSE 311",
    "top_k": 3
}

# Response
{
    "top_matches": [
        {"co_id": "CO4", "similarity": 0.8721, "description": "Analyze working procedure and structure of main and virtual memory."},
        {"co_id": "CO3", "similarity": 0.7423, "description": "..."},
        {"co_id": "CO2", "similarity": 0.6912, "description": "..."}
    ],
    "embedding_dim": 384,
    "model_version": "sbert-obe-csematch-v3.0"
}

📚 Training Data

The model was trained on the OBE Augmented Dataset covering 15+ CSE courses:

CourseCodeCoverage
Discrete MathematicsCSE 113✅
Data StructuresCSE 211✅
Object-Oriented ProgrammingCSE 213✅
Operating SystemCSE 311✅
Database Management SystemCSE 313✅
Computer Architecture and DesignCSE 315✅
Software EngineeringCSE 317✅
Theory of ComputationCSE 319✅
Data CommunicationCSE 321✅
Web TechnologiesCSE 323✅
Computer NetworksCSE 327✅
Machine LearningCSE 411✅
Compiler DesignCSE 413✅
Digital Image ProcessingCSE 443✅
+ More...✅

Data types: Original Exam (2,049) + Class Test (211) + Augmented (4,749) = 7,009 total rows


⚙️ Technical Notes

  • Backward compatible: All embeddings are 384-dimensional — no changes to downstream vector stores, similarity pipelines, or APIs required
  • Warm-start training: v3.0 built upon v2.x fine-tuned weights using continual learning (domain knowledge preserved, catastrophic forgetting minimized)
  • Group-aware data split: (Course Name, CO) grouping prevents augmented variants of the same question from leaking across train/val splits
  • In-batch hard negatives: MultipleNegativesRankingLoss treats other CO descriptions in the same batch as hard negatives, improving discriminative ability

📈 Training Logs

EpochStepTrain LossNotes
0.5100—Checkpoint saved
1.0200—Checkpoint saved
1.5300—Checkpoint saved
2.0400—Checkpoint saved
2.55000.7755Logged
3.0600—Checkpoint saved
3.5700—Checkpoint saved
4.08000.6683Final model saved

🧰 Framework Versions

LibraryVersion
Python3.13.14
Sentence Transformers6.0.1
Transformers5.16.1
PyTorch2.6.0+cu124
Accelerate1.15.0
Datasets5.0.1
Tokenizers0.23.2

📖 Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

MultipleNegativesRankingLoss

@misc{oord2019representationlearningcontrastivepredictive,
      title={Representation Learning with Contrastive Predictive Coding},
      author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
      year={2019},
      eprint={1807.03748},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/1807.03748},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
79960b5

0 моделей