code: def test_timm_zero_shot(checkpoint_name, num_gpus):
      cat_image_name, dog_image_name = download_sample_images()
  
      predictor = MultiModalPredictor(
          hyperparameters={
              "model.names": ["timm_image"],
              "model.timm_image.checkpoint_name": checkpoint_name,
              "env.num_gpus": num_gpus,
          },
          problem_type="zero_shot_image_classification",
      )
  
      pred = predictor.predict(
          {"image": [cat_image_name, dog_image_name]}
      )
      assert pred.shape == (2,)
  
      prob = predictor.predict_proba(
          {"image": [cat_image_name, dog_image_name]}
      )
      assert prob.shape == (2, 1000)
  
      features = predictor.extract_embedding(
          {"abc": [cat_image_name, dog_image_name]}
      )
      assert features["abc"].ndim == 2 and features["abc"].shape[0] == 2
  
      features, masks = predictor.extract_embedding(
          {"abc": [cat_image_name, dog_image_name]}, return_masks=True
      )
      assert features["abc"].ndim == 2 and features["abc"].shape[0] == 2
      assert np.all(masks["abc"] == np.array([1, 1]))
  
      features, masks = predictor.extract_embedding(
          {"abc": [cat_image_name], "123": [dog_image_name]},
          return_masks=True,
      )
      assert features["abc"].ndim == 2 and features["abc"].shape[0] == 1
      assert features["123"].ndim == 2 and features["123"].shape[0] == 1
      assert np.all(masks["abc"] == np.array([1]))
      assert np.all(masks["123"] == np.array([1]))
  
file_path: autogluon/multimodal/tests/unittests/others_2/test_zero_shot.py
imports: import numpy
  import pytest
  import requests
  from PIL import Image
  from autogluon.multimodal import MultiModalPredictor
label_desc: Use image node_id 3 for calling a global function with example usage: test_timm_zero_shot(checkpoint_name, num_gpus) without return types