def METHOD_NAME(mag_dataset, neigh_nodes, batch_nodes, config, eval=False):
    out_neigh_nodes = neigh_nodes[batch_nodes.shape[0]:]
    out_neigh_nodes_mask = paddle.gather(mag_dataset.train_idx_mask, out_neigh_nodes)
    # sub_label_index = paddle.where(out_neigh_nodes_mask)[0].reshape([-1])
    sub_label_index = paddle.where(out_neigh_nodes_mask == 1)[0].reshape([-1])
    sub_label_y = mag_dataset.y[out_neigh_nodes[sub_label_index]]
    sub_label_index = sub_label_index + len(batch_nodes)
    x = mag_dataset.x[neigh_nodes]
    id_x = mag_dataset.id_x[neigh_nodes]
    p2p_x = mag_dataset.p2p_x[neigh_nodes]
    # 以下行可注释
    # x = paddle.to_tensor(x, dtype="float16")
    x = paddle.cast(x, dtype="float32")
    # 注意合入最新的MAG240M from Zhengjie
    # id_x = paddle.to_tensor(id_x, dtype="float16")
    id_x = paddle.cast(id_x, dtype="float32")
    p2p_x = paddle.cast(p2p_x, dtype="float32")
    y = mag_dataset.y[batch_nodes]
    pos = 2021 - mag_dataset.year[neigh_nodes]
    pos = mag_dataset.pos[pos]
    if not eval:
        rd_sub_y = paddle.randint_like(sub_label_y, 0, 153)
        rd_m = paddle.rand(shape=sub_label_y.shape) < config.label_rate # bool
        sub_label_y[rd_m] = rd_sub_y[rd_m]
    return x, id_x, p2p_x, y, sub_label_y, sub_label_index, pos