BEE-spoke-data/bert-plus-L8-v1.0-syntheticSTS-4k

BEE-spoke-data
Similitud de oraciones

Este es un modelo de sentence-transformers: Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y puede ser usado para tareas como agrupación o búsqueda semántica. Es una continuación del ajuste fino de BEE-spoke-data/bert-plus-L8-v1.0-allNLI_matryoshka con contexto 4096 en el conjunto de datos sintético de similitud de texto de text1, text2, label. Dimensiones de Matryoshka: [768, 512, 256, 128, 64]

Como usar

Uso (transformadores de oraciones)

Usar este modelo se vuelve fácil cuando tienes sentence-transformers instalado:

pip install -U sentence-transformers

Entonces puedes usar el modelo así:

from sentence_transformers import SentenceTransformer
sentences = ["Esta es una oración de ejemplo", "Cada oración se convierte"]

model = SentenceTransformer('BEE-spoke-data/bert-plus-L8-v1.0-syntheticSTS-4k')
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 sobre los embeddings de palabras contextualizados.

from transformers import AutoTokenizer, AutoModel
import torch

# Agrupamiento medio - Tener en cuenta la máscara de atención para un promedio correcto
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] # El primer elemento de model_output contiene todos los embeddings de 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)

# Oraciones para las cuales queremos embeddings
sentences = ['Esta es una oración de ejemplo', 'Cada oración se convierte']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('BEE-spoke-data/bert-plus-L8-v1.0-syntheticSTS-4k')
model = AutoModel.from_pretrained('BEE-spoke-data/bert-plus-L8-v1.0-syntheticSTS-4k')

# Tokenizar oraciones
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

# Calcular embeddings de tokens
with torch.no_grad():
    model_output = model(**encoded_input)

# Realizar agrupamiento, en este caso agrupamiento medio
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

print("Embeddings de oraciones:")
print(sentence_embeddings)

Funcionalidades

similaridad de oraciones
transformadores de oraciones
ONNX
Safetensors
Transformers
extracción de características
embeddings de documentos
datos sintéticos
inferencia de embeddings de texto
dimensiones Matryoshka

Casos de uso

Agrupación de oraciones
Búsqueda semántica