/ Модель

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

Контекст
8 192 токена
Параметры
149 млн
Лицензия
Apache 2.0
Архитектура
modernbert · dense
Базовая модель
gte-modernbert-base
Библиотека
sentence-transformers
Опубликована
27 янв 2025

gte-modernbert-base-code-3

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

Англоязычная модель эмбеддингов на базе ModernBERT для семантического поиска и сравнения запросов и текстов, включая материалы по программированию.

128скачиваний за 30 дней0лайковвеса обновлены27 янв 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lemon-mint/gte-modernbert-base-code-3 — англоязычная модель Sentence Transformers, дообученная разработчиком lemon-mint на базе Alibaba-NLP/gte-modernbert-base на парах запросов и положительных примеров из набора Magpie-Qwen2.5-Coder-Pro-300K-Query-Positive-Pair. Она кодирует предложения и абзацы в плотные векторы размерности 768 и предназначена для семантического поиска и сравнения текстов, в том числе запросов и материалов по программированию. Архитектура включает ModernBERT и пулинг CLS-токена; максимальная длина входа — 8192 токена, сходство можно оценивать косинусной мерой.

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

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

  • семантический поиск по документации и текстам о программировании
  • поиск релевантных фрагментов по англоязычному запросу
  • сравнение текстов по смысловой близости
  • поиск перефразирований и похожих запросов
  • кластеризация текстов и подготовка эмбеддингов для классификации

Ограничения

Модель выдаёт векторы, а не готовые текстовые ответы. README не приводит количественных результатов оценки качества.

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

gte-modernbert-base trained on Magpie Coder data

This is a sentence-transformers model finetuned from Alibaba-NLP/gte-modernbert-base on the magpie-qwen2.5-coder-pro-300_k-query-positive-pair dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("lemon-mint/gte-modernbert-base-code-3")
# Run inference
sentences = [
    'Design a simple Python script to backup a database using SQL commands and save it to a file. This script should use PostgreSQL as the database management system.',
    'import subprocess\nimport os\nfrom datetime import datetime\n\ndef backup_database(db_name, db_user, db_host, db_port, backup_dir):\n    # Ensure the backup directory exists\n    if not os.path.exists(backup_dir):\n        os.makedirs(backup_dir)\n\n    # Create a timestamp for the backup file\n    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")\n    backup_file = os.path.join(backup_dir, f"{db_name}_backup_{timestamp}.sql")\n\n    # Construct the pg_dump command\n    command = [\n        "pg_dump",\n        "-U", db_user,\n        "-h", db_host,\n        "-p", str(db_port),\n        "-F", "c",  # Custom format, which is compressed\n        "-b",       # Include large objects\n        "-v",       # Verbose mode\n        "-f", backup_file,\n        db_name\n    ]\n\n    try:\n        # Run the pg_dump command\n        subprocess.run(command, check=True)\n        print(f"Backup successful: {backup_file}")\n    except subprocess.CalledProcessError as e:\n        print(f"An error occurred while backing up the database: {e}")\n\nif __name__ == "__main__":\n    # Database connection details\n    db_name = "your_database_name"\n    db_user = "your_database_user"\n    db_host = "localhost"  # or your database host\n    db_port = 5432         # default PostgreSQL port\n    backup_dir = "/path/to/your/backup/directory"\n\n    # Call the backup function\n    backup_database(db_name, db_user, db_host, db_port, backup_dir)\n',
    'def fibonacci_sequence(n):\n    # Initialize the first two Fibonacci numbers\n    fib_sequence = [0, 1]\n    \n    # Generate the Fibonacci sequence up to n\n    while True:\n        next_fib = fib_sequence[-1] + fib_sequence[-2]\n        if next_fib > n:\n            break\n        fib_sequence.append(next_fib)\n    \n    # If n is less than 1, return the sequence up to n\n    if n < 1:\n        return fib_sequence[:n+1]\n    \n    return fib_sequence\n\n# Example usage\nn = int(input("Enter a number to generate the Fibonacci sequence up to: "))\nsequence = fibonacci_sequence(n)\nprint(f"Fibonacci sequence up to {n}: {sequence}")\n',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Training Details

Training Dataset

magpie-qwen2.5-coder-pro-300_k-query-positive-pair

  • Dataset: magpie-qwen2.5-coder-pro-300_k-query-positive-pair at 1c3e977
  • Size: 78,926 training samples
  • Columns: query and positive
  • Approximate statistics based on the first 1000 samples:
    querypositive
    typestringstring
    detailsmin: 8 tokensmean: 35.38 tokensmax: 184 tokensmin: 3 tokensmean: 235.42 tokensmax: 1097 tokens
  • Samples:
    querypositive
    Can you provide a Python script that reads a CSV file and performs basic data analysis on it? The CSV file contains sales data with columns like Date, Product, Quantity, and Price. The analysis should include:import pandas as pd# Load the CSV file into a DataFramedef load_data(file_path): try: data = pd.read_csv(file_path) return data except FileNotFoundError: print(f"Error: The file {file_path} was not found.") return None except pd.errors.EmptyDataError: print("Error: The file is empty.") return None except pd.errors.ParserError: print("Error: There was a problem parsing the file.") return None# Perform basic data analysisdef analyze_data(data): if data is None: return # Display the first few rows of the DataFrame print("First few rows of the dataset:") print(data.head()) # Get a summary of the DataFrame print("\nSummary of the dataset:") print(data.info()) # Get basic statistics of the DataFrame print("\nBasic statistics of the dataset:") print(data.describe()) # Calculate total sales data['Total Sales'] = data['Quantity'] * data['Price'] t...
    How can I retrieve the virtual machine instances using the Alibaba Cloud SDK for Java?import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest;import com.aliyuncs.ecs.model.v20140526.DescribeInstancesResponse;import com.aliyuncs.exceptions.ClientException;import com.aliyuncs.profile.DefaultProfile;public class DescribeInstancesExample { public static void main(String[] args) { // Step 1: Configure your Alibaba Cloud credentials String accessKeyId = "yourAccessKeyId"; String accessKeySecret = "yourAccessKeySecret"; String regionId = "yourRegionId"; // e.g., "cn-hangzhou" // Step 2: Create a profile and initialize the client DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret); IAcsClient client = new DefaultAcsClient(profile); // Step 3: Create a request to describe instances DescribeInstancesRequest request = new DescribeInstancesRequest(); request.setPageSize(10); /...
    I have a list of product reviews where the titles and body text of each review are separated by a period. How can I split these reviews into their respective titles and bodies in Python?# Sample list of reviewsreviews = [ "Great product. I really enjoyed using it!", "Not what I expected. It broke after a week.", "Excellent quality. Very satisfied with the purchase."]# Function to split reviews into titles and bodiesdef split_reviews(reviews): split_reviews = [] for review in reviews: # Split the review into title and body parts = review.split('.', 1) # Split only at the first period if len(parts) == 2: title = parts[0].strip() # Remove any leading/trailing whitespace body = parts[1].strip() # Remove any leading/trailing whitespace split_reviews.append((title, body)) else: # Handle cases where there is no period in the review split_reviews.append((parts[0].strip(), '')) return split_reviews# Split the reviewssplit_reviews = split_reviews(reviews)# Print the resultsfor title, body in split_reviews: print(f"Title: {title}") print(f"Bo...
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 64
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_ratio: 0.1
  • bf16: True

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 2
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Loss
0.0081100.2042
0.0162200.1868
0.0243300.1609
0.0324400.1735
0.0405500.1792
0.0486600.1601
0.0567700.1272
0.0648800.1166
0.0729900.106
0.08101000.1165
0.08911100.0952
0.09721200.1117
0.10531300.1172
0.11351400.0666
0.12161500.0749
0.12971600.0627
0.13781700.1283
0.14591800.0876
0.15401900.0825
0.16212000.0666
0.17022100.0796
0.17832200.0612
0.18642300.077
0.19452400.0625
0.20262500.064
0.21072600.0692
0.21882700.0461
0.22692800.0555
0.23502900.0959
0.24313000.0716
0.25123100.0542
0.25933200.0667
0.26743300.0455
0.27553400.0773
0.28363500.0538
0.29173600.0635
0.29983700.0782
0.30793800.0584
0.31603900.0657
0.32414000.0637
0.33234100.0498
0.34044200.0569
0.34854300.0725
0.35664400.0452
0.36474500.0778
0.37284600.0529
0.38094700.0596
0.38904800.0512
0.39714900.0492
0.40525000.0635
0.41335100.0513
0.42145200.0683
0.42955300.0819
0.43765400.069
0.44575500.0573
0.45385600.0638
0.46195700.0937
0.47005800.0468
0.47815900.0596
0.48626000.0698
0.49436100.0684
0.50246200.0467
0.51056300.0547
0.51866400.0435
0.52676500.0435
0.53486600.074
0.54296700.0673
0.55116800.0528
0.55926900.0398
0.56737000.0518
0.57547100.0337
0.58357200.0429
0.59167300.0524
0.59977400.0527
0.60787500.0508
0.61597600.0405
0.62407700.0395
0.63217800.0766
0.64027900.0653
0.64838000.076
0.65648100.055
0.66458200.0455
0.67268300.0563
0.68078400.0511
0.68888500.0277
0.69698600.0369
0.70508700.0427
0.71318800.054
0.72128900.0494
0.72939000.047
0.73749100.0335
0.74559200.0495
0.75369300.0618
0.76189400.0552
0.76999500.0444
0.77809600.0336
0.78619700.042
0.79429800.0519
0.80239900.0415
0.810410000.037
0.818510100.0718
0.826610200.0307
0.834710300.0573
0.842810400.0509
0.850910500.0375
0.859010600.0352
0.867110700.0338
0.875210800.0644
0.883310900.0392
0.891411000.0433
0.899511100.0507
0.907611200.0439
0.915711300.0322
0.923811400.0505
0.931911500.0403
0.940011600.0482
0.948111700.0502
0.956211800.0353
0.964311900.0346
0.972412000.0526
0.980612100.0476
0.988712200.0336
0.996812300.0376
1.004912400.0216
1.013012500.0314
1.021112600.031
1.029212700.0255
1.037312800.0331
1.045412900.032
1.053513000.0443
1.061613100.0252
1.069713200.0242
1.077813300.0281
1.085913400.0305
1.094013500.0278
1.102113600.0276
1.110213700.0257
1.118313800.03
1.126413900.0299
1.134514000.0423
1.142614100.0494
1.150714200.0338
1.158814300.0284
1.166914400.0311
1.175014500.0345
1.183114600.0415
1.191214700.0223
1.199414800.0367
1.207514900.0317
1.215615000.0331
1.223715100.044
1.231815200.0398
1.239915300.023
1.248015400.0249
1.256115500.0241
1.264215600.0357
1.272315700.0358
1.280415800.0244
1.288515900.0422
1.296616000.0213
1.304716100.0371
1.312816200.0346
1.320916300.0313
1.329016400.0192
1.337116500.0263
1.345216600.0277
1.353316700.0301
1.361416800.0375
1.369516900.0227
1.377617000.0213
1.385717100.022
1.393817200.0426
1.401917300.025
1.410017400.026
1.418217500.0487
1.426317600.0359
1.434417700.0285
1.442517800.0384
1.450617900.0388
1.458718000.0304
1.466818100.0321
1.474918200.0183
1.483018300.0178
1.491118400.0311
1.499218500.0243
1.507318600.0358
1.515418700.0274
1.523518800.034
1.531618900.0255
1.539719000.027
1.547819100.023
1.555919200.0251
1.564019300.0376
1.572119400.032
1.580219500.0432
1.588319600.0307
1.596419700.0282
1.604519800.0227
1.612619900.0221
1.620720000.018
1.628820100.0189
1.637020200.0417
1.645120300.0244
1.653220400.0258
1.661320500.0488
1.669420600.0322
1.677520700.0348
1.685620800.0202
1.693720900.023
1.701821000.0298
1.709921100.0391
1.718021200.019
1.726121300.0294
1.734221400.0268
1.742321500.0308
1.750421600.032
1.758521700.0287
1.766621800.0452
1.774721900.0425
1.782822000.0294
1.790922100.0227
1.799022200.0183
1.807122300.0158
1.815222400.0149
1.823322500.0347
1.831422600.0129
1.839522700.0305
1.847622800.0173
1.855822900.0357
1.863923000.0195
1.872023100.0392
1.880123200.0168
1.888223300.0266
1.896323400.0143
1.904423500.0296
1.912523600.0367
1.920623700.0151
1.928723800.0253
1.936823900.0415
1.944924000.0371
1.953024100.0267
1.961124200.0327
1.969224300.0378
1.977324400.0267
1.985424500.0275
1.993524600.0263

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.4.0
  • Transformers: 4.48.1
  • PyTorch: 2.1.0+cu118
  • Accelerate: 1.3.0
  • Datasets: 3.2.0
  • Tokenizers: 0.21.0

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{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply},
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
ModernBertModel
Ревизия весов
ac64c10

0 моделей