code: def _compare_tuple(t1, t2):
      """
      检测 t1 和 t2 的关系。
      例如 (1, ) 和 (1, ) 关系为 0，表示两者完全没有差异
      例如 (1, ) 和 (2, ) 关系为 None，表示完全不同
      例如 (1, 2, 3) 和 (1, ) 关系为 2，表示前者比后者长 2 位
      但 例如 (1, 2, 3) 和 (2, ) 关系为 None，因为它们从前往后的key 不一样
         例如 (1, 2, 3) 和 (1, 3) 关系为 None，因为它们从前往后的key 不一样
  
      例如 (1, ) 和 (1, 2, 3) 关系为 -2，表示后者比前者长 2 位
      但 例如 (2, ) 和 (1, 2, 3) 关系为 None，因为它们从前往后的key 不一样
         例如 (1, 3) 和 (1, 2, 3) 关系为 None，因为它们从前往后的key 不一样
      :param t1:
      :param t2:
      :return: None 没有关系; 0 两者完全一样； >0 t1比t2长，<0 t2比t1长
      """
      if t1 == t2:
          return 0
      for _t1, _t2 in zip(t1, t2):  # 会按照最短的计算
          if _t1 != _t2:
              return None
      return len(t1) - len(t2)
  
file_path: fastNLP/fastNLP/core/collators/collator.py
imports: from typing import List, Union, Dict, Callable, Sequence, Mapping
  import os
  import sys
  import inspect
  import re
  from fastNLP.core.log import logger
  from .padders.get_padder import get_padder
  from ...envs import SUPPORT_BACKENDS
  from .padders import Padder
  from .packer_unpacker import SequencePackerUnpacker, SinglePackerUnpacker, MappingPackerUnpacker, NestedMappingPackerUnpacker
label_desc: Use image node_id 2 for calling a global function with example usage: _compare_tuple(t1, t2) and returns: unknown, int, None