/ Модель

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

Контекст
514 токенов
Параметры
659 млн
Лицензия
Apache 2.0
Архитектура
xlm-roberta · dense
Базовая модель
esco-xlm-roberta-large
Библиотека
sentence-transformers
Опубликована
6 апр 2026

skillscout-large

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

Англоязычный bi-encoder для поиска и ранжирования навыков ESCO по названию профессии.

123скачиваний за 30 дней1лайквеса обновлены6 апр 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SkillScout Large — плотный bi-encoder TalentGuide для поиска навыков ESCO по названию профессии. Модель разработана для Stage 1 двухэтапного сопоставления профессий и навыков в задаче TalentCLEF 2026 Task B; она кодирует название профессии и описания навыков в эмбеддинги и ранжирует 9 052 навыка по косинусному сходству.

Модель основана на jjzha/esco-xlm-roberta-large: архитектура XLM-RoBERTa-large с mean pooling, 658,7 млн параметров и эмбеддингами размерности 1024. Для кодирования и поиска используются sentence-transformers; максимальная длина входа в README указана как 64 токена. Модель обучена на англоязычных данных ESCO и оптимизирована для этой таксономии. Для более точного различения основных и контекстных навыков README рекомендует добавить cross-encoder-реранкер; на проверочной выборке сочетание с ним показало более высокий nDCG@10, чем bi-encoder отдельно.

Модель подходит для подбора навыков к названиям вакансий и построения поиска по каталогу ESCO. Лицензия — Apache-2.0.

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

  • Подбор релевантных навыков ESCO по названию вакансии
  • Поиск навыков для заданной профессии по семантическому сходству
  • Построение первого этапа системы сопоставления профессий и навыков
  • Формирование кандидатов навыков для последующего реранжирования cross-encoder-моделью

Ограничения

Обучена для английских меток ESCO; перенос на O*NET или пользовательские таксономии может потребовать дообучения. README рекомендует подавать короткие названия профессий длиной до 64 токенов и использовать cross-encoder для надёжного различения основных и контекстных навыков.

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

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

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

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

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

Открыть на Hugging Face

SkillScout Large - Job-to-Skill Dense Retriever

SkillScout Large is a dense bi-encoder for retrieving relevant skills from a job title. Given a job title (e.g., "Data Scientist"), it produces a 1024-dimensional embedding and retrieves the most semantically relevant skills from the ESCO skill gazetteer (9,052 skills) via cosine similarity.

This is Stage 1 of the TalentGuide two-stage job-skill matching pipeline, trained for TalentCLEF 2026 Task B.

Best pipeline result (TalentCLEF 2026 validation set): nDCG@10 graded = 0.6896 | nDCG@10 binary = 0.7330 when combined with a fine-tuned cross-encoder at blend alpha=0.7. Bi-encoder alone: nDCG@10 graded = 0.3621 | MAP = 0.4545


Model Summary

PropertyValue
Base modeljjzha/esco-xlm-roberta-large
ArchitectureXLM-RoBERTa-large + mean pooling
Embedding dimension1024
Max sequence length64 tokens
Training lossMultiple Negatives Ranking (MNR)
Training pairs93,720 (ESCO job-skill pairs, essential + optional)
Epochs3
Best checkpointStep 3500 (by validation nDCG@10)
HardwareNVIDIA RTX 3070 8GB, fp16 AMP

What is TalentCLEF Task B?

TalentCLEF 2026 Task B is a graded information-retrieval shared task:

  • Query: a job title (e.g., "Electrician")
  • Corpus: 9,052 ESCO skills (e.g., "install electric switches")
  • Relevance levels: 2 = Core, 1 = Contextual, 0 = Non-relevant
  • Primary metric: nDCG with graded relevance (core=2, contextual=1)

Usage

Installation

pip install sentence-transformers faiss-cpu

Encode and Compare

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("talentguide/skillscout-large")

job    = "Data Scientist"
skills = ["data science", "machine learning", "install electric switches"]

embs   = model.encode([job] + skills, normalize_embeddings=True)
scores = embs[0] @ embs[1:].T

for skill, score in zip(skills, scores):
    print(f"{score:.3f}  {skill}")
# 0.872  data science
# 0.731  machine learning
# 0.112  install electric switches

Full Retrieval with FAISS (Recommended)

from sentence_transformers import SentenceTransformer
import faiss, numpy as np

model = SentenceTransformer("talentguide/skillscout-large")

# Build index once over your skill corpus
skill_texts = [...]  # list of skill names

embs = model.encode(skill_texts, batch_size=128,
                    normalize_embeddings=True,
                    show_progress_bar=True).astype(np.float32)

index = faiss.IndexFlatIP(embs.shape[1])  # inner product on L2-normed = cosine
index.add(embs)

job_title = "Software Engineer"
q = model.encode([job_title], normalize_embeddings=True).astype(np.float32)
scores, idxs = index.search(q, k=50)

for rank, (idx, score) in enumerate(zip(idxs[0], scores[0]), 1):
    print(f"{rank:3d}. [{score:.4f}]  {skill_texts[idx]}")

Demo Output

Software Engineer
   1. [0.942]  define software architecture
   2. [0.938]  software frameworks
   3. [0.935]  create software design

Data Scientist
   1. [0.951]  data science
   2. [0.921]  establish data processes
   3. [0.919]  create data models

Electrician
   1. [0.944]  install electric switches
   2. [0.938]  install electricity sockets
   3. [0.930]  use electrical wire tools

Two-Stage Pipeline Integration

Job title
   |
   v
[SkillScout Large]         <- this model
   |  top-200 candidates via FAISS ANN
   v
[Cross-encoder re-ranker]
   |  fine-grained re-scoring
   v
Final ranked list (graded: core > contextual > irrelevant)

Blend formula (alpha=0.7 gives best validation results):

final_score = alpha * biencoder_score + (1 - alpha) * crossencoder_score

Training Details

Data

Source: ESCO occupational ontology, TalentCLEF 2026 training split.

Count
Job-skill pairs (essential)~57,500
Job-skill pairs (optional)~57,200
Total InputExamples93,720
Validation queries304
Validation corpus9,052 skills
Validation qrels56,417

Each ESCO job has 5-15 title aliases; skills have multiple phrasings. Optional pairs are downsampled to 50% of essential count to maintain class balance.

Hyperparameters

Loss           : MultipleNegativesRankingLoss (scale=20, cos_sim)
Batch size     : 64  (63 in-batch negatives per anchor)
Epochs         : 3
Warmup         : 10% of steps (~440 steps)
Optimizer      : AdamW fused
Learning rate  : 5e-5, linear decay
Precision      : fp16 AMP
Max seq len    : 64 tokens
Best model     : saved by cosine-nDCG@10 on validation

Training Curve

EpochStepTrain LossnDCG@10 valMAP@100 val
0.345002.92320.3430-
0.6810002.11790.3424-
1.001465-0.36760.1758
1.3720001.70700.3692-
1.7125001.63660.3744-
2.002930-0.37170.1780
2.3935001.45400.37690.1808

Validation Metrics (best checkpoint, step 3500)

MetricValue
nDCG@100.4830
nDCG@500.4240
nDCG@1000.3769
MAP@1000.1825
MRR@100.6657
Accuracy@10.5099
Accuracy@30.7993
Accuracy@50.8914
Accuracy@100.9474

Evaluated with InformationRetrievalEvaluator (binary: any qrel > 0 = relevant).

Pipeline Results (graded relevance, full 9052-skill ranking)

RunnDCG@10 gradednDCG@10 binaryMAP
Zero-shot jjzha/esco-xlm-roberta-large0.20390.28530.2663
SkillScout Large (bi-encoder only)0.36210.48300.4545
SkillScout Large + cross-encoder (alpha=0.7)0.68960.73300.2481

Competitive Context (TalentCLEF 2025 Task B)

TeamMAP (test)Approach
pjmathematician (winner 2025)0.36GTE 7B + contrastive + LLM-augmented data
NLPnorth (3rd of 14, 2025)0.293-class discriminative classification
SkillScout Large (2026 val, Stage 1 only)0.4545MNR fine-tuned bi-encoder

Limitations

  • English only - trained on ESCO EN labels.
  • ESCO-domain optimised - transfer to O*NET or custom taxonomies may require fine-tuning.
  • Max 64 tokens - reduce long descriptions to a concise job title.
  • Graded distinction - the bi-encoder alone does not reliably separate core vs contextual skills; a cross-encoder re-ranker is recommended for graded nDCG.

Citation

@misc{talentguide-skillscout-2026,
  title  = {SkillScout Large: Dense Job-to-Skill Retrieval for TalentCLEF 2026},
  author = {TalentGuide},
  year   = {2026},
  url    = {https://huggingface.co/talentguide/skillscout-large}
}

@misc{talentclef2026taskb,
  title  = {TalentCLEF 2026 Task B: Job-Skill Matching},
  author = {TalentCLEF Organizers},
  year   = {2026},
  url    = {https://talentclef.github.io/}
}

Framework Versions

  • Python 3.12.10 | Sentence Transformers 5.3.0 | Transformers 5.5.0
  • PyTorch 2.11.0+cu128 | Accelerate 1.13.0 | Tokenizers 0.22.2

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
XLMRobertaModel
Ревизия весов
6e1d756

0 моделей