code: def test_openvino_predict_ndarray_multi_input(self):
      self.load_roberta()
      input_data = [
          np.zeros([32, 128]),
          np.ones([32, 128]),
          np.zeros([32, 128]),
      ]
      result = self.est.predict(input_data, batch_size=5)
      assert isinstance(result, np.ndarray)
      assert result.shape == (32, 2)
      with self.assertRaises(Exception):
          self.est.predict(
              input_data,
              feature_cols=["feature"],
              input_cols=["a", "input_ids", "token_type_ids"],
          )
      result2 = self.est.predict(
          input_data,
          input_cols=["input_ids", "token_type_ids", "attention_mask"],
      )
      assert isinstance(result2, np.ndarray)
      assert result2.shape == (32, 2)
      assert not np.allclose(result, result2)
  
imports: import os
  import tarfile
  import tempfile
  import shutil
  from unittest import TestCase
  import numpy
  from bigdl.dllib.feature.dataset.base import maybe_download
  from bigdl.dllib.nncontext import init_nncontext
  from bigdl.orca.data import SparkXShards
  from bigdl.orca.learn.openvino import Estimator
label_desc: Use image node_id 8 for calling the TestEstimatorForOpenVINO obj's underlying member method code with example usage: obj.test_openvino_predict_ndarray_multi_input() without return types