def _rope_scaling_validation()

in server/text_generation_server/models/custom_modeling/flash_phi_moe_modeling.py [0:0]


    def _rope_scaling_validation(self):
        """
        Validate the `rope_scaling` configuration.
        """
        if self.rope_scaling is None:
            return

        if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 6:
            raise ValueError(
                "`rope_scaling` must be a dictionary with three fields, `type`, `short_factor`, `long_factor`, "
                f"`short_mscale`, `long_mscale` and `original_max_position_embeddings`, got {self.rope_scaling}"
            )
        rope_scaling_type = self.rope_scaling.get("type", None)
        rope_scaling_short_factor = self.rope_scaling.get("short_factor", None)
        rope_scaling_long_factor = self.rope_scaling.get("long_factor", None)
        rope_scaling_short_mscale = self.rope_scaling.get("short_mscale", None)
        rope_scaling_long_mscale = self.rope_scaling.get("long_mscale", None)
        original_max_position_embeddings = self.rope_scaling.get(
            "original_max_position_embeddings", None
        )
        if rope_scaling_type is None or rope_scaling_type not in ["longrope"]:
            raise ValueError(
                f"`rope_scaling`'s type field must be one of ['longrope'], got {rope_scaling_type}"
            )
        if not (
            isinstance(rope_scaling_short_factor, list)
            and all(isinstance(x, (int, float)) for x in rope_scaling_short_factor)
        ):
            raise ValueError(
                f"`rope_scaling`'s short_factor field must be a list of numbers, got {rope_scaling_short_factor}"
            )
        if (
            not len(rope_scaling_short_factor)
            == self.hidden_size // self.num_attention_heads // 2
        ):
            raise ValueError(
                f"`rope_scaling`'s short_factor field must have length {self.hidden_size // self.num_attention_heads // 2}, got {len(rope_scaling_short_factor)}"
            )
        if not (
            isinstance(rope_scaling_long_factor, list)
            and all(isinstance(x, (int, float)) for x in rope_scaling_long_factor)
        ):
            raise ValueError(
                f"`rope_scaling`'s long_factor field must be a list of numbers, got {rope_scaling_long_factor}"
            )
        if (
            not len(rope_scaling_long_factor)
            == self.hidden_size // self.num_attention_heads // 2
        ):
            raise ValueError(
                f"`rope_scaling`'s long_factor field must have length {self.hidden_size // self.num_attention_heads // 2}, got {len(rope_scaling_long_factor)}"
            )
        if not isinstance(rope_scaling_short_mscale, (int, float)):
            raise ValueError(
                f"`rope_scaling`'s short_mscale field must be a number, got {rope_scaling_short_mscale}"
            )
        if not isinstance(rope_scaling_long_mscale, (int, float)):
            raise ValueError(
                f"`rope_scaling`'s long_mscale field must be a number, got {rope_scaling_long_mscale}"
            )
        if not isinstance(original_max_position_embeddings, int):
            raise ValueError(
                f"`rope_scaling`'s original_max_position_embeddings field must be an integer, got {original_max_position_embeddings}"
            )