sbert-paper
salsabiilashifa11
Similitud de oraciones
Este es un modelo de sentence-transformers afinado específicamente entrenado en documentos de artículos científicos.
Como usar
Uso (Sentence-Transformers)
Usar este modelo es fácil cuando tienes sentence-transformers instalado:
pip install -U sentence-transformers
Luego puedes usar el modelo así:
from sentence_transformers import SentenceTransformer
sentences = [
"La Interacción Humano-Computadora (HCI) puede mejorar la formación en regulación emocional",
"Una de las formas más efectivas de regulación emocional en los jóvenes es a través de la reevaluación cognitiva",
"El análisis empresarial es una forma extensiva de usar datos"
]
model = SentenceTransformer('salsabiilashifa11/sbert-paper')
embeddings = model.encode(sentences)
print(embeddings)
Uso (HuggingFace Transformers)
Sin sentence-transformers, puedes usar el modelo así: Primero, pasas tu entrada a través del modelo transformer, luego tienes que aplicar la operación de agrupamiento correcta en la parte superior de las incrustaciones de palabras contextualizadas.
from transformers import AutoTokenizer, AutoModel
import torch
import torch.nn.functional as F
# Mean Pooling - Tomar la máscara de atención en cuenta para un promediado correcto
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] # El primer elemento de model_output contiene todas las incrustaciones de los tokens
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
# Frases para las que queremos obtener incrustaciones de frases
sentences = [
"La Interacción Humano-Computadora (HCI) puede mejorar la formación en regulación emocional",
"Una de las formas más efectivas de regulación emocional en los jóvenes es a través de la reevaluación cognitiva",
"El análisis empresarial es una forma extensiva de usar datos"
]
# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-mpnet-base-v2')
model = AutoModel.from_pretrained('salsabiilashifa11/sbert-paper')
# Tokenizar las frases
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Calcular las incrustaciones de los tokens
with torch.no_grad():
model_output = model(**encoded_input)
# Realizar el agrupamiento
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
# Normalizar las incrustaciones
sentence_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)
print("Incrustaciones de frases:")
print(sentence_embeddings)
Entrenamiento
El modelo fue entrenado con los parámetros:
- DataLoader: un DataLoader sin duplicados con una longitud de 200 y parámetros:
{'batch_size': 8}
- Pérdida:
MultipleNegativesRankingLoss con parámetros: {'scale': 20.0, 'similarity_fct': 'cos_sim'}
- Parámetros del método fit():
{'epochs': 3, 'evaluation_steps': 0, 'evaluator': 'NoneType', 'max_grad_norm': 1, 'optimizer_class': '', 'optimizer_params': {'lr': 2e-05}, 'scheduler': 'WarmupLinear', 'steps_per_epoch': null, 'warmup_steps': 60, 'weight_decay': 0.01}
Funcionalidades
- sentence-transformers
- PyTorch
- Transformers
- mpnet
- fill-mask
- feature-extraction
- compatible con AutoTrain
- compatible con Endpoints
- Región: US
Casos de uso
- Regulación emocional a través de la reevaluación cognitiva
- Análisis empresarial usando datos