IBM TechXchange Brasil watsonx

 View Only

Usando modelos de Embeddings para melhorar a busca de texto com watsonx.ai

By Flavia Janine Rosante Beo posted 24 days ago

  

watsonx.ai é um estúdio para treinar, validar, ajustar e implantar modelos de IA e aplicativos generativos de IA para seus casos de uso de negócios. Nosso estúdio fornece todas as ferramentas imagináveis ​​para atingir seus objetivos de IA. A edição mais recente é a API Embeddings Service, que permite gerar embeddings de texto para seus dados e desenvolver casos de uso populares, como Retrieval Augmented Generation (RAG).

A API é alimentada pela incorporação de modelos que são básicos, apenas para geração embeddings. Os embeddings de texto capturam o significado de uma frase ou passagem e são comumente usados ​​para ajudar na comparação de documentos, resposta a perguntas e tarefas de RAG.

O que é um text embeddings ou incorporação de texto?

Uma incorporação de texto é uma representação numérica – ou vetorial – de uma frase ou passagem. Ao converter sentenças em vetores, as operações em sentenças tornam-se mais parecidas com equações matemáticas, algo que os computadores podem fazer rapidamente e bem.

 

Um modelo de incorporação cria uma representação vetorial de uma frase atribuindo valores numéricos que capturam o significado semântico da frase. O modelo também posiciona o vetor em um espaço multidimensional com base nos valores atribuídos. Embora o tamanho deste espaço dimensional varie conforme o modelo, todos os modelos posicionam os vetores de forma que as sentenças com significados semelhantes fiquem mais próximas umas das outras no espaço.

Alguns passos são necessários para esse processo:

  1. Um modelo de transformações de sentença é usada para calcular embeddings (representações vetoriais densas) para sentenças/documentos.
  2. Tokenização: a frase é dividida em palavras individuais ou unidades de subpalavras (como morfemas).
  3. Incorporações de palavras: cada palavra (ou subpalavra) é convertida em uma representação numérica de baixa dimensão chamada incorporação de palavras.
  4. Agregação: várias técnicas, como cálculo de média, agrupamento ou uso de transformadores, são usadas para combinar incorporações de palavras em uma incorporação de frase única. Essa incorporação reflete o significado e as relações combinadas dentro da frase.
  5. Normalização: o vetor resultante é geralmente normalizado para um comprimento específico, garantindo uma comparação uniforme entre diferentes sentenças.

Quais modelos suportam embeddings no watsonx.ai?

Os seguintes modelos da família de modelos básicos do IBM Slate estão incluídos na API do serviço de Embeddings:

· slate-30m-english-rtrvr

· slate-125m-english-rtrvr

Para obter detalhes completos, consulte a página de Modelos de embeddings suportados na documentação do IBM watsonx.

Uma rápida visão geral da API de embeddings

Abaixo, abordaremos como usar a API watsonx.ai Embeddings Service para converter passagens de texto em vetores. Você também pode revisar os detalhes na documentação.

Gerar embeddings

Para gerar embeddings, execute os seguintes comandos da API REST para converter a entrada de texto em vetores, usando a solicitação POST.

No trecho de código abaixo, substitua YOUR_ACCESS_TOKEN pelo seu token, model_id que seja o modelo escolhido e no padrão provider/nome-do-modelo, além do seu project_id watsonx.ai:

POST request details: curl --location 'https://us-south.ml.cloud.ibm.com/ml/v1/text/embeddings?version=2024-04-04' -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "inputs": [

"Youth craves thrills while adulthood cherishes wisdom.", 
"Youth seeks ambition while adulthood finds contentment.",
"Dreams chased in youth while goals pursued in adulthood."
  ], "model_id": "ibm/slate-30m-english-rtrvr", "project_id": "81823e98-c691-48a2-9bcc-e637a84db410" }'

Você também precisa verificar o host do seu cluster, e se for diferente, substituir us-south.ml.cloud.ibm.com pelo nome do seu host.

Resposta de exemplo

O código retorna uma matriz de API REST de classificações incorporadas para cada sequência de entrada.

Observe que cada entrada se torna um objeto de incorporação separado na saída. E cada objeto tem um número de n dimensões de valores vetoriais. Por exemplo, o modelo slate-30m-english-rtrvr tem algo em torno de 385 dimensões, portanto, há cerca de 384 valores no objeto de incorporação.

Resposta:

{
  "model_id": "ibm/slate-30m-english-rtrvr",
  "created_at": "2024-04-24T16:26:17.868Z",
  "resultados": [
    {
      "embedding": [
        -0,020545086,
        . . .
      ]
    },
    {
      "embedding": [
        -0,020545086,
        . . .
      ]
    },
{ "embedding": [ -0,020545086, . . . ] }   ], "input_token_count": 39 }

Usando embeddings - LLM de generalista a especialista

Para os grandes modelos de linguagem, existem algumas formas de customização com os dados específicos de cada uma das aplicações:

Fine Tuning​​

Semelhante ao treinamento do modelo, todos os pesos são potencialmente atualizados​​.

Prompt Tuning​​

Um pequeno modelo treinável é usado na frente do modelo base para codificar o prompt de texto e gerar tokens virtuais específicos da tarefa​​. Os tokens virtuais são pré-anexados ao prompt​​

​​Multitask Prompt Tuning​​

Semelhante ao Prompt Tuning, mas o modelo personalizado é pré-treinado para diversas tarefas​​.

​​LoRA​​

Usa uma decomposição de matriz de classificação baixa para reduzir o número de pesos treináveis​​

Injeta adaptadores de baixa classificação em cada camada do modelo, reduzindo bastante o número de parâmetros treináveis​​.

​​qLoRA​​

Os pesos pré-treinados originais do modelo são quantizados e congelados durante a personalização​​. Melhora ainda mais a eficiência​​.

RAG como opção de contextualização/especialização do LLM

Conforme afirmado anteriormente, um uso comum de embeddings – vetores – é ao usar padrões de Retrieval Augmented Generation (RAG) com seu modelo básico. RAG é uma técnica para aumentar a precisão e a confiabilidade dos modelos de IA com fatos obtidos de fontes externas. Para obter mais informações, consulte RAG na documentação do IBM watsonx.

Uma abordagem comum com RAG é criar representações vetoriais densas de seus dados, a fim de calcular a semelhança semântica com uma determinada consulta do usuário. A API do IBM Embeddings permite então pegar seus dados, integrá-los usando um modelo de incorporação, carregar os dados em um banco de dados vetorial e, em seguida, consultar esses dados.

 

 Para obter um ótimo exemplo desse caso de uso, consulte o exemplo de notebook Python no GitHub.

Neste artigo, você aprendeu como começar a usar o serviço de embeddings agora disponível em watsonx.ai. Abordamos como gerar embeddings, armazená-los e aproveitá-los em um caso de uso RAG. Para saber mais sobre watsonx.ai e todos os serviços e modelos básicos que ele oferece, visite a página do produto e/ou inicie um teste gratuito hoje.


#watsonx.ai
#GenerativeAI

0 comments
21 views

Permalink