Files
vllm-omni/vllm_omni/transformers_utils/configs/glm_tts.py
T

95 lines
3.2 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
"""GLM-TTS config registration with transformers AutoConfig.
Registers GLMTTSConfig (model_type="glm_tts") so that
``AutoConfig.from_pretrained("path/to/glm-tts")`` returns the correct config class.
Note: GLM-TTS uses a Llama backbone, but we register a custom config
to handle the special token IDs and flow model parameters.
"""
from __future__ import annotations
from typing import Any
from transformers import AutoConfig, PretrainedConfig
class GLMTTSConfig(PretrainedConfig):
"""Llama-based AR model for text-to-speech token generation.
Special token IDs are loaded dynamically from the tokenizer at init time.
"""
model_type: str = "glm_tts"
def __init__(
self,
vocab_size: int = 98304,
hidden_size: int = 2048,
intermediate_size: int = 6144,
num_hidden_layers: int = 28,
num_attention_heads: int = 16,
num_key_value_heads: int = 4,
hidden_act: str = "silu",
max_position_embeddings: int = 8192,
rms_norm_eps: float = 1e-5,
rope_theta: float = 10000.0,
audio_token_start: int = -1,
audio_token_end: int = -1,
boa_token_id: int = -1,
eoa_token_id: int = -1,
pad_token_id: int = -1,
bos_token_id: int = -1,
speech_token_vocab_size: int = 32768,
speech_token_dim: int = 512,
spk_embed_dim: int = 192,
mel_dim: int = 80,
input_frame_rate: float = 25.0,
mel_framerate: int = 50,
max_token_text_ratio: float = 20.0,
min_token_text_ratio: float = 2.0,
sample_method: str = "ras",
ras_top_p: float = 0.8,
ras_top_k: int = 25,
ras_win_size: int = 10,
ras_tau_r: float = 0.1,
**kwargs: Any,
):
self.vocab_size = vocab_size
self.hidden_size = hidden_size
self.intermediate_size = intermediate_size
self.num_hidden_layers = num_hidden_layers
self.num_attention_heads = num_attention_heads
self.num_key_value_heads = num_key_value_heads
self.hidden_act = hidden_act
self.max_position_embeddings = max_position_embeddings
self.rms_norm_eps = rms_norm_eps
self.rope_theta = rope_theta
self.audio_token_start = audio_token_start
self.audio_token_end = audio_token_end
self.boa_token_id = boa_token_id
self.eoa_token_id = eoa_token_id
self.speech_token_vocab_size = speech_token_vocab_size
self.speech_token_dim = speech_token_dim
self.spk_embed_dim = spk_embed_dim
self.mel_dim = mel_dim
self.input_frame_rate = input_frame_rate
self.mel_framerate = mel_framerate
self.max_token_text_ratio = max_token_text_ratio
self.min_token_text_ratio = min_token_text_ratio
self.sample_method = sample_method
self.ras_top_p = ras_top_p
self.ras_top_k = ras_top_k
self.ras_win_size = ras_win_size
self.ras_tau_r = ras_tau_r
super().__init__(pad_token_id=pad_token_id, bos_token_id=bos_token_id, **kwargs)
AutoConfig.register("glm_tts", GLMTTSConfig)
__all__ = [
"GLMTTSConfig",
]