/ Модель

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

Контекст
512 токенов
Параметры
137 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
bge-base-en-v1.5
Библиотека
sentence-transformers
Опубликована
5 июл 2024

bge-base-financial-matryoshka

ЭмбеддингиТекст → embedding

Англоязычная модель эмбеддингов для семантического поиска и сравнения финансовых текстов с поддержкой Matryoshka-представлений.

108скачиваний за 30 дней0лайковвеса обновлены5 июл 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Naruke/bge-base-financial-matryoshka — англоязычная модель Sentence Transformers, дообученная на базе BAAI/bge-base-en-v1.5 для финансовых текстов. Архитектура основана на BERT; модель содержит 136,7 млн параметров и преобразует предложения и абзацы в плотные нормализованные векторы размерностью 768 для сравнения по косинусному сходству. Длина входной последовательности — до 512 токенов.

Модель подходит для семантического поиска финансовой информации, поиска похожих предложений и документов, выявления перефразировок, кластеризации и классификации текста. Обучение с MatryoshkaLoss позволяет использовать укороченные представления размерностью 512, 256, 128 или 64, сохраняя полезность для поиска. В README приведены результаты оценки поиска на наборах dim_768, dim_512, dim_256, dim_128 и dim_64.

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

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

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

Ограничения

Работает с текстом на английском языке и ограничивает вход 512 токенами. Модель создаёт эмбеддинги, а не готовые ответы; качество на тематиках вне финансовой отчётности по приведённым данным не установлено.

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

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

Открыть на Hugging Face

BGE base Financial Matryoshka

This is a sentence-transformers model finetuned from BAAI/bge-base-en-v1.5. 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 Type: Sentence Transformer
  • Base model: BAAI/bge-base-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel 
  (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})
  (2): Normalize()
)

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("Naruke/bge-base-financial-matryoshka")
# Run inference
sentences = [
    'As part of our solar energy system and energy storage contracts, we may provide the customer with performance guarantees that commit that the underlying system will meet or exceed the minimum energy generation or performance requirements specified in the contract.',
    'What types of guarantees does Tesla provide to its solar and energy storage customers?',
    'How many full-time employees did Microsoft report as of June 30, 2023?',
]
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]

Evaluation

Metrics

Information Retrieval

MetricValue
cosine_accuracy@10.71
cosine_accuracy@30.84
cosine_accuracy@50.8686
cosine_accuracy@100.9143
cosine_precision@10.71
cosine_precision@30.28
cosine_precision@50.1737
cosine_precision@100.0914
cosine_recall@10.71
cosine_recall@30.84
cosine_recall@50.8686
cosine_recall@100.9143
cosine_ndcg@100.8125
cosine_mrr@100.7798
cosine_map@1000.7826

Information Retrieval

MetricValue
cosine_accuracy@10.7043
cosine_accuracy@30.8357
cosine_accuracy@50.8657
cosine_accuracy@100.9114
cosine_precision@10.7043
cosine_precision@30.2786
cosine_precision@50.1731
cosine_precision@100.0911
cosine_recall@10.7043
cosine_recall@30.8357
cosine_recall@50.8657
cosine_recall@100.9114
cosine_ndcg@100.8078
cosine_mrr@100.7745
cosine_map@1000.7776

Information Retrieval

MetricValue
cosine_accuracy@10.7029
cosine_accuracy@30.8229
cosine_accuracy@50.8586
cosine_accuracy@100.8971
cosine_precision@10.7029
cosine_precision@30.2743
cosine_precision@50.1717
cosine_precision@100.0897
cosine_recall@10.7029
cosine_recall@30.8229
cosine_recall@50.8586
cosine_recall@100.8971
cosine_ndcg@100.8004
cosine_mrr@100.7693
cosine_map@1000.7733

Information Retrieval

MetricValue
cosine_accuracy@10.6771
cosine_accuracy@30.8143
cosine_accuracy@50.8543
cosine_accuracy@100.8971
cosine_precision@10.6771
cosine_precision@30.2714
cosine_precision@50.1709
cosine_precision@100.0897
cosine_recall@10.6771
cosine_recall@30.8143
cosine_recall@50.8543
cosine_recall@100.8971
cosine_ndcg@100.7887
cosine_mrr@100.7538
cosine_map@1000.7573

Information Retrieval

MetricValue
cosine_accuracy@10.6643
cosine_accuracy@30.7814
cosine_accuracy@50.8129
cosine_accuracy@100.86
cosine_precision@10.6643
cosine_precision@30.2605
cosine_precision@50.1626
cosine_precision@100.086
cosine_recall@10.6643
cosine_recall@30.7814
cosine_recall@50.8129
cosine_recall@100.86
cosine_ndcg@100.76
cosine_mrr@100.7283
cosine_map@1000.7331

Training Details

Training Dataset

Unnamed Dataset

  • Size: 6,300 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positiveanchor
    typestringstring
    detailsmin: 9 tokensmean: 45.57 tokensmax: 289 tokensmin: 9 tokensmean: 20.32 tokensmax: 51 tokens
  • Samples:
    positiveanchor
    The detailed information about commitments and contingencies related to legal proceedings is included under Note 13 in Part II, Item 8 of the Annual Report.Where can detailed information about the commitments and contingencies related to legal proceedings be found in the Annual Report on Form 10-K?
    American Express's decision to reinvest gains into its business will depend on regulatory and other approvals, consultation requirements, the execution of ancillary agreements, the cost and availability of financing for the purchaser to fund the transaction and the potential loss of key customers, vendors and other business partners and management’s decisions regarding future operations, strategies and business initiatives.What factors influence American Express's decision to reinvest gains into its business?
    Lease obligations as of June 30, 2023, related to office space and various facilities totaled $883.1 million, with lease terms ranging from one to 21 years and are mostly renewable.How much were lease obligations related to office space and other facilities as of June 30, 2023, and what were the terms?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_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: cosine
  • 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: True
  • 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_fused
  • 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: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Lossdim_128_cosine_map@100dim_256_cosine_map@100dim_512_cosine_map@100dim_64_cosine_map@100dim_768_cosine_map@100
0.4061100.9835-----
0.8122200.4319-----
0.974624-0.75410.77290.77380.72420.7786
1.2183300.3599-----
1.6244400.2596-----
1.949248-0.75730.77330.77760.73310.7826
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.32.1
  • Datasets: 2.20.0
  • Tokenizers: 0.19.1

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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning}, 
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

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…

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

0 моделей