def predict_fine(self, x, coarse_codes=None):
        if coarse_codes is None:
            coarse_codes = self.predict_coarse(x)

        px = self.project(x, coarse_codes)

        fine_codes = []
        for cx, split in iterate_splits(px, self.num_coarse_splits):

            # Get product quantizer parameters for this split
            _, _, _, subC = self.get_split_parameters(split)

            # Compute subquantizer codes
            fine_codes += [predict_cluster(fx, subC[sub_split]) for fx, sub_split in iterate_splits(cx, self.num_fine_splits)]

        return tuple(fine_codes)
Constructs the alert text for an "add_followers" operation, similar to this:
dataset/ETHPy150Open yahoo/lopq/python/lopq/model.py/LOPQModel.predict_fine--crossover with--dataset/ETHPy150Open viewfinderco/viewfinder/backend/op/alert_manager.py/AlertManager._FormatAddFollowersText