def METHOD_NAME(self, strategy: ShardingStrategy) -> Union[ShardingStrategy, List[ShardingStrategy]]:
    # convert bias from its logical sharding spec to its physical sharding spec
    op_data_mapping = self.get_operation_data_mapping()
    for op_name, op_data in op_data_mapping.items():
        if op_data in self.non_tensor_list:
            # remove the sharding spec if the op_data is not a tensor, e.g. torch.pow(tensor, 2)
            strategy.sharding_specs.pop(op_data)
        else:
            # convert the logical sharding spec to physical sharding spec if broadcast
            # e.g. torch.rand(4, 4) + torch.rand(4)
            physical_shape = op_data.data.shape
            logical_shape = op_data.logical_shape
            sharding_spec = strategy.get_sharding_spec_by_name(op_data.name)
            sharding_spec, removed_dims = recover_sharding_spec_for_broadcast_shape(
                sharding_spec, logical_shape, physical_shape)
            strategy.sharding_specs[op_data] = sharding_spec
            if len(removed_dims) > 0:
                comm_action = comm_actions_for_oprands(node=self.node,
                                                       removed_dims=removed_dims,
                                                       op_data=op_data,
                                                       sharding_spec=sharding_spec)
                strategy.communication_actions[op_data] = comm_action
    return strategy