docstr: Converts input tensors to input ids.
docstr_tok: ["Converts","input","tensors","to","input","ids","."]
code: def _unpack_inputs(
      self,
      inputs: Union[
          Dict[str, torch.Tensor],
          Dict[str, np.ndarray],
          Tuple[Dict[str, torch.Tensor], Dict[str, torch.Tensor]],
      ],
  ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]:
      """Converts input tensors to input ids."""
      if isinstance(inputs, tuple):
          inputs, targets = inputs
          # Convert targets to tensors.
          for target_feature_name, target_value in targets.items():
              if not isinstance(target_value, torch.Tensor):
                  targets[target_feature_name] = torch.from_numpy(
                      target_value
                  )
              else:
                  targets[target_feature_name] = target_value
      else:
          targets = None
  
      assert list(inputs.keys()) == self.input_features.keys()
  
      input_ids = self.get_input_ids(inputs)
      target_ids = self.get_target_ids(targets) if targets else None
  
      return input_ids, target_ids
  
imports: import contextlib
  import logging
  import os
  from typing import Any, Dict, List, Optional, Tuple, Union
  import numpy
  import torch
  from transformers import AutoConfig, GenerationConfig
  from ludwig.accounting.used_tokens import get_used_tokens_for_llm
  from ludwig.constants import IGNORE_INDEX_TOKEN_ID, LOGITS, MODEL_LLM, PREDICTIONS, TEXT, USED_TOKENS
  from ludwig.features.base_feature import ModuleWrapper, OutputFeature
  from ludwig.features.feature_utils import LudwigFeatureDict
  from ludwig.features.text_feature import TextOutputFeature
  from ludwig.globals import MODEL_WEIGHTS_FILE_NAME
  from ludwig.models.base import BaseModel
  from ludwig.modules.training_hooks import NEFTuneHook
  from ludwig.schema.features.base import BaseOutputFeatureConfig, FeatureCollection
  from ludwig.schema.model_types.llm import LLMModelConfig
  from ludwig.utils.augmentation_utils import AugmentationPipelines
  from ludwig.utils.data_utils import clear_data_cache
  from ludwig.utils.llm_quantization_utils import convert_quantized_linear_to_linear
  from ludwig.utils.llm_utils import add_left_padding, generate_merged_ids, get_context_len, get_realigned_target_and_prediction_tensors_for_inference, initialize_adapter, load_pretrained_from_config, pad_target_tensor_for_fine_tuning, remove_left_padding, to_device
  from ludwig.utils.logging_utils import log_once
  from ludwig.utils.output_feature_utils import set_output_feature_tensor
  from ludwig.utils.tokenizers import HFTokenizer
  from ludwig.utils.torch_utils import reg_loss
label_desc: Use image node_id 16 for calling the LLM obj's underlying member method code with example usage: obj._unpack_inputs(inputs) and returns: input_ids,  target_ids