Mode description

This is a sentence-transformers model: It maps sentences & paragraphs to a 512 dimensional dense vector space and can be used for tasks like clustering or semantic search.

Este modelo é do tipo sentence-transformers baseado no modelo ult5-pt-small. Ele mapeia sentenças e parágrafos para vetores denso de dimensão 512, e pode ser utilizado para clustering, similaridades entre textos um busca semântica.

Model type Vocabulary Parameters Context length
ult5-pt-small encoder-decoder 65k 82.4M 1024
sentence-transformer-ult5-pt-small sentence-transformer 65k 51M 1024
DeBERTina-base encoder 32k 100M 512

Use cases

Os modelos sentence-transformers geram embeddings do texto de melhor qualidade do que utilizar embeddings diretamente de encoders como BERT ou T5.

Possíveis aplicações para o modelo são:

Possible use cases:

Base Model

tgsc/ult5-pt-small

Usage (Sentence-Transformers)

O modo mais simples de uso é utilizar a biblioteca sentence-transformers:

Using this model becomes easy when you have sentence-transformers installed:

pip install -U sentence-transformers

Para obter o embeddings:

Then you can use the model like this:

from sentence_transformers import SentenceTransformer
sentences = ["Este é um exemplo de sentença", "A sentença é convertida em um texto de dimensão 513"]

model = SentenceTransformer('tgsc/sentence-transformer-ult5-pt-small')
embeddings = model.encode(sentences)
print(embeddings)

Usage (HuggingFace Transformers)

É possível utilizar o modelo apenas com a biblioteca transfomers. Primeiro, passa-se o texto pelo modelo, e em seguida se aplica a operação de right pooling aos embeddings contextuais do texto.

Without sentence-transformers, you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.

from transformers import AutoTokenizer, T5EncoderModel
import torch


#Mean Pooling - Take attention mask into account for correct averaging
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] #First element of model_output contains all token embeddings
    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)


# Sentences we want sentence embeddings for
sentences = ["Este é um exemplo de sentença", "A sentença é convertida em um texto de dimensão 513"]

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('tgsc/sentence-transformer-ult5-pt-small')
model = T5EncoderModel.from_pretrained('tgsc/sentence-transformer-ult5-pt-small')

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

# Compute token embeddings
with torch.no_grad():
    model_output = model(**encoded_input)

# Perform pooling. In this case, mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

print("Sentence embeddings:")
print(sentence_embeddings)

Similarity example

from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('tgsc/sentence-transformer-ult5-pt-small')

# Two lists of sentences
sentences1 = 10*['A Constituição da República é a norma máxima que regula a organização e funcionamento do Estado, garantindo os direitos fundamentais e estabelecendo os princípios e deveres que norteiam a sociedade brasileira.']


sentences2 = [
# Reescrituras da frase de referência
'Garantindo os direitos fundamentais e estabelecendo os princípios e deveres que norteiam a sociedade brasileira, a Constituição da República é a norma máxima que regula a organização e funcionamento do Estado.',
'A Constituição federal, enquanto lei suprema, determina a organização política da nação, protegendo os direitos fundamentais e estabelecendo as diretrizes e obrigações que conduzem a sociedade brasileira.',
'A Carta magna, como norma fundamental, regula a ordem jurídica e política do Estado, protegendo as garantias fundamentais e estabelecendo os princípios e responsabilidades que direcionam a sociedade brasileira.',
'A Lei maior, que disciplina a organização e o funcionamento dos poderes públicos, garante as liberdades e direitos essenciais e estabelece os valores e compromissos que orientam a sociedade brasileira.',
'A Lei fundamental do Estado, ao definir a estrutura e o funcionamento do Estado, assegura os direitos fundamentais e estabelece as normas e preceitos que orientam a sociedade brasileira.',
# Sentidos diferentes
'O contrato de prestação de serviços deve ser elaborado com clareza e objetividade, definindo as obrigações e responsabilidades de ambas as partes envolvidas.',
'A Lei Geral de Proteção de Dados (LGPD) estabelece as regras para o tratamento e proteção de informações pessoais no Brasil, visando a privacidade e segurança dos titulares.',
'O festival de música contou com a participação de diversas bandas nacionais e internacionais, atraindo um grande público ao longo de três dias de evento.',
'A feira de artesanato reuniu artesãos de diversas regiões do país, oferecendo uma variedade de produtos criativos e exclusivos para os visitantes.',
'O encontro de empreendedorismo contou com a presença de grandes líderes empresariais, que compartilharam suas experiências e estratégias para o sucesso nos negócios.',]

#Compute embedding for both lists
embeddings1 = model.encode(sentences1, convert_to_tensor=True)
embeddings2 = model.encode(sentences2, convert_to_tensor=True)

#Compute cosine-similarities
cosine_scores = util.cos_sim(embeddings1, embeddings2)

#Output the pairs with their score
# Print
print('sentença de referência\n', sentences1[0],'\n')
print('Reescrituras da frase de referência')
for i in range(len(sentences1)):
    print("Score: {:.4f} {} \t\t".format(cosine_scores[i][i], sentences2[i]))
    if i==4:
        print('\nFrases sobre assuntos diferentes')

# sentença de referência
#  A Constituição da República é a norma máxima que regula a organização e funcionamento do Estado, garantindo os direitos fundamentais e estabelecendo os princípios e deveres que norteiam a sociedade brasileira. 

# Reescrituras da frase de referência
# Score: 0.9825 Garantindo os direitos fundamentais e estabelecendo os princípios e deveres que norteiam a sociedade brasileira, a Constituição da República é a norma máxima que regula a organização e funcionamento do Estado. 		
# Score: 0.8496 A Constituição federal, enquanto lei suprema, determina a organização política da nação, protegendo os direitos fundamentais e estabelecendo as diretrizes e obrigações que conduzem a sociedade brasileira. 		
# Score: 0.8192 A Carta magna, como norma fundamental, regula a ordem jurídica e política do Estado, protegendo as garantias fundamentais e estabelecendo os princípios e responsabilidades que direcionam a sociedade brasileira. 		
# Score: 0.8385 A Lei maior, que disciplina a organização e o funcionamento dos poderes públicos, garante as liberdades e direitos essenciais e estabelece os valores e compromissos que orientam a sociedade brasileira. 		
# Score: 0.8745 A Lei fundamental do Estado, ao definir a estrutura e o funcionamento do Estado, assegura os direitos fundamentais e estabelece as normas e preceitos que orientam a sociedade brasileira. 		

# Frases sobre assuntos diferentes
# Score: 0.4742 O contrato de prestação de serviços deve ser elaborado com clareza e objetividade, definindo as obrigações e responsabilidades de ambas as partes envolvidas. 		
# Score: 0.5510 A Lei Geral de Proteção de Dados (LGPD) estabelece as regras para o tratamento e proteção de informações pessoais no Brasil, visando a privacidade e segurança dos titulares. 		
# Score: 0.1828 O festival de música contou com a participação de diversas bandas nacionais e internacionais, atraindo um grande público ao longo de três dias de evento. 		
# Score: 0.1489 A feira de artesanato reuniu artesãos de diversas regiões do país, oferecendo uma variedade de produtos criativos e exclusivos para os visitantes. 		
# Score: 0.2284 O encontro de empreendedorismo contou com a presença de grandes líderes empresariais, que compartilharam suas experiências e estratégias para o sucesso nos negócios. 

Citation

@misc{ult5-pt2023,
  author = {Thacio Garcia Scandaroli},
  title = {ULT5-pt: Portuguese Language Model trained with UL2},
  year = {2023},
}
Downloads last month
69
Safetensors
Model size
51M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.