code: def train_step(model, loss_fn, batch, opt):
      (
          graph_list,
          x,
          id_x,
          p2p_x,
          y,
          label_y,
          label_idx,
          batch_nodes,
          pos,
      ) = batch
  
      out = model(
          graph_list,
          x,
          id_x,
          p2p_x,
          label_y,
          label_idx,
          batch_nodes,
          pos,
      )
      loss = loss_fn(out, y)
      loss.backward()
      opt.step()
      opt.clear_gradients()
      return loss
  
file_path: PGL/examples/NeurIPS2022-OGB-Challenge/MAG240M/r_unimp_train_p2p.py
imports: import argparse
  import yaml
  import paddle
  from paddle.io import DataLoader, DistributedBatchSampler
  import paddle.nn.functional
  import numpy
  import optimization
  from ogb.lsc import MAG240MEvaluator
  from easydict import EasyDict
  from pgl.utils.logger import log
  from collections import defaultdict
  import models
  from dataset.new_dataset_p2p import MAG240M, NodeIterDataset, NeighborSampler
  from utils import _create_if_not_exist, load_model, save_model
label_desc: Use image node_id 2 for calling a global function with example usage: train_step(model, loss_fn, batch, opt) and returns: loss