gte-micro-v4

Mihaiii
Similitud de oraciones

Este es un modelo reducido de gte-tiny. Ha sido diseñado para su uso en autocompletado semántico y tiene propósitos de extracción de características mediante la utilización de diversos métodos como Sentence-Transformers y HuggingFace Transformers.

Como usar

Uso (Sentence-Transformers)

Para usar este modelo con Sentence-Transformers, se requiere tener instalado el paquete:

pip install -U sentence-transformers

Después, se puede utilizar el modelo de la siguiente manera:

from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]

model = SentenceTransformer('Mihaiii/gte-micro-v4')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

Sin usar Sentence-Transformers, se puede usar el modelo de la siguiente manera: Primero, se pasa la entrada a través del modelo transformer, luego se aplica la operación de agrupación adecuada sobre las incrustaciones de palabras contextualizadas:

from transformers import AutoTokenizer, AutoModel
import torch

#Mean Pooling - Tener en cuenta la máscara de atención para una media correcta
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] #El primer elemento de model_output contiene todas las incrustaciones 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 que queremos incrustaciones de oraciones
sentences = ['This is an example sentence', 'Each sentence is converted']

# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('Mihaiii/gte-micro-v4')
model = AutoModel.from_pretrained('Mihaiii/gte-micro-v4')

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

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

# Realizar la agrupación. En este caso, agrupación media.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Compatibilidad con Sentence-Transformers
Compatibilidad con HuggingFace Transformers
Extracción de características
Inferencia de similitud de oraciones

Casos de uso

Autocompletado semántico
Predicción de similitud entre oraciones
Clasificación de opiniones en Amazon
Agrupamiento de documentos en Arxiv