2017-04-21 2 views
0

문장의 예측 감정에 순진한 베이지 알고리즘을 사용하고 있습니다. 나는 미래의 사용을위한 모델을 만들고있다. 나는 cpickle을 사용하여 모델을 저장하고 있습니다. 그러나 문장을로드하고 예측할 때 너무 많은 시간이 걸립니다. 약 100MB의 .pkl 파일을로드하는 데 너무 많은 시간이 걸립니다. 3 가지 모델이 있습니다. 저는 Python에서 Flask 마이크로 서비스를 사용하고 있습니다. 따라서 모든 요청마다 각 모델 (.pkl)이로드되어 출력됩니다. 요청 당 약 30-45 초 걸립니다. Naive Bayes 모델 (.pkl)이 예측하는 데 너무 많은 시간이 걸립니다.

def predict(sentence): 
    test = cPickle.load(open('model.pkl')) 
    print test.predict([sentence])[0] 
    print max(test.predict_proba([sentence])[0]) 

는 또한 요청하기 전에 모델을로드하려고했으나 WSGI 서버는 새로운 플라스크 인스턴스마다 시작하고 메모리에 모델을로드합니다. 그래서 너무 많은 기억이 필요합니다.

내 질문은?
내가 레디 스에서 모델/모든 DB
을 절약 할 수 있습니다 또는 내가 cpickel 파일의 로딩 시간을 줄일 수있는 방법은 어떤 방법이 있나요.입니다

감사합니다.

답변

0

요청을 신속하게 처리하려면 메모리에 모델을 보관하는 것이 가장 좋습니다.

다른 요청은 새로운 요청이있을 때마다 모델을 읽는 것 뿐이므로, 서버가 꽤 빨리 오버로드됩니다.

당신이 제안한 것처럼 실제로 모델을 메모리 내 솔루션 인 redis에 저장하는 것이 좋습니다.

관련 문제