fix: fix the bug when return_numpy is false
Browse files
modeling_jina_embeddings_v4.py
CHANGED
@@ -350,18 +350,19 @@ class JinaEmbeddingsV4Model(Qwen2_5_VLForConditionalGeneration):
|
|
350 |
embeddings = embeddings[:, :truncate_dim]
|
351 |
else:
|
352 |
embeddings = embeddings.multi_vec_emb
|
353 |
-
if return_multivector:
|
354 |
# Get valid token mask from attention_mask
|
355 |
valid_tokens = attention_mask.bool()
|
356 |
# Remove padding by selecting only valid tokens for each sequence
|
357 |
embeddings = [emb[mask] for emb, mask in zip(embeddings, valid_tokens)]
|
358 |
# Stack back into tensor with variable sequence lengths
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
|
|
365 |
if return_numpy:
|
366 |
return np.concatenate([result.numpy() for result in results], axis=0)
|
367 |
return [item for sublist in results for item in sublist]
|
|
|
350 |
embeddings = embeddings[:, :truncate_dim]
|
351 |
else:
|
352 |
embeddings = embeddings.multi_vec_emb
|
353 |
+
if return_multivector and not return_numpy:
|
354 |
# Get valid token mask from attention_mask
|
355 |
valid_tokens = attention_mask.bool()
|
356 |
# Remove padding by selecting only valid tokens for each sequence
|
357 |
embeddings = [emb[mask] for emb, mask in zip(embeddings, valid_tokens)]
|
358 |
# Stack back into tensor with variable sequence lengths
|
359 |
+
results.extend(embeddings)
|
360 |
+
else:
|
361 |
+
results.append(
|
362 |
+
embeddings.cpu()
|
363 |
+
if return_numpy
|
364 |
+
else list(torch.unbind(embeddings))
|
365 |
+
)
|
366 |
if return_numpy:
|
367 |
return np.concatenate([result.numpy() for result in results], axis=0)
|
368 |
return [item for sublist in results for item in sublist]
|