Edit model card

SentenceTransformer based on strongpear/M3-retriever-Vi-Text2SQL_ver2

This is a sentence-transformers model finetuned from strongpear/M3-retriever-Vi-Text2SQL_ver2. It maps sentences & paragraphs to a 1024-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: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 1024, '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("strongpear/M3-retriever-Vi-Text2SQL_ver2-Vin-5epochs")
# Run inference
sentences = [
    'Tìm tên của các sản phẩm đã được mua bởi ít nhất hai khách hàng khác nhau.',
    'CREATE TABLE "đơn hàng của khách hàng" ("id đơn hàng" number, "id khách hàng" number, "mã trạng thái đơn hàng" text, "ngày đặt hàng" time);',
    'CREATE TABLE "cửa hàng bách hoá" ("id cửa hàng bách hoá" number, "id chuỗi cửa hàng bách hoá" number, "tên cửa hàng" text, "địa chỉ cửa hàng" text, "số điện thoại kho lưu trữ" text, "email kho lưu trữ" text);',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

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

Training Details

Training Dataset

Unnamed Dataset

  • Size: 63,769 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 9 tokens
    • mean: 21.95 tokens
    • max: 60 tokens
    • min: 18 tokens
    • mean: 55.44 tokens
    • max: 335 tokens
    • min: 2 tokens
    • mean: 43.07 tokens
    • max: 335 tokens
  • Samples:
    anchor positive negative
    Cho biết id của những tài liệu không tiêu tốn bất kỳ khoản chi phí nào. CREATE TABLE "tài liệu" ( "id tài liệu" number, "mã loại tài liệu" text, "id dự án" number, "ngày ban hành tài liệu" time, "tên tài liệu" text, "mô tả về tài liệu" text, "những chi tiết khác" text); CREATE TABLE "tài liệu có chi phí" ("id tài liệu" number, "mã loại ngân sách" text, "chi tiết tài liệu" text);
    Giá đơn vị của bài hát ' Nhanh như cá mập ' là bao nhiêu ? CREATE TABLE "bài hát" ("id" number, "tên" text, "id album" number, "id loại đa phương tiện" number, "id thể loại" number, "nhà soạn nhạc" text, "mili giây" number, "byte" number, "giá đơn vị" number); CREATE TABLE "nhân viên" ("id" number, "họ" text, "tên" text, "chức danh" text, "báo cáo cho" number, "ngày sinh" time, "ngày được thuê" time, "địa chỉ" text, "thành phố" text, "tiểu bang" text, "quốc gia" text, "mã bưu điện" text, "số điện thoại" text, "số fax" text, "e-mail" text);
    liệt kê tất cả các từ khoá thuộc lĩnh vực ' Cơ sở dữ liệu '. CREATE TABLE "từ khoá" ("từ khoá" text, "id từ khoá" number); CREATE TABLE "lĩnh vực của bài báo" ("id lĩnh vực" number, "id bài báo" number);
  • Loss: TripletLoss with these parameters:
    {
        "distance_metric": "TripletDistanceMetric.EUCLIDEAN",
        "triplet_margin": 5
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 3,357 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 8 tokens
    • mean: 21.75 tokens
    • max: 54 tokens
    • min: 18 tokens
    • mean: 50.06 tokens
    • max: 335 tokens
    • min: 2 tokens
    • mean: 41.45 tokens
    • max: 335 tokens
  • Samples:
    anchor positive negative
    Có bao nhiêu trạm xăng được mở vào giữa năm 2000 và năm 2005 ? CREATE TABLE "trạm xăng" ("id trạm" number, "năm mở cửa" number, "địa điểm" text, "tên người quản lý" text, "tên phó giám đốc" text, "tên đại diện" text); CREATE TABLE "trạm xăng của công ty" ("id trạm" number, "id công ty" number, "thứ hạng của năm" number);
    Sắp xếp tiêu đề của tất cả các album bắt đầu bằng chữ cái ' A ' theo thứ tự bảng chữ cái. CREATE TABLE "album" ("id" number, "tiêu đề" text, "id nghệ sĩ" number); CREATE TABLE "nghệ sĩ" ("id" number, "tên" text);
    cho biết 5 bài báo gần đây nhất của Mirella Lapata. CREATE TABLE "bài báo" ("id bài báo" number, "tiêu đề" text, "id hội nghị" number, "năm" number, "số lượng trích dẫn" number, "số lượng được trích dẫn bởi" number, "id tạp chí" number); CREATE TABLE "tập dữ liệu của bài báo" ("id bài báo" number, "id tập dữ liệu" number);
  • Loss: TripletLoss with these parameters:
    {
        "distance_metric": "TripletDistanceMetric.EUCLIDEAN",
        "triplet_margin": 5
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • gradient_accumulation_steps: 4
  • learning_rate: 1e-05
  • weight_decay: 0.1
  • num_train_epochs: 5
  • warmup_steps: 500
  • fp16: True
  • remove_unused_columns: False

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • 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: 4
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 1e-05
  • weight_decay: 0.1
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 5
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • warmup_steps: 500
  • 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: True
  • 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: False
  • 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: 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
  • eval_on_start: False
  • eval_use_gather_object: False
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss loss
0.2509 500 - 0.1700
0.5018 1000 0.2729 0.0876
0.7526 1500 - 0.0706
1.0035 2000 0.0882 0.0534
1.2544 2500 - 0.0489
1.5053 3000 0.0447 0.0429
1.7561 3500 - 0.0364
2.0070 4000 0.0371 0.0282
2.2579 4500 - 0.0358
2.5088 5000 0.0213 0.0283
2.7597 5500 - 0.0280
3.0105 6000 0.0208 0.0219
3.2614 6500 - 0.0215
3.5123 7000 0.0111 0.0236
3.7632 7500 - 0.0214
4.0140 8000 0.0109 0.0180
4.2649 8500 - 0.0174
4.5158 9000 0.005 0.0185
4.7667 9500 - 0.0179

Framework Versions

  • Python: 3.9.19
  • Sentence Transformers: 3.0.1
  • Transformers: 4.44.2
  • PyTorch: 2.4.0+cu121
  • Accelerate: 0.34.2
  • Datasets: 2.21.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",
}

TripletLoss

@misc{hermans2017defense,
    title={In Defense of the Triplet Loss for Person Re-Identification}, 
    author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
    year={2017},
    eprint={1703.07737},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}
Downloads last month
0
Safetensors
Model size
568M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for strongpear/M3-retriever-Vi-Text2SQL_ver2-Vin-5epochs