Nesta seção, você aprenderá sobre uma das opções mais convenientes disponíveis para gerar embeddings de texto, que é baseada no framework SentenceTransformers .
Trabalhar com SentenceTransformers é o caminho recomendado enquanto você explora e se familiariza com o uso de embeddings, já que os modelos disponíveis nesse framework podem ser instalados no seu computador, têm um desempenho razoável sem uma GPU e são gratuitos.
Instalar SentenceTransformers
O framework SentenceTransformers é instalado como um pacote Python. Certifique-se de que seu ambiente virtual Python esteja ativado e, em seguida, execute o seguinte comando no seu terminal para instalar este framework:
Como sempre, ao adicionar novas dependências ao seu projeto, é uma boa prática atualizar o arquivo de requisitos:
Selecionando um Modelo
A próxima tarefa é decidir qual modelo de aprendizado de máquina usar para a geração de embeddings. Existe uma lista de modelos pré-treinados na documentação. Como o SentenceTransformers é um framework muito popular, também existem modelos compatíveis criados por pesquisadores não diretamente associados a ele. Para ver uma lista completa dos modelos que podem ser usados, você pode consultar a tag SentenceTransformers no HuggingFace.
Para os propósitos deste tutorial, não é necessário se preocupar demais com a seleção do modelo, pois qualquer modelo será suficiente. A documentação do SentenceTransformers inclui a seguinte nota com relação aos seus modelos pré-treinados:
"Os modelos all-* foram treinados com todos os dados de treinamento disponíveis (mais de 1 bilhão de pares de treinamento) e foram projetados como modelos de propósito geral." O modelo all-mpnet-base-v2 oferece a melhor qualidade, enquanto o all-MiniLM-L6-v2 é 5 vezes mais rápido e ainda oferece boa qualidade."
Isso parece sugerir que o modelo all-MiniLM-L6-v2 deles é uma boa escolha que oferece um bom compromisso entre velocidade e qualidade, então vamos usar este modelo. Localize este modelo na tabela e clique no ícone "info" para ver algumas informações sobre ele.

Um detalhe interessante que é bom ter em mente sobre o modelo escolhido é o comprimento dos embeddings gerados, ou seja, quantos números ou dimensões os vetores resultantes terão. Isso é importante porque afeta diretamente a quantidade de armazenamento que você precisará. No caso de all-MiniLM-L6-v2, os vetores gerados têm 384 dimensões.
Carregando o Modelo
O código Python a seguir demonstra como o modelo é carregado. Você pode tentar isso em um shell do Python.
Na primeira vez que você fizer isso, o modelo será baixado e instalado em seu ambiente virtual, portanto, a chamada pode demorar um pouco para retornar. Uma vez que o modelo esteja instalado, instanciá-lo não deve demorar muito.
Geração de Incorporações
Com o modelo instanciado, você está agora pronto para gerar um embedding. Para fazer isso, passe o texto de origem para o método model.encode() :
O resultado é uma matriz com todos os números que compõem a representação. Como você deve se lembrar, os embeddings gerados pelo modelo escolhido têm 384 dimensões, então este é o comprimento da matriz embedding .
Anteriormente
Introdução a IncorporaçõesPróximo
Armazenando Incorporações