autointent.modules.scoring.BiEncoderDescriptionScorer#

class autointent.modules.scoring.BiEncoderDescriptionScorer(embedder_config=None, temperature=1.0, multilabel=False)#

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

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

This scorer uses a bi-encoder architecture where utterances and intent descriptions are embedded separately using the same encoder model, then cosine similarity is computed between utterance embeddings and description embeddings. This is a zero-shot approach that doesn’t require training examples, only intent descriptions.

The bi-encoder approach is efficient for inference as descriptions are embedded once during fitting, and only utterances need to be embedded during prediction.

Parameters:
  • embedder_config (autointent.configs.EmbedderConfig | str | dict[str, Any] | None) – Configuration for the embedder 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 BiEncoderDescriptionScorer

# Initialize bi-encoder scorer
scorer = BiEncoderDescriptionScorer(
    embedder_config="sentence-transformers/all-MiniLM-L6-v2",
    temperature=0.8
)

# 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_bi'#

Name of the module to reference in search space configuration.

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

Create a BiEncoderDescriptionScorer instance using a Context object.

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

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

  • embedder_config (autointent.configs.EmbedderConfig | str | None) – Config of the embedder model. If None, the best embedder is used

Returns:

Initialized BiEncoderDescriptionScorer instance

Return type:

BiEncoderDescriptionScorer

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 embedder.

Return type:

None