Skip to content

Commit e6cfcb8

Browse files
committed
debug mmultimodel cache
1 parent a08a739 commit e6cfcb8

File tree

6 files changed

+33
-109
lines changed

6 files changed

+33
-109
lines changed

modelcache/embedding/clip_demo.py

-49
This file was deleted.

modelcache_mm/adapter/adapter_insert.py

+10-9
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@ def adapt_insert(*args, **kwargs):
3838
raise ValueError("Both pre_embedding_image_url and pre_embedding_image_raw cannot be non-empty at the same time.")
3939

4040
if pre_embedding_image_url:
41-
url_start_time = time.time()
42-
response = requests.get(pre_embedding_image_url)
43-
image_data = response.content
44-
pre_embedding_image = base64.b64encode(image_data).decode('utf-8')
45-
get_image_time = '{}s'.format(round(time.time() - url_start_time, 2))
46-
print('get_image_time: {}'.format(get_image_time))
41+
# url_start_time = time.time()
42+
# response = requests.get(pre_embedding_image_url)
43+
# image_data = response.content
44+
# pre_embedding_image = base64.b64encode(image_data).decode('utf-8')
45+
# get_image_time = '{}s'.format(round(time.time() - url_start_time, 2))
46+
# print('get_image_time: {}'.format(get_image_time))
47+
pre_embedding_image = pre_embedding_image_url
4748
elif pre_embedding_image_raw:
4849
pre_embedding_image = pre_embedding_image_raw
4950
else:
@@ -70,9 +71,9 @@ def adapt_insert(*args, **kwargs):
7071
print('text_embeddings: {}'.format(text_embeddings))
7172

7273
if len(image_embeddings) > 0 and len(image_embeddings) > 0:
73-
image_embedding = np.array(image_embeddings[0])
74-
text_embedding = text_embeddings[0]
75-
embedding_data = np.concatenate((image_embedding, text_embedding))
74+
# image_embedding = np.array(image_embeddings[0])
75+
# text_embedding = text_embeddings[0]
76+
embedding_data = np.concatenate((image_embeddings, text_embeddings))
7677
mm_type = 'mm'
7778
elif len(image_embeddings) > 0:
7879
image_embedding = np.array(image_embeddings[0])

modelcache_mm/adapter/adapter_query.py

+16-12
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,20 @@ def adapt_query(cache_data_convert, *args, **kwargs):
3030
pre_embedding_image_raw = pre_embedding_data_dict['imageRaw']
3131
pre_embedding_image_url = pre_embedding_data_dict['imageUrl']
3232
pre_multi_type = pre_embedding_data_dict['multiType']
33-
# print('pre_embedding_image_url: {}'.format(pre_embedding_image_url))
34-
# print('pre_embedding_text: {}'.format(pre_embedding_text))
3533

3634
# 判断逻辑
3735
if pre_multi_type == 'IMG_TEXT':
3836
if pre_embedding_image_raw and pre_embedding_image_url:
3937
raise ValueError(
4038
"Both pre_embedding_imageUrl and pre_embedding_imageRaw cannot be non-empty at the same time.")
4139
if pre_embedding_image_url:
42-
url_start_time = time.time()
43-
response = requests.get(pre_embedding_image_url)
44-
image_data = response.content
45-
pre_embedding_image = base64.b64encode(image_data).decode('utf-8')
46-
get_image_time = '{}s'.format(round(time.time() - url_start_time, 2))
47-
print('get_image_time: {}'.format(get_image_time))
40+
# url_start_time = time.time()
41+
# response = requests.get(pre_embedding_image_url)
42+
# image_data = response.content
43+
# pre_embedding_image = base64.b64encode(image_data).decode('utf-8')
44+
# get_image_time = '{}s'.format(round(time.time() - url_start_time, 2))
45+
# print('get_image_time: {}'.format(get_image_time))
46+
pre_embedding_image = pre_embedding_image_url
4847
elif pre_embedding_image_raw:
4948
pre_embedding_image = pre_embedding_image_raw
5049
else:
@@ -63,7 +62,7 @@ def adapt_query(cache_data_convert, *args, **kwargs):
6362
if cache_enable:
6463
if pre_multi_type == 'IMG_TEXT':
6564
embedding_data_resp = time_cal(
66-
chat_cache.embedding_concurrent_func,
65+
chat_cache.embedding_func,
6766
func_name="iat_embedding",
6867
report_func=chat_cache.report.embedding,
6968
)(data_dict)
@@ -76,10 +75,15 @@ def adapt_query(cache_data_convert, *args, **kwargs):
7675
image_embeddings = embedding_data_resp['image_embedding']
7776
text_embeddings = embedding_data_resp['text_embeddings']
7877

78+
print('image_embeddings: {}'.format(image_embeddings))
79+
print('image_embeddings_len: {}'.format(len(image_embeddings)))
80+
print('text_embeddings: {}'.format(text_embeddings))
81+
print('text_embeddings_len: {}'.format(len(text_embeddings)))
82+
7983
if len(image_embeddings) > 0 and len(image_embeddings) > 0:
80-
image_embedding = np.array(image_embeddings[0])
81-
text_embedding = np.array(text_embeddings[0])
82-
embedding_data = np.concatenate((image_embedding, text_embedding))
84+
# image_embedding = np.array(image_embeddings[0])
85+
# text_embedding = np.array(text_embeddings[0])
86+
embedding_data = np.concatenate((image_embeddings, text_embeddings))
8387
mm_type = 'mm'
8488
elif len(image_embeddings) > 0:
8589
image_embedding = np.array(image_embeddings[0])

modelcache_mm/core.py

-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ def __init__(self):
2020
self.query_pre_embedding_func = None
2121
self.insert_pre_embedding_func = None
2222
self.embedding_func = None
23-
self.embedding_concurrent_func = None
2423
self.data_manager: Optional[DataManager] = None
2524
self.similarity_evaluation: Optional[SimilarityEvaluation] = None
2625
self.post_process_messages_func = None
@@ -34,7 +33,6 @@ def init(
3433
query_pre_embedding_func=None,
3534
insert_pre_embedding_func=None,
3635
embedding_func=string_embedding,
37-
embedding_concurrent_func=string_embedding,
3836
data_manager: DataManager = get_data_manager(),
3937
similarity_evaluation=ExactMatchEvaluation(),
4038
post_process_messages_func=first,
@@ -46,7 +44,6 @@ def init(
4644
self.query_pre_embedding_func = query_pre_embedding_func
4745
self.insert_pre_embedding_func = insert_pre_embedding_func
4846
self.embedding_func = embedding_func
49-
self.embedding_concurrent_func = embedding_concurrent_func
5047
self.data_manager: DataManager = data_manager
5148
self.similarity_evaluation = similarity_evaluation
5249
self.post_process_messages_func = post_process_messages_func

modelcache_mm/embedding/__init__.py

+3-28
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from modelcache.utils.lazy_import import LazyImport
3-
huggingface = LazyImport("huggingface", globals(), "modelcache.embedding.huggingface")
4-
data2vec = LazyImport("data2vec", globals(), "modelcache.embedding.data2vec")
5-
llmEmb = LazyImport("llmEmb", globals(), "modelcache.embedding.llmEmb")
6-
fasttext = LazyImport("fasttext", globals(), "modelcache.embedding.fasttext")
7-
paddlenlp = LazyImport("paddlenlp", globals(), "modelcache.embedding.paddlenlp")
8-
timm = LazyImport("timm", globals(), "modelcache.embedding.timm")
3+
clip = LazyImport("clip", globals(), "modelcache_mm.embedding.clip")
94

105

11-
def Huggingface(model="sentence-transformers/all-mpnet-base-v2"):
12-
return huggingface.Huggingface(model)
13-
14-
15-
def Data2VecAudio(model="facebook/data2vec-audio-base-960h"):
16-
return data2vec.Data2VecAudio(model)
17-
18-
19-
def LlmEmb2vecAudio():
20-
return llmEmb.LlmEmb2Vec()
21-
22-
23-
def FastText(model="en", dim=None):
24-
return fasttext.FastText(model, dim)
25-
26-
27-
def PaddleNLP(model="ernie-3.0-medium-zh"):
28-
return paddlenlp.PaddleNLP(model)
29-
30-
31-
def Timm(model="resnet50", device="default"):
32-
return timm.Timm(model, device)
6+
def Clip2Vec(model="damo/multi-modal_clip-vit-base-patch16_zh"):
7+
return clip.ClipAudio(model)

modelcache/embedding/clip.py renamed to modelcache_mm/embedding/clip.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,11 @@
1414

1515

1616
class ClipAudio(BaseEmbedding):
17-
def __init__(self, model: str = "sentence-transformers/all-MiniLM-L6-v2"):
18-
# current_dir = os.path.dirname(os.path.abspath(__file__))
19-
# parent_dir = os.path.dirname(current_dir)
20-
# model_dir = os.path.dirname(parent_dir)
21-
# model = os.path.join(model_dir, 'model/text2vec-base-chinese/')
22-
17+
def __init__(self, model: str = 'damo/multi-modal_clip-vit-base-patch16_zh'):
18+
self.model = model
19+
self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
2320
self.clip_pipeline = pipeline(task=Tasks.multi_modal_embedding,
24-
model='damo/multi-modal_clip-vit-base-patch16_zh', model_revision='v1.0.1')
25-
21+
model=model, model_revision='v1.0.1')
2622
self.__dimension = 1024
2723

2824
def to_embeddings(self, data_dict, **_):

0 commit comments

Comments
 (0)