How to use from the
Use from the
sentence-transformers library
from sentence_transformers import CrossEncoder

model = CrossEncoder("software-si/kitchen-nli")

query = "Which planet is known as the Red Planet?"
passages = [
	"Venus is often called Earth's twin because of its similar size and proximity.",
	"Mars, known for its reddish appearance, is often referred to as the Red Planet.",
	"Jupiter, the largest planet in our solar system, has a prominent red spot.",
	"Saturn, famous for its rings, is sometimes mistaken for the Red Planet."
]

scores = model.predict([(query, passage) for passage in passages])
print(scores)

CrossEncoder based on cross-encoder/nli-deberta-v3-base

This is a Cross Encoder model finetuned from cross-encoder/nli-deberta-v3-base on the horeca-nli dataset using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text pair classification.

Model Details

Model Description

🧾 Input / Output

This a model for Natural Language Inference NLI. it take a premises and an hypothesis as input, and return a classification of the relationship between the two input sentence Possible outputs are: contradiction, entailment, neutral

Example:

  • premises:
    kitchen eighty centimeters wide, deep 70 cm placed on closed compartment

  • hypothesis:
    the kitchen is placed on open shelf

  • Output:
    contradiction


Model Sources

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 CrossEncoder


# Download from the 🤗 Hub
model = CrossEncoder("software-si/kitchen-nli")
# Get scores for pairs of texts
pairs = [
    ['cooking unit with square plates on compartment with doors', 'the depth of the kitchen is 70 centimeters'],
    ['cooking unit with 2 electric plates, on compartment with doors', 'the kitchen is placed on top'],
    ['kitchen module in top version deep 70 cm eighty centimeters wide,', 'the kitchen is placed on cabinet'],
    ['cooking unit wide 80 cm, with a depth of 90 centimeters, placed on closed compartment', 'the kitchen has a width of 40 cm'],
    ['kitchen with gas cooking, with gas oven, one hundred twenty centimeters wide,', 'the layout of the kitchen is top'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5, 3)
label_mapping = ['contradiction', 'entailment', 'neutral']

Training Details

Training Dataset

horeca-nli

  • Dataset: horeca-nli at a6bd6a4
  • Size: 102,836 training samples
  • Columns: premises, hypothesis, and labels
  • Approximate statistics based on the first 1000 samples:
    premises hypothesis labels
    type string string int
    details
    • min: 26 characters
    • mean: 64.84 characters
    • max: 112 characters
    • min: 23 characters
    • mean: 36.55 characters
    • max: 60 characters
    • 0: ~33.30%
    • 1: ~23.70%
    • 2: ~43.00%
  • Samples:
    premises hypothesis labels
    kitchen eighty centimeters wide, deep 70 cm placed on closed compartment the kitchen is forty centimeters wide 0
    cooking unit placed on cabinet deep 90 cm, gas supply, the kitchen is placed on open shelf 2
    cooking unit wide 40 cm, powered by electricity with the square plates the kitchen measures one hundred twenty centimeters in width 0
  • Loss: CrossEntropyLoss

Evaluation Dataset

horeca-nli

  • Dataset: horeca-nli at a6bd6a4
  • Size: 30,851 evaluation samples
  • Columns: premises, hypothesis, and labels
  • Approximate statistics based on the first 1000 samples:
    premises hypothesis labels
    type string string int
    details
    • min: 21 characters
    • mean: 65.62 characters
    • max: 114 characters
    • min: 23 characters
    • mean: 36.56 characters
    • max: 60 characters
    • 0: ~35.20%
    • 1: ~23.20%
    • 2: ~41.60%
  • Samples:
    premises hypothesis labels
    cooking unit with square plates on compartment with doors the depth of the kitchen is 70 centimeters 2
    cooking unit with 2 electric plates, on compartment with doors the kitchen is placed on top 2
    kitchen module in top version deep 70 cm eighty centimeters wide, the kitchen is placed on cabinet 0
  • Loss: CrossEntropyLoss

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 64
  • learning_rate: 1e-05
  • num_train_epochs: 1
  • warmup_steps: 10283
  • bf16: True
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 64
  • 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.0
  • warmup_steps: 10283
  • 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: True
  • 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}
  • parallelism_config: None
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • 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
  • hub_revision: None
  • 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
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Validation Loss
0.3111 500 0.0082 0.0072
0.6223 1000 0.0043 0.0027
0.9334 1500 0.0041 0.0388
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.12.11
  • Sentence Transformers: 5.1.1
  • Transformers: 4.56.2
  • PyTorch: 2.8.0+cu128
  • Accelerate: 1.10.1
  • Datasets: 4.1.1
  • Tokenizers: 0.22.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",
}
Downloads last month
4
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for software-si/kitchen-nli

Finetuned
(11)
this model

Paper for software-si/kitchen-nli