/ Модель

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

Контекст
258 токенов
Параметры
162 млн
Архитектура
roberta · dense
Базовая модель
phobert-base
Библиотека
sentence-transformers
Опубликована
10 янв 2025

phobert-semactic-retrival-food

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

Дообученная на вьетнамских текстах о еде PhoBERT-модель создаёт векторные представления для семантического поиска и сравнения предложений.

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

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Trongvox разработал семантическую модель на базе Sentence Transformers, дообученную на vinai/phobert-base. Она кодирует предложения и абзацы в плотные векторы размерности 768; для сравнения используется косинусное сходство. Архитектура состоит из RoBERTa-трансформера с усреднением токенных представлений, число параметров — 162,4 млн. В метаданных указан контекст до 258 токенов, а в README — максимальная длина последовательности 128 токенов.

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

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

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

Ограничения

В README указана максимальная длина последовательности 128 токенов, тогда как метаданные сообщают контекст до 258 токенов; это расхождение стоит учитывать при подготовке длинных текстов. Данные не подтверждают качество на языках или тематиках, отличных от вьетнамских текстов о еде.

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on vinai/phobert-base

This is a sentence-transformers model finetuned from vinai/phobert-base. 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: vinai/phobert-base
  • Maximum Sequence Length: 128 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: RobertaModel 
  (1): Pooling({'word_embedding_dimension': 768, '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})
)

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("trongvox/phobert-semactic-retrival-food")
# Run inference
sentences = [
    'Nguyên liệu: Cho 3 người\nCá mút đá 1 kg Ớt 1 muỗng canhLá chanh 20 gr Hành tím băm 2 muỗng cà phê Sa tế 2 muỗng canhDụng cụ thực hiện: Bếp nướng điện, tô, muỗng, dao,...\n\nCách làm Cá mút đá nướng sa tế:\nSơ chế cá mút đá:\nDùng một vật nhọn giữ cố định đầu của cá mút đá, sau đó dùng dao rạch phần bụng và loại bỏ hết phần ruột của cá ra.Tiếp theo dùng dao lóc thịt và bỏ phần da nhờn của cá đi. Tùy theo món ăn và kích thước cá mà chúng ta sẽ cắt thành những đoạn vừa ăn. Bên cạnh đó, bạn có thể mua cá mút đá chế biến sẵn và được giữ đông, chúng vẫn giữ được hương vị, độ tươi ngon. Đây là cách dễ dàng nhất bạn không phải tốn công chế biến cá mút đá. Mua về chỉ cần cắt nhỏ, ướp gia vị là có thể nấu được ngay.\nCách sơ chế cá sạch, hết nhớt\nCách 1: bạn hãy lấy giấm tưới lên thân cá, chờ trong vài phút để nhớt trên thân cá đông lại, lúc này bạn có thể dễ dàng dùng dao cạo hết lớp nhớt đã đông này đi đấy.Cách 2: sau khi mua cá về, dùng nước nóng già đổ lên thân cá. Chú ý không được để nước sôi vì sẽ làm tróc da và làm chín lớp cá bên ngoài đấy. Sau khi đổ đợi lớp nhớt đông lại và dùng dao cạo lớp nhớt đi sau đó rửa sạch. Để đảm bảo cá sạch nhớt, sau khi cạo cũng nên rửa lại bằng giấm hay chanh.Chú ý: Để loại bỏ nhớt, mùi tanh của cá do tiết thừa còn đọng lại khi bạn làm thịt cá, sau khi chế biến thịt thì bạn hãy rửa thật kĩ, đặc biệt là phần bụng và xương sống cá để loại bỏ máu đọng lại. Bằng cách như vậy thì cá của bạn sẽ bớt đi mùi tanh rất nhiều đấy!\nƯớp cá:\nCho cá vào tô cùng với 1 muỗng canh ớt, 20gr lá chanh, 2 muỗng cà phê hành tím băm và 2 muỗng canh sa tế. Dùng tay trộn đều cho cá thấm đều gia vị, sau đó ướp trong 15 phút.\nNướng cá:\nCho cá lên bếp nướng điện hoặc lên dĩa nướng với than, nướng đến khi cá vừa chín tới, không nướng quá chín làm cá khô, mất đi độ ngon của món ăn.\nThành phẩm: Thịt cá dai dai, gia vị đậm đà, cay cay của sa tế, nhất định sẽ gây ấn tượng cho cả gia đình bạn đấy!',
    'Cá mút đá (cá ninja) nướng sa tế',
    'Miến xào chả cá',
]
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

Unnamed Dataset

  • Size: 37,424 training samples
  • Columns: sentence_0, sentence_1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence_0sentence_1label
    typestringstringfloat
    detailsmin: 83 tokensmean: 127.37 tokensmax: 128 tokensmin: 3 tokensmean: 7.27 tokensmax: 21 tokensmin: 0.0mean: 0.49max: 1.0
  • Samples:
    sentence_0sentence_1label
    Nguyên liệu:Thịt nai né: 400grHành tây: 1-1.5 củCần tây: 1-2 câyCà chua:1 quảGia vị: Đường, muối, mì chính, nước mắm, dầu ăn, sa tế, ớt (nếu bạn ăn cay), tỏi băm nhỏ, hành tím khô băm nhỏ.Cách chế biến:Sơ chế và ướp thịtThịt nai khi mua về xát với muối hột rồi rửa lại với nước sạch và để ráo. Sau đó, cắt thịt thành lát mỏng vừa ăn.Ướp thịt nai với 1/2 phần tỏi, ớt băm, 2 muỗng cà phê bột ngọt, 1 muỗng cà phê hạt nêm, 1 muỗng cà phê đường, 1 muỗng canh sa tế, 1 muỗng canh dầu màu điều. Trộn đều cho thấm gia vị và ướp trong khoảng 5 phút.Thực hiệnCho tỏi, hành khô băm nhỏ vào xào qua, cho thêm cà chua, thịt nai đã ướp vào xào tái. Chú ý khi xào nên để lửa lớn để thịt nai không bị bở.Cho hành tây, cần tây vào xào cùng đến khi chín. Nêm lại gia vị cho vừa miệng.Cho món thịt nai xào hành tây ra đĩa, rắc chút tiêu nếu bạn muốn và thưởng thức.Thịt nai xào hành tây1.0
    Là một trong những tín đồ của ăn vặt tại Di Linh mà bỏ qua Gạch Coffee thì quả là một thiếu sót lớn. Gạch Coffee có không gian nhỏ xinh, thích hợp với các bạn tuổi teen, lại có vị trí đắc địa ngay giữa trung tâm thị trấn Di Linh nên đây là một trong những địa điểm hẹn hò thường xuyên của các nhóm bạn thân trong những ngày rảnh rỗi. Tiệm chủ yếu thiên về đồ uống như trà, coffee, trà sữa… Ngoài ra, 1 số món ăn vặt cũng được chuẩn bị và chế biến rất công phu như mẹt đồ rán, chân gà sả ớt... hay đặc biệt là mì cay Hàn Quốc rất được yêu thích. Tất cả đều sử dụng nguyên liệu sạch, có sự chọn lựa kĩ lưỡng. Đây là địa điểm tụ tập quen thuộc của các bạn trẻ trong khu vực không chỉ bởi địa thế thuận lợi, dễ tìm kiếm, chị chủ dễ tính, đồ ăn ngon, mà giá thành còn rất sinh viên. Ăn uống no nê mà mỗi người chỉ tốn mấy chục. Vì thế khách đã đông nay lại càng đông hơn. Ngoài ra, Gạch Coffee còn thường xuyên cập nhật những món mới, lạ và ngon để khách hàng có dịp thưởng thức. Gạch Coffee nơi lý tư...Cháo tôm, rau cải0.0
    Nam o goc duong Phung Hung - Hang Bong, quan Com Tam Quan 1 noi tieng vi vi suon o day uop chuan vi Sai Gon. Khong gian quan rat sach se, co dieu hoa, thich hop de tu hop gia dinh. Do an cua Com tam Quan 1 rat chat luong va dam bao ve sinh. Neu ban chua tim duoc dia chi nhu y thi day la noi hua hen se cho ban nhieu trai nghiem an tuong. Nhan vien kha nhiet tinh va nhanh nhen, than thien va quan rat sach se va ve sinh cung la diem cong cua quan. Dia com trang tri kha don gian nhung chat luong do an cuc cao. Suat dac biet gom co suon, bi, cha, trung, dua chuot, ca rot, cu cai trang,...Suon o Com Tam Quan 1 duoc uop dung vi Sai Gon. Thit nuong chay canh, mieng thit ngoai gion trong mem mem. Cha cua quan an rat vua mieng. Canh dau bap va doc mung cua quan ngot va thom, rat chuan vi o Sai Gon. Voi ten tuoi, chat luong thom ngon nhu the, gia ca cua quan cung khong o muc qua binh dan nhung ban co the yen tam vi mot khi lua chon, ban se duoc thuong thuc mot dia com ngon dang tien. Du ban an ...Cơm Tấm Quận 11.0
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • 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: 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
  • num_train_epochs: 3
  • 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: round_robin

Training Logs

EpochStepTraining Loss
0.21385002.3128
0.427510002.0084
0.21385001.7923
0.427510001.8473
0.641315001.8061
0.855120001.8079

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…

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

0 моделей