Spaces:
Sleeping
Sleeping
from transformers import AutoTokenizer, AutoModel | |
import torch | |
import os | |
import gradio as gr | |
# Load Hugging Face Token | |
HF_TOKEN = os.getenv("HF_TOKEN") | |
if not HF_TOKEN: | |
raise ValueError("β Hugging Face API token not found! Set HF_TOKEN as an environment variable.") | |
# Load tokenizer and model | |
tokenizer = AutoTokenizer.from_pretrained("mental/mental-bert-base-uncased", use_auth_token=HF_TOKEN) | |
model = AutoModel.from_pretrained("mental/mental-bert-base-uncased", use_auth_token=HF_TOKEN,output_hidden_states=True) | |
model.eval() # Set model to evaluation mode | |
def infer(text): | |
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512) | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
last_hidden_state = outputs.last_hidden_state # (1, seq_len, hidden_size) | |
mask = inputs['attention_mask'].unsqueeze(-1).expand(last_hidden_state.size()).float() | |
masked_embeddings = last_hidden_state * mask | |
summed = torch.sum(masked_embeddings, dim=1) | |
counts = torch.clamp(mask.sum(dim=1), min=1e-9) | |
mean_pooled = summed / counts | |
return mean_pooled.squeeze().tolist() | |
# Gradio interface | |
iface = gr.Interface( | |
fn=infer, | |
inputs=[ | |
gr.Textbox(label="text"), | |
], | |
outputs="text" | |
) | |
iface.launch() | |