def METHOD_NAME(config, predictions):
    """doc
    """
    log.info("use simgcl loss")
    nfeat = predictions["nfeat"]
    src_feat = predictions["src_nfeat"]
    noise = paddle.uniform(
        paddle.shape(nfeat), dtype="float32", min=0.0, max=1.0)
    noise = noise * paddle.sign(nfeat)
    ratio = 0.5
    noised_nfeat = nfeat + noise * ratio
    noised_src_nfeat = noised_nfeat[:, 0:1, :]
    noised_logits = paddle.matmul(src_feat, noised_src_nfeat, transpose_y=True)
    noised_logits = paddle.squeeze(noised_logits, axis=[1])
    tao = 100
    # equal to L.elementwise_div(logits, 1/tao) and it will boardcast automatically
    noised_logits = noised_logits * tao
    labels = paddle.zeros([paddle.shape(noised_logits)[0], 1], dtype="int64")
    loss = paddle.nn.functional.softmax_with_cross_entropy(noised_logits,
                                                           labels)
    loss = paddle.sum(loss)
    return loss