INNER CODE UNIT · Python
__init__
tensorchord/modelz-llm · src/modelz_llm/emb.py:12
def __init__(self, model_name: str, device: str) -> None:
self.model_name = model_name
self.tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
self.model = transformers.AutoModel.from_pretrained(model_name)
if device == "auto":
self.device = (
torch.cuda.current_device() if torch.cuda.is_available() else "cpu"
)
else:
self.device = device
self.model = self.model.to(self.device)
self.model.eval()
# copied from https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2#usage-huggingface-transformers
def get_embedding_with_token_count(self, sentences: Union[str, List[str]]):
# Mean Pooling - Take attention mask into account for correct averaging
def mean_pooling(model_output, attention_mask):