class_docstr: Dialogue State Tracking Model SGD-QA (https://arxiv.org/abs/2105.08049)
  
  The SGD-QA model is a fast multi-pass schema-guided state-tracking model, that is trained on the Google schema-guided state tracking dataset (https://arxiv.org/abs/1909.05855).
  The model takes dialogue as input and outputs the dialogue state, which includes slot-value pairs. 
  The model consists of two components: a neural natural language understanding model (NLU), and a rule-based state tracker.
  The NLU takes in a dialogue turn and different schema (entity) information options and outputs their match score. The state tracker takes the highest rated entities and composes
  the dialogue state across turns.
class_docstr_tok: ["Dialogue","State","Tracking","Model","SGD-QA","(","https",":","\/\/arxiv.org\/abs\/2105.08049",")","The","SGD-QA","model","is","a","fast","multi-pass","schema-guided","state-tracking","model",",","that","is","trained","on","the","Google","schema-guided","state","tracking","dataset","(","https",":","\/\/arxiv.org\/abs\/1909.05855",")",".","The","model","takes","dialogue","as","input","and","outputs","the","dialogue","state",",","which","includes","slot-value","pairs",".","The","model","consists","of","two","components",":","a","neural","natural","language","understanding","model","(","NLU",")",",","and","a","rule-based","state","tracker",".","The","NLU","takes","in","a","dialogue","turn","and","different","schema","(","entity",")","information","options","and","outputs","their","match","score",".","The","state","tracker","takes","the","highest","rated","entities","and","composes","the","dialogue","state","across","turns","."]
code: def _setup_dataloader_from_config(
      self, cfg: DictConfig, split: str
  ) -> DataLoader:
      dataset_cfg = self._cfg.dataset
      data_dir = dataset_cfg.data_dir
  
      if not os.path.exists(data_dir):
          raise FileNotFoundError(
              f"Data directory is not found at: {data_dir}."
          )
  
      # dataset = SGDDataset(dataset_split=split, dialogues_processor=self.dialogues_processor)
  
      dataset = DialogueSGDBERTDataset(
          dataset_split=split,
          dialogues_processor=self.dialogues_processor,
          tokenizer=self.dialogues_processor._tokenizer,
          schemas=self.dialogues_processor.schemas,
          schema_config=self.dialogues_processor.schema_config,
          cfg=dataset_cfg,
      )
  
      dl = torch.utils.data.DataLoader(
          dataset=dataset,
          batch_size=cfg.batch_size,
          collate_fn=dataset.collate_fn,
          drop_last=cfg.drop_last,
          shuffle=cfg.shuffle,
          num_workers=cfg.num_workers,
          pin_memory=cfg.pin_memory,
      )
      return dl
  
imports: import os
  from typing import List, Optional
  import torch
  from omegaconf import DictConfig
  from pytorch_lightning import Trainer
  from torch.utils.data import DataLoader
  from nemo.collections.nlp.data.dialogue import DialogueSGDBERTDataset, DialogueSGDDataProcessor
  from nemo.collections.nlp.data.dialogue.sgd.evaluate import evaluate, get_in_domain_services
  from nemo.collections.nlp.data.dialogue.sgd.prediction_utils import write_predictions_to_file
  from nemo.collections.nlp.losses import SGDDialogueStateLoss
  from nemo.collections.nlp.models.nlp_model import NLPModel
  from nemo.collections.nlp.modules import SGDDecoder, SGDEncoder
  from nemo.collections.nlp.parts.utils_funcs import tensor2list
  from nemo.core.classes.common import PretrainedModelInfo, typecheck
  from nemo.utils import logging
label_desc: Use image node_id 16 for calling the SGDQAModel obj's underlying member method code with example usage: obj._setup_dataloader_from_config(cfg, split) and returns: dl