code: def test_async_knn_classifier(
      sagemaker_session, cpu_instance_type, training_set
  ):
      job_name = unique_name_from_base("knn")
  
      with timeout(minutes=5):
          knn = KNN(
              role="SageMakerRole",
              instance_count=1,
              instance_type=cpu_instance_type,
              k=10,
              predictor_type="classifier",
              sample_size=500,
              index_type="faiss.IVFFlat",
              index_metric="L2",
              sagemaker_session=sagemaker_session,
          )
  
          # training labels must be 'float32'
          knn.fit(
              knn.record_set(
                  training_set[0][:200],
                  training_set[1][:200].astype("float32"),
              ),
              wait=False,
              job_name=job_name,
          )
  
          print(
              "Detached from training job. Will re-attach in 20 seconds"
          )
          time.sleep(20)
          print("attaching now...")
  
      with timeout_and_delete_endpoint_by_name(
          job_name, sagemaker_session
      ):
          estimator = KNN.attach(
              training_job_name=job_name,
              sagemaker_session=sagemaker_session,
          )
          model = KNNModel(
              estimator.model_data,
              role="SageMakerRole",
              sagemaker_session=sagemaker_session,
          )
          predictor = model.deploy(
              1, cpu_instance_type, endpoint_name=job_name
          )
          result = predictor.predict(training_set[0][:10])
  
          assert len(result) == 10
          for record in result:
              assert record.label["score"] is not None
  
file_path: sagemaker-python-sdk/tests/integ/test_knn.py
imports: from __future__ import absolute_import
  import time
  import pytest
  from sagemaker import KNN, KNNModel
  from sagemaker.serverless import ServerlessInferenceConfig
  from sagemaker.utils import unique_name_from_base
  from tests.integ import datasets, TRAINING_DEFAULT_TIMEOUT_MINUTES
  from tests.integ.timeout import timeout, timeout_and_delete_endpoint_by_name
label_desc: Use image node_id 3 for calling a global function with example usage: test_async_knn_classifier(sagemaker_session, cpu_instance_type, training_set) without return types