docs: def cloud_batch_predict(training_dir, prediction_input_file, output_dir, mode, batch_size,
                          shard_files, output_format):
    """See batch_predict"""
    # from . import predict as predict_module
    from .prediction import predict as predict_module
  
    if mode == 'evaluation':
      model_dir = os.path.join(training_dir, 'evaluation_model')
    elif mode == 'prediction':
      model_dir = os.path.join(training_dir, 'model')
    else:
      raise ValueError('mode must be evaluation or prediction')
  
    if not file_io.file_exists(model_dir):
      raise ValueError('Model folder %s does not exist' % model_dir)
  
    _assert_gcs_files([training_dir, prediction_input_file, output_dir])
  
    cmd = ['predict.py',
           '--cloud',
           '--project-id=%s' % _default_project(),
           '--predict-data=%s' % prediction_input_file,
           '--trained-model-dir=%s' % model_dir,
           '--output-dir=%s' % output_dir,
           '--output-format=%s' % output_format,
           '--batch-size=%s' % str(batch_size),
           '--shard-files' if shard_files else '--no-shard-files',
           '--extra-package=%s' % _TF_GS_URL,
           '--extra-package=%s' % _PROTOBUF_GS_URL,
           '--extra-package=%s' % _package_to_staging(output_dir)
           ]
  
    return predict_module.main(cmd)