TransformerLightningModuleBase

class rectools.models.nn.transformers.lightning.TransformerLightningModuleBase(torch_model: TransformerBackboneBase, model_config: Dict[str, Any], dataset_schema: Dict[str, Any], item_external_ids: Union[Sequence[Hashable], ndarray], item_extra_tokens: Sequence[Hashable], data_preparator: TransformerDataPreparatorBase, lr: float, gbce_t: float, loss: str, verbose: int = 0, train_loss_name: str = 'train_loss', val_loss_name: str = 'val_loss', adam_betas: Tuple[float, float] = (0.9, 0.98), logits_t: float = 1, **kwargs: Any)[source]

Bases: LightningModule

Base class for transfofmers lightning module. To change train procedure inherit from this class and pass your custom LightningModule to your model parameters.

Parameters
  • torch_model (TransformerBackboneBase) – Torch model to make recommendations.

  • model_config (Dict[str, Any]) – Model config.

  • dataset_schema (DatasetSchemaDict) – Dataset schema.

  • item_external_ids (ExternalIds) – External item ids from train dataset.

  • item_extra_tokens (Sequence(Hashable)) – Elements used for sequence padding.

  • lr (float) – Learning rate.

  • gbce_t (float) – Calibration parameter for gBCE loss.

  • loss (str, default "softmax") – Loss function.

  • adam_betas (Tuple[float, float], default (0.9, 0.98)) – Coefficients for running averages of gradient and its square.

  • data_preparator (TransformerDataPreparatorBase) – Data preparator.

  • verbose (int, default 0) – Verbosity level.

  • train_loss_name (str, default "train_loss") – Name of the training loss.

  • val_loss_name (str, default "val_loss") – Name of the training loss.

  • logits_t (float, default 1) – Scale factor for logits.

  • kwargs (Any) –

Methods

configure_optimizers()

Choose what optimizers and learning-rate schedulers to use in optimization

get_loss_calculator()

Return loss calculator.

requires_negatives(loss)

Return flag for determining the need for negatives.

training_step(batch, batch_idx)

Training step.

validation_step(batch, batch_idx)

Validate step.

Attributes

epsilon_cosine_dist

u2i_dist_available

configure_optimizers() Adam[source]

Choose what optimizers and learning-rate schedulers to use in optimization

Return type

Adam

get_loss_calculator() Optional[Callable[[Tensor, Tensor, Tensor], Tensor]][source]

Return loss calculator.

Return type

Optional[Callable[[Tensor, Tensor, Tensor], Tensor]]

static requires_negatives(loss: str) Optional[bool][source]

Return flag for determining the need for negatives.

Parameters

loss (str) –

Return type

Optional[bool]

training_step(batch: Dict[str, Tensor], batch_idx: int) Tensor[source]

Training step.

Parameters
  • batch (Dict[str, Tensor]) –

  • batch_idx (int) –

Return type

Tensor

validation_step(batch: Dict[str, Tensor], batch_idx: int) Dict[str, Tensor][source]

Validate step.

Parameters
  • batch (Dict[str, Tensor]) –

  • batch_idx (int) –

Return type

Dict[str, Tensor]