robwhelan's picture
Upload fine-tuned BGE embeddings model for nuclear licensing search
fd90831 verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:8622
  - loss:MultipleNegativesRankingLoss
base_model: BAAI/bge-base-en-v1.5
widget:
  - source_sentence: >-
      What is the aging management process for concrete structures in nuclear
      power plants?
    sentences:
      - >-
        Loss of material (spalling, scaling) and cracking due to freeze-thaw is
        a significant consideration in the aging management of concrete used for
        structural support and water retaining boundaries in nuclear power
        plants.
      - >-
        The NRC requires thorough inspections of various reactor components to
        ensure compliance with regulatory safety standards.
      - >-
        The applicability of fuel fragmentation and relocation models
        considering the full set of experimental test data presently available
        and higher fuel burnups being proposed in WCAP-18850-P.
  - source_sentence: control rod sequence during reactor startup
    sentences:
      - >-
        With the RWM inoperable during a reactor startup, the operator is still
        capable of enforcing the prescribed control rod sequence. However, the
        overall reliability is reduced because a single operator error can
        result in violating the control rod sequence.
      - >-
        With the RWM inoperable during a reactor shutdown, the operator is still
        capable of enforcing the prescribed control rod sequence.
      - >-
        Potential ecological impacts during aquifer restoration will be SMALL,
        since surface disturbing activities will be limited. Potential impacts
        associated with aquifer restoration activities will include vegetation
        and habitat alteration due to the response and cleanup of potential
        spills, noxious weeds, wildlife mortality from vehicle collisions and
        displacement due to noise, dust, and human/mechanical presence.
        Potential impacts are expected to be less than during operation due to a
        smaller workforce and decreased traffic.
  - source_sentence: What measurement units are used for reactor coolant temperatures?
    sentences:
      - >-
        The coolant temperatures in the reactors are measured in degrees Celsius
        (°C).
      - >-
        The reports frequently summarize operational data over time spans such
        as weeks and months.
      - >-
        MDA: Minimum Detectable Activity refers to the lowest quantity of
        radioactive material that can be reliably detected by a particular
        measurement method.
  - source_sentence: >-
      The NRC mandates specific designs for the safety baskets in boiling water
      reactors to ensure optimal performance.
    sentences:
      - >-
        COBRA-FLX is a computer code developed for the prediction of critical
        heat flux (CHF) in light water reactor thermal-hydraulic systems, and it
        has been validated against a wide range of experimental data to ensure
        its accuracy.
      - >-
        Figure B2-5 presents the schematic of the BWR 81-Assembly Basket, which
        is essential for the containment and organization of nuclear fuel
        assemblies.
      - >-
        The arrangement of different materials in a reactor core affects the
        thermal efficiency greatly, especially under high-pressure conditions.
  - source_sentence: boric acid solution in nuclear reactors
    sentences:
      - >-
        A temperature sensor provides temperature measurement of each tank's
        contents. Temperature indication is provided as well as high and low
        temperature alarms which are indicated on the main control board.
      - >-
        The calculated dose values at different locations are essential for
        ensuring compliance with safety standards.
      - >-
        The concentration of boric acid solution in storage is maintained
        between 4 and 4.4 percent by weight. Periodic manual sampling and
        corrective action, if necessary, assures that tanks are maintained.
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy
model-index:
  - name: SentenceTransformer based on BAAI/bge-base-en-v1.5
    results:
      - task:
          type: triplet
          name: Triplet
        dataset:
          name: validation
          type: validation
        metrics:
          - type: cosine_accuracy
            value: 0.9373840689659119
            name: Cosine Accuracy

SentenceTransformer based on BAAI/bge-base-en-v1.5

This is a sentence-transformers model finetuned from BAAI/bge-base-en-v1.5. 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: BAAI/bge-base-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel 
  (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("sentence_transformers_model_id")
# Run inference
sentences = [
    'boric acid solution in nuclear reactors',
    'The concentration of boric acid solution in storage is maintained between 4 and 4.4 percent by weight. Periodic manual sampling and corrective action, if necessary, assures that tanks are maintained.',
    "A temperature sensor provides temperature measurement of each tank's contents. Temperature indication is provided as well as high and low temperature alarms which are indicated on the main control board.",
]
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.9374

Training Details

Training Dataset

Unnamed Dataset

  • Size: 8,622 training samples
  • Columns: sentence_0, sentence_1, and sentence_2
  • Approximate statistics based on the first 1000 samples:
    sentence_0 sentence_1 sentence_2
    type string string string
    details
    • min: 4 tokens
    • mean: 14.85 tokens
    • max: 41 tokens
    • min: 6 tokens
    • mean: 43.91 tokens
    • max: 336 tokens
    • min: 4 tokens
    • mean: 30.45 tokens
    • max: 228 tokens
  • Samples:
    sentence_0 sentence_1 sentence_2
    The NRC mandates monitoring and calibration of voltage outputs during reactor startup procedures. Simulates pressing GEN FIELD FLASH pushbutton until Generator voltage stops rising. (GENERATOR LINE VOLTS should indicate ~260V). Operator reads the Note and continues.
    What are the environmental impacts of nuclear facilities during decommissioning? The Environmental Impacts Comparison Summary provides a detailed analysis of various impact areas associated with the proposed action compared to the termination of operations and decommissioning of nuclear facilities. The report outlines the thermal efficiency of natural gas combined cycle (NGCC) power plants, which can influence operational costs and the decision-making process for future energy projects.
    ECCS signal path The ECCS/NSSSS Signal Path is crucial for the timely activation of emergency core cooling systems to prevent overheating of the reactor core during an accident. The integration of signal pathways within reactor control systems ensures effective monitoring and response capability, which is essential for maintaining safety standards in nuclear operations.
  • 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: 32
  • per_device_eval_batch_size: 32
  • num_train_epochs: 5
  • fp16: True
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • 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: 5
  • 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: 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: 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}
  • tp_size: 0
  • 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
  • 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

Epoch Step Training Loss validation_cosine_accuracy
0.7407 200 - 0.9276
1.0 270 - 0.9309
1.4815 400 - 0.9314
1.8519 500 0.5662 -
2.0 540 - 0.9355
2.2222 600 - 0.9355
2.9630 800 - 0.9374

Framework Versions

  • Python: 3.10.14
  • Sentence Transformers: 4.1.0
  • Transformers: 4.51.3
  • PyTorch: 2.2.2
  • Accelerate: 1.6.0
  • Datasets: 3.5.0
  • Tokenizers: 0.21.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}
}