class_docstr: Information retrieval model which encodes query and passage separately
  with two different BERT encoders and computes their similarity score
  as a dot-product between corresponding [CLS] token representations.
class_docstr_tok: ["Information","retrieval","model","which","encodes","query","and","passage","separately","with","two","different","BERT","encoders","and","computes","their","similarity","score","as","a","dot-product","between","corresponding","[","CLS","]","token","representations","."]
code: def input_types(self) -> Optional[Dict[str, NeuralType]]:
      return {
          "q_input_ids": NeuralType(("B", "T"), ChannelType()),
          "q_attention_mask": NeuralType(("B", "T"), MaskType()),
          "q_token_type_ids": NeuralType(("B", "T"), ChannelType()),
          "p_input_ids": NeuralType(("B", "T"), ChannelType()),
          "p_attention_mask": NeuralType(("B", "T"), MaskType()),
          "p_token_type_ids": NeuralType(("B", "T"), ChannelType()),
      }
  
file_path: NeMo/nemo/collections/nlp/models/information_retrieval/bert_dpr_model.py
imports: from typing import Dict, Optional
  import torch
  from omegaconf import DictConfig
  from pytorch_lightning import Trainer
  from nemo.collections.common.losses import SmoothedCrossEntropyLoss
  from nemo.collections.nlp.data import BertInformationRetrievalDataset
  from nemo.collections.nlp.models.information_retrieval.base_ir_model import BaseIRModel
  from nemo.collections.nlp.modules.common.tokenizer_utils import get_tokenizer
  from nemo.core.classes.common import typecheck
  from nemo.core.neural_types import ChannelType, LogitsType, MaskType, NeuralType
label_desc: Use image node_id 1 for calling the BertDPRModel obj's underlying member method code with example usage: obj.input_types() and returns: dict