/ Модель

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

Контекст
512 токенов
Параметры
25,9 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
all-MiniLM-L6-v2
Библиотека
sentence-transformers
Опубликована
2 дек 2024

deep-learning-for-embedding-model-ssilwal-qpham6_army_doc

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

Англоязычный BERT-энкодер, дообученный для преобразования текстов в семантические векторы и поиска похожих предложений и абзацев.

136скачиваний за 30 дней0лайковвеса обновлены2 дек 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это англоязычная модель Sentence Transformer, разработанная автором репозитория bbmb и дообученная на данных json от sentence-transformers/all-MiniLM-L6-v2. Она кодирует предложения и абзацы в плотные семантические векторы размерностью 384 для поиска и сравнения текстов. Архитектура основана на BERT с усреднением токенных представлений и нормализацией векторов; метаданные указывают контекст до 512 токенов, а карточка — максимальную длину последовательности 256 токенов.

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

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

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

Ограничения

Английский язык; максимальная длина последовательности в README составляет 256 токенов, тогда как метаданные указывают контекст 512 токенов. В README приведены низкие показатели cosine_accuracy для информационного поиска; качество следует проверять на целевых данных.

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

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

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

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

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

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

Открыть на Hugging Face

deep learning project 2

This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2 on the json dataset. It maps sentences & paragraphs to a 384-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: sentence-transformers/all-MiniLM-L6-v2
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 384 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, '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("bbmb/deep-learning-for-embedding-model-ssilwal-qpham6_army_doc")
# Run inference
sentences = [
    'Offense \n11 January 2024 ATP 3-21.8 4-61\nlight the target, making it easier to acquire effectively. Leaders and Soldiers \nuse the infrared devices to identify enemy or friendly personnel and then \nengage targets using their aiming lights. \n4-172. Illuminating rounds fired to burn on the ground can mark objectives. This helps\nthe platoon orient on the objective but may adversely affect night vision devices.\n4-173. Leaders plan but do not always use illumination during limited visibility\nattacks. Battalion commanders normally control conventional illumination but ma y\na\nuthorize the company commander to do so. If the commander decides to use\nconventional illumination , the commander should not call for it until the assault is\ninitiated or the attack is detected. It should be placed on several locations over a wide\narea to confuse the enemy as to the exact place of the attack. It should be placed beyond\nthe objective to help assaulting Soldiers see and fire at withdrawing or counterattacking\nenemy Soldiers. Infrared illumination is a good capability to light the objective without\nlighting it for enemy forces without night vision devices.  This advantage is degraded\nwhen used against a peer threat with the same night vision capabilities.\n4-174. The platoon leader , squad leaders , and vehicle commanders must know unit\ntactical SOP and develop sound COAs to synchronize the employment of infrared\nillumination devices , target designators , and aiming lights during their assault on the\nobjective. These include using luminous tape or chemical lights to mark personnel and\nusing weapons control restrictions.\n4-175. The platoon leader may use the following techniques to increase control during\nthe assault:\n\uf06c Use no flares, grenades, or obscuration on the objective.\n\uf06c Use mortar or artillery rounds to orient attacking units.\n\uf06c Use a base squad or fire team to pace and guide others.\n\uf06c Reduce intervals between Soldiers and squads.\n4-176. Like a daylight attack , indirect and direct fires are planned for a limited\nvisibility attack but are not executed unless the platoon is detected or is ready to assault.\nSome weapons may fire before the attack and maintain a pattern to deceive the enemy\nor to help cover noise ma de by the platoon ’s movement. This is not done if it will\ndisclose the attack.\n4-177. Obscuration further reduces the enemy’s visibility, particularly if the enemy has\nnight vision devices. The FO fires obscuration rounds close to or on enemy positions ,\nso it does not restrict friendly movement or hinder the reduction of obstacles. Employing \nobscuration on the objective during the assault may make it hard for assaulting Soldiers\nto find enemy fighting positions. If enough thermal sights are available , obscuration on\nthe objective may provide a decisive advantage for a well-trained platoon.\nNote. I f the enemy is equipped with night vision devices , leaders must evaluate \nthe risk of using each technique and ensure the mission is not compromised by \nthe enemy’s ability to detect infrared light sources.',
    'What are the advantages of using infrared illumination in assaults?',
    'How can leaders effectively provide command and control during defensive operations?',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

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

Evaluation

Metrics

Information Retrieval

Metricdim_384dim_256dim_128dim_64
cosine_accuracy@10.00370.00370.00370.0019
cosine_accuracy@30.01310.01120.00930.0075
cosine_accuracy@50.04850.03730.04660.0429
cosine_accuracy@100.44960.44590.43660.4216
cosine_precision@10.00370.00370.00370.0019
cosine_precision@30.00440.00370.00310.0025
cosine_precision@50.00970.00750.00930.0086
cosine_precision@100.0450.04460.04370.0422
cosine_recall@10.00370.00370.00370.0019
cosine_recall@30.01310.01120.00930.0075
cosine_recall@50.04850.03730.04660.0429
cosine_recall@100.44960.44590.43660.4216
cosine_ndcg@100.15010.14890.14650.139
cosine_mrr@100.06590.06530.06460.0595
cosine_map@1000.08620.08590.08470.079

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 4,820 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positiveanchor
    typestringstring
    detailsmin: 100 tokensmean: 248.18 tokensmax: 256 tokensmin: 9 tokensmean: 15.06 tokensmax: 27 tokens
  • Samples:
    positiveanchor
    Appendix A A-22 ATP 3-21.8 11 January 2024 A-68. Observed fire. Usually is used when the platoon is in protected defensive positions with engagement ranges more than 2,500 meters for stabilized systems (when attached)and 1,500 meters for unstabilized systems. It can be employed between elements of theplatoon, such as the squad lasing and observing while the weapons squad engages. Theplatoon leader directs one squad to engage. The remaining squads observe fires andprepare to engage on order in case the engaging element consistently misses its targets ,experiences a malfunction, or runs low on ammunition. Observed fire allows for mutualobservation and assistance while protecting the location of the observing elements.A-69. Sequential fire. Entails the subordinate elements of a unit engaging the same point or area target one after another in an arranged sequence. Sequential fire also can help toprevent the waste of ammunition, as when a platoon waits to see the effects of the ...What is the purpose of having one squad engage while others observe in an observed fire scenario?
    Glossary Glossary-4 ATP 3-21.8 11 January 2024 PLD probable line of deployment PPEP personal protective equipment posture RFL restrictive fire line RM risk management ROE rules of engagement RS reduced sensitivity RTO radiotelephone operator S-2 battalion or brigade intelligence staff officer SALUTE size, activity, location, unit, time, and equipment SDM squad-designated marksman SITEMP situation template SLM shoulder-launched munition SOP standard operating procedure STP Soldier training publication TAA tactical assembly area TC training circular TCCC tactical combat casualty care TLP troop leading procedures TM technical manual TRP target reference point U.S. United States WARNORD warning order WCS weapons control status WP white phosphorous SECTION II – TERMS actions on contact A process to help leaders understand what is happening and to take action. (FM 3-90) air-ground operations The simultaneous or synchronized employment of ground forces with avi...How is the term SDM used in the military?
    Chapter 1 1-2 ATP 3-21.8 11 January 2024 MISSION, CAPABILITIES, AND LIMITATIONS 1-2. The mission of the Infantry rifle platoon is to close with the enemy using fire andmovement to destroy or capture enemy forces , or to repel enemy attacks by fire , closecombat, and counterattack to control land areas , including populations and resources.The Infantry rifle platoon leader exercises command and control and directs theoperation of the platoon and attached units while conducting combined arms warfarethroughout the depth of the platoon’s area of operations (AO). Platoon missions ,although not inclusive, may include reducing fortified areas , infiltrating and seizingobjectives in the enemy’ s rear, eliminating enemy force remnants in restricted terrain ,securing key facilities and activities, and conducting operations in support of stabilityoperations tasks in the wake of maneuvering forces. Reconnaissance and surveillanceoperations and security operations remain a core compe...What offensive and defensive actions can an Infantry rifle platoon perform?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            384,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 8
  • num_train_epochs: 20
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.2
  • bf16: True
  • tf32: 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: 64
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 8
  • eval_accumulation_steps: None
  • learning_rate: 5e-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: 20
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.2
  • 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: True
  • 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
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Lossdim_384_cosine_ndcg@10dim_256_cosine_ndcg@10dim_128_cosine_ndcg@10dim_64_cosine_ndcg@10
0.94749-0.12250.12210.11450.0915
1.0526107.2521----
2.019-0.12960.12610.11570.1089
2.1053205.4977----
2.947428-0.12940.13770.12620.1090
3.1579304.3477----
4.038-0.13300.13780.12600.1126
4.2105403.3767----
4.947447-0.14150.13880.12940.1221
5.2632502.6443----
6.057-0.15150.13950.13480.1218
6.3158602.0824----
6.947466-0.14800.14110.13350.1242
7.3684701.6734----
8.076-0.14910.14810.14280.1313
8.4211801.3894----
8.947485-0.14490.14970.14190.1341
9.4737901.1443----
10.095-0.14660.14940.13990.1396
10.52631001.0121----
10.9474104-0.14580.14770.14150.1371
11.57891100.8833----
12.0114-0.14790.14740.14450.1374
12.63161200.8201----
12.9474123-0.15190.14860.14580.1360
13.68421300.736----
14.0133-0.15050.14710.14840.1376
14.73681400.6924----
14.9474142-0.14960.14860.14510.1396
15.78951500.672----
16.0152-0.14920.14890.14640.1404
16.84211600.6455----
16.9474161-0.14960.14930.14680.1389
17.89471700.6538----
18.0171-0.15010.14700.14610.1393
18.94741800.6280.15010.14890.14650.1390
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2+cu121
  • Accelerate: 0.34.2
  • Datasets: 2.19.1
  • 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
Ревизия весов
7bc0867

0 моделей