code: def save(self, path: Union[str, Path], **kwargs):
      path = Path(path)
      path.mkdir(exist_ok=True)
      metadata = LearnerMetadata.from_model(self, **kwargs)
      metadata.save(path)
  
      torch.jit.save(self.model, path / self.MODEL_NAME)
  
file_path: nebuly/optimization/nebullvm/nebullvm/operations/inference_learners/torchscript.py
imports: from pathlib import Path
  from typing import Tuple, Union, Optional, List
  from nebullvm.core.models import Device, DeviceType, ModelParams
  from nebullvm.operations.inference_learners.base import PytorchBaseInferenceLearner, LearnerMetadata
  from nebullvm.optional_modules.torch import torch, symbolic_trace, Module, ScriptModule, GraphModule
  from nebullvm.tools.transformations import MultiStageTransformation
label_desc: Use image node_id 3 for calling the TorchScriptInferenceLearner obj's underlying member method code with example usage: obj.save(path) without return types