Incorporações

Explore mais sobre o que o RAG Cookbook tem a oferecer para obter um insight mais aprofundado das soluções RAG atuais

Um leadspace recolorido usando o leadspace do Watson para atenção ao cliente como base.
Visão geral

Modelos de embedding são redes neurais baseadas em transformadores que transformam partes de documentos (ou seja, trechos de texto) em uma representação numérica ou vetor. O conteúdo com significado ou semântica semelhante será mapeado para uma representação semelhante no espaço latente, como vemos na imagem abaixo.

A vetorização da linguagem possibilita aplicações impulsionadas por IA como "chat com documentos" ou busca semântica, em vez da busca tradicional por palavras-chave (lexical).

Diagrama ilustrando o conceito de tópicos relacionados por embedding dentro de um espaço vetorial.
Considerações

Relação desempenho x custo

O modelo de embedding escolhido afetará significativamente a precisão da recuperação, a latência e o custo computacional do seu sistema RAG. A escolha do modelo de embedding será em grande parte influenciada pelo tamanho, que depende de duas características: a dimensão do embedding e o número de parâmetros do modelo.

Modelos de embedding maiores normalmente aumentam o desempenho de recuperação, porém geram maior latência, necessidade de armazenamento e custo computacional (financeiro). Por outro lado, um modelo de embedding menor geralmente oferece desempenho de recuperação reduzido, mas ocupa menos memória, exige menos poder de computação e é mais rápido em termos de tempo de execução. Escolha um modelo de embedding que equilibre os requisitos de desempenho com os recursos disponíveis.

Certos modelos de embedding são específicos de idioma (por exemplo, modelos de embedding em espanhol desenvolvidos para clientes espanhóis) e específicos de domínio (por exemplo, um modelo treinado com terminologia de oncologia para permitir RAG em arquivos médicos).

Soluções IBM

Modelos de embedding disponíveis no watsonx

É recomendado o uso de modelos de embedding implementados no watsonx, como os modelos Slate da IBM ou os modelos de terceiros indicados a seguir. Leia esta documentação para obter detalhes sobre cada modelo. Para obter mais informações sobre classes de cobrança, consulte os planos de cobrança do watsonx.

Modelos IBM Slate

Nome do modeloAPI model_idClasses de cobrançaMáximo de tokens de entradaNúmero de dimensõesMais informações
slate-125m-english-rtrvribm/slate-125m-english-rtrvrClasse C1                  512                768Ficha do modelo
slate-30m-english-rtrvribm/slate-30m-english-rtrvrClasse C1                  512                384Ficha do modelo

 

slate-125m-english-rtrvr

O modelo de base slate-125m-english-rtrvr é fornecido pela IBM. O modelo de base slate-125m-english-rtrvr gera embeddings para várias entradas, como consultas, trechos ou documentos. O objetivo de treinamento é maximizar a similaridade cosseno entre uma consulta e um trecho. Esse processo produz dois embeddings de sentenças, um que representa a pergunta e outro que representa o trecho, permitindo a comparação entre os dois por meio da similaridade cosseno.

Utilização: duas a três vezes mais lento, mas com desempenho ligeiramente melhor do que o modelo slate-30m-english-rtrvr. Idiomas suportados: inglês

slate-30m-english-rtrvr

O modelo de base slate-30m-english-rtrvr é uma versão simplificada do slate-125m-english-rtrvr, ambos fornecidos pela IBM. O modelo de embedding slate-30m-english-rtrvr é treinado para maximizar a similaridade cosseno entre dois inputs de texto, de modo que os embeddings possam ser avaliados com base na similaridade posteriormente.

Utilização: duas a três vezes mais rápido e com pontuações de desempenho ligeiramente inferiores ao modelo slate-125m-english-rtrvr. Idiomas suportados: inglês

Modelos de embedding de terceiros disponíveis com o watsonx

Nome do modeloAPI model_idFornecedorClasses de cobrançaMáximo de tokens de entradaNúmero de dimensõesMais informações
all-minilm-l12-v2sentence-transformers/all-minilm-l12-v2Comunidade de processamento de linguagem natural (PLN) e visão computacional (CV) de código abertoClasse C1           256           384Ficha do modelo
multilingual-e5-largeintfloat/multilingual-e5-largeMicrosoftClasse C1            512           1024Ficha do modelo, artigo de pesquisa
all-minilm-l12-v2

O modelo de embedding all-minilm-l12-v2 é desenvolvido pela comunidade de processamento de linguagem natural (PLN) e computer vision (CV) de código aberto, fornecido pela HuggingFace.

Idiomas suportados: inglês

multilingual-e5-large

Utilização: para casos de uso em que você deseja gerar embeddings de texto para texto em um idioma diferente do inglês.

Idiomas naturais compatíveis: até 100 idiomas. Consulte a ficha do modelo para ver os detalhes.

Para obter mais informações sobre os modelos de embedding compatíveis, consulte a documentação do watsonx.

Guia rápido de início com embeddings no watsonx usando o SDK Python

Instale a biblioteca Python ibm-watsonx-ai
pip install -U ibm-watsonx-ai
Use a API de embeddings do watsonx e os modelos disponíveis para gerar embeddings de texto.
from ibm_watsonx_ai.metanames import EmbedTextParamsMetaNames as EmbedParams
from ibm_watsonx_ai.foundation_models.utils.enums import EmbeddingTypes
from ibm_watsonx_ai.foundation_models import Embeddings

# Defina truncate_input_tokens como um valor que seja igual ou menor que o máximo permitido de tokens para o modelo de embedding que você está usando. Se você não especificar esse valor e a entrada tiver mais tokens do que o modelo pode processar, um erro será gerado.

embed_params = {
 EmbedParams.TRUNCATE_INPUT_TOKENS: 128,
 EmbedParams.RETURN_OPTIONS: {
 'input_text': True
 }
}

embedding = Embeddings(
 model_id=EmbeddingTypes.IBM_SLATE_30M_ENG,
 credentials=credentials,
 params=embed_params,
 project_id=project_id,
 space_id=None,
 verify=False
)

q = [
 "Um modelo de base é um modelo de IA generativa em larga escala que pode ser adaptado a uma ampla gama de tarefas subsequentes.",
 "A IA generativa é uma classe de algoritmos de IA que pode produzir vários tipos de conteúdo, como texto, código-fonte, imagens, áudio e dados sintéticos."
]

embedding_vectors = embedding.embed_documents(texts=q)

print(embedding_vectors)

Notebook de exemplo

Use o watsonx Granite Model Series e embeddings, Chroma e LangChain para responder a perguntas (RAG) e LangChain

Integrações

Explorar mais

Obtenha os mais recentes padrões de tecnologia, arquiteturas de soluções e publicações de arquitetura da IBM.

  1. Acesse o IBM Architecture Center
Colaboradores

Luke Major, Dean Sacoransky

Atualizado: 15 de novembro de 2024