code: def build_attention_mask(self):
      # lazily create causal attention mask, with full attention between the vision tokens
      # pytorch uses additive attention mask; fill with -inf
      mask = torch.empty(self.context_length, self.context_length)
      mask.fill_(float("-inf"))
      mask.triu_(1)  # zero out the lower diagonal
      return mask
  
imports: from collections import OrderedDict
  from typing import Tuple, Union
  import torch
  import torch.nn.functional
  from torch import nn
label_desc: Use image node_id 3 for calling the CLIP obj's underlying member method code with example usage: obj.build_attention_mask() and returns: mask