【发布时间】:2021-06-26 12:31:09
【问题描述】:
在每次搜索请求期间,都会使用此功能,需要 2 秒的时间:
def get_model(config:dict):
return gensim.models.Word2Vec.load(config['path_model']).wv
是否可以打开一次,保存在缓存或redis中,然后再次使用以加快搜索速度?
我已经尝试过这个选项:
model = get_model(config)
pickled_object = pickle.dumps(model)
key = 'model_object'
redis_instance.set(key, pickled_object)
比我明白的:
t0 = time.time()
get_object = redis_instance.get('model_object')
t1 = time.time()
total = t1-t0
print('Get object', total)
t0 = time.time()
model = pickle.loads(get_object)
t1 = time.time()
total = t1-t0
print('Pickle loads', total)
但处理时间没有改变。
Mar 30 09:47:54 ip-172-31-25-211 gunicorn[27354]: Get object 1.2066564559936523
Mar 30 09:47:54 ip-172-31-25-211 gunicorn[27354]: Pickle loads 0.854522705078125
【问题讨论】:
-
检查 Redis 模块 redisai.io 可能与您的情况相关。支持存储模型并在 Redis 上运行,减少加载时间。
标签: python caching redis word2vec