isaiahintelliga commited on
Commit
d28be92
Β·
verified Β·
1 Parent(s): eae4cb5

Upload BeigeTTS - Research release for neural speech synthesis (CC BY-NC 4.0)

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,234 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: en
3
+ license: cc-by-nc-4.0
4
+ library_name: transformers
5
+ tags:
6
+ - tts
7
+ - text-to-speech
8
+ - neucodec
9
+ - audio-generation
10
+ - research
11
+ - speech-synthesis
12
+ datasets:
13
+ - custom
14
+ model-index:
15
+ - name: BeigeTTS
16
+ results: []
17
+ ---
18
+
19
+ # BeigeTTS: Research Release for Neural Speech Synthesis
20
+
21
+ ## Overview
22
+
23
+ BeigeTTS is a research release from BlandAI, representing a scaled-down version of our production Khaki TTS system. This model demonstrates state-of-the-art neural speech synthesis capabilities by combining Google's Gemma-3 4B architecture with NeuCodec audio token generation. We're releasing BeigeTTS to the research community to advance the field of neural speech synthesis and enable academic exploration of large-scale TTS architectures.
24
+
25
+ ## Research Context & Motivation
26
+
27
+ BeigeTTS serves as a public research artifact derived from our larger Khaki TTS system, which powers BlandAI's production speech synthesis infrastructure. While Khaki operates at significantly larger scale with enhanced capabilities including:
28
+ - Multi-speaker voice cloning (10,000+ voices)
29
+ - Real-time multilingual synthesis (57 languages)
30
+ - Emotion and prosody transfer
31
+ - Sub-50ms streaming latency
32
+ - Production-grade robustness
33
+
34
+ BeigeTTS represents the core architectural innovations in a more accessible 4B parameter model suitable for research purposes.
35
+
36
+ ## Technical Architecture
37
+
38
+ ### Model Foundation
39
+ - **Base Model**: Google Gemma-3 4B Instruct
40
+ - **Parameter Count**: ~4 billion parameters (Khaki uses 70B+)
41
+ - **Audio Codec**: NeuCodec (24kHz, single codebook)
42
+ - **Training Steps**: 1,435,000 steps
43
+ - **Context Length**: 2048 tokens
44
+ - **Vocabulary Size**: Extended to 327,690 tokens (includes NeuCodec token space)
45
+
46
+ ### Research Implications
47
+
48
+ This release enables researchers to explore:
49
+
50
+ 1. **Unified Text-Audio Modeling**: How large language models can be adapted for audio generation tasks
51
+ 2. **Token-Based Audio Synthesis**: Advantages of discrete token representations over continuous methods
52
+ 3. **Efficient Streaming**: Real-time generation with minimal latency
53
+ 4. **Cross-Modal Learning**: Transfer learning between text and audio modalities
54
+
55
+ ### Token Space Design
56
+
57
+ The model employs a unified token space combining text and audio:
58
+
59
+ ```
60
+ Standard Gemma Tokens: 0-262,144
61
+ Special Audio Markers:
62
+ - AUDIO_START: 262,145
63
+ - AUDIO_END: 262,146
64
+ NeuCodec Audio Tokens: 262,154-327,689 (65,536 tokens)
65
+ ```
66
+
67
+ ## Capabilities & Limitations
68
+
69
+ ### Current Capabilities (BeigeTTS)
70
+ - High-quality English speech synthesis
71
+ - Natural prosody and intonation
72
+ - Streaming generation support
73
+ - Adjustable speaking rate and style
74
+ - Context-aware generation
75
+
76
+ ### Production Capabilities (Khaki - Not Released)
77
+ - **Multilingual**: 57 languages with accent control
78
+ - **Voice Cloning**: Zero-shot and few-shot speaker adaptation
79
+ - **Emotion Control**: 12 distinct emotional states
80
+ - **Ultra-Low Latency**: <50ms time-to-first-audio
81
+ - **Long-Form**: Stable generation for 30+ minute audio
82
+ - **Voice Conversion**: Real-time voice transformation
83
+ - **Singing Synthesis**: Musical vocal generation
84
+
85
+ ### Research Limitations
86
+
87
+ BeigeTTS is released for non-commercial research purposes only. Key limitations include:
88
+ - English-only synthesis (multilingual reserved for Khaki)
89
+ - Single speaker (multi-speaker in Khaki)
90
+ - 10-second maximum generation (unlimited in Khaki)
91
+ - No voice cloning (available in Khaki)
92
+ - Research license only
93
+
94
+ ## Installation
95
+
96
+ ```bash
97
+ pip install torch transformers accelerate
98
+ pip install git+https://github.com/neuphonic/neucodec.git
99
+ pip install soundfile numpy scipy
100
+ ```
101
+
102
+ ## Quick Start
103
+
104
+ ```python
105
+ import torch
106
+ from transformers import AutoModelForCausalLM, AutoTokenizer
107
+ from neucodec import NeuCodec
108
+ import soundfile as sf
109
+
110
+ # Load model
111
+ model = AutoModelForCausalLM.from_pretrained("BlandAI/BeigeTTS")
112
+ tokenizer = AutoTokenizer.from_pretrained("BlandAI/BeigeTTS")
113
+ neucodec = NeuCodec.from_pretrained("neuphonic/neucodec")
114
+
115
+ # Generate speech
116
+ text = "Hello! This is BeigeTTS, a research release from BlandAI."
117
+ prompt = f"<start_of_turn>user\n{text}<end_of_turn>\n<start_of_turn>model\n<start_of_speech>"
118
+
119
+ # Tokenize and generate
120
+ inputs = tokenizer(prompt, return_tensors="pt")
121
+ with torch.no_grad():
122
+ outputs = model.generate(
123
+ inputs.input_ids,
124
+ max_new_tokens=500,
125
+ temperature=0.1,
126
+ top_p=0.97,
127
+ eos_token_id=[tokenizer.eos_token_id, 262146]
128
+ )
129
+
130
+ # Decode audio (see inference script for full implementation)
131
+ ```
132
+
133
+ ## Research Applications
134
+
135
+ ### Suggested Research Directions
136
+
137
+ 1. **Prosody Modeling**: Investigating controllable prosody generation
138
+ 2. **Cross-Lingual Transfer**: Adapting to new languages with minimal data
139
+ 3. **Emotion Synthesis**: Fine-tuning for emotional speech generation
140
+ 4. **Compression Studies**: Analyzing audio token efficiency
141
+ 5. **Streaming Optimization**: Reducing latency for real-time applications
142
+ 6. **Robustness Analysis**: Handling out-of-distribution text inputs
143
+
144
+ ### Academic Collaborations
145
+
146
+ We welcome academic collaborations. For research partnerships or access to evaluation datasets, contact research@bland.ai
147
+
148
+ ## Performance Characteristics
149
+
150
+ - **Inference Speed**: ~150 tokens/second on A100
151
+ - **Audio Quality**: 24kHz (Khaki supports 48kHz)
152
+ - **Latency**: <500ms first audio (Khaki: <50ms)
153
+ - **Memory Usage**: ~16GB VRAM
154
+
155
+ ## Multilingual Research Notes
156
+
157
+ While BeigeTTS is English-only, the architecture supports multilingual synthesis through:
158
+ - Language-specific token embeddings
159
+ - Cross-lingual phoneme mapping
160
+ - Accent and dialect modeling
161
+ - Code-switching capabilities
162
+
163
+ The full Khaki system demonstrates these capabilities across 57 languages with accent preservation and cross-lingual voice transfer. Researchers interested in multilingual TTS can use BeigeTTS as a foundation for exploring these directions.
164
+
165
+ ## Ethical Considerations & License
166
+
167
+ ### Non-Commercial Use Only
168
+
169
+ BeigeTTS is released under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0). This means:
170
+ - βœ… Research and academic use
171
+ - βœ… Personal experimentation
172
+ - βœ… Open-source contributions
173
+ - ❌ Commercial applications
174
+ - ❌ Production deployment
175
+ - ❌ Monetized services
176
+
177
+ For commercial licensing of our full Khaki system, contact partnerships@bland.ai
178
+
179
+ ### Responsible AI Guidelines
180
+
181
+ - Always disclose AI-generated content
182
+ - Do not use for impersonation without consent
183
+ - Respect privacy and intellectual property
184
+ - Consider potential biases in synthesis
185
+ - Implement appropriate safety measures
186
+
187
+ ## Citation
188
+
189
+ If you use BeigeTTS in your research, please cite:
190
+
191
+ ```bibtex
192
+ @misc{blandai2024beigetss,
193
+ title={BeigeTTS: A Research Release for Large-Scale Neural Speech Synthesis},
194
+ author={BlandAI Research Team},
195
+ year={2024},
196
+ publisher={HuggingFace},
197
+ note={Scaled research version of the Khaki TTS system}
198
+ }
199
+ ```
200
+
201
+ ## Related Work
202
+
203
+ BeigeTTS builds upon:
204
+ - Gemma (Google, 2024)
205
+ - NeuCodec (Neuphonic, 2024)
206
+ - Our production Khaki TTS system (not publicly available)
207
+
208
+ ## Future Research Releases
209
+
210
+ We plan to release additional research artifacts:
211
+ - **TaupeVC**: Voice conversion research model
212
+ - **EcruTTS**: Lightweight edge deployment model
213
+ - **SandAlign**: Forced alignment for TTS training
214
+
215
+ ## Support & Community
216
+
217
+ - Research inquiries: research@bland.ai
218
+ - Technical issues: GitHub Issues
219
+ - Commercial licensing: partnerships@bland.ai
220
+
221
+ ## Acknowledgments
222
+
223
+ We thank the open-source community and our research partners. Special recognition to:
224
+ - Google for the Gemma foundation model
225
+ - Neuphonic for NeuCodec
226
+ - The broader TTS research community
227
+
228
+ ## Disclaimer
229
+
230
+ BeigeTTS is a research release with no warranties. The full production capabilities described for Khaki are not available in this release. For production-grade TTS, please contact BlandAI for commercial licensing options.
231
+
232
+ ---
233
+
234
+ *BeigeTTS is a research artifact from BlandAI's speech synthesis team. For production applications, explore our commercial Khaki TTS API at bland.ai*
added_tokens.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "<end_of_speech>": 262146,
3
+ "<image_soft_token>": 262144,
4
+ "<start_of_speech>": 262145
5
+ }
config.json ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "GemmaForCausalLM"
4
+ ],
5
+ "boi_token_index": 255999,
6
+ "eoi_token_index": 256000,
7
+ "eos_token_id": 107,
8
+ "image_token_index": 262144,
9
+ "initializer_range": 0.02,
10
+ "mm_tokens_per_image": 256,
11
+ "model_type": "gemma",
12
+ "text_config": {
13
+ "attention_bias": false,
14
+ "attention_dropout": 0.0,
15
+ "attn_logit_softcapping": null,
16
+ "cache_implementation": "hybrid",
17
+ "final_logit_softcapping": null,
18
+ "head_dim": 256,
19
+ "hidden_activation": "gelu_pytorch_tanh",
20
+ "hidden_size": 2560,
21
+ "initializer_range": 0.02,
22
+ "intermediate_size": 10240,
23
+ "max_position_embeddings": 131072,
24
+ "model_type": "gemma3_text",
25
+ "num_attention_heads": 8,
26
+ "num_hidden_layers": 34,
27
+ "num_key_value_heads": 4,
28
+ "query_pre_attn_scalar": 256,
29
+ "rms_norm_eps": 1e-06,
30
+ "rope_local_base_freq": 10000.0,
31
+ "rope_scaling": {
32
+ "factor": 8.0,
33
+ "rope_type": "linear"
34
+ },
35
+ "rope_theta": 1000000.0,
36
+ "sliding_window": 1024,
37
+ "sliding_window_pattern": 6,
38
+ "torch_dtype": "bfloat16",
39
+ "use_cache": true,
40
+ "vocab_size": 327690
41
+ },
42
+ "torch_dtype": "bfloat16",
43
+ "transformers_version": "4.51.3",
44
+ "use_cache": true,
45
+ "vision_config": {
46
+ "attention_dropout": 0.0,
47
+ "hidden_act": "gelu_pytorch_tanh",
48
+ "hidden_size": 1152,
49
+ "image_size": 896,
50
+ "intermediate_size": 4304,
51
+ "layer_norm_eps": 1e-06,
52
+ "model_type": "siglip_vision_model",
53
+ "num_attention_heads": 16,
54
+ "num_channels": 3,
55
+ "num_hidden_layers": 27,
56
+ "patch_size": 14,
57
+ "torch_dtype": "bfloat16",
58
+ "vision_use_head": false
59
+ },
60
+ "model_name": "BeigeTTS",
61
+ "model_variant": "research_release",
62
+ "production_model": "Khaki_TTS",
63
+ "vocab_size": 327690,
64
+ "hidden_size": 3584,
65
+ "intermediate_size": 14336,
66
+ "num_hidden_layers": 40,
67
+ "num_attention_heads": 16,
68
+ "num_key_value_heads": 8,
69
+ "head_dim": 256,
70
+ "hidden_act": "gelu_pytorch_tanh",
71
+ "max_position_embeddings": 8192,
72
+ "rms_norm_eps": 1e-06,
73
+ "pad_token_id": 0,
74
+ "bos_token_id": 106,
75
+ "tie_word_embeddings": true,
76
+ "rope_theta": 10000.0,
77
+ "attention_bias": false,
78
+ "attention_dropout": 0.0,
79
+ "audio_config": {
80
+ "audio_start_token": 262145,
81
+ "audio_end_token": 262146,
82
+ "neucodec_offset": 262154,
83
+ "neucodec_vocab_size": 65536,
84
+ "sample_rate": 24000,
85
+ "codec": "neucodec",
86
+ "supported_languages": [
87
+ "en"
88
+ ],
89
+ "production_languages": 57,
90
+ "max_duration_seconds": 10,
91
+ "production_max_duration": "unlimited"
92
+ },
93
+ "license": "cc-by-nc-4.0",
94
+ "organization": "BlandAI"
95
+ }
generation_config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "temperature": 0.1,
3
+ "top_p": 0.97,
4
+ "do_sample": true,
5
+ "max_new_tokens": 500,
6
+ "eos_token_id": [
7
+ 107,
8
+ 262146
9
+ ]
10
+ }
inference.py ADDED
@@ -0,0 +1,258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ BeigeTTS - Standard Inference Script
4
+ Research release for high-quality neural speech synthesis
5
+ Based on BlandAI's production Khaki TTS system
6
+ """
7
+
8
+ import torch
9
+ import soundfile as sf
10
+ import numpy as np
11
+ from neucodec import NeuCodec
12
+ from transformers import AutoModelForCausalLM, AutoTokenizer
13
+ import argparse
14
+ from typing import Optional, List, Tuple
15
+
16
+ # ═══════════════════════════════════════════════════════════════════
17
+ # Configuration
18
+ # ═══════════════════════════════════════════════════════════════════
19
+
20
+ class TTSConfig:
21
+ """Configuration for BeigeTTS inference"""
22
+ # Audio tokens
23
+ AUDIO_START_TOKEN = 262145
24
+ AUDIO_END_TOKEN = 262146
25
+ NEUCODEC_BASE_OFFSET = 262154
26
+ NEUCODEC_VOCABULARY_SIZE = 65536
27
+ AUDIO_TOKEN_MIN = NEUCODEC_BASE_OFFSET
28
+ AUDIO_TOKEN_MAX = NEUCODEC_BASE_OFFSET + NEUCODEC_VOCABULARY_SIZE
29
+
30
+ # Generation parameters
31
+ DEFAULT_TEMPERATURE = 0.1
32
+ DEFAULT_TOP_P = 0.97
33
+ DEFAULT_MAX_TOKENS = 500
34
+ SAMPLE_RATE = 24000
35
+
36
+ # Safety limits (full Khaki system supports unlimited duration)
37
+ MAX_AUDIO_TOKENS = 1000 # ~10 seconds
38
+
39
+ # ═══════════════════════════════════════════════════════════════════
40
+ # TTS Engine
41
+ # ═══════════════════════════════════════════════════════════════════
42
+
43
+ class BeigeTTS:
44
+ """BeigeTTS synthesis engine - research version of Khaki TTS"""
45
+
46
+ def __init__(self, model_path: str = "BlandAI/BeigeTTS", device: str = "auto"):
47
+ """Initialize BeigeTTS engine
48
+
49
+ Args:
50
+ model_path: HuggingFace model path or local directory
51
+ device: Device for inference ("auto", "cuda", "cpu")
52
+ """
53
+ self.config = TTSConfig()
54
+ self.device = self._setup_device(device)
55
+
56
+ print("Loading BeigeTTS model (research release)...")
57
+ self.model = AutoModelForCausalLM.from_pretrained(
58
+ model_path,
59
+ torch_dtype=torch.float16 if self.device.type == "cuda" else torch.float32,
60
+ device_map="auto" if device == "auto" else None,
61
+ trust_remote_code=True,
62
+ )
63
+ if device != "auto":
64
+ self.model = self.model.to(self.device)
65
+ self.model.eval()
66
+
67
+ print("Loading tokenizer...")
68
+ self.tokenizer = AutoTokenizer.from_pretrained(model_path)
69
+ if self.tokenizer.pad_token is None:
70
+ self.tokenizer.pad_token = self.tokenizer.eos_token
71
+
72
+ print("Loading NeuCodec...")
73
+ self.neucodec = NeuCodec.from_pretrained("neuphonic/neucodec")
74
+ self.neucodec.eval()
75
+ if self.device.type == "cuda":
76
+ self.neucodec = self.neucodec.to(self.device)
77
+
78
+ def _setup_device(self, device: str) -> torch.device:
79
+ """Setup compute device"""
80
+ if device == "auto":
81
+ return torch.device("cuda" if torch.cuda.is_available() else "cpu")
82
+ return torch.device(device)
83
+
84
+ def synthesize(
85
+ self,
86
+ text: str,
87
+ temperature: float = None,
88
+ top_p: float = None,
89
+ max_tokens: int = None,
90
+ voice_prompt: Optional[str] = None
91
+ ) -> Tuple[np.ndarray, int]:
92
+ """Synthesize speech from text
93
+
94
+ Note: Full Khaki system supports 57 languages, voice cloning,
95
+ and unlimited duration. This research release is English-only.
96
+
97
+ Args:
98
+ text: Input text to synthesize
99
+ temperature: Sampling temperature (lower = more deterministic)
100
+ top_p: Nucleus sampling parameter
101
+ max_tokens: Maximum tokens to generate
102
+ voice_prompt: Optional voice conditioning (limited in BeigeTTS)
103
+
104
+ Returns:
105
+ Tuple of (audio_array, sample_rate)
106
+ """
107
+ # Use defaults if not specified
108
+ temperature = temperature or self.config.DEFAULT_TEMPERATURE
109
+ top_p = top_p or self.config.DEFAULT_TOP_P
110
+ max_tokens = max_tokens or self.config.DEFAULT_MAX_TOKENS
111
+
112
+ # Format prompt
113
+ prompt = self._format_prompt(text, voice_prompt)
114
+
115
+ # Generate audio tokens
116
+ audio_tokens = self._generate_tokens(prompt, temperature, top_p, max_tokens)
117
+
118
+ if not audio_tokens:
119
+ raise ValueError("No audio tokens generated")
120
+
121
+ # Decode to audio
122
+ audio = self._decode_audio(audio_tokens)
123
+
124
+ return audio, self.config.SAMPLE_RATE
125
+
126
+ def _format_prompt(self, text: str, voice_prompt: Optional[str] = None) -> str:
127
+ """Format text into model prompt"""
128
+ # Basic conversational format
129
+ base_prompt = f"<start_of_turn>user\n{text}<end_of_turn>\n<start_of_turn>model\n<start_of_speech>"
130
+
131
+ # Add voice conditioning if provided (limited compared to Khaki)
132
+ if voice_prompt:
133
+ base_prompt = f"[Voice: {voice_prompt}]\n{base_prompt}"
134
+
135
+ return base_prompt
136
+
137
+ def _generate_tokens(
138
+ self,
139
+ prompt: str,
140
+ temperature: float,
141
+ top_p: float,
142
+ max_tokens: int
143
+ ) -> List[int]:
144
+ """Generate audio tokens from prompt"""
145
+
146
+ # Tokenize input
147
+ inputs = self.tokenizer(prompt, return_tensors="pt")
148
+ input_ids = inputs.input_ids.to(self.model.device)
149
+
150
+ print(f"Generating audio tokens (temp={temperature}, top_p={top_p})...")
151
+
152
+ # Generate
153
+ with torch.no_grad():
154
+ outputs = self.model.generate(
155
+ input_ids,
156
+ max_new_tokens=max_tokens,
157
+ temperature=temperature,
158
+ top_p=top_p,
159
+ do_sample=True,
160
+ pad_token_id=self.tokenizer.pad_token_id,
161
+ eos_token_id=[self.tokenizer.eos_token_id, self.config.AUDIO_END_TOKEN],
162
+ )
163
+
164
+ # Extract audio tokens
165
+ generated = outputs[0, input_ids.shape[1]:].cpu().tolist()
166
+ audio_tokens = []
167
+
168
+ for token_id in generated:
169
+ if self.config.AUDIO_TOKEN_MIN <= token_id < self.config.AUDIO_TOKEN_MAX:
170
+ audio_tokens.append(token_id - self.config.NEUCODEC_BASE_OFFSET)
171
+ elif token_id == self.config.AUDIO_END_TOKEN:
172
+ break
173
+
174
+ if len(audio_tokens) >= self.config.MAX_AUDIO_TOKENS:
175
+ print(f"Reached maximum audio length ({self.config.MAX_AUDIO_TOKENS} tokens)")
176
+ break
177
+
178
+ print(f"Generated {len(audio_tokens)} audio tokens")
179
+ return audio_tokens
180
+
181
+ def _decode_audio(self, audio_tokens: List[int]) -> np.ndarray:
182
+ """Decode audio tokens to waveform"""
183
+
184
+ # Prepare tokens for NeuCodec
185
+ audio_array = np.array(audio_tokens, dtype=np.int32)
186
+ audio_array = np.clip(audio_array, 0, self.config.NEUCODEC_VOCABULARY_SIZE - 1)
187
+
188
+ # NeuCodec expects [batch, channels, frames]
189
+ fsq_codes = torch.tensor(audio_array, dtype=torch.long)
190
+ fsq_codes = fsq_codes.unsqueeze(0).unsqueeze(1) # [1, 1, frames]
191
+
192
+ if self.device.type == "cuda":
193
+ fsq_codes = fsq_codes.to(self.device)
194
+
195
+ print(f"Decoding audio (shape: {fsq_codes.shape})...")
196
+
197
+ # Decode
198
+ with torch.no_grad():
199
+ wav = self.neucodec.decode_code(fsq_codes).cpu()
200
+
201
+ # Extract waveform
202
+ if wav.dim() == 3:
203
+ wav = wav[0, 0]
204
+ elif wav.dim() == 2:
205
+ wav = wav[0]
206
+
207
+ wav = wav.numpy()
208
+
209
+ # Normalize
210
+ if np.abs(wav).max() > 0:
211
+ wav = wav / np.abs(wav).max() * 0.95
212
+
213
+ return wav
214
+
215
+ # ═══════════════════════════════════════════════════════════════════
216
+ # CLI Interface
217
+ # ═══════════════════════════════════════════════════════════════════
218
+
219
+ def main():
220
+ parser = argparse.ArgumentParser(description="BeigeTTS Synthesis (Research Release)")
221
+ parser.add_argument("text", type=str, help="Text to synthesize")
222
+ parser.add_argument("-o", "--output", type=str, default="output.wav", help="Output WAV file")
223
+ parser.add_argument("-m", "--model", type=str, default="BlandAI/BeigeTTS", help="Model path")
224
+ parser.add_argument("-t", "--temperature", type=float, default=0.1, help="Sampling temperature")
225
+ parser.add_argument("-p", "--top-p", type=float, default=0.97, help="Top-p sampling")
226
+ parser.add_argument("--max-tokens", type=int, default=500, help="Maximum tokens to generate")
227
+ parser.add_argument("--voice", type=str, help="Voice conditioning prompt")
228
+ parser.add_argument("--device", type=str, default="auto", help="Device (auto/cuda/cpu)")
229
+
230
+ args = parser.parse_args()
231
+
232
+ # Initialize TTS
233
+ tts = BeigeTTS(model_path=args.model, device=args.device)
234
+
235
+ # Synthesize
236
+ try:
237
+ audio, sr = tts.synthesize(
238
+ text=args.text,
239
+ temperature=args.temperature,
240
+ top_p=args.top_p,
241
+ max_tokens=args.max_tokens,
242
+ voice_prompt=args.voice
243
+ )
244
+
245
+ # Save audio
246
+ sf.write(args.output, audio, sr)
247
+ duration = len(audio) / sr
248
+ print(f"βœ… Saved {duration:.1f}s of audio to {args.output}")
249
+ print("Note: This is a research release. Production Khaki TTS supports 57 languages and unlimited duration.")
250
+
251
+ except Exception as e:
252
+ print(f"❌ Synthesis failed: {e}")
253
+ return 1
254
+
255
+ return 0
256
+
257
+ if __name__ == "__main__":
258
+ exit(main())
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cf4e31125d94734cf8805be64bbb4d655dcab6b59072e1f3f39658a69abc88df
3
+ size 4992407664
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:124a6e1d54ca791e234a0a20df24d6288bc1b32b005f5de0467dec43075e4a9f
3
+ size 3943138080
model.safetensors.index.json ADDED
@@ -0,0 +1,890 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 8935426784
4
+ },
5
+ "weight_map": {
6
+ "language_model.model.embed_tokens.weight": "model-00001-of-00002.safetensors",
7
+ "language_model.model.layers.0.input_layernorm.weight": "model-00001-of-00002.safetensors",
8
+ "language_model.model.layers.0.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
9
+ "language_model.model.layers.0.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
10
+ "language_model.model.layers.0.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
11
+ "language_model.model.layers.0.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
12
+ "language_model.model.layers.0.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
13
+ "language_model.model.layers.0.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
14
+ "language_model.model.layers.0.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
15
+ "language_model.model.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
16
+ "language_model.model.layers.0.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
17
+ "language_model.model.layers.0.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
18
+ "language_model.model.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
19
+ "language_model.model.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
20
+ "language_model.model.layers.1.input_layernorm.weight": "model-00001-of-00002.safetensors",
21
+ "language_model.model.layers.1.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
22
+ "language_model.model.layers.1.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
23
+ "language_model.model.layers.1.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
24
+ "language_model.model.layers.1.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
25
+ "language_model.model.layers.1.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
26
+ "language_model.model.layers.1.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
27
+ "language_model.model.layers.1.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
28
+ "language_model.model.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
29
+ "language_model.model.layers.1.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
30
+ "language_model.model.layers.1.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
31
+ "language_model.model.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
32
+ "language_model.model.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
33
+ "language_model.model.layers.10.input_layernorm.weight": "model-00001-of-00002.safetensors",
34
+ "language_model.model.layers.10.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
35
+ "language_model.model.layers.10.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
36
+ "language_model.model.layers.10.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
37
+ "language_model.model.layers.10.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
38
+ "language_model.model.layers.10.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
39
+ "language_model.model.layers.10.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
40
+ "language_model.model.layers.10.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
41
+ "language_model.model.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
42
+ "language_model.model.layers.10.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
43
+ "language_model.model.layers.10.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
44
+ "language_model.model.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
45
+ "language_model.model.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
46
+ "language_model.model.layers.11.input_layernorm.weight": "model-00001-of-00002.safetensors",
47
+ "language_model.model.layers.11.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
48
+ "language_model.model.layers.11.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
49
+ "language_model.model.layers.11.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
50
+ "language_model.model.layers.11.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
51
+ "language_model.model.layers.11.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
52
+ "language_model.model.layers.11.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
53
+ "language_model.model.layers.11.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
54
+ "language_model.model.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
55
+ "language_model.model.layers.11.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
56
+ "language_model.model.layers.11.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
57
+ "language_model.model.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
58
+ "language_model.model.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
59
+ "language_model.model.layers.12.input_layernorm.weight": "model-00001-of-00002.safetensors",
60
+ "language_model.model.layers.12.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
61
+ "language_model.model.layers.12.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
62
+ "language_model.model.layers.12.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
63
+ "language_model.model.layers.12.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
64
+ "language_model.model.layers.12.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
65
+ "language_model.model.layers.12.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
66
+ "language_model.model.layers.12.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
67
+ "language_model.model.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
68
+ "language_model.model.layers.12.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
69
+ "language_model.model.layers.12.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
70
+ "language_model.model.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
71
+ "language_model.model.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
72
+ "language_model.model.layers.13.input_layernorm.weight": "model-00002-of-00002.safetensors",
73
+ "language_model.model.layers.13.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
74
+ "language_model.model.layers.13.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
75
+ "language_model.model.layers.13.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
76
+ "language_model.model.layers.13.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
77
+ "language_model.model.layers.13.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
78
+ "language_model.model.layers.13.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
79
+ "language_model.model.layers.13.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
80
+ "language_model.model.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
81
+ "language_model.model.layers.13.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
82
+ "language_model.model.layers.13.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
83
+ "language_model.model.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
84
+ "language_model.model.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
85
+ "language_model.model.layers.14.input_layernorm.weight": "model-00002-of-00002.safetensors",
86
+ "language_model.model.layers.14.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
87
+ "language_model.model.layers.14.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
88
+ "language_model.model.layers.14.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
89
+ "language_model.model.layers.14.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
90
+ "language_model.model.layers.14.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
91
+ "language_model.model.layers.14.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
92
+ "language_model.model.layers.14.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
93
+ "language_model.model.layers.14.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
94
+ "language_model.model.layers.14.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
95
+ "language_model.model.layers.14.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
96
+ "language_model.model.layers.14.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
97
+ "language_model.model.layers.14.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
98
+ "language_model.model.layers.15.input_layernorm.weight": "model-00002-of-00002.safetensors",
99
+ "language_model.model.layers.15.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
100
+ "language_model.model.layers.15.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
101
+ "language_model.model.layers.15.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
102
+ "language_model.model.layers.15.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
103
+ "language_model.model.layers.15.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
104
+ "language_model.model.layers.15.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
105
+ "language_model.model.layers.15.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
106
+ "language_model.model.layers.15.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
107
+ "language_model.model.layers.15.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
108
+ "language_model.model.layers.15.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
109
+ "language_model.model.layers.15.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
110
+ "language_model.model.layers.15.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
111
+ "language_model.model.layers.16.input_layernorm.weight": "model-00002-of-00002.safetensors",
112
+ "language_model.model.layers.16.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
113
+ "language_model.model.layers.16.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
114
+ "language_model.model.layers.16.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
115
+ "language_model.model.layers.16.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
116
+ "language_model.model.layers.16.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
117
+ "language_model.model.layers.16.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
118
+ "language_model.model.layers.16.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
119
+ "language_model.model.layers.16.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
120
+ "language_model.model.layers.16.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
121
+ "language_model.model.layers.16.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
122
+ "language_model.model.layers.16.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
123
+ "language_model.model.layers.16.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
124
+ "language_model.model.layers.17.input_layernorm.weight": "model-00002-of-00002.safetensors",
125
+ "language_model.model.layers.17.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
126
+ "language_model.model.layers.17.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
127
+ "language_model.model.layers.17.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
128
+ "language_model.model.layers.17.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
129
+ "language_model.model.layers.17.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
130
+ "language_model.model.layers.17.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
131
+ "language_model.model.layers.17.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
132
+ "language_model.model.layers.17.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
133
+ "language_model.model.layers.17.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
134
+ "language_model.model.layers.17.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
135
+ "language_model.model.layers.17.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
136
+ "language_model.model.layers.17.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
137
+ "language_model.model.layers.18.input_layernorm.weight": "model-00002-of-00002.safetensors",
138
+ "language_model.model.layers.18.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
139
+ "language_model.model.layers.18.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
140
+ "language_model.model.layers.18.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
141
+ "language_model.model.layers.18.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
142
+ "language_model.model.layers.18.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
143
+ "language_model.model.layers.18.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
144
+ "language_model.model.layers.18.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
145
+ "language_model.model.layers.18.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
146
+ "language_model.model.layers.18.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
147
+ "language_model.model.layers.18.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
148
+ "language_model.model.layers.18.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
149
+ "language_model.model.layers.18.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
150
+ "language_model.model.layers.19.input_layernorm.weight": "model-00002-of-00002.safetensors",
151
+ "language_model.model.layers.19.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
152
+ "language_model.model.layers.19.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
153
+ "language_model.model.layers.19.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
154
+ "language_model.model.layers.19.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
155
+ "language_model.model.layers.19.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
156
+ "language_model.model.layers.19.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
157
+ "language_model.model.layers.19.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
158
+ "language_model.model.layers.19.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
159
+ "language_model.model.layers.19.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
160
+ "language_model.model.layers.19.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
161
+ "language_model.model.layers.19.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
162
+ "language_model.model.layers.19.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
163
+ "language_model.model.layers.2.input_layernorm.weight": "model-00001-of-00002.safetensors",
164
+ "language_model.model.layers.2.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
165
+ "language_model.model.layers.2.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
166
+ "language_model.model.layers.2.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
167
+ "language_model.model.layers.2.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
168
+ "language_model.model.layers.2.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
169
+ "language_model.model.layers.2.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
170
+ "language_model.model.layers.2.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
171
+ "language_model.model.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
172
+ "language_model.model.layers.2.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
173
+ "language_model.model.layers.2.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
174
+ "language_model.model.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
175
+ "language_model.model.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
176
+ "language_model.model.layers.20.input_layernorm.weight": "model-00002-of-00002.safetensors",
177
+ "language_model.model.layers.20.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
178
+ "language_model.model.layers.20.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
179
+ "language_model.model.layers.20.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
180
+ "language_model.model.layers.20.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
181
+ "language_model.model.layers.20.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
182
+ "language_model.model.layers.20.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
183
+ "language_model.model.layers.20.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
184
+ "language_model.model.layers.20.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
185
+ "language_model.model.layers.20.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
186
+ "language_model.model.layers.20.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
187
+ "language_model.model.layers.20.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
188
+ "language_model.model.layers.20.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
189
+ "language_model.model.layers.21.input_layernorm.weight": "model-00002-of-00002.safetensors",
190
+ "language_model.model.layers.21.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
191
+ "language_model.model.layers.21.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
192
+ "language_model.model.layers.21.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
193
+ "language_model.model.layers.21.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
194
+ "language_model.model.layers.21.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
195
+ "language_model.model.layers.21.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
196
+ "language_model.model.layers.21.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
197
+ "language_model.model.layers.21.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
198
+ "language_model.model.layers.21.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
199
+ "language_model.model.layers.21.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
200
+ "language_model.model.layers.21.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
201
+ "language_model.model.layers.21.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
202
+ "language_model.model.layers.22.input_layernorm.weight": "model-00002-of-00002.safetensors",
203
+ "language_model.model.layers.22.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
204
+ "language_model.model.layers.22.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
205
+ "language_model.model.layers.22.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
206
+ "language_model.model.layers.22.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
207
+ "language_model.model.layers.22.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
208
+ "language_model.model.layers.22.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
209
+ "language_model.model.layers.22.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
210
+ "language_model.model.layers.22.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
211
+ "language_model.model.layers.22.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
212
+ "language_model.model.layers.22.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
213
+ "language_model.model.layers.22.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
214
+ "language_model.model.layers.22.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
215
+ "language_model.model.layers.23.input_layernorm.weight": "model-00002-of-00002.safetensors",
216
+ "language_model.model.layers.23.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
217
+ "language_model.model.layers.23.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
218
+ "language_model.model.layers.23.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
219
+ "language_model.model.layers.23.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
220
+ "language_model.model.layers.23.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
221
+ "language_model.model.layers.23.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
222
+ "language_model.model.layers.23.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
223
+ "language_model.model.layers.23.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
224
+ "language_model.model.layers.23.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
225
+ "language_model.model.layers.23.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
226
+ "language_model.model.layers.23.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
227
+ "language_model.model.layers.23.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
228
+ "language_model.model.layers.24.input_layernorm.weight": "model-00002-of-00002.safetensors",
229
+ "language_model.model.layers.24.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
230
+ "language_model.model.layers.24.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
231
+ "language_model.model.layers.24.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
232
+ "language_model.model.layers.24.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
233
+ "language_model.model.layers.24.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
234
+ "language_model.model.layers.24.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
235
+ "language_model.model.layers.24.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
236
+ "language_model.model.layers.24.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
237
+ "language_model.model.layers.24.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
238
+ "language_model.model.layers.24.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
239
+ "language_model.model.layers.24.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
240
+ "language_model.model.layers.24.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
241
+ "language_model.model.layers.25.input_layernorm.weight": "model-00002-of-00002.safetensors",
242
+ "language_model.model.layers.25.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
243
+ "language_model.model.layers.25.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
244
+ "language_model.model.layers.25.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
245
+ "language_model.model.layers.25.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
246
+ "language_model.model.layers.25.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
247
+ "language_model.model.layers.25.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
248
+ "language_model.model.layers.25.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
249
+ "language_model.model.layers.25.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
250
+ "language_model.model.layers.25.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
251
+ "language_model.model.layers.25.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
252
+ "language_model.model.layers.25.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
253
+ "language_model.model.layers.25.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
254
+ "language_model.model.layers.26.input_layernorm.weight": "model-00002-of-00002.safetensors",
255
+ "language_model.model.layers.26.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
256
+ "language_model.model.layers.26.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
257
+ "language_model.model.layers.26.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
258
+ "language_model.model.layers.26.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
259
+ "language_model.model.layers.26.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
260
+ "language_model.model.layers.26.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
261
+ "language_model.model.layers.26.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
262
+ "language_model.model.layers.26.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
263
+ "language_model.model.layers.26.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
264
+ "language_model.model.layers.26.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
265
+ "language_model.model.layers.26.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
266
+ "language_model.model.layers.26.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
267
+ "language_model.model.layers.27.input_layernorm.weight": "model-00002-of-00002.safetensors",
268
+ "language_model.model.layers.27.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
269
+ "language_model.model.layers.27.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
270
+ "language_model.model.layers.27.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
271
+ "language_model.model.layers.27.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
272
+ "language_model.model.layers.27.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
273
+ "language_model.model.layers.27.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
274
+ "language_model.model.layers.27.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
275
+ "language_model.model.layers.27.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
276
+ "language_model.model.layers.27.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
277
+ "language_model.model.layers.27.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
278
+ "language_model.model.layers.27.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
279
+ "language_model.model.layers.27.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
280
+ "language_model.model.layers.28.input_layernorm.weight": "model-00002-of-00002.safetensors",
281
+ "language_model.model.layers.28.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
282
+ "language_model.model.layers.28.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
283
+ "language_model.model.layers.28.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
284
+ "language_model.model.layers.28.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
285
+ "language_model.model.layers.28.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
286
+ "language_model.model.layers.28.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
287
+ "language_model.model.layers.28.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
288
+ "language_model.model.layers.28.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
289
+ "language_model.model.layers.28.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
290
+ "language_model.model.layers.28.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
291
+ "language_model.model.layers.28.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
292
+ "language_model.model.layers.28.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
293
+ "language_model.model.layers.29.input_layernorm.weight": "model-00002-of-00002.safetensors",
294
+ "language_model.model.layers.29.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
295
+ "language_model.model.layers.29.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
296
+ "language_model.model.layers.29.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
297
+ "language_model.model.layers.29.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
298
+ "language_model.model.layers.29.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
299
+ "language_model.model.layers.29.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
300
+ "language_model.model.layers.29.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
301
+ "language_model.model.layers.29.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
302
+ "language_model.model.layers.29.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
303
+ "language_model.model.layers.29.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
304
+ "language_model.model.layers.29.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
305
+ "language_model.model.layers.29.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
306
+ "language_model.model.layers.3.input_layernorm.weight": "model-00001-of-00002.safetensors",
307
+ "language_model.model.layers.3.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
308
+ "language_model.model.layers.3.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
309
+ "language_model.model.layers.3.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
310
+ "language_model.model.layers.3.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
311
+ "language_model.model.layers.3.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
312
+ "language_model.model.layers.3.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
313
+ "language_model.model.layers.3.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
314
+ "language_model.model.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
315
+ "language_model.model.layers.3.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
316
+ "language_model.model.layers.3.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
317
+ "language_model.model.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
318
+ "language_model.model.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
319
+ "language_model.model.layers.30.input_layernorm.weight": "model-00002-of-00002.safetensors",
320
+ "language_model.model.layers.30.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
321
+ "language_model.model.layers.30.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
322
+ "language_model.model.layers.30.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
323
+ "language_model.model.layers.30.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
324
+ "language_model.model.layers.30.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
325
+ "language_model.model.layers.30.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
326
+ "language_model.model.layers.30.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
327
+ "language_model.model.layers.30.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
328
+ "language_model.model.layers.30.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
329
+ "language_model.model.layers.30.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
330
+ "language_model.model.layers.30.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
331
+ "language_model.model.layers.30.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
332
+ "language_model.model.layers.31.input_layernorm.weight": "model-00002-of-00002.safetensors",
333
+ "language_model.model.layers.31.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
334
+ "language_model.model.layers.31.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
335
+ "language_model.model.layers.31.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
336
+ "language_model.model.layers.31.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
337
+ "language_model.model.layers.31.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
338
+ "language_model.model.layers.31.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
339
+ "language_model.model.layers.31.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
340
+ "language_model.model.layers.31.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
341
+ "language_model.model.layers.31.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
342
+ "language_model.model.layers.31.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
343
+ "language_model.model.layers.31.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
344
+ "language_model.model.layers.31.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
345
+ "language_model.model.layers.32.input_layernorm.weight": "model-00002-of-00002.safetensors",
346
+ "language_model.model.layers.32.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
347
+ "language_model.model.layers.32.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
348
+ "language_model.model.layers.32.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
349
+ "language_model.model.layers.32.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
350
+ "language_model.model.layers.32.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
351
+ "language_model.model.layers.32.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
352
+ "language_model.model.layers.32.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
353
+ "language_model.model.layers.32.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
354
+ "language_model.model.layers.32.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
355
+ "language_model.model.layers.32.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
356
+ "language_model.model.layers.32.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
357
+ "language_model.model.layers.32.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
358
+ "language_model.model.layers.33.input_layernorm.weight": "model-00002-of-00002.safetensors",
359
+ "language_model.model.layers.33.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
360
+ "language_model.model.layers.33.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
361
+ "language_model.model.layers.33.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
362
+ "language_model.model.layers.33.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
363
+ "language_model.model.layers.33.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
364
+ "language_model.model.layers.33.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
365
+ "language_model.model.layers.33.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
366
+ "language_model.model.layers.33.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
367
+ "language_model.model.layers.33.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
368
+ "language_model.model.layers.33.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
369
+ "language_model.model.layers.33.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
370
+ "language_model.model.layers.33.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
371
+ "language_model.model.layers.4.input_layernorm.weight": "model-00001-of-00002.safetensors",
372
+ "language_model.model.layers.4.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
373
+ "language_model.model.layers.4.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
374
+ "language_model.model.layers.4.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
375
+ "language_model.model.layers.4.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
376
+ "language_model.model.layers.4.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
377
+ "language_model.model.layers.4.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
378
+ "language_model.model.layers.4.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
379
+ "language_model.model.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
380
+ "language_model.model.layers.4.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
381
+ "language_model.model.layers.4.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
382
+ "language_model.model.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
383
+ "language_model.model.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
384
+ "language_model.model.layers.5.input_layernorm.weight": "model-00001-of-00002.safetensors",
385
+ "language_model.model.layers.5.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
386
+ "language_model.model.layers.5.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
387
+ "language_model.model.layers.5.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
388
+ "language_model.model.layers.5.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
389
+ "language_model.model.layers.5.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
390
+ "language_model.model.layers.5.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
391
+ "language_model.model.layers.5.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
392
+ "language_model.model.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
393
+ "language_model.model.layers.5.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
394
+ "language_model.model.layers.5.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
395
+ "language_model.model.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
396
+ "language_model.model.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
397
+ "language_model.model.layers.6.input_layernorm.weight": "model-00001-of-00002.safetensors",
398
+ "language_model.model.layers.6.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
399
+ "language_model.model.layers.6.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
400
+ "language_model.model.layers.6.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
401
+ "language_model.model.layers.6.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
402
+ "language_model.model.layers.6.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
403
+ "language_model.model.layers.6.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
404
+ "language_model.model.layers.6.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
405
+ "language_model.model.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
406
+ "language_model.model.layers.6.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
407
+ "language_model.model.layers.6.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
408
+ "language_model.model.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
409
+ "language_model.model.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
410
+ "language_model.model.layers.7.input_layernorm.weight": "model-00001-of-00002.safetensors",
411
+ "language_model.model.layers.7.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
412
+ "language_model.model.layers.7.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
413
+ "language_model.model.layers.7.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
414
+ "language_model.model.layers.7.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
415
+ "language_model.model.layers.7.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
416
+ "language_model.model.layers.7.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
417
+ "language_model.model.layers.7.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
418
+ "language_model.model.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
419
+ "language_model.model.layers.7.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
420
+ "language_model.model.layers.7.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
421
+ "language_model.model.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
422
+ "language_model.model.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
423
+ "language_model.model.layers.8.input_layernorm.weight": "model-00001-of-00002.safetensors",
424
+ "language_model.model.layers.8.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
425
+ "language_model.model.layers.8.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
426
+ "language_model.model.layers.8.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
427
+ "language_model.model.layers.8.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
428
+ "language_model.model.layers.8.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
429
+ "language_model.model.layers.8.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
430
+ "language_model.model.layers.8.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
431
+ "language_model.model.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
432
+ "language_model.model.layers.8.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
433
+ "language_model.model.layers.8.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
434
+ "language_model.model.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
435
+ "language_model.model.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
436
+ "language_model.model.layers.9.input_layernorm.weight": "model-00001-of-00002.safetensors",
437
+ "language_model.model.layers.9.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
438
+ "language_model.model.layers.9.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
439
+ "language_model.model.layers.9.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
440
+ "language_model.model.layers.9.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
441
+ "language_model.model.layers.9.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
442
+ "language_model.model.layers.9.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
443
+ "language_model.model.layers.9.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
444
+ "language_model.model.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
445
+ "language_model.model.layers.9.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
446
+ "language_model.model.layers.9.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
447
+ "language_model.model.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
448
+ "language_model.model.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
449
+ "language_model.model.norm.weight": "model-00002-of-00002.safetensors",
450
+ "multi_modal_projector.mm_input_projection_weight": "model-00001-of-00002.safetensors",
451
+ "multi_modal_projector.mm_soft_emb_norm.weight": "model-00001-of-00002.safetensors",
452
+ "vision_tower.vision_model.embeddings.patch_embedding.bias": "model-00001-of-00002.safetensors",
453
+ "vision_tower.vision_model.embeddings.patch_embedding.weight": "model-00001-of-00002.safetensors",
454
+ "vision_tower.vision_model.embeddings.position_embedding.weight": "model-00001-of-00002.safetensors",
455
+ "vision_tower.vision_model.encoder.layers.0.layer_norm1.bias": "model-00001-of-00002.safetensors",
456
+ "vision_tower.vision_model.encoder.layers.0.layer_norm1.weight": "model-00001-of-00002.safetensors",
457
+ "vision_tower.vision_model.encoder.layers.0.layer_norm2.bias": "model-00001-of-00002.safetensors",
458
+ "vision_tower.vision_model.encoder.layers.0.layer_norm2.weight": "model-00001-of-00002.safetensors",
459
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc1.bias": "model-00001-of-00002.safetensors",
460
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc1.weight": "model-00001-of-00002.safetensors",
461
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc2.bias": "model-00001-of-00002.safetensors",
462
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc2.weight": "model-00001-of-00002.safetensors",
463
+ "vision_tower.vision_model.encoder.layers.0.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
464
+ "vision_tower.vision_model.encoder.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
465
+ "vision_tower.vision_model.encoder.layers.0.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
466
+ "vision_tower.vision_model.encoder.layers.0.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
467
+ "vision_tower.vision_model.encoder.layers.0.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
468
+ "vision_tower.vision_model.encoder.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
469
+ "vision_tower.vision_model.encoder.layers.0.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
470
+ "vision_tower.vision_model.encoder.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
471
+ "vision_tower.vision_model.encoder.layers.1.layer_norm1.bias": "model-00001-of-00002.safetensors",
472
+ "vision_tower.vision_model.encoder.layers.1.layer_norm1.weight": "model-00001-of-00002.safetensors",
473
+ "vision_tower.vision_model.encoder.layers.1.layer_norm2.bias": "model-00001-of-00002.safetensors",
474
+ "vision_tower.vision_model.encoder.layers.1.layer_norm2.weight": "model-00001-of-00002.safetensors",
475
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc1.bias": "model-00001-of-00002.safetensors",
476
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc1.weight": "model-00001-of-00002.safetensors",
477
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc2.bias": "model-00001-of-00002.safetensors",
478
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc2.weight": "model-00001-of-00002.safetensors",
479
+ "vision_tower.vision_model.encoder.layers.1.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
480
+ "vision_tower.vision_model.encoder.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
481
+ "vision_tower.vision_model.encoder.layers.1.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
482
+ "vision_tower.vision_model.encoder.layers.1.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
483
+ "vision_tower.vision_model.encoder.layers.1.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
484
+ "vision_tower.vision_model.encoder.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
485
+ "vision_tower.vision_model.encoder.layers.1.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
486
+ "vision_tower.vision_model.encoder.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
487
+ "vision_tower.vision_model.encoder.layers.10.layer_norm1.bias": "model-00001-of-00002.safetensors",
488
+ "vision_tower.vision_model.encoder.layers.10.layer_norm1.weight": "model-00001-of-00002.safetensors",
489
+ "vision_tower.vision_model.encoder.layers.10.layer_norm2.bias": "model-00001-of-00002.safetensors",
490
+ "vision_tower.vision_model.encoder.layers.10.layer_norm2.weight": "model-00001-of-00002.safetensors",
491
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc1.bias": "model-00001-of-00002.safetensors",
492
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc1.weight": "model-00001-of-00002.safetensors",
493
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc2.bias": "model-00001-of-00002.safetensors",
494
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc2.weight": "model-00001-of-00002.safetensors",
495
+ "vision_tower.vision_model.encoder.layers.10.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
496
+ "vision_tower.vision_model.encoder.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
497
+ "vision_tower.vision_model.encoder.layers.10.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
498
+ "vision_tower.vision_model.encoder.layers.10.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
499
+ "vision_tower.vision_model.encoder.layers.10.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
500
+ "vision_tower.vision_model.encoder.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
501
+ "vision_tower.vision_model.encoder.layers.10.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
502
+ "vision_tower.vision_model.encoder.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
503
+ "vision_tower.vision_model.encoder.layers.11.layer_norm1.bias": "model-00001-of-00002.safetensors",
504
+ "vision_tower.vision_model.encoder.layers.11.layer_norm1.weight": "model-00001-of-00002.safetensors",
505
+ "vision_tower.vision_model.encoder.layers.11.layer_norm2.bias": "model-00001-of-00002.safetensors",
506
+ "vision_tower.vision_model.encoder.layers.11.layer_norm2.weight": "model-00001-of-00002.safetensors",
507
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc1.bias": "model-00001-of-00002.safetensors",
508
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc1.weight": "model-00001-of-00002.safetensors",
509
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc2.bias": "model-00001-of-00002.safetensors",
510
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc2.weight": "model-00001-of-00002.safetensors",
511
+ "vision_tower.vision_model.encoder.layers.11.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
512
+ "vision_tower.vision_model.encoder.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
513
+ "vision_tower.vision_model.encoder.layers.11.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
514
+ "vision_tower.vision_model.encoder.layers.11.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
515
+ "vision_tower.vision_model.encoder.layers.11.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
516
+ "vision_tower.vision_model.encoder.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
517
+ "vision_tower.vision_model.encoder.layers.11.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
518
+ "vision_tower.vision_model.encoder.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
519
+ "vision_tower.vision_model.encoder.layers.12.layer_norm1.bias": "model-00001-of-00002.safetensors",
520
+ "vision_tower.vision_model.encoder.layers.12.layer_norm1.weight": "model-00001-of-00002.safetensors",
521
+ "vision_tower.vision_model.encoder.layers.12.layer_norm2.bias": "model-00001-of-00002.safetensors",
522
+ "vision_tower.vision_model.encoder.layers.12.layer_norm2.weight": "model-00001-of-00002.safetensors",
523
+ "vision_tower.vision_model.encoder.layers.12.mlp.fc1.bias": "model-00001-of-00002.safetensors",
524
+ "vision_tower.vision_model.encoder.layers.12.mlp.fc1.weight": "model-00001-of-00002.safetensors",
525
+ "vision_tower.vision_model.encoder.layers.12.mlp.fc2.bias": "model-00001-of-00002.safetensors",
526
+ "vision_tower.vision_model.encoder.layers.12.mlp.fc2.weight": "model-00001-of-00002.safetensors",
527
+ "vision_tower.vision_model.encoder.layers.12.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
528
+ "vision_tower.vision_model.encoder.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
529
+ "vision_tower.vision_model.encoder.layers.12.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
530
+ "vision_tower.vision_model.encoder.layers.12.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
531
+ "vision_tower.vision_model.encoder.layers.12.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
532
+ "vision_tower.vision_model.encoder.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
533
+ "vision_tower.vision_model.encoder.layers.12.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
534
+ "vision_tower.vision_model.encoder.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
535
+ "vision_tower.vision_model.encoder.layers.13.layer_norm1.bias": "model-00001-of-00002.safetensors",
536
+ "vision_tower.vision_model.encoder.layers.13.layer_norm1.weight": "model-00001-of-00002.safetensors",
537
+ "vision_tower.vision_model.encoder.layers.13.layer_norm2.bias": "model-00001-of-00002.safetensors",
538
+ "vision_tower.vision_model.encoder.layers.13.layer_norm2.weight": "model-00001-of-00002.safetensors",
539
+ "vision_tower.vision_model.encoder.layers.13.mlp.fc1.bias": "model-00001-of-00002.safetensors",
540
+ "vision_tower.vision_model.encoder.layers.13.mlp.fc1.weight": "model-00001-of-00002.safetensors",
541
+ "vision_tower.vision_model.encoder.layers.13.mlp.fc2.bias": "model-00001-of-00002.safetensors",
542
+ "vision_tower.vision_model.encoder.layers.13.mlp.fc2.weight": "model-00001-of-00002.safetensors",
543
+ "vision_tower.vision_model.encoder.layers.13.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
544
+ "vision_tower.vision_model.encoder.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
545
+ "vision_tower.vision_model.encoder.layers.13.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
546
+ "vision_tower.vision_model.encoder.layers.13.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
547
+ "vision_tower.vision_model.encoder.layers.13.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
548
+ "vision_tower.vision_model.encoder.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
549
+ "vision_tower.vision_model.encoder.layers.13.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
550
+ "vision_tower.vision_model.encoder.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
551
+ "vision_tower.vision_model.encoder.layers.14.layer_norm1.bias": "model-00001-of-00002.safetensors",
552
+ "vision_tower.vision_model.encoder.layers.14.layer_norm1.weight": "model-00001-of-00002.safetensors",
553
+ "vision_tower.vision_model.encoder.layers.14.layer_norm2.bias": "model-00001-of-00002.safetensors",
554
+ "vision_tower.vision_model.encoder.layers.14.layer_norm2.weight": "model-00001-of-00002.safetensors",
555
+ "vision_tower.vision_model.encoder.layers.14.mlp.fc1.bias": "model-00001-of-00002.safetensors",
556
+ "vision_tower.vision_model.encoder.layers.14.mlp.fc1.weight": "model-00001-of-00002.safetensors",
557
+ "vision_tower.vision_model.encoder.layers.14.mlp.fc2.bias": "model-00001-of-00002.safetensors",
558
+ "vision_tower.vision_model.encoder.layers.14.mlp.fc2.weight": "model-00001-of-00002.safetensors",
559
+ "vision_tower.vision_model.encoder.layers.14.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
560
+ "vision_tower.vision_model.encoder.layers.14.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
561
+ "vision_tower.vision_model.encoder.layers.14.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
562
+ "vision_tower.vision_model.encoder.layers.14.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
563
+ "vision_tower.vision_model.encoder.layers.14.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
564
+ "vision_tower.vision_model.encoder.layers.14.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
565
+ "vision_tower.vision_model.encoder.layers.14.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
566
+ "vision_tower.vision_model.encoder.layers.14.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
567
+ "vision_tower.vision_model.encoder.layers.15.layer_norm1.bias": "model-00001-of-00002.safetensors",
568
+ "vision_tower.vision_model.encoder.layers.15.layer_norm1.weight": "model-00001-of-00002.safetensors",
569
+ "vision_tower.vision_model.encoder.layers.15.layer_norm2.bias": "model-00001-of-00002.safetensors",
570
+ "vision_tower.vision_model.encoder.layers.15.layer_norm2.weight": "model-00001-of-00002.safetensors",
571
+ "vision_tower.vision_model.encoder.layers.15.mlp.fc1.bias": "model-00001-of-00002.safetensors",
572
+ "vision_tower.vision_model.encoder.layers.15.mlp.fc1.weight": "model-00001-of-00002.safetensors",
573
+ "vision_tower.vision_model.encoder.layers.15.mlp.fc2.bias": "model-00001-of-00002.safetensors",
574
+ "vision_tower.vision_model.encoder.layers.15.mlp.fc2.weight": "model-00001-of-00002.safetensors",
575
+ "vision_tower.vision_model.encoder.layers.15.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
576
+ "vision_tower.vision_model.encoder.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
577
+ "vision_tower.vision_model.encoder.layers.15.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
578
+ "vision_tower.vision_model.encoder.layers.15.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
579
+ "vision_tower.vision_model.encoder.layers.15.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
580
+ "vision_tower.vision_model.encoder.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
581
+ "vision_tower.vision_model.encoder.layers.15.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
582
+ "vision_tower.vision_model.encoder.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
583
+ "vision_tower.vision_model.encoder.layers.16.layer_norm1.bias": "model-00001-of-00002.safetensors",
584
+ "vision_tower.vision_model.encoder.layers.16.layer_norm1.weight": "model-00001-of-00002.safetensors",
585
+ "vision_tower.vision_model.encoder.layers.16.layer_norm2.bias": "model-00001-of-00002.safetensors",
586
+ "vision_tower.vision_model.encoder.layers.16.layer_norm2.weight": "model-00001-of-00002.safetensors",
587
+ "vision_tower.vision_model.encoder.layers.16.mlp.fc1.bias": "model-00001-of-00002.safetensors",
588
+ "vision_tower.vision_model.encoder.layers.16.mlp.fc1.weight": "model-00001-of-00002.safetensors",
589
+ "vision_tower.vision_model.encoder.layers.16.mlp.fc2.bias": "model-00001-of-00002.safetensors",
590
+ "vision_tower.vision_model.encoder.layers.16.mlp.fc2.weight": "model-00001-of-00002.safetensors",
591
+ "vision_tower.vision_model.encoder.layers.16.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
592
+ "vision_tower.vision_model.encoder.layers.16.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
593
+ "vision_tower.vision_model.encoder.layers.16.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
594
+ "vision_tower.vision_model.encoder.layers.16.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
595
+ "vision_tower.vision_model.encoder.layers.16.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
596
+ "vision_tower.vision_model.encoder.layers.16.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
597
+ "vision_tower.vision_model.encoder.layers.16.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
598
+ "vision_tower.vision_model.encoder.layers.16.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
599
+ "vision_tower.vision_model.encoder.layers.17.layer_norm1.bias": "model-00001-of-00002.safetensors",
600
+ "vision_tower.vision_model.encoder.layers.17.layer_norm1.weight": "model-00001-of-00002.safetensors",
601
+ "vision_tower.vision_model.encoder.layers.17.layer_norm2.bias": "model-00001-of-00002.safetensors",
602
+ "vision_tower.vision_model.encoder.layers.17.layer_norm2.weight": "model-00001-of-00002.safetensors",
603
+ "vision_tower.vision_model.encoder.layers.17.mlp.fc1.bias": "model-00001-of-00002.safetensors",
604
+ "vision_tower.vision_model.encoder.layers.17.mlp.fc1.weight": "model-00001-of-00002.safetensors",
605
+ "vision_tower.vision_model.encoder.layers.17.mlp.fc2.bias": "model-00001-of-00002.safetensors",
606
+ "vision_tower.vision_model.encoder.layers.17.mlp.fc2.weight": "model-00001-of-00002.safetensors",
607
+ "vision_tower.vision_model.encoder.layers.17.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
608
+ "vision_tower.vision_model.encoder.layers.17.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
609
+ "vision_tower.vision_model.encoder.layers.17.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
610
+ "vision_tower.vision_model.encoder.layers.17.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
611
+ "vision_tower.vision_model.encoder.layers.17.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
612
+ "vision_tower.vision_model.encoder.layers.17.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
613
+ "vision_tower.vision_model.encoder.layers.17.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
614
+ "vision_tower.vision_model.encoder.layers.17.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
615
+ "vision_tower.vision_model.encoder.layers.18.layer_norm1.bias": "model-00001-of-00002.safetensors",
616
+ "vision_tower.vision_model.encoder.layers.18.layer_norm1.weight": "model-00001-of-00002.safetensors",
617
+ "vision_tower.vision_model.encoder.layers.18.layer_norm2.bias": "model-00001-of-00002.safetensors",
618
+ "vision_tower.vision_model.encoder.layers.18.layer_norm2.weight": "model-00001-of-00002.safetensors",
619
+ "vision_tower.vision_model.encoder.layers.18.mlp.fc1.bias": "model-00001-of-00002.safetensors",
620
+ "vision_tower.vision_model.encoder.layers.18.mlp.fc1.weight": "model-00001-of-00002.safetensors",
621
+ "vision_tower.vision_model.encoder.layers.18.mlp.fc2.bias": "model-00001-of-00002.safetensors",
622
+ "vision_tower.vision_model.encoder.layers.18.mlp.fc2.weight": "model-00001-of-00002.safetensors",
623
+ "vision_tower.vision_model.encoder.layers.18.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
624
+ "vision_tower.vision_model.encoder.layers.18.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
625
+ "vision_tower.vision_model.encoder.layers.18.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
626
+ "vision_tower.vision_model.encoder.layers.18.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
627
+ "vision_tower.vision_model.encoder.layers.18.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
628
+ "vision_tower.vision_model.encoder.layers.18.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
629
+ "vision_tower.vision_model.encoder.layers.18.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
630
+ "vision_tower.vision_model.encoder.layers.18.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
631
+ "vision_tower.vision_model.encoder.layers.19.layer_norm1.bias": "model-00001-of-00002.safetensors",
632
+ "vision_tower.vision_model.encoder.layers.19.layer_norm1.weight": "model-00001-of-00002.safetensors",
633
+ "vision_tower.vision_model.encoder.layers.19.layer_norm2.bias": "model-00001-of-00002.safetensors",
634
+ "vision_tower.vision_model.encoder.layers.19.layer_norm2.weight": "model-00001-of-00002.safetensors",
635
+ "vision_tower.vision_model.encoder.layers.19.mlp.fc1.bias": "model-00001-of-00002.safetensors",
636
+ "vision_tower.vision_model.encoder.layers.19.mlp.fc1.weight": "model-00001-of-00002.safetensors",
637
+ "vision_tower.vision_model.encoder.layers.19.mlp.fc2.bias": "model-00001-of-00002.safetensors",
638
+ "vision_tower.vision_model.encoder.layers.19.mlp.fc2.weight": "model-00001-of-00002.safetensors",
639
+ "vision_tower.vision_model.encoder.layers.19.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
640
+ "vision_tower.vision_model.encoder.layers.19.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
641
+ "vision_tower.vision_model.encoder.layers.19.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
642
+ "vision_tower.vision_model.encoder.layers.19.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
643
+ "vision_tower.vision_model.encoder.layers.19.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
644
+ "vision_tower.vision_model.encoder.layers.19.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
645
+ "vision_tower.vision_model.encoder.layers.19.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
646
+ "vision_tower.vision_model.encoder.layers.19.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
647
+ "vision_tower.vision_model.encoder.layers.2.layer_norm1.bias": "model-00001-of-00002.safetensors",
648
+ "vision_tower.vision_model.encoder.layers.2.layer_norm1.weight": "model-00001-of-00002.safetensors",
649
+ "vision_tower.vision_model.encoder.layers.2.layer_norm2.bias": "model-00001-of-00002.safetensors",
650
+ "vision_tower.vision_model.encoder.layers.2.layer_norm2.weight": "model-00001-of-00002.safetensors",
651
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc1.bias": "model-00001-of-00002.safetensors",
652
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc1.weight": "model-00001-of-00002.safetensors",
653
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc2.bias": "model-00001-of-00002.safetensors",
654
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc2.weight": "model-00001-of-00002.safetensors",
655
+ "vision_tower.vision_model.encoder.layers.2.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
656
+ "vision_tower.vision_model.encoder.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
657
+ "vision_tower.vision_model.encoder.layers.2.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
658
+ "vision_tower.vision_model.encoder.layers.2.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
659
+ "vision_tower.vision_model.encoder.layers.2.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
660
+ "vision_tower.vision_model.encoder.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
661
+ "vision_tower.vision_model.encoder.layers.2.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
662
+ "vision_tower.vision_model.encoder.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
663
+ "vision_tower.vision_model.encoder.layers.20.layer_norm1.bias": "model-00001-of-00002.safetensors",
664
+ "vision_tower.vision_model.encoder.layers.20.layer_norm1.weight": "model-00001-of-00002.safetensors",
665
+ "vision_tower.vision_model.encoder.layers.20.layer_norm2.bias": "model-00001-of-00002.safetensors",
666
+ "vision_tower.vision_model.encoder.layers.20.layer_norm2.weight": "model-00001-of-00002.safetensors",
667
+ "vision_tower.vision_model.encoder.layers.20.mlp.fc1.bias": "model-00001-of-00002.safetensors",
668
+ "vision_tower.vision_model.encoder.layers.20.mlp.fc1.weight": "model-00001-of-00002.safetensors",
669
+ "vision_tower.vision_model.encoder.layers.20.mlp.fc2.bias": "model-00001-of-00002.safetensors",
670
+ "vision_tower.vision_model.encoder.layers.20.mlp.fc2.weight": "model-00001-of-00002.safetensors",
671
+ "vision_tower.vision_model.encoder.layers.20.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
672
+ "vision_tower.vision_model.encoder.layers.20.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
673
+ "vision_tower.vision_model.encoder.layers.20.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
674
+ "vision_tower.vision_model.encoder.layers.20.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
675
+ "vision_tower.vision_model.encoder.layers.20.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
676
+ "vision_tower.vision_model.encoder.layers.20.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
677
+ "vision_tower.vision_model.encoder.layers.20.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
678
+ "vision_tower.vision_model.encoder.layers.20.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
679
+ "vision_tower.vision_model.encoder.layers.21.layer_norm1.bias": "model-00001-of-00002.safetensors",
680
+ "vision_tower.vision_model.encoder.layers.21.layer_norm1.weight": "model-00001-of-00002.safetensors",
681
+ "vision_tower.vision_model.encoder.layers.21.layer_norm2.bias": "model-00001-of-00002.safetensors",
682
+ "vision_tower.vision_model.encoder.layers.21.layer_norm2.weight": "model-00001-of-00002.safetensors",
683
+ "vision_tower.vision_model.encoder.layers.21.mlp.fc1.bias": "model-00001-of-00002.safetensors",
684
+ "vision_tower.vision_model.encoder.layers.21.mlp.fc1.weight": "model-00001-of-00002.safetensors",
685
+ "vision_tower.vision_model.encoder.layers.21.mlp.fc2.bias": "model-00001-of-00002.safetensors",
686
+ "vision_tower.vision_model.encoder.layers.21.mlp.fc2.weight": "model-00001-of-00002.safetensors",
687
+ "vision_tower.vision_model.encoder.layers.21.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
688
+ "vision_tower.vision_model.encoder.layers.21.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
689
+ "vision_tower.vision_model.encoder.layers.21.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
690
+ "vision_tower.vision_model.encoder.layers.21.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
691
+ "vision_tower.vision_model.encoder.layers.21.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
692
+ "vision_tower.vision_model.encoder.layers.21.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
693
+ "vision_tower.vision_model.encoder.layers.21.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
694
+ "vision_tower.vision_model.encoder.layers.21.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
695
+ "vision_tower.vision_model.encoder.layers.22.layer_norm1.bias": "model-00001-of-00002.safetensors",
696
+ "vision_tower.vision_model.encoder.layers.22.layer_norm1.weight": "model-00001-of-00002.safetensors",
697
+ "vision_tower.vision_model.encoder.layers.22.layer_norm2.bias": "model-00001-of-00002.safetensors",
698
+ "vision_tower.vision_model.encoder.layers.22.layer_norm2.weight": "model-00001-of-00002.safetensors",
699
+ "vision_tower.vision_model.encoder.layers.22.mlp.fc1.bias": "model-00001-of-00002.safetensors",
700
+ "vision_tower.vision_model.encoder.layers.22.mlp.fc1.weight": "model-00001-of-00002.safetensors",
701
+ "vision_tower.vision_model.encoder.layers.22.mlp.fc2.bias": "model-00001-of-00002.safetensors",
702
+ "vision_tower.vision_model.encoder.layers.22.mlp.fc2.weight": "model-00001-of-00002.safetensors",
703
+ "vision_tower.vision_model.encoder.layers.22.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
704
+ "vision_tower.vision_model.encoder.layers.22.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
705
+ "vision_tower.vision_model.encoder.layers.22.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
706
+ "vision_tower.vision_model.encoder.layers.22.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
707
+ "vision_tower.vision_model.encoder.layers.22.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
708
+ "vision_tower.vision_model.encoder.layers.22.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
709
+ "vision_tower.vision_model.encoder.layers.22.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
710
+ "vision_tower.vision_model.encoder.layers.22.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
711
+ "vision_tower.vision_model.encoder.layers.23.layer_norm1.bias": "model-00001-of-00002.safetensors",
712
+ "vision_tower.vision_model.encoder.layers.23.layer_norm1.weight": "model-00001-of-00002.safetensors",
713
+ "vision_tower.vision_model.encoder.layers.23.layer_norm2.bias": "model-00001-of-00002.safetensors",
714
+ "vision_tower.vision_model.encoder.layers.23.layer_norm2.weight": "model-00001-of-00002.safetensors",
715
+ "vision_tower.vision_model.encoder.layers.23.mlp.fc1.bias": "model-00001-of-00002.safetensors",
716
+ "vision_tower.vision_model.encoder.layers.23.mlp.fc1.weight": "model-00001-of-00002.safetensors",
717
+ "vision_tower.vision_model.encoder.layers.23.mlp.fc2.bias": "model-00001-of-00002.safetensors",
718
+ "vision_tower.vision_model.encoder.layers.23.mlp.fc2.weight": "model-00001-of-00002.safetensors",
719
+ "vision_tower.vision_model.encoder.layers.23.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
720
+ "vision_tower.vision_model.encoder.layers.23.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
721
+ "vision_tower.vision_model.encoder.layers.23.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
722
+ "vision_tower.vision_model.encoder.layers.23.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
723
+ "vision_tower.vision_model.encoder.layers.23.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
724
+ "vision_tower.vision_model.encoder.layers.23.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
725
+ "vision_tower.vision_model.encoder.layers.23.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
726
+ "vision_tower.vision_model.encoder.layers.23.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
727
+ "vision_tower.vision_model.encoder.layers.24.layer_norm1.bias": "model-00001-of-00002.safetensors",
728
+ "vision_tower.vision_model.encoder.layers.24.layer_norm1.weight": "model-00001-of-00002.safetensors",
729
+ "vision_tower.vision_model.encoder.layers.24.layer_norm2.bias": "model-00001-of-00002.safetensors",
730
+ "vision_tower.vision_model.encoder.layers.24.layer_norm2.weight": "model-00001-of-00002.safetensors",
731
+ "vision_tower.vision_model.encoder.layers.24.mlp.fc1.bias": "model-00001-of-00002.safetensors",
732
+ "vision_tower.vision_model.encoder.layers.24.mlp.fc1.weight": "model-00001-of-00002.safetensors",
733
+ "vision_tower.vision_model.encoder.layers.24.mlp.fc2.bias": "model-00001-of-00002.safetensors",
734
+ "vision_tower.vision_model.encoder.layers.24.mlp.fc2.weight": "model-00001-of-00002.safetensors",
735
+ "vision_tower.vision_model.encoder.layers.24.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
736
+ "vision_tower.vision_model.encoder.layers.24.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
737
+ "vision_tower.vision_model.encoder.layers.24.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
738
+ "vision_tower.vision_model.encoder.layers.24.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
739
+ "vision_tower.vision_model.encoder.layers.24.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
740
+ "vision_tower.vision_model.encoder.layers.24.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
741
+ "vision_tower.vision_model.encoder.layers.24.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
742
+ "vision_tower.vision_model.encoder.layers.24.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
743
+ "vision_tower.vision_model.encoder.layers.25.layer_norm1.bias": "model-00001-of-00002.safetensors",
744
+ "vision_tower.vision_model.encoder.layers.25.layer_norm1.weight": "model-00001-of-00002.safetensors",
745
+ "vision_tower.vision_model.encoder.layers.25.layer_norm2.bias": "model-00001-of-00002.safetensors",
746
+ "vision_tower.vision_model.encoder.layers.25.layer_norm2.weight": "model-00001-of-00002.safetensors",
747
+ "vision_tower.vision_model.encoder.layers.25.mlp.fc1.bias": "model-00001-of-00002.safetensors",
748
+ "vision_tower.vision_model.encoder.layers.25.mlp.fc1.weight": "model-00001-of-00002.safetensors",
749
+ "vision_tower.vision_model.encoder.layers.25.mlp.fc2.bias": "model-00001-of-00002.safetensors",
750
+ "vision_tower.vision_model.encoder.layers.25.mlp.fc2.weight": "model-00001-of-00002.safetensors",
751
+ "vision_tower.vision_model.encoder.layers.25.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
752
+ "vision_tower.vision_model.encoder.layers.25.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
753
+ "vision_tower.vision_model.encoder.layers.25.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
754
+ "vision_tower.vision_model.encoder.layers.25.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
755
+ "vision_tower.vision_model.encoder.layers.25.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
756
+ "vision_tower.vision_model.encoder.layers.25.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
757
+ "vision_tower.vision_model.encoder.layers.25.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
758
+ "vision_tower.vision_model.encoder.layers.25.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
759
+ "vision_tower.vision_model.encoder.layers.26.layer_norm1.bias": "model-00001-of-00002.safetensors",
760
+ "vision_tower.vision_model.encoder.layers.26.layer_norm1.weight": "model-00001-of-00002.safetensors",
761
+ "vision_tower.vision_model.encoder.layers.26.layer_norm2.bias": "model-00001-of-00002.safetensors",
762
+ "vision_tower.vision_model.encoder.layers.26.layer_norm2.weight": "model-00001-of-00002.safetensors",
763
+ "vision_tower.vision_model.encoder.layers.26.mlp.fc1.bias": "model-00001-of-00002.safetensors",
764
+ "vision_tower.vision_model.encoder.layers.26.mlp.fc1.weight": "model-00001-of-00002.safetensors",
765
+ "vision_tower.vision_model.encoder.layers.26.mlp.fc2.bias": "model-00001-of-00002.safetensors",
766
+ "vision_tower.vision_model.encoder.layers.26.mlp.fc2.weight": "model-00001-of-00002.safetensors",
767
+ "vision_tower.vision_model.encoder.layers.26.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
768
+ "vision_tower.vision_model.encoder.layers.26.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
769
+ "vision_tower.vision_model.encoder.layers.26.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
770
+ "vision_tower.vision_model.encoder.layers.26.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
771
+ "vision_tower.vision_model.encoder.layers.26.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
772
+ "vision_tower.vision_model.encoder.layers.26.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
773
+ "vision_tower.vision_model.encoder.layers.26.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
774
+ "vision_tower.vision_model.encoder.layers.26.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
775
+ "vision_tower.vision_model.encoder.layers.3.layer_norm1.bias": "model-00001-of-00002.safetensors",
776
+ "vision_tower.vision_model.encoder.layers.3.layer_norm1.weight": "model-00001-of-00002.safetensors",
777
+ "vision_tower.vision_model.encoder.layers.3.layer_norm2.bias": "model-00001-of-00002.safetensors",
778
+ "vision_tower.vision_model.encoder.layers.3.layer_norm2.weight": "model-00001-of-00002.safetensors",
779
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc1.bias": "model-00001-of-00002.safetensors",
780
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc1.weight": "model-00001-of-00002.safetensors",
781
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc2.bias": "model-00001-of-00002.safetensors",
782
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc2.weight": "model-00001-of-00002.safetensors",
783
+ "vision_tower.vision_model.encoder.layers.3.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
784
+ "vision_tower.vision_model.encoder.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
785
+ "vision_tower.vision_model.encoder.layers.3.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
786
+ "vision_tower.vision_model.encoder.layers.3.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
787
+ "vision_tower.vision_model.encoder.layers.3.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
788
+ "vision_tower.vision_model.encoder.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
789
+ "vision_tower.vision_model.encoder.layers.3.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
790
+ "vision_tower.vision_model.encoder.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
791
+ "vision_tower.vision_model.encoder.layers.4.layer_norm1.bias": "model-00001-of-00002.safetensors",
792
+ "vision_tower.vision_model.encoder.layers.4.layer_norm1.weight": "model-00001-of-00002.safetensors",
793
+ "vision_tower.vision_model.encoder.layers.4.layer_norm2.bias": "model-00001-of-00002.safetensors",
794
+ "vision_tower.vision_model.encoder.layers.4.layer_norm2.weight": "model-00001-of-00002.safetensors",
795
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc1.bias": "model-00001-of-00002.safetensors",
796
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc1.weight": "model-00001-of-00002.safetensors",
797
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc2.bias": "model-00001-of-00002.safetensors",
798
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc2.weight": "model-00001-of-00002.safetensors",
799
+ "vision_tower.vision_model.encoder.layers.4.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
800
+ "vision_tower.vision_model.encoder.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
801
+ "vision_tower.vision_model.encoder.layers.4.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
802
+ "vision_tower.vision_model.encoder.layers.4.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
803
+ "vision_tower.vision_model.encoder.layers.4.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
804
+ "vision_tower.vision_model.encoder.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
805
+ "vision_tower.vision_model.encoder.layers.4.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
806
+ "vision_tower.vision_model.encoder.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
807
+ "vision_tower.vision_model.encoder.layers.5.layer_norm1.bias": "model-00001-of-00002.safetensors",
808
+ "vision_tower.vision_model.encoder.layers.5.layer_norm1.weight": "model-00001-of-00002.safetensors",
809
+ "vision_tower.vision_model.encoder.layers.5.layer_norm2.bias": "model-00001-of-00002.safetensors",
810
+ "vision_tower.vision_model.encoder.layers.5.layer_norm2.weight": "model-00001-of-00002.safetensors",
811
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc1.bias": "model-00001-of-00002.safetensors",
812
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc1.weight": "model-00001-of-00002.safetensors",
813
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc2.bias": "model-00001-of-00002.safetensors",
814
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc2.weight": "model-00001-of-00002.safetensors",
815
+ "vision_tower.vision_model.encoder.layers.5.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
816
+ "vision_tower.vision_model.encoder.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
817
+ "vision_tower.vision_model.encoder.layers.5.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
818
+ "vision_tower.vision_model.encoder.layers.5.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
819
+ "vision_tower.vision_model.encoder.layers.5.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
820
+ "vision_tower.vision_model.encoder.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
821
+ "vision_tower.vision_model.encoder.layers.5.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
822
+ "vision_tower.vision_model.encoder.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
823
+ "vision_tower.vision_model.encoder.layers.6.layer_norm1.bias": "model-00001-of-00002.safetensors",
824
+ "vision_tower.vision_model.encoder.layers.6.layer_norm1.weight": "model-00001-of-00002.safetensors",
825
+ "vision_tower.vision_model.encoder.layers.6.layer_norm2.bias": "model-00001-of-00002.safetensors",
826
+ "vision_tower.vision_model.encoder.layers.6.layer_norm2.weight": "model-00001-of-00002.safetensors",
827
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc1.bias": "model-00001-of-00002.safetensors",
828
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc1.weight": "model-00001-of-00002.safetensors",
829
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc2.bias": "model-00001-of-00002.safetensors",
830
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc2.weight": "model-00001-of-00002.safetensors",
831
+ "vision_tower.vision_model.encoder.layers.6.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
832
+ "vision_tower.vision_model.encoder.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
833
+ "vision_tower.vision_model.encoder.layers.6.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
834
+ "vision_tower.vision_model.encoder.layers.6.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
835
+ "vision_tower.vision_model.encoder.layers.6.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
836
+ "vision_tower.vision_model.encoder.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
837
+ "vision_tower.vision_model.encoder.layers.6.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
838
+ "vision_tower.vision_model.encoder.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
839
+ "vision_tower.vision_model.encoder.layers.7.layer_norm1.bias": "model-00001-of-00002.safetensors",
840
+ "vision_tower.vision_model.encoder.layers.7.layer_norm1.weight": "model-00001-of-00002.safetensors",
841
+ "vision_tower.vision_model.encoder.layers.7.layer_norm2.bias": "model-00001-of-00002.safetensors",
842
+ "vision_tower.vision_model.encoder.layers.7.layer_norm2.weight": "model-00001-of-00002.safetensors",
843
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc1.bias": "model-00001-of-00002.safetensors",
844
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc1.weight": "model-00001-of-00002.safetensors",
845
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc2.bias": "model-00001-of-00002.safetensors",
846
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc2.weight": "model-00001-of-00002.safetensors",
847
+ "vision_tower.vision_model.encoder.layers.7.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
848
+ "vision_tower.vision_model.encoder.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
849
+ "vision_tower.vision_model.encoder.layers.7.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
850
+ "vision_tower.vision_model.encoder.layers.7.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
851
+ "vision_tower.vision_model.encoder.layers.7.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
852
+ "vision_tower.vision_model.encoder.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
853
+ "vision_tower.vision_model.encoder.layers.7.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
854
+ "vision_tower.vision_model.encoder.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
855
+ "vision_tower.vision_model.encoder.layers.8.layer_norm1.bias": "model-00001-of-00002.safetensors",
856
+ "vision_tower.vision_model.encoder.layers.8.layer_norm1.weight": "model-00001-of-00002.safetensors",
857
+ "vision_tower.vision_model.encoder.layers.8.layer_norm2.bias": "model-00001-of-00002.safetensors",
858
+ "vision_tower.vision_model.encoder.layers.8.layer_norm2.weight": "model-00001-of-00002.safetensors",
859
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc1.bias": "model-00001-of-00002.safetensors",
860
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc1.weight": "model-00001-of-00002.safetensors",
861
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc2.bias": "model-00001-of-00002.safetensors",
862
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc2.weight": "model-00001-of-00002.safetensors",
863
+ "vision_tower.vision_model.encoder.layers.8.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
864
+ "vision_tower.vision_model.encoder.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
865
+ "vision_tower.vision_model.encoder.layers.8.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
866
+ "vision_tower.vision_model.encoder.layers.8.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
867
+ "vision_tower.vision_model.encoder.layers.8.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
868
+ "vision_tower.vision_model.encoder.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
869
+ "vision_tower.vision_model.encoder.layers.8.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
870
+ "vision_tower.vision_model.encoder.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
871
+ "vision_tower.vision_model.encoder.layers.9.layer_norm1.bias": "model-00001-of-00002.safetensors",
872
+ "vision_tower.vision_model.encoder.layers.9.layer_norm1.weight": "model-00001-of-00002.safetensors",
873
+ "vision_tower.vision_model.encoder.layers.9.layer_norm2.bias": "model-00001-of-00002.safetensors",
874
+ "vision_tower.vision_model.encoder.layers.9.layer_norm2.weight": "model-00001-of-00002.safetensors",
875
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc1.bias": "model-00001-of-00002.safetensors",
876
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc1.weight": "model-00001-of-00002.safetensors",
877
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc2.bias": "model-00001-of-00002.safetensors",
878
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc2.weight": "model-00001-of-00002.safetensors",
879
+ "vision_tower.vision_model.encoder.layers.9.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
880
+ "vision_tower.vision_model.encoder.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
881
+ "vision_tower.vision_model.encoder.layers.9.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
882
+ "vision_tower.vision_model.encoder.layers.9.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
883
+ "vision_tower.vision_model.encoder.layers.9.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
884
+ "vision_tower.vision_model.encoder.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
885
+ "vision_tower.vision_model.encoder.layers.9.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
886
+ "vision_tower.vision_model.encoder.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
887
+ "vision_tower.vision_model.post_layernorm.bias": "model-00001-of-00002.safetensors",
888
+ "vision_tower.vision_model.post_layernorm.weight": "model-00001-of-00002.safetensors"
889
+ }
890
+ }
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ torch>=2.0.0
2
+ transformers>=4.35.0
3
+ accelerate>=0.24.0
4
+ soundfile>=0.12.0
5
+ numpy>=1.24.0
6
+ scipy>=1.10.0
7
+ pyaudio>=0.2.11
8
+ huggingface-hub>=0.19.0
9
+ git+https://github.com/neuphonic/neucodec.git
special_tokens_map.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<start_of_turn>",
4
+ "<end_of_turn>",
5
+ "<start_of_speech>",
6
+ "<end_of_speech>"
7
+ ],
8
+ "boi_token": "<start_of_image>",
9
+ "bos_token": {
10
+ "content": "<bos>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "eoi_token": "<end_of_image>",
17
+ "eos_token": {
18
+ "content": "<eos>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "image_token": "<image_soft_token>",
25
+ "pad_token": {
26
+ "content": "<eos>",
27
+ "lstrip": false,
28
+ "normalized": false,
29
+ "rstrip": false,
30
+ "single_word": false
31
+ },
32
+ "unk_token": {
33
+ "content": "<unk>",
34
+ "lstrip": false,
35
+ "normalized": false,
36
+ "rstrip": false,
37
+ "single_word": false
38
+ }
39
+ }
streaming_inference.py ADDED
@@ -0,0 +1,400 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ BeigeTTS - Streaming Inference
4
+ Real-time streaming text-to-speech with chunk-based generation
5
+ Research release derived from BlandAI's Khaki TTS system
6
+ """
7
+
8
+ import torch
9
+ import numpy as np
10
+ import soundfile as sf
11
+ from neucodec import NeuCodec
12
+ from transformers import AutoModelForCausalLM, AutoTokenizer
13
+ import threading
14
+ import queue
15
+ import time
16
+ from typing import Optional, Generator, Tuple
17
+ import pyaudio
18
+ import argparse
19
+
20
+ # ═══════════════════════════════════════════════════════════════════
21
+ # Configuration
22
+ # ═══════════════════════════════════════════════════════════════════
23
+
24
+ class StreamingConfig:
25
+ """Configuration for streaming TTS"""
26
+ # Audio tokens
27
+ AUDIO_START_TOKEN = 262145
28
+ AUDIO_END_TOKEN = 262146
29
+ NEUCODEC_BASE_OFFSET = 262154
30
+ NEUCODEC_VOCABULARY_SIZE = 65536
31
+ AUDIO_TOKEN_MIN = NEUCODEC_BASE_OFFSET
32
+ AUDIO_TOKEN_MAX = NEUCODEC_BASE_OFFSET + NEUCODEC_VOCABULARY_SIZE
33
+
34
+ # Streaming parameters
35
+ CHUNK_SIZE = 50 # Audio tokens per chunk (~500ms)
36
+ BUFFER_SIZE = 3 # Number of chunks to buffer
37
+ SAMPLE_RATE = 24000
38
+
39
+ # Generation parameters
40
+ DEFAULT_TEMPERATURE = 0.1
41
+ DEFAULT_TOP_P = 0.97
42
+ MAX_TOTAL_TOKENS = 1000 # Limited in research release (Khaki: unlimited)
43
+
44
+ # ═══════════════════════════════════════════════════════════════════
45
+ # Streaming TTS Engine
46
+ # ═══════════════════════════════════════════════════════════════════
47
+
48
+ class StreamingBeigeTTS:
49
+ """Streaming BeigeTTS engine with chunk-based generation
50
+
51
+ Note: Production Khaki system achieves <50ms latency with
52
+ advanced buffering and predictive generation.
53
+ """
54
+
55
+ def __init__(self, model_path: str = "BlandAI/BeigeTTS"):
56
+ """Initialize streaming TTS engine"""
57
+ self.config = StreamingConfig()
58
+ self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
59
+
60
+ print("Initializing BeigeTTS streaming engine (research release)...")
61
+ print("Note: Khaki production system supports <50ms latency and 57 languages")
62
+
63
+ # Load models
64
+ self._load_models(model_path)
65
+
66
+ # Streaming state
67
+ self.audio_queue = queue.Queue(maxsize=self.config.BUFFER_SIZE)
68
+ self.generation_complete = threading.Event()
69
+ self.stop_generation = threading.Event()
70
+
71
+ # PyAudio for playback
72
+ self.audio_interface = None
73
+ self.audio_stream = None
74
+
75
+ def _load_models(self, model_path: str):
76
+ """Load BeigeTTS and NeuCodec models"""
77
+ print("Loading BeigeTTS model...")
78
+ self.model = AutoModelForCausalLM.from_pretrained(
79
+ model_path,
80
+ torch_dtype=torch.float16 if self.device.type == "cuda" else torch.float32,
81
+ device_map="auto",
82
+ trust_remote_code=True,
83
+ )
84
+ self.model.eval()
85
+
86
+ print("Loading tokenizer...")
87
+ self.tokenizer = AutoTokenizer.from_pretrained(model_path)
88
+ if self.tokenizer.pad_token is None:
89
+ self.tokenizer.pad_token = self.tokenizer.eos_token
90
+
91
+ print("Loading NeuCodec...")
92
+ self.neucodec = NeuCodec.from_pretrained("neuphonic/neucodec")
93
+ self.neucodec.eval()
94
+ if self.device.type == "cuda":
95
+ self.neucodec = self.neucodec.to(self.device)
96
+
97
+ def stream_synthesize(
98
+ self,
99
+ text: str,
100
+ temperature: float = None,
101
+ top_p: float = None,
102
+ play_audio: bool = False
103
+ ) -> Generator[np.ndarray, None, None]:
104
+ """Stream synthesize speech from text
105
+
106
+ Args:
107
+ text: Input text to synthesize
108
+ temperature: Sampling temperature
109
+ top_p: Nucleus sampling parameter
110
+ play_audio: Whether to play audio in real-time
111
+
112
+ Yields:
113
+ Audio chunks as numpy arrays
114
+ """
115
+ temperature = temperature or self.config.DEFAULT_TEMPERATURE
116
+ top_p = top_p or self.config.DEFAULT_TOP_P
117
+
118
+ # Reset state
119
+ self.generation_complete.clear()
120
+ self.stop_generation.clear()
121
+
122
+ # Start generation thread
123
+ generation_thread = threading.Thread(
124
+ target=self._generation_worker,
125
+ args=(text, temperature, top_p)
126
+ )
127
+ generation_thread.start()
128
+
129
+ # Start playback if requested
130
+ if play_audio:
131
+ playback_thread = threading.Thread(target=self._playback_worker)
132
+ playback_thread.start()
133
+
134
+ # Yield audio chunks
135
+ try:
136
+ while not self.generation_complete.is_set() or not self.audio_queue.empty():
137
+ try:
138
+ audio_chunk = self.audio_queue.get(timeout=0.1)
139
+ yield audio_chunk
140
+ except queue.Empty:
141
+ continue
142
+ finally:
143
+ # Cleanup
144
+ self.stop_generation.set()
145
+ generation_thread.join()
146
+ if play_audio:
147
+ playback_thread.join()
148
+
149
+ def _generation_worker(self, text: str, temperature: float, top_p: float):
150
+ """Worker thread for token generation"""
151
+ try:
152
+ # Format prompt
153
+ prompt = f"<start_of_turn>user\n{text}<end_of_turn>\n<start_of_turn>model\n<start_of_speech>"
154
+
155
+ # Tokenize
156
+ inputs = self.tokenizer(prompt, return_tensors="pt")
157
+ input_ids = inputs.input_ids.to(self.model.device)
158
+
159
+ # Initialize generation
160
+ past_key_values = None
161
+ current_ids = input_ids
162
+ audio_token_buffer = []
163
+ total_generated = 0
164
+
165
+ print("Starting streaming generation...")
166
+ print("(BeigeTTS research mode - Khaki production offers superior latency)")
167
+
168
+ with torch.no_grad():
169
+ while total_generated < self.config.MAX_TOTAL_TOKENS and not self.stop_generation.is_set():
170
+ # Generate next token
171
+ outputs = self.model(
172
+ input_ids=current_ids,
173
+ past_key_values=past_key_values,
174
+ use_cache=True
175
+ )
176
+
177
+ logits = outputs.logits[:, -1, :]
178
+ past_key_values = outputs.past_key_values
179
+
180
+ # Sample next token
181
+ if temperature > 0:
182
+ probs = torch.nn.functional.softmax(logits / temperature, dim=-1)
183
+
184
+ # Apply top-p filtering
185
+ if top_p < 1.0:
186
+ sorted_probs, sorted_indices = torch.sort(probs, descending=True)
187
+ cumulative_probs = torch.cumsum(sorted_probs, dim=-1)
188
+
189
+ # Remove tokens with cumulative probability above threshold
190
+ sorted_indices_to_remove = cumulative_probs > top_p
191
+ sorted_indices_to_remove[:, 1:] = sorted_indices_to_remove[:, :-1].clone()
192
+ sorted_indices_to_remove[:, 0] = 0
193
+
194
+ indices_to_remove = sorted_indices_to_remove.scatter(
195
+ 1, sorted_indices, sorted_indices_to_remove
196
+ )
197
+ probs[indices_to_remove] = 0
198
+ probs = probs / probs.sum(dim=-1, keepdim=True)
199
+
200
+ next_token = torch.multinomial(probs, num_samples=1)
201
+ else:
202
+ next_token = torch.argmax(logits, dim=-1, keepdim=True)
203
+
204
+ token_id = next_token.item()
205
+
206
+ # Check for end token
207
+ if token_id == self.config.AUDIO_END_TOKEN or token_id == self.tokenizer.eos_token_id:
208
+ break
209
+
210
+ # Process audio token
211
+ if self.config.AUDIO_TOKEN_MIN <= token_id < self.config.AUDIO_TOKEN_MAX:
212
+ audio_token_buffer.append(token_id - self.config.NEUCODEC_BASE_OFFSET)
213
+
214
+ # Decode and send chunk
215
+ if len(audio_token_buffer) >= self.config.CHUNK_SIZE:
216
+ audio_chunk = self._decode_chunk(audio_token_buffer[:self.config.CHUNK_SIZE])
217
+ self.audio_queue.put(audio_chunk)
218
+ audio_token_buffer = audio_token_buffer[self.config.CHUNK_SIZE:]
219
+ print(f"Streamed chunk {total_generated // self.config.CHUNK_SIZE}")
220
+
221
+ # Prepare for next iteration
222
+ current_ids = next_token
223
+ total_generated += 1
224
+
225
+ # Process remaining tokens
226
+ if audio_token_buffer:
227
+ audio_chunk = self._decode_chunk(audio_token_buffer)
228
+ self.audio_queue.put(audio_chunk)
229
+
230
+ print(f"Generation complete. Total tokens: {total_generated}")
231
+
232
+ except Exception as e:
233
+ print(f"Generation error: {e}")
234
+ finally:
235
+ self.generation_complete.set()
236
+
237
+ def _decode_chunk(self, audio_tokens: list) -> np.ndarray:
238
+ """Decode a chunk of audio tokens"""
239
+ # Prepare tokens
240
+ audio_array = np.array(audio_tokens, dtype=np.int32)
241
+ audio_array = np.clip(audio_array, 0, self.config.NEUCODEC_VOCABULARY_SIZE - 1)
242
+
243
+ # Format for NeuCodec
244
+ fsq_codes = torch.tensor(audio_array, dtype=torch.long)
245
+ fsq_codes = fsq_codes.unsqueeze(0).unsqueeze(1)
246
+
247
+ if self.device.type == "cuda":
248
+ fsq_codes = fsq_codes.to(self.device)
249
+
250
+ # Decode
251
+ with torch.no_grad():
252
+ wav = self.neucodec.decode_code(fsq_codes).cpu()
253
+
254
+ # Extract waveform
255
+ if wav.dim() == 3:
256
+ wav = wav[0, 0]
257
+ elif wav.dim() == 2:
258
+ wav = wav[0]
259
+
260
+ wav = wav.numpy()
261
+
262
+ # Normalize
263
+ if np.abs(wav).max() > 0:
264
+ wav = wav / np.abs(wav).max() * 0.95
265
+
266
+ return wav
267
+
268
+ def _playback_worker(self):
269
+ """Worker thread for audio playback"""
270
+ try:
271
+ # Initialize PyAudio
272
+ self.audio_interface = pyaudio.PyAudio()
273
+ self.audio_stream = self.audio_interface.open(
274
+ format=pyaudio.paFloat32,
275
+ channels=1,
276
+ rate=self.config.SAMPLE_RATE,
277
+ output=True
278
+ )
279
+
280
+ print("Starting audio playback...")
281
+
282
+ while not self.generation_complete.is_set() or not self.audio_queue.empty():
283
+ try:
284
+ audio_chunk = self.audio_queue.get(timeout=0.1)
285
+ self.audio_stream.write(audio_chunk.astype(np.float32).tobytes())
286
+ except queue.Empty:
287
+ continue
288
+
289
+ except Exception as e:
290
+ print(f"Playback error: {e}")
291
+ finally:
292
+ if self.audio_stream:
293
+ self.audio_stream.stop_stream()
294
+ self.audio_stream.close()
295
+ if self.audio_interface:
296
+ self.audio_interface.terminate()
297
+
298
+ # ═══════════════════════════════════════════════════════════════════
299
+ # Advanced Streaming Features
300
+ # ═══════════════════════════════════════════════════════════════════
301
+
302
+ class AdaptiveBeigeTTS(StreamingBeigeTTS):
303
+ """Advanced streaming with adaptive chunk sizing
304
+
305
+ Note: This demonstrates research concepts. Production Khaki system
306
+ includes predictive buffering, voice activity detection, and
307
+ neural vocoder post-processing for superior quality.
308
+ """
309
+
310
+ def __init__(self, model_path: str = "BlandAI/BeigeTTS"):
311
+ super().__init__(model_path)
312
+
313
+ # Adaptive streaming parameters
314
+ self.min_chunk_size = 25 # Minimum tokens per chunk
315
+ self.max_chunk_size = 100 # Maximum tokens per chunk
316
+ self.target_latency_ms = 200 # Target latency in milliseconds
317
+ self.generation_speed_ema = 0.0
318
+ self.ema_alpha = 0.1
319
+
320
+ def adaptive_stream(
321
+ self,
322
+ text: str,
323
+ quality_priority: float = 0.5 # 0 = speed, 1 = quality
324
+ ) -> Generator[np.ndarray, None, None]:
325
+ """Stream with adaptive chunk sizing based on generation speed
326
+
327
+ Args:
328
+ text: Input text
329
+ quality_priority: Balance between speed and quality (0-1)
330
+
331
+ Yields:
332
+ Adaptively sized audio chunks
333
+ """
334
+ # Adjust parameters based on priority
335
+ temperature = 0.05 + (0.15 * quality_priority)
336
+ top_p = 0.9 + (0.08 * quality_priority)
337
+
338
+ # Calculate adaptive chunk size
339
+ chunk_size = int(self.min_chunk_size +
340
+ (self.max_chunk_size - self.min_chunk_size) * quality_priority)
341
+
342
+ print(f"Adaptive streaming: chunk_size={chunk_size}, temp={temperature:.2f}, top_p={top_p:.2f}")
343
+ print("(Khaki production includes neural enhancement for optimal quality)")
344
+
345
+ # Override chunk size temporarily
346
+ original_chunk = self.config.CHUNK_SIZE
347
+ self.config.CHUNK_SIZE = chunk_size
348
+
349
+ try:
350
+ yield from self.stream_synthesize(text, temperature, top_p)
351
+ finally:
352
+ self.config.CHUNK_SIZE = original_chunk
353
+
354
+ # ═══════════════════════════════════════════════════════════════════
355
+ # CLI Interface
356
+ # ═══════════════════════════════════════════════════════════════════
357
+
358
+ def main():
359
+ parser = argparse.ArgumentParser(description="BeigeTTS Streaming (Research Release)")
360
+ parser.add_argument("text", type=str, help="Text to synthesize")
361
+ parser.add_argument("-o", "--output", type=str, help="Output WAV file (optional)")
362
+ parser.add_argument("-m", "--model", type=str, default="BlandAI/BeigeTTS", help="Model path")
363
+ parser.add_argument("--play", action="store_true", help="Play audio in real-time")
364
+ parser.add_argument("--adaptive", action="store_true", help="Use adaptive streaming")
365
+ parser.add_argument("--quality", type=float, default=0.5, help="Quality priority (0-1)")
366
+
367
+ args = parser.parse_args()
368
+
369
+ print("BeigeTTS Streaming - Research Release")
370
+ print("Production Khaki TTS: <50ms latency, 57 languages, unlimited duration")
371
+ print("-" * 60)
372
+
373
+ # Initialize TTS
374
+ if args.adaptive:
375
+ tts = AdaptiveBeigeTTS(model_path=args.model)
376
+ stream_gen = tts.adaptive_stream(args.text, quality_priority=args.quality)
377
+ else:
378
+ tts = StreamingBeigeTTS(model_path=args.model)
379
+ stream_gen = tts.stream_synthesize(args.text, play_audio=args.play)
380
+
381
+ # Collect audio chunks
382
+ audio_chunks = []
383
+ print("Streaming audio generation...")
384
+
385
+ for i, chunk in enumerate(stream_gen):
386
+ audio_chunks.append(chunk)
387
+ print(f" Received chunk {i+1} ({len(chunk)/tts.config.SAMPLE_RATE:.2f}s)")
388
+
389
+ # Save if output specified
390
+ if args.output and audio_chunks:
391
+ full_audio = np.concatenate(audio_chunks)
392
+ sf.write(args.output, full_audio, tts.config.SAMPLE_RATE)
393
+ duration = len(full_audio) / tts.config.SAMPLE_RATE
394
+ print(f"\nβœ… Saved {duration:.1f}s of audio to {args.output}")
395
+
396
+ print("\n✨ Streaming complete!")
397
+ print("For commercial use and advanced features, contact partnerships@bland.ai")
398
+
399
+ if __name__ == "__main__":
400
+ main()
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1cfdfbadc2cef8f5558377a4bf7ad30da3c6af4618164efdbb4c96ea31e72cd1
3
+ size 33384954
tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1299c11d7cf632ef3b4e11937501358ada021bbdf7c47638d13c0ee982f2e79c
3
+ size 4689074
tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff