class_docstr: Builds a `tf.keras.Model`.
  
  This class implements the `ModelBuilderWithMask` by delegating the class
  behaviors to the following implementors that can be specified by callers:
  
     * input_creator: A callable or a class like `InputCreator` to implement
     `create_inputs`.
     * preprocessor: A callable or a class like `Preprocessor` to implement
     `preprocess`.
     * scorer: A callable or a class like `Scorer` to implement `score`.
  
  Users can subclass those implementor classes and pass the objects into this
  class to build a `tf.keras.Model`.
  
  Example usage:
  
  ```python
  model_builder = ModelBuilder(
      input_creator=FeatureSpecInputCreator(
          {},
          {"example_feature_1": tf.io.FixedLenFeature(
              shape=(1,), dtype=tf.float32, default_value=0.0)}),
      preprocessor=PreprocessorWithSpec(),
      scorer=DNNScorer(hidden_layer_dims=[16]),
      mask_feature_name="list_mask",
      name="model_builder")
  ```
docstr: See `ModelBuilderWithMask`.
docstr_tok: ["See","`","ModelBuilderWithMask","`","."]
code: def preprocess(
      self,
      context_inputs: TensorDict,
      example_inputs: TensorDict,
      mask: tf.Tensor,
  ) -> Tuple[TensorDict, TensorDict]:
      """See `ModelBuilderWithMask`."""
      return self._preprocessor(context_inputs, example_inputs, mask)
  
imports: import abc
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  from absl import logging
  import tensorflow
  from tensorflow_ranking.python.keras import feature
  from tensorflow_ranking.python.keras import layers
label_desc: Use image node_id 3 for calling the ModelBuilder obj's underlying member method code with example usage: obj.preprocess(context_inputs, example_inputs, mask) and returns: self