Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup
Paper • 2101.06983 • Published • 2
How to use anhtuansh/ModernBERT-base-test with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("anhtuansh/ModernBERT-base-test")
sentences = [
"bộ tư_pháp quy_định như thế_nào về trách_nhiệm của các cơ_quan trong việc quản_lý công_chức , viên_chức , người lao_động ?",
"trường_hợp khách_hàng vay mua ngoại_tệ tại tổ_chức tín_dụng , chi_nhánh ngân_hàng nước_ngoài khác , tổ_chức tín_dụng , chi_nhánh ngân_hàng nước_ngoài bán ngoại_tệ phải chuyển số ngoại_tệ đó cho tổ_chức tín_dụng , chi_nhánh ngân_hàng nước_ngoài cho vay . khách_hàng vay phải bán ngoại_tệ cho tổ_chức tín_dụng , chi_nhánh ngân_hàng nước_ngoài đã bán ngoại_tệ trong trường_hợp nhận được ngoại_tệ từ hoạt_động_sản_xuất , kinh_doanh . \n c ) cho vay trung_hạn và dài_hạn để thanh_toán ra nước_ngoài tiền nhập_khẩu hàng_hóa , dịch_vụ khi khách_hàng vay có đủ ngoại_tệ từ nguồn thu sản_xuất , kinh_doanh để trả nợ vay . quy_định này thực_hiện đến hết ngày 30 tháng 09 năm 2019 ; \n d ) cho vay ngắn_hạn đối_với doanh_nghiệp đầu_mối nhập_khẩu xăng dầu được bộ công_thương giao hạn_mức nhập_khẩu xăng dầu hàng năm để thanh_toán ra nước_ngoài tiền nhập_khẩu xăng dầu khi doanh_nghiệp đầu_mối nhập_khẩu xăng dầu không có hoặc không có đủ nguồn thu ngoại_tệ từ hoạt_động_sản_xuất , kinh_doanh để trả nợ vay ;",
"b ) gửi báo_cáo bộ_trưởng bộ tư_pháp , thứ_trưởng bộ tư_pháp phụ_trách các văn_bản , quyết_định về công_tác cán_bộ ngay sau khi quyết_định theo thẩm_quyền được phân_cấp để quản_lý , theo_dõi ; gửi vụ_trưởng vụ tổ_chức cán_bộ để theo_dõi , lưu hồ_sơ công_chức theo quy_định ; \n c ) tổ_chức thực_hiện có hiệu_quả về phòng , chống tham_nhũng trong việc quản_lý công_chức , viên_chức , người lao_động thuộc tổng_cục thi_hành án dân_sự và các cơ_quan thi_hành án dân_sự . \n 5 . tổ_chức phổ_biến , quán_triệt , bồi_dưỡng , tập_huấn , hướng_dẫn nghiệp_vụ và các văn_bản , quy_định của đảng , nhà_nước và của bộ tư_pháp về công_tác tổ_chức cán_bộ đối_với tổng_cục thi_hành án dân_sự và các cơ_quan thi_hành án dân_sự . \n 6 . phối_hợp với cục thi_hành án bộ quốc_phòng trong việc hoàn_tất thủ_tục trình bộ_trưởng bộ tư_pháp xem_xét bổ_nhiệm , miễn_nhiệm , cách_chức các ngạch chấp_hành viên ; bổ_nhiệm , nâng ngạch , chuyển ngạch các ngạch thẩm_tra viên thi_hành án trong quân_đội theo quy_định của pháp_luật .",
"khoản 1 . khi cấp bằng tốt_nghiệp cho người học , các trường phải lập sổ cấp bằng tốt_nghiệp theo mẫu quy_định , trong đó ghi rõ số_hiệu , số vào sổ cấp bằng tốt_nghiệp . việc lập số_hiệu , số vào sổ cấp bằng tốt_nghiệp được thực_hiện theo quy_định như sau : \n a ) số_hiệu ghi trên phôi bằng tốt_nghiệp được lập liên_tục theo thứ tự số tự_nhiên từ nhỏ đến lớn trong toàn_bộ quá_trình hoạt_động của trường từ khi thực_hiện việc tự in phôi bằng tốt_nghiệp đảm_bảo phân_biệt được số_hiệu của từng loại bằng tốt_nghiệp ; \n b ) số vào sổ cấp bằng tốt_nghiệp được lập liên_tục theo thứ tự số tự_nhiên từ nhỏ đến lớn theo từng năm từ ngày 01 / 01 đến hết ngày 31 / 12 ; đảm_bảo phân_biệt được số vào sổ cấp của từng loại bằng tốt_nghiệp , năm cấp và trường cấp bằng tốt_nghiệp ."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from answerdotai/ModernBERT-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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: ModernBertModel
(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})
)
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("anhtuansh/ModernBERT-base-test")
# Run inference
sentences = [
'thống_đốc ngân_hàng nhà_nước có vai_trò gì trong việc quyết_định loại tiền_tệ được sử_dụng trong hệ_thống thanh_toán điện_tử liên ngân_hàng quốc_gia ?',
'điều 1 . phạm_vi điều_chỉnh và đối_tượng áp_dụng \n 1 . phạm_vi điều_chỉnh : thông_tư này quy_định việc quản_lý , vận_hành và sử_dụng hệ_thống thanh_toán điện_tử liên ngân_hàng quốc_gia ( sau đây viết tắt là hệ_thống ttlnh ) để thực_hiện việc thanh_toán và quyết_toán giữa các đơn_vị tham_gia hệ_thống thanh_toán này bằng đồng việt_nam ( vnd ) , đô_la mỹ ( usd ) , đồng_tiền chung châu_âu ( eur ) và các loại ngoại_tệ khác do thống_đốc ngân_hàng nhà_nước quyết_định trong từng thời_kỳ . \n 2 . đối_tượng áp_dụng : là thành_viên , đơn_vị thành_viên , thành_viên gián_tiếp của hệ_thống ttlnh , đơn_vị vận_hành hệ_thống ttlnh , tổ_chức chủ_trì hệ_thống bù_trừ có kết_nối đến hệ_thống ttlnh , các đơn_vị liên_quan của ngân_hàng nhà_nước .',
'điều 3 . trách_nhiệm của nhà_nước . . 1 - nhà_nước chăm_lo bảo_vệ và tăng_cường sức_khoẻ nhân_dân ; đưa công_tác bảo_vệ sức_khoẻ nhân_dân vào kế_hoạch phát_triển kinh_tế - xã_hội và ngân_sách nhà_nước ; quyết_định những chế_độ chính_sách , biện_pháp để bảo_vệ và tăng_cường sức_khoẻ nhân_dân . 2 - bộ y_tế có trách_nhiệm quản_lý , hoàn_thiện , nâng cao chất_lượng và phát_triển hệ_thống phòng_bệnh , chống dịch , khám bệnh , chữa bệnh , sản_xuất , lưu_thông thuốc và thiết_bị y_tế , kiểm_tra việc thực_hiện các quy_định về chuyên_môn nghiệp_vụ y , dược . 3 - hội_đồng nhân_dân các cấp dành tỷ_lệ ngân_sách thích_đáng cho công_tác bảo_vệ sức_khoẻ nhân_dân ở địa_phương ; thường_xuyên giám_sát , kiểm_tra việc tuân theo pháp_luật về bảo_vệ sức_khoẻ nhân_dân của uỷ_ban nhân_dân cùng cấp , của các cơ_quan , các tổ_chức xã_hội , cơ_sở sản_xuất , kinh_doanh của nhà_nước , tập_thể , tư_nhân và mọi công_dân trong địa_phương .',
]
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]
public_administrativeTripletEvaluator| Metric | Value |
|---|---|
| cosine_accuracy | 0.8 |
query, positive, and negative| query | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| query | positive | negative |
|---|---|---|
ngân_hàng nhà_nước quy_định thế_nào về việc tạm ngừng dịch_vụ gửi lệnh thanh_toán trên hệ_thống thanh_toán điện_tử liên ngân_hàng quốc_gia do lỗi kỹ_thuật ? |
khoản 3 . thống_đốc ngân_hàng nhà_nước quyết_định tạm ngừng dịch_vụ gửi lệnh thanh_toán trên hệ_thống ttlnh của thành_viên , đơn_vị thành_viên trong trường_hợp_thành_viên , đơn_vị thành_viên để xảy ra sự_cố kỹ_thuật làm gián_đoạn hệ_thống ttlnh tại đơn_vị , cụ_thể : |
6 . cây có chứa_chất ma_túy là cây thuốc_phiện , cây côca , cây cần_sa và các loại cây khác có chứa_chất ma_túy do chính_phủ quy_định . |
pháp_luật quy_định như thế_nào về hạch_toán đối_với lệnh thanh_toán bị sai thừa ? |
khoản 3 . đối_với lệnh thanh_toán bị sai thừa : |
điều 45 . tín_hiệu của phương_tiện |
những thông_tin nào cần phải có trong báo_cáo sự_cố y_khoa ? |
riêng đối_với sự_cố y_khoa nghiêm_trọng quy_định tại điểm b khoản 1 điều 5 phải báo_cáo trước bằng điện_thoại trong thời_hạn 01 giờ , kể từ khi phát_hiện sự_cố . |
điều 14 . ban chỉ_đạo thống_kê hình_sự liên_ngành |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
query, positive, and negative| query | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| query | positive | negative |
|---|---|---|
bộ y_tế quy_định thế_nào về các dị_dạng , dị_tật bẩm_sinh ở tai đối_với người hoạt_động kháng_chiến và con_đẻ của họ ? |
các dị_dạng , dị_tật bẩm_sinh ở tai 14 dị_tật thiếu tai ngoài bẩm_sinh - tật không tai ( congenital absence of ( ear ) auricle ) 15 thiếu , teo hoặc chít hẹp bẩm_sinh ống tai ngoài ( congenital absence , atresia and stricture of auditory canal ( external ) ) 16 dị_tật thừa ở vành_tai ( biến_dạng vành_tai - accessory auricle ) : - gờ bình tai phụ ( accessory tragus ) - tật_thừa tai ( polyotia ) - thịt thừa trước tai ( preauricular appendage or tag ) - thừa : tai ; dái_tai ( supernumerary : ear , lobule ) 17 dị_tật tai bé ( dị_tật tai nhỏ - microtia ) iv. |
khoản 4 . sửa_đổi , bổ_sung khoản 3 điều 8 như sau : “ 3 . căn_cứ quy_định tại khoản 2 điều này , tổng_cục_trưởng tổng_cục quản_lý đất_đai xem_xét , quyết_định thu_hồi chứng_chỉ_định_giá đất theo mẫu quy_định tại phụ_lục số 06 ban_hành kèm theo thông_tư này . quyết_định thu_hồi chứng_chỉ_định_giá đất được gửi tới người bị thu_hồi , cơ_quan công_tác của người bị thu_hồi , đồng_thời đăng trên cổng thông_tin điện_tử của bộ tài_nguyên và môi_trường , cổng thông_tin điện_tử của tổng_cục quản_lý đất_đai . ” |
luật bảo_vệ sức_khỏe nhân_dân quy_định thế_nào về phát_triển y_học cổ_truyền dân_tộc và ứng_dụng tiến_bộ khoa_học kỹ_thuật của y_học thế_giới ? |
điều 2 . nguyên_tắc chỉ_đạo công_tác bảo_vệ sức_khoẻ . . 1 - đẩy_mạnh tuyên_truyền , giáo_dục vệ_sinh trong nhân_dân ; tiến_hành các biện_pháp dự_phòng , cải_tạo và làm sạch môi_trường sống ; bảo_đảm tiêu_chuẩn vệ_sinh lao_động , vệ_sinh lương_thực , thực_phẩm và nước uống theo quy_định của hội_đồng_bộ trngưở . 2 - mở_rộng mạng_lưới nhà_nghỉ , nhà điều_dưỡng , cơ_sở tập_luyện thể_dục thể_thao ; kết_hợp lao_động , học_tập với nghỉ_ngơi và giải_trí ; phát_triển thể_dục thể_thao quần_chúng để duy_trì và phục_hồi khả_năng lao_động . 3 - hoàn_thiện , nâng cao chất_lượng và phát_triển mạng_lưới phòng , chống dịch , khám bệnh , chữa bệnh ; kết_hợp phát_triển hệ_thống y_tế nhà_nước với y_tế tập_thể và y_tế tư_nhân . 4 - xây_dựng nền y_học việt_nam kế_thừa và phát_triển nền y_học , dược_học cổ_truyền dân_tộc ; kết_hợp y_học , dược_học hiện_đại với y_học , dược_học cổ_truyền dân_tộc , nghiên_cứu và ứng_dụng những tiến_bộ khoa_học kỹ_thuật của y_học thế_giới vào thực_tiễn việt_nam , xây_dựng các ... |
điều 25 . xử_lý kết_quả_quyết_toán ròng từ các hệ_thống khác |
bộ lao_động - thương_binh và xã_hội quy_định thế_nào về trách_nhiệm của cơ_sở cung_cấp dịch_vụ công_tác xã_hội trong giáo_dục ý_thức tuân_thủ các quy_định về tiêu_chuẩn đạo_đức nghề_nghiệp ? |
điều 8 . trách_nhiệm của cơ_sở cung_cấp dịch_vụ công_tác xã_hội |
g ) tỷ_lệ người lái_xe vi_phạm_quy_định về thời_gian lái_xe liên_tục , thời_gian làm_việc của lái_xe trong ngày trên số ngày xe hoạt_động ; |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 2per_device_eval_batch_size: 2learning_rate: 8e-05num_train_epochs: 1warmup_ratio: 0.05bf16: Truebatch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 2per_device_eval_batch_size: 2per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 8e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.05warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Truefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters: auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional| Epoch | Step | public_administrative_cosine_accuracy |
|---|---|---|
| 0 | 0 | 0.56 |
| 1.0 | 225 | 0.8 |
@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",
}
@misc{gao2021scaling,
title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
year={2021},
eprint={2101.06983},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Base model
answerdotai/ModernBERT-base