load_models checks for device before getting the BGE or NLI model loaded in memory. Was defaulting to CPU. And removed gunk for load_sql (#119)

Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-261.local>
This commit is contained in:
Salman Paracha 2024-10-04 13:09:35 -07:00 committed by GitHub
parent 093891b5f8
commit 701187474f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,23 +2,28 @@ import os
import sentence_transformers import sentence_transformers
from transformers import AutoTokenizer, pipeline from transformers import AutoTokenizer, pipeline
import sqlite3 import sqlite3
from app.employee_data_generator import generate_employee_data import torch
from app.network_data_generator import (
generate_device_data,
generate_interface_stats_data,
generate_flow_data,
)
def get_device():
if torch.cuda.is_available():
device = "cuda"
elif torch.backends.mps.is_available():
device = "mps"
else:
device = "cpu"
return device
def load_transformers(models=os.getenv("MODELS", "BAAI/bge-large-en-v1.5")): def load_transformers(models=os.getenv("MODELS", "BAAI/bge-large-en-v1.5")):
transformers = {} transformers = {}
device = get_device()
print(f"Using device: {device}")
for model in models.split(","): for model in models.split(","):
transformers[model] = sentence_transformers.SentenceTransformer(model) transformers[model] = sentence_transformers.SentenceTransformer(model, device=device)
return transformers return transformers
def load_guard_model( def load_guard_model(
model_name, model_name,
hardware_config="cpu", hardware_config="cpu",
@ -52,27 +57,11 @@ def load_zero_shot_models(
models=os.getenv("ZERO_SHOT_MODELS", "tasksource/deberta-base-long-nli") models=os.getenv("ZERO_SHOT_MODELS", "tasksource/deberta-base-long-nli")
): ):
zero_shot_models = {} zero_shot_models = {}
device = get_device()
for model in models.split(","): for model in models.split(","):
zero_shot_models[model] = pipeline("zero-shot-classification", model=model) zero_shot_models[model] = pipeline("zero-shot-classification", model=model, device=device)
return zero_shot_models return zero_shot_models
if __name__ =="__main__":
def load_sql(): print(get_device())
# Example Usage
conn = sqlite3.connect(":memory:")
# create and load the employees table
generate_employee_data(conn)
# create and load the devices table
device_data = generate_device_data(conn)
# create and load the interface_stats table
generate_interface_stats_data(conn, device_data)
# create and load the flow table
generate_flow_data(conn, device_data)
return conn