Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use JHyeok5/aewol-embedding-v1 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("JHyeok5/aewol-embedding-v1")
sentences = [
"영등할망은 누구이며 어떤 일화가 전해지나요?",
", 손귀현 순경 등 2명이 전사, 6명이 부상당했다. (제3장 제4절 옛비석 에서 비문을 기록함) 최근에는 마을 주민들이 숙원 사업 중 하나로 파출소의 이전을 요구하고 있다. 다. 마을 방호 성담쌓기 제2절 마을행정과 현대사 220 4·3을 극복하기 위한 고육지책의 방안으로 산의 무장대 야간습격을 저 지하기 위해 온 마을 사람들이 동원 되어 마을 주위를 석성으로 쌓았는 데, 동쪽으로는 구 고등학교의 동쪽 울타리를 기준으로 동광동을 안쪽으 로 남쪽으로는 원당거리 아래 지금의 새로난 소방도로를 기준으로 대추낭 밭을 안쪽으로 서쪽으로는 뒷동산 서 쪽을 기준으로 좁은질을 성담의 안쪽으로 쌓았다. 통로의 문을 3개소를 두어 마을 청년들 이 번(番)을 보며 지켰다. 동문은 지금 보건소 앞 동산위에 있었고 남문은 잡피막거리와 원 당거리 중간, 남문동네의 제일 남쪽집 바로 남쪽에 있었으며 서문은 내고향 주유소 근처에 일주도로에 있었다. 성담은 높이 4m 너비 1m의 잡석으로 쌓아 성 밖엔 가시나무(국가시나 무, 구지뽕나무)들을 대량으로 깔아 사람이 접근할 수 없도록 하고 장정들로 하여금 수시 순 찰을 돌도록 하였다. (1948. 11. 5일 발령된 계엄포고령에 해안에서 5km이상 산간으로 갔 을 때는 무장대와 내통자로 간주 무차별 사살 또는 검거한다) 성문마다 보초막을 설치해 밤마다 장정들로 하여금 순번을 정하여 지키도록 했다. 보초막 은 약 7~8평으로 초가지붕과 돌집으로 지었으며 안에는 흙벽과 약 40㎝정도의 기단을, 시 설 흙바닥을 만들어 그 위에다 보릿짚을 깔았다.",
"84. 3. 1.~1987. 8. 31.24대박종일 2020. 3. 1.~ 2022. 8. 31. 12대양경호1987. 9. 1.~1990. 8. 31.25대강순구 2022. 9. 1.~ 현재 13대이명준1990. 9. 1.~1993. 2. 28. 제4장 교육과 문학 교 가 481 5. 유아교육 가. 애월초등학교 병설유치원 1) 원훈 바르게\u001a슬기롭게\u001a튼튼하게 원아 중심의 질 높은 교육과정\u001a환경을 제공하는 유치원 교직원의 자율과 책무성을 존중하는 유치원 스스로 생각하고 해결하는 창의적 능력을 향상시키는 유치원 꿈과 사랑을 키우는 행복한 유치원 꿈을 키우는 어린이 ▪서로를 배려하고 존중하 는 어린이 ▪모든 활동에 적극적으로 참여 하고 스스로 생각하 여 해결하는 어린이 ▪몸이 건강하고 마음이 행 복한 어린이 ▪아이들과 눈을 맞추는 친 절한 교사 ▪사랑과 열정을 다하여 가 르치는 교사 ▪믿음과 사랑으로 기다릴 줄 아는 교사 ▪믿음과 존중으로 기다릴 줄 아는 학부모 ▪좋은 본을 보이는 학부모 ▪내 아이만이 아닌 모든 아이들을 사랑해주는 학 부모 사랑을 실천하는 교사 소통하고 함께하는 학부모 원 훈 창의성 교육과 인성 교육 제1절 교육 482 2) 교육목표 교 육 중 점중점 실천 내용 1. 유아 · 놀이중심 의 교육과정 운영 가. 2019 개정 누리과정 및 유치원 여건과 지역특성을 반영한 단위 유치원 교육과정 편성 나. 유아의 발달단계를 고려한 유아교육과정 운영 다. 유아가 느끼고 체험할 수 있는 놀이위주의 교육활동 라. 실천 중심의 창의·인성교육 강화 마. 다양한 평가 방법으로 교육과정 운영의 내실화 바.",
"야곡 조극선 은 “입춘이면 대궐에서 민가에 이르기까지 춘첩자를 붙여 복을 기원하는데, 신하로서 임금 의 복을 빈다면 괜찮지만 자신의 복을 비는 것은 허망한 짓”이라고 비판하였다. 민가의 대 문을 마주 보고 오른쪽에 ‘입춘대길(立春大吉,입춘이니 대단히 길하고)’, 왼쪽에 ‘건양다경 (建陽多慶,봄이오니 경사가 많다)’이라고 써 붙이는 것이 보통이며, 다른 경우에는 ‘수여산 부여해(壽如山富如海, 산처럼장수하고 바다처럼 부유하다)’라고도 쓴다. (동국세시기) 또는 건양다경 대신에 ‘만사형통(萬事亨通,모든일이 잘 풀린다)’이라고 쓰는 경우가 대부 분이다. 2. 2월 첫 조금, 곧 간조(干潮) 때 바다가 잔잔하면 그 해에 해산물을 풍성하게 거둘 수 있으며, 스무날에 바다가 잔잔하면 농사가 잘 된다고 한다. 가. 연등절, 영등절, 연등제, 연등굿, 영등굿 제1절 세시(歲時)풍속 562 영등신은 해산물의 풍요를 가져오는 바다와 바람의 신이다. 옛날에 제주 어부의 배가 심한 풍랑에 휩쓸려 사람을 잡아먹는다는 외눈박이 거인들이 사 는 섬으로 가는 것을 영등할망이 순풍을 불어 구해주었다. 이 일로 외눈박이 거인들은 영등 을 잡아다 세 토막을 낸 뒤 바다에 내던졌다. 영등의 어머니 바다는 딸을 파도에 실어 제주로 보냈다. 영등의 신체는 여러 곳에서 찢겨 진 채 발견이 되었는데, 머리는 협재, 몸뚱이는 명월, 손발은 고내와 애월에서 발견되었다고 한다. 제주 어부들은 자신들 때문에 죽은 영등을 알아보고 넋을 기리며 굿을 벌였다."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from juyoungml/bge-m3-ko-v1.1. 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'XLMRobertaModel'})
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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()
)
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("sentence_transformers_model_id")
# Run inference
sentences = [
'제주 항일운동가 손실 소식에 대해 알고 싶습니다.',
'다. 항일ㆍ노동운동의 거목이 손실되자 조선인ㆍ일본인의 노동계가 합동으로 시신을 유리관(棺)에 안치, 오사카시 노동장(勞動葬)으로 성대히 엄수... (내용이 길어 일부 생략됨)',
'머리가 되는 것이 아니다. 누구가 먼저 키를 잡는 수완과 자질을 발휘해 선점하느냐에 따라 도사공의 지위를 차지하게 된다는 말이다.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, -0.9309, -0.9304],
# [-0.9309, 1.0000, 0.9989],
# [-0.9304, 0.9989, 1.0000]])
valTripletEvaluator| Metric | Value |
|---|---|
| cosine_accuracy | 0.4135 |
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
할머니, 할아버지는 어떤 모습일까요? |
[삼 서끈 할망은 놀레 불르곡, 노 서끈 하르방은 운다.] |
정부에서는 고인의 공훈을 기리어 1990년 광복절에 건국훈장 애족장을 추서하였다. |
제주도에서는 밥 먹는 일이 일과 어떤 연관이 있나요? |
하고 다음 일을 할 수 있다. 어느 한 쪽이 늦어지면 그만큼 다음 일 착수가 늦어질 뿐만 아리나 일 처리도 미뤄지므로, 밥 먹는 일 자체가 곧 일을 차리는 것이 된다는 말이다. |
나하고 둘이 둥실 사랑하자.` |
행원남당본풀이 이야기 들어보고 싶습니다. |
[행원남당본풀이] |
못하고 몸만 상하고 마는 현상을 지적하고 있다 |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.EUCLIDEAN",
"triplet_margin": 5
}
eval_strategy: stepsper_device_train_batch_size: 1per_device_eval_batch_size: 1fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 1per_device_eval_batch_size: 1per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_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: Falsebf16: Falsefp16: Truefp16_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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: Falsehub_revision: Nonegradient_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: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | val_cosine_accuracy |
|---|---|---|---|
| 0.0802 | 500 | 4.8733 | 0.4135 |
@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{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}
}