def _compute_multi_label_probs(self, wl_matrix: np.ndarray) -> np.ndarray:
        """Helper methods that computes the probabilities.

        Args:
            wl_matrix: The weak label matrix.

        Returns:
            A matrix of "probabilities" with nr or records x nr of labels.
            The label order matches the one from `self.weak_labels.labels`.
        """
        # turn abstentions (-1) into 0
        counts = np.where(wl_matrix == -1, 0, wl_matrix).sum(axis=1)
        # binary probability, predict all labels with at least one vote
        probabilities = np.where(counts > 0, 1, 0).astype(np.float16)

        all_rules_abstained = wl_matrix.sum(axis=1).sum(axis=1) == (
            -1 * self._weak_labels.cardinality * len(self._weak_labels.rules)
        )
        probabilities[all_rules_abstained] = [np.nan] * len(self._weak_labels.labels)

        # more "nuanced probability", not sure if useful though
        # with np.errstate(invalid="ignore"):
        #     probabilities = counts / counts.sum(axis=1).reshape(len(counts), -1)

        return probabilities
Helper methods that computes the probabilities.

        Args:
            wl_matrix: The weak label matrix.

        Returns:
            A matrix of "probabilities" with nr or records x nr of labels.
            The label order matches the one from `self.weak_labels.labels`.
        
argilla-v1/src/argilla_v1/labeling/text_classification/label_models.py