Spaces:
Sleeping
Sleeping
Update processor_bert.py
Browse files- processor_bert.py +16 -4
processor_bert.py
CHANGED
|
@@ -9,6 +9,7 @@ Kaise kaam karta hai:
|
|
| 9 |
"""
|
| 10 |
from __future__ import annotations
|
| 11 |
import os
|
|
|
|
| 12 |
import numpy as np
|
| 13 |
import joblib
|
| 14 |
|
|
@@ -18,6 +19,8 @@ _embedding_model = None
|
|
| 18 |
_classifier = None
|
| 19 |
_ort_session = None
|
| 20 |
_ort_tokenizer = None
|
|
|
|
|
|
|
| 21 |
|
| 22 |
MODEL_PATH = os.path.join(os.path.dirname(__file__), 'models', 'log_classifier.joblib')
|
| 23 |
ONNX_DIR = os.path.join(os.path.dirname(__file__), 'models', 'onnx')
|
|
@@ -25,12 +28,18 @@ CONFIDENCE_THRESHOLD = 0.30
|
|
| 25 |
DEFAULT_BATCH = 64
|
| 26 |
|
| 27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
def _load_models():
|
| 29 |
-
"""Lazily load models β
|
| 30 |
-
global _USE_ONNX, _embedding_model, _classifier, _ort_session, _ort_tokenizer
|
| 31 |
|
| 32 |
-
|
| 33 |
-
|
|
|
|
| 34 |
|
| 35 |
# ββ Classifier load karo βββββββββββββββββββββββββββββββ
|
| 36 |
if not os.path.exists(MODEL_PATH):
|
|
@@ -72,6 +81,9 @@ def _load_models():
|
|
| 72 |
_embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
|
| 73 |
print('[BERT] β οΈ PyTorch mode (install ONNX for 3-5x speedup)')
|
| 74 |
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
def _embed_onnx(texts: list[str]) -> np.ndarray:
|
| 77 |
"""ONNX Runtime se embeddings generate karo β FAST."""
|
|
|
|
| 9 |
"""
|
| 10 |
from __future__ import annotations
|
| 11 |
import os
|
| 12 |
+
import threading
|
| 13 |
import numpy as np
|
| 14 |
import joblib
|
| 15 |
|
|
|
|
| 19 |
_classifier = None
|
| 20 |
_ort_session = None
|
| 21 |
_ort_tokenizer = None
|
| 22 |
+
_model_ready = False
|
| 23 |
+
_load_lock = threading.Lock()
|
| 24 |
|
| 25 |
MODEL_PATH = os.path.join(os.path.dirname(__file__), 'models', 'log_classifier.joblib')
|
| 26 |
ONNX_DIR = os.path.join(os.path.dirname(__file__), 'models', 'onnx')
|
|
|
|
| 28 |
DEFAULT_BATCH = 64
|
| 29 |
|
| 30 |
|
| 31 |
+
def preload_models():
|
| 32 |
+
"""App startup pe background thread mein models load karo."""
|
| 33 |
+
threading.Thread(target=_load_models, daemon=True).start()
|
| 34 |
+
|
| 35 |
+
|
| 36 |
def _load_models():
|
| 37 |
+
"""Lazily load models β thread-safe, sirf ek baar load hoga."""
|
| 38 |
+
global _USE_ONNX, _embedding_model, _classifier, _ort_session, _ort_tokenizer, _model_ready
|
| 39 |
|
| 40 |
+
with _load_lock:
|
| 41 |
+
if _classifier is not None:
|
| 42 |
+
return # Already loaded
|
| 43 |
|
| 44 |
# ββ Classifier load karo βββββββββββββββββββββββββββββββ
|
| 45 |
if not os.path.exists(MODEL_PATH):
|
|
|
|
| 81 |
_embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
|
| 82 |
print('[BERT] β οΈ PyTorch mode (install ONNX for 3-5x speedup)')
|
| 83 |
|
| 84 |
+
_model_ready = True
|
| 85 |
+
print('[BERT] β
Models ready!')
|
| 86 |
+
|
| 87 |
|
| 88 |
def _embed_onnx(texts: list[str]) -> np.ndarray:
|
| 89 |
"""ONNX Runtime se embeddings generate karo β FAST."""
|