code: def test_gpu_tree_explainer_shap_interactions(
      task, feature_perturbation
  ):
      model, X, margin = task
      ex = shap.GPUTreeExplainer(
          model, X, feature_perturbation=feature_perturbation
      )
      shap_values = np.array(ex.shap_interaction_values(X), copy=False)
  
      assert (
          np.abs(
              np.sum(
                  shap_values,
                  axis=(
                      len(shap_values.shape) - 1,
                      len(shap_values.shape) - 2,
                  ),
              ).T
              + ex.expected_value
              - margin
          ).max()
          < 1e-4
      ), "SHAP values don't sum to model output!"
  
imports: import numpy
  import pytest
  import sklearn
  import shap
  from shap.utils import assert_import
label_desc: Use image node_id 16 for calling a global function with example usage: test_gpu_tree_explainer_shap_interactions(task, feature_perturbation) without return types