autointent.modules.scoring.CrossEncoderDescriptionScorer#

class autointent.modules.scoring.CrossEncoderDescriptionScorer(cross_encoder_config=None, temperature=1.0, multilabel=False)#

Bases: autointent.modules.scoring._description.base.BaseDescriptionScorer

Cross-encoder description scorer for zero-shot intent classification.

This scorer uses a cross-encoder architecture that directly computes similarity scores between each utterance-description pair by passing them together through a transformer model. Unlike bi-encoders that embed texts separately, cross-encoders can capture more complex interactions between utterances and descriptions, often leading to higher accuracy at the cost of computational efficiency.

This is a zero-shot approach that doesn’t require training examples, only intent descriptions. The cross-encoder processes each utterance-description pair separately during inference, making it more computationally intensive but potentially more accurate.

Parameters:
  • cross_encoder_config (autointent.configs.CrossEncoderConfig | str | dict[str, Any] | None) – Configuration for the cross-encoder model (HuggingFace model name or config)

  • temperature (pydantic.PositiveFloat) – Temperature parameter for scaling logits before softmax/sigmoid (default: 1.0)

  • multilabel (bool) – Flag indicating classification task type

Example:#

from autointent.modules.scoring import CrossEncoderDescriptionScorer

# Initialize cross-encoder scorer
scorer = CrossEncoderDescriptionScorer(
    cross_encoder_config="cross-encoder/ms-marco-MiniLM-L-6-v2",
    temperature=1.2
)

# Zero-shot classification with intent descriptions
descriptions = [
    "User wants to book or reserve transportation like flights, trains, or hotels",
    "User wants to cancel an existing booking or reservation",
    "User asks about weather conditions or forecasts"
]

# Fit using descriptions only (zero-shot approach)
scorer.fit([], [], descriptions)

# Make predictions on new utterances
test_utterances = ["Reserve a hotel room", "Delete my booking"]
probabilities = scorer.predict(test_utterances)
name = 'description_cross'#

Name of the module to reference in search space configuration.

cross_encoder_config#
classmethod from_context(context, temperature=1.0, cross_encoder_config=None)#

Create a CrossEncoderDescriptionScorer instance using a Context object.

Parameters:
  • context (autointent.Context) – Context containing configurations and utilities

  • temperature (pydantic.PositiveFloat) – Temperature parameter for scaling logits

  • cross_encoder_config (autointent.configs.CrossEncoderConfig | str | None) – Config of the cross-encoder model. If None, the default config is used

Returns:

Initialized CrossEncoderDescriptionScorer instance

Return type:

CrossEncoderDescriptionScorer

get_implicit_initialization_params()#

Get implicit initialization parameters for this scorer.

Return type:

dict[str, Any]

clear_cache()#

Clear cached data in memory used by the cross-encoder.

Return type:

None