nexaai 1.0.16rc12__cp310-cp310-macosx_14_0_universal2.whl → 1.0.16rc14__cp310-cp310-macosx_14_0_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nexaai might be problematic. Click here for more details.
- nexaai/_stub.cpython-310-darwin.so +0 -0
- nexaai/_version.py +1 -1
- nexaai/binds/libnexa_bridge.dylib +0 -0
- nexaai/binds/nexa_mlx/libnexa_plugin.dylib +0 -0
- nexaai/binds/nexa_nexaml/libggml-base.dylib +0 -0
- nexaai/binds/nexa_nexaml/libggml-cpu.so +0 -0
- nexaai/binds/nexa_nexaml/libggml-metal.so +0 -0
- nexaai/binds/nexa_nexaml/libggml.dylib +0 -0
- nexaai/binds/nexa_nexaml/libnexa-mm-process.dylib +0 -0
- nexaai/binds/nexa_nexaml/libnexa-sampling.dylib +0 -0
- nexaai/binds/nexa_nexaml/libnexa_plugin.dylib +0 -0
- nexaai/binds/nexa_nexaml/libnexaproc.dylib +0 -0
- nexaai/binds/nexa_nexaml/libqwen3-vl.dylib +0 -0
- nexaai/binds/nexa_nexaml/libqwen3vl-vision.dylib +0 -0
- nexaai/common.py +1 -0
- nexaai/mlx_backend/vlm/interface.py +33 -2
- nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/generate.py +7 -7
- nexaai/utils/quantization_utils.py +7 -1
- {nexaai-1.0.16rc12.dist-info → nexaai-1.0.16rc14.dist-info}/METADATA +1 -1
- {nexaai-1.0.16rc12.dist-info → nexaai-1.0.16rc14.dist-info}/RECORD +22 -12
- {nexaai-1.0.16rc12.dist-info → nexaai-1.0.16rc14.dist-info}/WHEEL +0 -0
- {nexaai-1.0.16rc12.dist-info → nexaai-1.0.16rc14.dist-info}/top_level.txt +0 -0
|
Binary file
|
nexaai/_version.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
nexaai/common.py
CHANGED
|
@@ -80,6 +80,9 @@ class VLM(ProfilingMixin):
|
|
|
80
80
|
|
|
81
81
|
# Init deafutl sampler config with defualt.
|
|
82
82
|
self.sampler_config = SamplerConfig()
|
|
83
|
+
|
|
84
|
+
# Track global character position for incremental processing
|
|
85
|
+
self.global_n_past_chars = 0
|
|
83
86
|
|
|
84
87
|
def destroy(self) -> None:
|
|
85
88
|
"""Destroy the model and free resources."""
|
|
@@ -89,6 +92,7 @@ class VLM(ProfilingMixin):
|
|
|
89
92
|
def reset(self) -> None:
|
|
90
93
|
"""Reset the model state."""
|
|
91
94
|
self._reset_cache()
|
|
95
|
+
self.global_n_past_chars = 0
|
|
92
96
|
|
|
93
97
|
def _reset_cache(self) -> None:
|
|
94
98
|
"""Reset the KV cache."""
|
|
@@ -141,6 +145,16 @@ class VLM(ProfilingMixin):
|
|
|
141
145
|
image_list = [str(path) for path in image_paths] if image_paths else None
|
|
142
146
|
audio_list = [str(path) for path in audio_paths] if audio_paths else None
|
|
143
147
|
|
|
148
|
+
# Extract incremental portion of the prompt (similar to llama.cpp VLM)
|
|
149
|
+
full_prompt_len = len(prompt)
|
|
150
|
+
incremental_prompt = prompt
|
|
151
|
+
|
|
152
|
+
if self.global_n_past_chars < full_prompt_len:
|
|
153
|
+
incremental_prompt = prompt[self.global_n_past_chars:]
|
|
154
|
+
else:
|
|
155
|
+
# No new text to process
|
|
156
|
+
incremental_prompt = ""
|
|
157
|
+
|
|
144
158
|
# End prompt processing, start decode
|
|
145
159
|
self._prompt_end()
|
|
146
160
|
self._decode_start()
|
|
@@ -152,7 +166,7 @@ class VLM(ProfilingMixin):
|
|
|
152
166
|
text, stats = generate(
|
|
153
167
|
self.model,
|
|
154
168
|
self.processor,
|
|
155
|
-
prompt
|
|
169
|
+
incremental_prompt, # Use incremental prompt instead of full prompt
|
|
156
170
|
image=image_list,
|
|
157
171
|
audio=audio_list,
|
|
158
172
|
**gen_kwargs,
|
|
@@ -181,6 +195,10 @@ class VLM(ProfilingMixin):
|
|
|
181
195
|
self._update_prompt_tokens(prompt_tokens)
|
|
182
196
|
self._update_generated_tokens(generated_tokens)
|
|
183
197
|
self._set_stop_reason(StopReason.ML_STOP_REASON_COMPLETED)
|
|
198
|
+
|
|
199
|
+
# Update global character position
|
|
200
|
+
self.global_n_past_chars = full_prompt_len + len(text)
|
|
201
|
+
|
|
184
202
|
self._decode_end()
|
|
185
203
|
self._end_profiling()
|
|
186
204
|
|
|
@@ -226,6 +244,16 @@ class VLM(ProfilingMixin):
|
|
|
226
244
|
image_list = [str(path) for path in image_paths] if image_paths else None
|
|
227
245
|
audio_list = [str(path) for path in audio_paths] if audio_paths else None
|
|
228
246
|
|
|
247
|
+
# Extract incremental portion of the prompt (similar to llama.cpp VLM)
|
|
248
|
+
full_prompt_len = len(prompt)
|
|
249
|
+
incremental_prompt = prompt
|
|
250
|
+
|
|
251
|
+
if self.global_n_past_chars < full_prompt_len:
|
|
252
|
+
incremental_prompt = prompt[self.global_n_past_chars:]
|
|
253
|
+
else:
|
|
254
|
+
# No new text to process
|
|
255
|
+
incremental_prompt = ""
|
|
256
|
+
|
|
229
257
|
# End prompt processing, start decode
|
|
230
258
|
self._prompt_end()
|
|
231
259
|
self._decode_start()
|
|
@@ -239,7 +267,7 @@ class VLM(ProfilingMixin):
|
|
|
239
267
|
for result in stream_generate_impl(
|
|
240
268
|
self.model,
|
|
241
269
|
self.processor,
|
|
242
|
-
prompt
|
|
270
|
+
incremental_prompt, # Use incremental prompt instead of full prompt
|
|
243
271
|
image=image_list,
|
|
244
272
|
audio=audio_list,
|
|
245
273
|
**gen_kwargs,
|
|
@@ -266,6 +294,9 @@ class VLM(ProfilingMixin):
|
|
|
266
294
|
self._update_prompt_tokens(last_result.prompt_tokens)
|
|
267
295
|
self._update_generated_tokens(last_result.generation_tokens)
|
|
268
296
|
|
|
297
|
+
# Update global character position
|
|
298
|
+
self.global_n_past_chars = full_prompt_len + len(text)
|
|
299
|
+
|
|
269
300
|
self._decode_end()
|
|
270
301
|
self._end_profiling()
|
|
271
302
|
|
|
@@ -232,7 +232,7 @@ def generate_step(
|
|
|
232
232
|
prompt_progress_callback(prompt_processed_tokens, total_prompt_tokens)
|
|
233
233
|
prompt_processed_tokens += prefill_step_size
|
|
234
234
|
y = y[prefill_step_size:]
|
|
235
|
-
mx.
|
|
235
|
+
mx.clear_cache()
|
|
236
236
|
|
|
237
237
|
y, logprobs = _step(y)
|
|
238
238
|
|
|
@@ -249,7 +249,7 @@ def generate_step(
|
|
|
249
249
|
break
|
|
250
250
|
yield y.item(), logprobs
|
|
251
251
|
if n % 256 == 0:
|
|
252
|
-
mx.
|
|
252
|
+
mx.clear_cache()
|
|
253
253
|
y, logprobs = next_y, next_logprobs
|
|
254
254
|
n += 1
|
|
255
255
|
|
|
@@ -371,7 +371,7 @@ def nexa_generate_step(
|
|
|
371
371
|
prompt_progress_callback(prompt_processed_tokens, total_prompt_tokens)
|
|
372
372
|
prompt_processed_tokens += prefill_step_size
|
|
373
373
|
y = y[prefill_step_size:]
|
|
374
|
-
mx.
|
|
374
|
+
mx.clear_cache()
|
|
375
375
|
|
|
376
376
|
y, logprobs = _step(y)
|
|
377
377
|
|
|
@@ -388,7 +388,7 @@ def nexa_generate_step(
|
|
|
388
388
|
break
|
|
389
389
|
yield y.item(), logprobs
|
|
390
390
|
if n % 256 == 0:
|
|
391
|
-
mx.
|
|
391
|
+
mx.clear_cache()
|
|
392
392
|
y, logprobs = next_y, next_logprobs
|
|
393
393
|
n += 1
|
|
394
394
|
|
|
@@ -507,7 +507,7 @@ def nexa_multimodal_generate_step(
|
|
|
507
507
|
prompt_progress_callback(prompt_processed_tokens, total_prompt_tokens)
|
|
508
508
|
prompt_processed_tokens += prefill_step_size
|
|
509
509
|
y = y[prefill_step_size:]
|
|
510
|
-
mx.
|
|
510
|
+
mx.clear_cache()
|
|
511
511
|
|
|
512
512
|
y, logprobs = _step(y)
|
|
513
513
|
|
|
@@ -524,7 +524,7 @@ def nexa_multimodal_generate_step(
|
|
|
524
524
|
break
|
|
525
525
|
yield y.item(), logprobs
|
|
526
526
|
if n % 256 == 0:
|
|
527
|
-
mx.
|
|
527
|
+
mx.clear_cache()
|
|
528
528
|
y, logprobs = next_y, next_logprobs
|
|
529
529
|
n += 1
|
|
530
530
|
|
|
@@ -632,7 +632,7 @@ def speculative_generate_step(
|
|
|
632
632
|
quantize_cache_fn(cache)
|
|
633
633
|
mx.eval([c.state for c in cache])
|
|
634
634
|
y = y[prefill_step_size:]
|
|
635
|
-
mx.
|
|
635
|
+
mx.clear_cache()
|
|
636
636
|
return y
|
|
637
637
|
|
|
638
638
|
def _rewind_cache(num_draft, num_accept):
|
|
@@ -25,12 +25,15 @@ class QuantizationType(str, Enum):
|
|
|
25
25
|
F16 = "F16"
|
|
26
26
|
Q2_K = "Q2_K"
|
|
27
27
|
Q2_K_L = "Q2_K_L"
|
|
28
|
+
Q3_K = "Q3_K"
|
|
28
29
|
Q3_K_M = "Q3_K_M"
|
|
29
30
|
Q3_K_S = "Q3_K_S"
|
|
30
31
|
Q4_0 = "Q4_0"
|
|
31
32
|
Q4_1 = "Q4_1"
|
|
33
|
+
Q4_K = "Q4_K"
|
|
32
34
|
Q4_K_M = "Q4_K_M"
|
|
33
35
|
Q4_K_S = "Q4_K_S"
|
|
36
|
+
Q5_K = "Q5_K"
|
|
34
37
|
Q5_K_M = "Q5_K_M"
|
|
35
38
|
Q5_K_S = "Q5_K_S"
|
|
36
39
|
Q6_K = "Q6_K"
|
|
@@ -67,12 +70,15 @@ def extract_quantization_from_filename(filename: str) -> Optional[QuantizationTy
|
|
|
67
70
|
'f16.': QuantizationType.F16, # Add F16 support
|
|
68
71
|
'q2_k_l.': QuantizationType.Q2_K_L, # Check Q2_K_L before Q2_K to avoid partial match
|
|
69
72
|
'q2_k.': QuantizationType.Q2_K,
|
|
73
|
+
'q3_k.': QuantizationType.Q3_K,
|
|
70
74
|
'q3_k_m.': QuantizationType.Q3_K_M,
|
|
71
|
-
'
|
|
75
|
+
'q3_k_s.': QuantizationType.Q3_K_S,
|
|
72
76
|
'q4_k_m.': QuantizationType.Q4_K_M,
|
|
73
77
|
'q4_k_s.': QuantizationType.Q4_K_S,
|
|
74
78
|
'q4_0.': QuantizationType.Q4_0,
|
|
75
79
|
'q4_1.': QuantizationType.Q4_1,
|
|
80
|
+
'q4_k.': QuantizationType.Q4_K,
|
|
81
|
+
'q5_k.': QuantizationType.Q5_K,
|
|
76
82
|
'q5_k_m.': QuantizationType.Q5_K_M,
|
|
77
83
|
'q5_k_s.': QuantizationType.Q5_K_S,
|
|
78
84
|
'q6_k.': QuantizationType.Q6_K,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
nexaai/__init__.py,sha256=L8oB7GFZZMGnUpCg0PecDbI_ycKuQak-ZEJ4Y12_QIw,2184
|
|
2
|
-
nexaai/_stub.cpython-310-darwin.so,sha256=
|
|
3
|
-
nexaai/_version.py,sha256=
|
|
2
|
+
nexaai/_stub.cpython-310-darwin.so,sha256=8r5dERkhD_MbKv5kOuGSgx_lGZyRFZ3MxOEOdFb2hg8,66768
|
|
3
|
+
nexaai/_version.py,sha256=bFprtDX2rUyZwPnP3h4-J3LGlRF9uZAd4KOCazdh12I,144
|
|
4
4
|
nexaai/asr.py,sha256=NljMXDErwPNMOPaRkJZMEDka9Nk8xyur7L8i924TStY,2054
|
|
5
5
|
nexaai/base.py,sha256=N8PRgDFA-XPku2vWnQIofQ7ipz3pPlO6f8YZGnuhquE,982
|
|
6
|
-
nexaai/common.py,sha256=
|
|
6
|
+
nexaai/common.py,sha256=Y0NJNLTi4Nq4x1WL6PQsSvGUto0eGmWhjpsC6jcekfA,3444
|
|
7
7
|
nexaai/cv.py,sha256=RHCDo8gvBH8BkGZx7qVyp-OKxqi7E1GG9XzyaXehCNA,3273
|
|
8
8
|
nexaai/embedder.py,sha256=Cw0tSHkPgd-RI62afCqQAcTHMnQhaI2CvfTMO-1JKOg,2452
|
|
9
9
|
nexaai/image_gen.py,sha256=0C_5Tjj4BYmxLbmMmvwajp-yy2mmEEOKwBFnDQNPzx4,4356
|
|
@@ -19,7 +19,7 @@ nexaai/asr_impl/pybind_asr_impl.py,sha256=pE9Hb_hMi5yAc4MF83bLVOb8zDtreCkB3_u7XE
|
|
|
19
19
|
nexaai/binds/__init__.py,sha256=eYuay_8DDXeOUWz2_R9HFSabohxs6hvZn391t2L0Po0,104
|
|
20
20
|
nexaai/binds/common_bind.cpython-310-darwin.so,sha256=ya8gz7NnUtHlniGnRyExdwWfdHimEHiJ7Dry4I7_y44,235264
|
|
21
21
|
nexaai/binds/embedder_bind.cpython-310-darwin.so,sha256=tPa0c0Dv_GiW66fgmAGWGCHXRGNApznqoQS0eQx9GFM,202064
|
|
22
|
-
nexaai/binds/libnexa_bridge.dylib,sha256=
|
|
22
|
+
nexaai/binds/libnexa_bridge.dylib,sha256=iTPtrDD83Mb8KCQr521J_ggOIJu_xPnVED7yg8jkgyg,251192
|
|
23
23
|
nexaai/binds/llm_bind.cpython-310-darwin.so,sha256=TAWfa1Hzq00TjtC1xVsiAeLp6hv2LrL5afDz4omUghc,182784
|
|
24
24
|
nexaai/binds/vlm_bind.cpython-310-darwin.so,sha256=nd6eG_m2EiPthzkSZ97hlXWUOZQir4cQfFJZ4p6eR2U,182704
|
|
25
25
|
nexaai/binds/nexa_llama_cpp/libggml-base.dylib,sha256=JM4oOkie1su0ES5hMdtILeQHlRukRzH1vTleTupUXhg,650736
|
|
@@ -29,7 +29,7 @@ nexaai/binds/nexa_llama_cpp/libggml.dylib,sha256=aOTj_6RrAMkfDO0ZI28_3nfcC-l4Y3d
|
|
|
29
29
|
nexaai/binds/nexa_llama_cpp/libllama.dylib,sha256=RkBd5usb8RvEIOamvxCW3UvMauI5bC66G_n6hw83NpY,1786128
|
|
30
30
|
nexaai/binds/nexa_llama_cpp/libmtmd.dylib,sha256=o6mQqefzQNF0CS4j6odwJKj0gkXm15hIxwlNt88FOn4,605248
|
|
31
31
|
nexaai/binds/nexa_llama_cpp/libnexa_plugin.dylib,sha256=f-ctmVHSL5x1LKLr0StYM5WscvUW_5olJ7al3ciVmmQ,1863000
|
|
32
|
-
nexaai/binds/nexa_mlx/libnexa_plugin.dylib,sha256=
|
|
32
|
+
nexaai/binds/nexa_mlx/libnexa_plugin.dylib,sha256=RwkU2ZKm6T0Y6btBD7NaDM67A-MifPkkCgO9VFcpUFY,642456
|
|
33
33
|
nexaai/binds/nexa_mlx/py-lib/ml.py,sha256=DKXVOAfh8cg7KTKljh7jpcPwfQFNigc6uv_ZXF6lse8,23977
|
|
34
34
|
nexaai/binds/nexa_mlx/py-lib/profiling.py,sha256=Dc-mybFwBdCIKFWL7CbSHjkOJGAoYHG7r_e_XPhzwBU,9361
|
|
35
35
|
nexaai/binds/nexa_mlx/py-lib/mlx_audio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -182,6 +182,16 @@ nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_base.py,sha256=dAeEA0IsBnU
|
|
|
182
182
|
nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_convert.py,sha256=79ddUhtTUlElD9NvBupUxl-MV4HKFM9PUxQpTwKLnBA,5804
|
|
183
183
|
nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_interpolate.py,sha256=9dNmH03C46HtxwesH2DpT2oTNEG1KCZWYEKq6UQ3vfk,3536
|
|
184
184
|
nexaai/binds/nexa_mlx/py-lib/mlx_audio/tts/tests/test_models.py,sha256=12RiOfPtSZQj5g5JM-yCJk3uGQfM3OdmRiPt5uUDE4E,35096
|
|
185
|
+
nexaai/binds/nexa_nexaml/libggml-base.dylib,sha256=JM4oOkie1su0ES5hMdtILeQHlRukRzH1vTleTupUXhg,650736
|
|
186
|
+
nexaai/binds/nexa_nexaml/libggml-cpu.so,sha256=qiYxbTe4Nt7n36zJVvq3zovgSZEmrN2is6gzTern7UI,677728
|
|
187
|
+
nexaai/binds/nexa_nexaml/libggml-metal.so,sha256=zfaX7rIBYQazH2lf-vza007BMhPTK1ASd2T0HLLIA4E,673104
|
|
188
|
+
nexaai/binds/nexa_nexaml/libggml.dylib,sha256=aOTj_6RrAMkfDO0ZI28_3nfcC-l4Y3dRCiS3C0d0_eI,58592
|
|
189
|
+
nexaai/binds/nexa_nexaml/libnexa-mm-process.dylib,sha256=3mITty3oYhoi5yc690CxS0tf4LGanqrPCR0meE-h9HQ,8568120
|
|
190
|
+
nexaai/binds/nexa_nexaml/libnexa-sampling.dylib,sha256=OliTBr-r2y22Ebjc1Y33Ax56XpLMFQKtsHgfouj6TQM,7865400
|
|
191
|
+
nexaai/binds/nexa_nexaml/libnexa_plugin.dylib,sha256=41VEU8yhk2aQlpfoSFeYkhLLhBSbzCcMns0IGyZvpNg,249848
|
|
192
|
+
nexaai/binds/nexa_nexaml/libnexaproc.dylib,sha256=Pnxgm2k29hfedLjNP4t44gvioh-NWbE_3BW-VsCdHp8,880560
|
|
193
|
+
nexaai/binds/nexa_nexaml/libqwen3-vl.dylib,sha256=hd8VPINYTH8mbU3BPxnjrPOKTw-NkWn7zkDB7p074-U,753168
|
|
194
|
+
nexaai/binds/nexa_nexaml/libqwen3vl-vision.dylib,sha256=AmUk-DBtBAp5DOR14ICZcsiAcKjxxAx1y6mHAaETQu8,570024
|
|
185
195
|
nexaai/cv_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
186
196
|
nexaai/cv_impl/mlx_cv_impl.py,sha256=gKECQOv8iaWwG3bl7xeqVy2NN_9K7tYerIFzfn4eLo4,3228
|
|
187
197
|
nexaai/cv_impl/pybind_cv_impl.py,sha256=uSmwBste4cT7c8DQmXzRLmzwDf773PAbXNYWW1UzVls,1064
|
|
@@ -400,7 +410,7 @@ nexaai/mlx_backend/tts/interface.py,sha256=0FvZbIyOvg8jERZEQ6bygbv7v02O9xHO4-TPU
|
|
|
400
410
|
nexaai/mlx_backend/vlm/__init__.py,sha256=_25kvMEviX16Hg3bro8Ws70V0eeIEqYKV8ZDXqYzKew,73
|
|
401
411
|
nexaai/mlx_backend/vlm/generate.py,sha256=DqHFEAuqk-nko8ho6U9GAXTDAWz4d8GTe_hCt-XFyCw,19071
|
|
402
412
|
nexaai/mlx_backend/vlm/generate_qwen3_vl.py,sha256=undjso1mfxqpd6FMTksSA5qagRttxAGbOBj1x7cqI1s,9211
|
|
403
|
-
nexaai/mlx_backend/vlm/interface.py,sha256=
|
|
413
|
+
nexaai/mlx_backend/vlm/interface.py,sha256=0BLfodbYOU71jFvAvv01FuLBE_KBtyB-8Cd7LqzzRHY,17450
|
|
404
414
|
nexaai/mlx_backend/vlm/main.py,sha256=nPcg25jupeDD74uvRoxpWp3Dsulw7WddI7vll6zejak,10664
|
|
405
415
|
nexaai/mlx_backend/vlm/modeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
406
416
|
nexaai/mlx_backend/vlm/modeling/convert.py,sha256=ia5i9cgTufFGmKyhkYUaW0nfNqT_bMo8i-Hg_zy5JC4,1863
|
|
@@ -515,7 +525,7 @@ nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/qwen3vl.py,sha256=LArnNtI98B_GJO
|
|
|
515
525
|
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
516
526
|
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/base.py,sha256=4RlZwgz8YX2ngmJNaymxFFpw9hJu-0EMw9xwXpngW9o,3496
|
|
517
527
|
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/cache.py,sha256=NMOB6x-RT6svF4H-Ymo5WqnP7ptAal3aaKjWZXWGMsM,17671
|
|
518
|
-
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/generate.py,sha256=
|
|
528
|
+
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/generate.py,sha256=bchCpnlewysWQss5TQKxdKPXYd5VA7ySUDfRt8Xj_H4,26677
|
|
519
529
|
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/rope_utils.py,sha256=ty0dA3SsEUFtFbHo16tKdnKymrNKKsUO3KMYapMajbY,8704
|
|
520
530
|
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/sample_utils.py,sha256=8SEeVwgjuvaYy-4ALAU0RHQMuRr2k7EkXba_csxk498,10673
|
|
521
531
|
nexaai/mlx_backend/vlm/modeling/models/qwen3_vl/llm_common/tokenizer_utils.py,sha256=Gqanx4hBDcon_k5ClhUsS4YpMbZNiee8jvImGS9h43s,13229
|
|
@@ -537,11 +547,11 @@ nexaai/utils/manifest_utils.py,sha256=sR9Nme4GbD3Cb3fMd55yLvGZpqxb71vd6b2XZTsrIG
|
|
|
537
547
|
nexaai/utils/model_manager.py,sha256=p2kJKK63Zk-rEUucFsgY0T5PyXi_IvJY0gKewUVcAV4,56081
|
|
538
548
|
nexaai/utils/model_types.py,sha256=-DER8L4lAUR_iLS99F0r57avwqWtuN21ug5pX2p24_E,1369
|
|
539
549
|
nexaai/utils/progress_tracker.py,sha256=jdUqtmPqyhwC9uSKvQcJEYETwSt-OhP4oitdJ94614o,15394
|
|
540
|
-
nexaai/utils/quantization_utils.py,sha256=
|
|
550
|
+
nexaai/utils/quantization_utils.py,sha256=FYcNSAKGlBqFDUTx3jSKOr2lnq4nyiyC0ZG8oSxFwiU,7825
|
|
541
551
|
nexaai/vlm_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
542
552
|
nexaai/vlm_impl/mlx_vlm_impl.py,sha256=pLtWm_ckz8a0U-AtAOMVseFDO4OVPvHyYO2KlfBaGYk,10833
|
|
543
553
|
nexaai/vlm_impl/pybind_vlm_impl.py,sha256=FAbhpRJzHgI78r0mUvKybO97R1szvNhH0aTn_I52oT4,8597
|
|
544
|
-
nexaai-1.0.
|
|
545
|
-
nexaai-1.0.
|
|
546
|
-
nexaai-1.0.
|
|
547
|
-
nexaai-1.0.
|
|
554
|
+
nexaai-1.0.16rc14.dist-info/METADATA,sha256=rD9zD2HduPUSrlSkUZUQ4Ut2g6nvwQ-PN0kgODO7TEU,1202
|
|
555
|
+
nexaai-1.0.16rc14.dist-info/WHEEL,sha256=T2p57lol9__xkoU6aJTyN1Pm43ZpRU3q6km7mIbrAMs,114
|
|
556
|
+
nexaai-1.0.16rc14.dist-info/top_level.txt,sha256=LRE2YERlrZk2vfuygnSzsEeqSknnZbz3Z1MHyNmBU4w,7
|
|
557
|
+
nexaai-1.0.16rc14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|