MarginMSE
- class lightning_ir.loss.pairwise.MarginMSE(margin: float | Literal['scores'] = 1.0)[source]
Bases:
PairwiseLossFunctionMean Squared Error loss with a margin for pairwise ranking tasks. Originally proposed in: Improving Efficient Neural Ranking Models with Cross-Architecture Knowledge Distillation
- __init__(margin: float | Literal['scores'] = 1.0)[source]
Initialize the MarginMSE loss function.
- Parameters:
margin (float | Literal["scores"]) – The margin value for the loss.
Methods
__init__([margin])Initialize the MarginMSE loss function.
compute_loss(output, batch)Compute the MarginMSE loss.
- compute_loss(output: LightningIROutput, batch: TrainBatch) torch.Tensor[source]
Compute the MarginMSE loss.
- Parameters:
output (LightningIROutput) – The output from the model containing scores.
batch (TrainBatch) – The training batch containing targets.
- Returns:
The computed loss.
- Return type:
torch.Tensor
- Raises:
ValueError – If the margin type is invalid.
- get_pairwise_idcs(targets: Tensor) Tuple[Tensor, ...]
Get pairwise indices for positive and negative samples based on targets.
- Parameters:
targets (torch.Tensor) – The targets tensor containing relevance labels.
- Returns:
Indices of positive and negative samples.
- Return type:
Tuple[torch.Tensor, …]
- process_scores(output: LightningIROutput) torch.Tensor
Process the scores from the output.
- Parameters:
output (LightningIROutput) – The output from the model.
- Returns:
The scores tensor.
- Return type:
torch.Tensor
- process_targets(scores: torch.Tensor, batch: TrainBatch) torch.Tensor
Process the targets from the batch.
- Parameters:
scores (torch.Tensor) – The scores tensor.
batch (TrainBatch) – The training batch.
- Returns:
The processed targets tensor.
- Return type:
torch.Tensor