class_docstr: Dataset for supervised fine-tuning.
class_docstr_tok: ["Dataset","for","supervised","fine-tuning","."]
code: def __init__(
      self,
      data_path: str,
      tokenizer: transformers.PreTrainedTokenizer,
      data_args: DataArguments,
  ):
      super(LazySupervisedDataset, self).__init__()
      list_data_dict = json.load(open(data_path, "r"))
  
      rank0_print("Formatting inputs...Skip in lazy mode")
      self.tokenizer = tokenizer
      self.list_data_dict = list_data_dict
      self.data_args = data_args
  
imports: import os
  import copy
  import random
  from dataclasses import dataclass, field
  import json
  import logging
  import pathlib
  from typing import Dict, Optional, Sequence, List
  import pickle
  import math
  import torch
  import transformers
  from llamavid.constants import IGNORE_INDEX, IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN
  from torch.utils.data import Dataset
  from llamavid.train.llava_trainer import LLaVATrainer
  from llamavid import conversation
  from llamavid.model import *
  from llava.mm_utils import tokenizer_image_token
  from PIL import Image
  from decord import VideoReader, cpu
label_desc: Use image node_id 1 to create a new LazySupervisedDataset object from inherited base classes: Dataset with example: obj = LazySupervisedDataset(data_path, tokenizer, data_args)