def make_preprocess_fn(
      config: ml_collections.ConfigDict  # pylint: disable=unused-argument
  ) -> Callable[[Dict[str, tf.Tensor]], Dict[str, tf.Tensor]]:
    """Produces function to preprocess samples.

    Tasks should be aware of what type of input they require and are
    responsible for creating these inputs during data preprocessing.

    This default implementation provides an identity function, which returns
    input as-is without applying any preprocessing.

    Args:
      config: contains experiment hyperparameters.

    Returns:
      Function that preprocesses samples to be usable for the model
      (mod casting from tf to jnp dtype).
    """

    def preprocess_fn(sample: Dict[str, tf.Tensor]) -> Dict[str, tf.Tensor]:
      return sample

    return preprocess_fn
Produces function to preprocess samples.

    Tasks should be aware of what type of input they require and are
    responsible for creating these inputs during data preprocessing.

    This default implementation provides an identity function, which returns
    input as-is without applying any preprocessing.

    Args:
      config: contains experiment hyperparameters.

    Returns:
      Function that preprocesses samples to be usable for the model
      (mod casting from tf to jnp dtype).
    
language/mentionmemory/tasks/base_task.py