def METHOD_NAME(self, checkpoints):
    checkponts_ = {
        "transformer.wte.weight": checkpoints["decoder.embed_tokens.weight"],
        "transformer.wpe.weight": checkpoints["decoder.embed_positions.weight"],
                   }
    if "decoder.project_in.weight" in checkpoints:
        checkponts_["transformer.project_in.weight"] = checkpoints["decoder.project_in.weight"]
        checkponts_["transformer.project_out.weight"] = checkpoints["decoder.project_out.weight"]
    if "decoder.final_layer_norm.weight" in checkpoints:
        checkponts_["transformer.ln_f.weight"] = checkpoints["decoder.final_layer_norm.weight"]
        checkponts_["transformer.ln_f.bias"] = checkpoints["decoder.final_layer_norm.bias"]
    q_weight = None
    k_weight = None
    v_weight = None
    q_bias = None
    k_bias = None
    v_bias = None
    for k, v in checkpoints.items():
        # first ln
        if "decoder.layers" in k and "self_attn_layer_norm" in k:
            layer_id = k.split(".")[2]
            weight_or_bias = k.split(".")[-1]
            checkponts_[f"transformer.h.{layer_id}.ln_1.{weight_or_bias}"] = v
            continue
        # qkv
        if "self_attn.k_proj.weight" in k:
            k_weight = v
            continue
        if "self_attn.k_proj.bias" in k:
            k_bias = v
            continue
        if "self_attn.v_proj.weight" in k:
            v_weight = v
            continue
        if "self_attn.v_proj.bias" in k:
            v_bias = v
            continue
        if "self_attn.q_proj.weight" in k:
            q_weight = v
            qkv_weight = torch.cat([q_weight, k_weight, v_weight], dim=0)
            layer_id = k.split(".")[2]
            checkponts_[f"transformer.h.{layer_id}.attn.c_attn.weight"] = qkv_weight
            continue
        if "self_attn.q_proj.bias" in k:
            q_bias = v
            qkv_bias = torch.cat([q_bias, k_bias, v_bias], dim=0)
            layer_id = k.split(".")[2]
            checkponts_[f"transformer.h.{layer_id}.attn.c_attn.bias"] = qkv_bias
            continue
        # att out
        if "decoder.layers" in k and "self_attn.out_proj" in k:
            layer_id = k.split(".")[2]
            weight_or_bias = k.split(".")[-1]
            checkponts_[f"transformer.h.{layer_id}.attn.c_proj.{weight_or_bias}"] = v
            continue
        # fc1
        if "decoder.layers" in k and "fc1" in k:
            layer_id = k.split(".")[2]
            weight_or_bias = k.split(".")[-1]
            checkponts_[f"transformer.h.{layer_id}.mlp.c_fc.{weight_or_bias}"] = v
            continue
        # fc2
        if "decoder.layers" in k and "fc2" in k:
            layer_id = k.split(".")[2]
            weight_or_bias = k.split(".")[-1]
            checkponts_[f"transformer.h.{layer_id}.mlp.c_proj.{weight_or_bias}"] = v
            continue
        # second ln
        if "decoder.layers" in k and "final_layer_norm" in k:
            layer_id = k.split(".")[2]
            weight_or_bias = k.split(".")[-1]
            checkponts_[f"transformer.h.{layer_id}.ln_2.{weight_or_bias}"] = v
            continue
    return checkponts