/ Модель

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

Контекст
512 токенов
Параметры
25,9 млн
Архитектура
bert · dense
Базовая модель
multi-qa-MiniLM-L6-cos-v1
Библиотека
sentence-transformers
Опубликована
25 дек 2024

ptz_embedding

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

Дообученная модель эмбеддингов для семантического поиска и сопоставления текстовых команд управления PTZ-камерами.

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

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bau0221/ptz_embedding — дообученная модель Sentence Transformers на базе sentence-transformers/multi-qa-MiniLM-L6-cos-v1, предназначенная для сопоставления текстовых запросов и описаний команд управления PTZ-камерами. Она преобразует предложения и абзацы в плотные векторы размерностью 384 и сравнивает их по косинусному сходству. Архитектура основана на BERT с усреднением токенных представлений и нормализацией; максимальная длина входа — 512 токенов.

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

Это специализированная донастройка небольшой модели на 25,9 млн параметров. Карточка не указывает отдельную лицензию, поэтому условия использования следует проверять в репозитории и у базовой модели; по имеющимся данным лицензионные условия установить нельзя.

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

  • Поиск команды управления камерой по текстовому запросу
  • Сопоставление похожих формулировок команд для PTZ-камер
  • Поиск перефразировок команд управления камерой
  • Кластеризация текстовых команд по смыслу
  • Подбор релевантного описания команды по запросу

Ограничения

Максимальная длина входа составляет 512 токенов; обучение описано на небольшом наборе из 710 примеров, сосредоточенном на командах PTZ-камер. Карточка не содержит сведений о лицензии.

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on sentence-transformers/multi-qa-MiniLM-L6-cos-v1

This is a sentence-transformers model finetuned from sentence-transformers/multi-qa-MiniLM-L6-cos-v1. 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 Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, '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("bau0221/ptz_embedding")
# Run inference
sentences = [
    'group1 put Abigail on the right side',
    'Move Charlotte to the right on Camera 4',
    'Set Evelyn at the right side on Camera 1',
]
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]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 710 training samples
  • Columns: query, pos, and neg
  • Approximate statistics based on the first 710 samples:
    queryposneg
    typestringlistlist
    detailsmin: 5 tokensmean: 11.46 tokensmax: 28 tokenssize: 3 elementssize: 3 elements
  • Samples:
    queryposneg
    Set camera 1 to track target A at bottom_right with fast speed.['Set camera 1 to track target A at bottom_right with fast speed.', 'Set camera 1 to track target A at bottom_right with fast speed.', 'Set camera 1 to track target A at bottom_right with fast speed.']['Camera 2 tracking Kyle', 'Set camera 3 to track target B at the top with slow speed.', 'Turn camera 2 to the right for 5 seconds.']
    Camera 2 tracking Kyle['Camera 2 tracking Kyle', 'Camera 4 tracking Kyle', 'Cam 2 tracking Kyle']['Set camera 1 to track target A at bottom_right with fast speed.', 'Set camera 3 to track target B at the top with slow speed.', 'Turn camera 2 to the right for 5 seconds.']
    Set camera 3 to track target B at the top with slow speed.['Set camera 3 to track target B at the top with slow speed.', 'Set camera 3 to track target B at the top with slow speed.', 'Set camera 3 to track target B at the top with slow speed.']['Set camera 1 to track target A at bottom_right with fast speed.', 'Camera 2 tracking Kyle', 'Turn camera 2 to the right for 5 seconds.']
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 71 evaluation samples
  • Columns: query, pos, and neg
  • Approximate statistics based on the first 71 samples:
    queryposneg
    typestringlistlist
    detailsmin: 6 tokensmean: 10.35 tokensmax: 12 tokenssize: 3 elementssize: 3 elements
  • Samples:
    queryposneg
    Camera 3 put Harper at the right side['Camera 3 put Harper at the right side', 'Cam 3 put Harper at the right side', 'Camera 3 put Harper at the right side']['Set camera 1 to track target A at bottom_right with fast speed.', 'Camera 2 tracking Kyle', 'Set camera 3 to track target B at the top with slow speed.']
    Camera 4 put Amelia on the left side['Camera 4 put Amelia on the left side', 'Cam 4 put Amelia on the left side', 'Camera 4 put Amelia on the left side']['Set camera 1 to track target A at bottom_right with fast speed.', 'Camera 2 tracking Kyle', 'Set camera 3 to track target B at the top with slow speed.']
    Group2 put Logan at the right side['Group2 put Logan at the right side', 'Group2 put Logan at the right side', 'Group2 put Logan at the right side']['Set camera 1 to track target A at bottom_right with fast speed.', 'Camera 2 tracking Kyle', 'Set camera 3 to track target B at the top with slow speed.']
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • 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: 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: 3.0
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • 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: False
  • 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

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.47.1
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.2.1
  • 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…

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

0 моделей