gte-base-ko / README.md
scottsuk0306's picture
End of training
6ba9ae3 verified
metadata
base_model: Alibaba-NLP/gte-multilingual-base
datasets:
  - nlpai-lab/ko-triplet-v1.0
language:
  - ko
library_name: sentence-transformers
metrics:
  - cosine_accuracy
  - dot_accuracy
  - manhattan_accuracy
  - euclidean_accuracy
  - max_accuracy
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:10000
  - loss:MultipleNegativesRankingLoss
widget:
  - source_sentence: 비, 오다, 배, 뜨다
    sentences:
      - 그가 좋아하는 과일은 귤, 사과, 배, 감이다.
      - >-
        현재 산업적으로 생산되고 있는 젤란의 평균 분자량은 약 \( 1.00 \times 10^{5} \) 이며 pullulan의 평균
        분자량은 배양 조건 및 사용한 균주에 따라 \( 1.50 \times 10^{4} \) 에서 \( 1.00 \times
        10^{7} \) 정도이다.
      - 비가 너무 많이 와서 배조차 뜨지 못했다.
  - source_sentence: 학교, 영어, 교환, 학생, 보내다
    sentences:
      - >-
        댄싱하이 측은 10대 춤꾼들의 댄스 배틀을 통해 대한민국의 끼 많고 그루브 넘치는 10댈의 모습을 담아보고자 한다. 많은 관심과
        지원 부탁드린다고 전했다
      - 학교에서 이번 기회에 영어 교환 학생을 보냈다.
      - 재주는 예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기 등등 이다.
  - source_sentence: 방황하다, 한동안, 이제, 살다, 
    sentences:
      - 한동안 여기저기 방황하며 살던 형은 이제는 열심히 산다.
      - 재주는 예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기 등등 이다.
      - 능숙한 조련사가 사자 위에 올라탔지만 구경꾼들은 조마조마했다.
  - source_sentence: 할아버지, 연세, 많다, 기력, 좋다, 정정하다
    sentences:
      - 할아버지는 연세가 많으신데도 타고난 기력이 좋아 정정하시다.
      - >-
        헝가리 헌법


        제XII조 (1) 모든 사람은 직업, 직장  기업활동을 자유롭게 선택할 권리를 가진다. 모든 사람은 능력과 잠재력을 최대한
        발휘하여 공동체 강화에 기여할 의무가 있다. (2) 헝가리는 일할  있는 능력과 의지가 있는 모든 사람이 일할 기회를 가질 
        있는 조건을 만들기 위해 노력하여야 한다.
      - 재주라는 것은  예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기다.
  - source_sentence: 중, 인사하다, 시주하다, 치다, 사람, 목탁
    sentences:
      - 2006 6 1일~ 2단계 2차년도 사업시작
      -  중은 시주한 사람에게 목탁을 치며 인사를 했다.
      - 재주라는 것은  예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기다.
model-index:
  - name: SentenceTransformer based on Alibaba-NLP/gte-multilingual-base
    results:
      - task:
          type: triplet
          name: Triplet
        dataset:
          name: dev
          type: dev
        metrics:
          - type: cosine_accuracy
            value: 0.985499462943072
            name: Cosine Accuracy
          - type: dot_accuracy
            value: 0.014500537056928034
            name: Dot Accuracy
          - type: manhattan_accuracy
            value: 0.985499462943072
            name: Manhattan Accuracy
          - type: euclidean_accuracy
            value: 0.985499462943072
            name: Euclidean Accuracy
          - type: max_accuracy
            value: 0.985499462943072
            name: Max Accuracy

SentenceTransformer based on Alibaba-NLP/gte-multilingual-base

This is a sentence-transformers model finetuned from Alibaba-NLP/gte-multilingual-base on the nlpai-lab/ko-triplet-v1.0 dataset. 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 Sources

Full Model Architecture

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

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("scottsuk0306/gte-base-ko")
# Run inference
sentences = [
    '중, 인사하다, 시주하다, 치다, 사람, 목탁',
    '그 중은 시주한 사람에게 목탁을 치며 인사를 했다.',
    '재주라는 것은  예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기다.',
]
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]

Evaluation

Metrics

Triplet

Metric Value
cosine_accuracy 0.9855
dot_accuracy 0.0145
manhattan_accuracy 0.9855
euclidean_accuracy 0.9855
max_accuracy 0.9855

Training Details

Training Dataset

nlpai-lab/ko-triplet-v1.0

  • Dataset: nlpai-lab/ko-triplet-v1.0 at 9cc1d6a
  • Size: 10,000 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: 22.12 tokens
    • max: 146 tokens
    • min: 10 tokens
    • mean: 92.69 tokens
    • max: 1815 tokens
    • min: 8 tokens
    • mean: 99.24 tokens
    • max: 880 tokens
  • Samples:
    anchor positive negative
    글쓰기, 대회, 참가료, 받다 글쓰기 대회는 참가자한테 일정분의 참가료를 받았다. 재주는 예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기 등등 이다.
    "K리그 2002 시즌"에서 기록한 관객의 수보다 독일 고틀리프 다임러 경기장에서 개최된 "제4회 세계 육상 선수권 대회"의 관객 수가 많았나? 1993년 세계 육상 선수권 대회. 제4회 세계 육상 선수권 대회는 국제 육상 경기 연맹 주관으로 1993년 8월 13일에서 8월 22일까지 독일 슈투트가르트 고틀리프 다임러 경기장에서 열린 국제 육상 대회이다. 독일에서 열린 첫 번째 세계 육상 선수권 대회였다. 187개국 선수 1630명이 참가했으며, 대회 역사상 가장 많은 수인 58만 5000명의 관중이 입장했다. 송강호. 경력. 1996-2000: 초기 경력과 주목 받다. 1999년에는 강제규 감독의 영화 《쉬리》에 이장길 역할로 출연했다. 이 영화는 관객수 582만 명을 기록하며 당시 국내 최다 관객 영화 기록을 갱신했고, 최초로 500만 관객을 넘어섰다. 2000년에는 코미디 영화 《반칙왕》에서 첫 주연을 맡았다. 이 영화에서 그는 은행원이자 레슬러 대호 역할로 캐스팅 되어 영화를 위해 레슬링 훈련을 했었다. 이후 송강호는 이 영화가 가장 인상 깊다고 꼽으며 "물리적으로 가장 극한의 상황까지 간 작품이었다는 생각이 든다. 만약 지금 레슬링을 다시 한다면 죽을 거다"라고 말했다. 같은 해 그는 박찬욱 감독의 영화 《공동경비구역 JSA》에서 오경필 중사 역할로 출연했다. 이 영화는 이전까지 반공이데올로기에서 벗어나지 못했던 분단 소재 한국영화의 시각을 인간애로 확장한 작품으로 583만 명의 관객수를 기록하며 역대 흥행 1위 영화로 기록했다. 송강호는 2019년 매체와의 인터뷰에서 배우 인생의 전환점이 됐다고 언급하며 “두 영화가 개봉한 2000년은 배우 생활 초반의 분기점이 됐다”고 말했다. 한 영화 관계자는 송강호에게 "《반칙왕》에서 보여준뛰어난 연기를 보고 그 이상의 연기는 나올 수 없을 것이라 생각했다. 이번 영화를 보고 내가 당신 연기의 한계를 너무 낮게 잡았음을 알았다"고 말했다. 《매일경제》의 프리뷰에서는 "송강호가 그려낸 따뜻하고 넉넉한 오경필 중사는 군기가 한참 빠져 서로 노닥거리는 것으로 비칠수도 있는 모습들을 눈물나는 형제애로 잡아주는 든든한 받침대다"라고 리뷰했다. 이러한 호평 속에 제1회 부산영화평론가협회상, 제38회 대종상영화제, 제3회 도빌아시아영화제, 에서 남우주연상을 수상했고, 이 외에도 백상예술대상에서 인기상을 받는 등 다수의 시상식에서 연기력과 스타성에서 인정을 받았다.
    트리거는 데이터를 저장시켜? 트리거는 안테나 시험 장비를 구동시켜 시나리오를 발생시키며, 시나리오에 따라 안테나부의 송신기와 수신기를 제어 및 측정하여 데이터를 저장하 게 된다. 영화관에서는 왜 대부분의 관객이 실감나게 소리가 잘 들리는 걸까? 디자인이 Ugly하지만 왜 CRT일때는 소리가 잘 들렸을까? 이런 질문에 대한 해답을 영화관 스크린속에서 찾을 수 있었다.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

nlpai-lab/ko-triplet-v1.0

  • Dataset: nlpai-lab/ko-triplet-v1.0 at 9cc1d6a
  • Size: 3,724 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 6 tokens
    • mean: 21.63 tokens
    • max: 143 tokens
    • min: 8 tokens
    • mean: 88.89 tokens
    • max: 2003 tokens
    • min: 10 tokens
    • mean: 102.66 tokens
    • max: 3190 tokens
  • Samples:
    anchor positive negative
    지하, 차도, 빠져나가다, 우회전, 하다, 목적지, 도착하다 지하 차도를 재빨리 빠져나가자마자 우회전을 하면 목적지에 도착한다. 재주라는 것은 예절, 음악, 활쏘기, 글쓰기, 말타기, 계산하기다.
    본문의 표 6에서 packet length = 0.5이고 노드수가 4일 때 Basic CSMA/CA의 수학적분석값은 얼마일까?
    표 6. 패킷 길이에 따른 IEEE 802.11 MAC 프로토콜의 시뮬레이션 결과와 Analytic 결과 비교
    노드의 수packet length = 0.5packet length = 0.3
    Basic CSMA/CARTS/CTS 프로토콜Basic CSMA/CARTS/CTS 프로토콜
    시뮬레이션수학적분석시뮬레이션수학적분석시뮬레이션수학적분석시뮬레이션수학적분석
    10.6700.6720.6820.6730.6250.6250.5700.571
    20.7720.7700.7460.7350.7080.7100.6500.652
    30.7790.7810.7800.7720.7390.7380.6900.690
    40.7800.7830.7850.7840.7400.7410.7000.701
    50.7800.7820.8110.7970.7390.7380.7100.713
    60.7800.7820.8110.8100.7350.7350.7200.720
    70.7640.7520.8120.8110.7310.7280.7280.729
    80.7530.7480.8150.8140.7000.7010.7300.731
    90.7500.7460.8160.8160.6900.6870.7350.733
    100.7420.7410.8210.8200.6750.6720.7350.734
    150.7300.7280.8210.8220.6500.6510.7350.736
    200.6860.6810.8210.8220.6300.6300.7400.741
    표 5 및 6은 수학적 분석의 결과값과 컴퓨터 시뮬레이션을 한 결과값을 비교한 표이다.
    점심시간, 유산소, 운동, 하다 건강을 위하여 점심시간에 유산소 운동을 했다. 흑미밥과 바지락미역국, 닭볶음, 냉이무침, 무말랭이, 배추김치가 오늘 점심이다.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 1e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • bf16: True
  • push_to_hub: True
  • hub_model_id: scottsuk0306/gte-base-ko
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • 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: 1e-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: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • 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: True
  • 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: True
  • resume_from_checkpoint: None
  • hub_model_id: scottsuk0306/gte-base-ko
  • 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: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dev_max_accuracy
0 0 - 0.9855
0.16 100 0.137 -
0.32 200 0.0573 -
0.48 300 0.0488 -
0.64 400 0.0494 -
0.8 500 0.0441 -
0.96 600 0.0189 -

Framework Versions

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

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}
}