Classificação de passagens de documentos

Use um modelo de reclassificação e a API de reclassificação de texto disponíveis em watsonx.ai para classificar um conjunto de passagens da mais provável à menos provável de responder a uma consulta específica.

Permissões necessárias
Para classificar trechos de texto, você deve ter a função de administrador ou editor em um projeto.
Credenciais necessárias
Você deve gerar credenciais para se autenticar nas APIs do watsonx.ai. Para obter detalhes, consulte Gerando um token de portador.

Formas de desenvolvimento

Você pode extrair texto de documentos usando esses métodos de programação:

Visão geral da arquitetura

Classificar um conjunto de passagens em ordem de mais a menos relevante para uma consulta é útil para tarefas de pesquisa e recuperação e fluxos de trabalho de chat, especialmente em cenários em que respostas fundamentadas e factuais são importantes.

Conforme mostrado no diagrama a seguir, o método reranker da API watsonx.ai aceita uma solicitação de API REST com uma consulta e uma lista de passagens de documentos. A API envia essas sequências de texto para um modelo de classificação. O modelo reranker emparelha a consulta com cada passagem, converte o texto em vetores de incorporação e, em seguida, compara os vetores em cada par e pontua a semelhança entre eles. Em seguida, o modelo classifica novamente as passagens com base nas pontuações de similaridade geradas. Embora o modelo converta o texto em embeddings de texto, os embeddings não são retornados. Os embeddings de texto são usados para gerar uma pontuação de similaridade, e somente a pontuação é retornada.

Diagrama que mostra o fluxo de uma solicitação de API do reranker

Modelos de fundação com suporte

Para obter detalhes sobre os modelos de reranker disponíveis em watsonx.ai, consulte Modelos de codificadores suportados.

Para obter uma lista dos modelos de reranker disponíveis para uso, você pode usar o método List the available foundation models na API watsonx.ai. Especifique o parâmetro " filters=function_rerank para retornar apenas os modelos de reranker disponíveis.

Por exemplo:

curl -X GET \
  'https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v1/foundation_model_specs?version=2024-10-18&filters=function_rerank'
Observação: Muitos dos modelos de incorporação também indicam que são compatíveis com a função rerank. No entanto, os modelos de incorporação suportam a classificação semântica, que é um método de classificação menos preciso. Quando os modelos de incorporação classificam novamente as passagens, eles baseiam a classificação em pontuações de similaridade que são derivadas dos valores do vetor de incorporação. Os modelos de codificadores cruzados são mais eficazes na reclassificação porque comparam explicitamente cada passagem com a consulta e geram pontuações de classificação por emparelhamento.

API de REST

Use o método de reclassificação de texto da API watsonx.ai para classificar trechos de texto em ordem de relevância para responder a uma consulta específica.

Para obter detalhes, consulte a documentação de referência da API watsonx.ai.

O código no exemplo a seguir usa o ms-marco-minilm-l-12-v2 modelo para reclassificar as seguintes passagens de texto, de modo que a passagem com as informações mais prováveis de responder à consulta seja listada em primeiro lugar.

Consulta

O que é um fluxo de trabalho de IA orientado por agentes?

Passagens

As passagens de entrada são definições do glossário watsonx.ai:

  • Item 0. Um modelo de fundação é um modelo de IA generativo em grande escala que pode ser adaptado a uma ampla gama de tarefas downstream.

  • Ponto 1. A IA generativa é uma classe de algoritmos de IA que pode produzir vários tipos de conteúdo, incluindo texto, código-fonte, imagens, áudio e dados sintéticos.

  • Ponto 2. A IA autêntica é um fluxo de IA generativo que pode decompor um prompt em várias tarefas, atribuir tarefas a agentes de IA gen apropriados e sintetizar uma resposta sem intervenção humana.

  • Ponto 3. A ética da IA é um campo multidisciplinar que estuda como otimizar o impacto benéfico da IA e, ao mesmo tempo, reduzir os riscos e os resultados adversos. Exemplos de questões éticas de IA são responsabilidade e privacidade de dados, justiça, explicabilidade, robustez, transparência, sustentabilidade ambiental, inclusão, agência moral, alinhamento de valores, responsabilidade, confiança e uso indevido de tecnologia.

  • Ponto 4. A governança de IA é o ato de uma organização de governar, por meio de suas instruções corporativas, equipe, processos e sistemas para direcionar, avaliar, monitorar e tomar medidas corretivas durante todo o ciclo de vida da IA, para garantir que o sistema de IA esteja operando como a organização pretende, como suas partes interessadas esperam e como exigido pela regulamentação relevante.

Exemplo de solicitação de API REST

Neste exemplo, apenas 5 passagens são enviadas para reranking. Você pode especificar até 1.000 entradas. No entanto, quanto mais passagens você especificar, mais demorado será o processo de reranking, pois um modelo de codificador cruzado processa cada passagem junto com a consulta, uma após a outra.

Cada entrada que você envia deve estar em conformidade com o limite máximo de tokens de entrada definido pelo modelo do reranker.

Para tratar de casos em que uma passagem pode ter mais tokens do que o modelo permite, o parâmetro " truncate_input_tokens é especificado neste exemplo para forçar a linha a ser truncada. Caso contrário, a solicitação poderá falhar.

O parâmetro de opções de retorno " inputs está incluído neste exemplo para que o texto da passagem original seja incluído na resposta, facilitando a compreensão de como as passagens originais são classificadas novamente. Em um fluxo de trabalho real, talvez não seja necessário incluir o parâmetro ' inputs.

Você especifica o modelo de reranker que deseja usar como ' model_id na carga útil do método de reranker de texto.

No exemplo a seguir, adicione seu próprio token de portador e ID do projeto.

curl -X POST \
  'https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v1/text/rerank?version=2024-10-17' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer ${TOKEN}' \
  --data '{
      "inputs": [
        {
          "text": "A foundation model is a large-scale generative AI model that can be adapted to a wide range of downstream tasks."
        },
        {
          "text": "Generative AI is a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
        },
        {
          "text": "Agentic AI is a generative AI flow that can decompose a prompt into multiple tasks, assign tasks to appropriate gen AI agents, and synthesize an answer without human intervention."
        },
        {
          "text": "AI ethics is a multidisciplinary field that studies how to optimize AI'\''s beneficial impact while reducing risks and adverse outcomes. Examples of AI ethics issues are data responsibility and privacy, fairness, explainability, robustness, transparency, environmental sustainability, inclusion, moral agency, value alignment, accountability, trust, and technology misuse."
        },
        {
          "text": "AI governance is an organization'\''s act of governing, through its corporate instructions, staff, processes and systems to direct, evaluate, monitor, and take corrective action throughout the AI lifecycle, to provide assurance that the AI system is operating as the organization intends, as its stakeholders expect, and as required by relevant regulation."
        }
      ],
      "query": "What is an agent-driven AI workflow?",
      "parameters":{
        "truncate_input_tokens": 512,
        "return_options":{
          "inputs":true
        }
      },
      "model_id": "cross-encoder/ms-marco-minilm-l-12-v2",
      "project_id": "51f3a990-4372-4ac3-9ddb-ed99d9b50840"
    }'

Se quiser retornar apenas as passagens de classificação mais alta, você pode especificar o parâmetro " top_n. O exemplo a seguir mostra como indicar que você deseja que o modelo retorne apenas uma passagem, a passagem mais relacionada à consulta:

"parameters":{
    "truncate_input_tokens": 512,
    "return_options":{
      "inputs":true,
      "top_n": 1
    }
}

Exemplo de resposta da API REST

A resposta a seguir é retornada para a solicitação de exemplo. Alguns aspectos a serem observados:

  • As passagens são reordenadas para mostrar primeiro as passagens com as pontuações mais altas.

    O modelo retorna com precisão a definição de Agentic AI no topo da lista porque ela está mais intimamente relacionada à pergunta sobre fluxos de trabalho orientados por agentes.

  • Os valores de índice, que variam de 0 a 4, representam as posições originais das passagens na matriz ' inputs que foi enviada na solicitação.

    Por exemplo, a passagem sobre Agentic AI foi a terceira passagem da lista e, portanto, tem o valor de índice ' 2.

  • O campo " input_token_count mostra o número total de tokens que foram processados pela solicitação.

{
  "model_id": "cross-encoder/ms-marco-minilm-l-12-v2",
  "created_at": "2024-10-17T14:01:47.322Z",
  "results": [
    {
      "index": 2,
      "score": 5.063366413116455,
      "input": {
        "text": "Agentic AI is a generative AI flow that can decompose a prompt into multiple tasks, assign tasks to appropriate gen AI agents, and synthesize an answer without human intervention."
      }
    },
    {
      "index": 4,
      "score": -0.992393970489502,
      "input": {
        "text": "AI governance is an organization's act of governing, through its corporate instructions, staff, processes and systems to direct, evaluate, monitor, and take corrective action throughout the AI lifecycle, to provide assurance that the AI system is operating as the organization intends, as its stakeholders expect, and as required by relevant regulation."
      }
    },
    {
      "index": 1,
      "score": -3.5372314453125,
      "input": {
        "text": "Generative AI is a class of AI algorithms that can produce various types of content including text, source code, imagery, audio, and synthetic data."
      }
    },
    {
      "index": 0,
      "score": -4.646212100982666,
      "input": {
        "text": "A foundation model is a large-scale generative AI model that can be adapted to a wide range of downstream tasks."
      }
    },
    {
      "index": 3,
      "score": -4.926990032196045,
      "input": {
        "text": "AI ethics is a multidisciplinary field that studies how to optimize AI's beneficial impact while reducing risks and adverse outcomes. Examples of AI ethics issues are data responsibility and privacy, fairness, explainability, robustness, transparency, environmental sustainability, inclusion, moral agency, value alignment, accountability, trust, and technology misuse."
      }
    }
  ],
  "input_token_count": 292,
  "system": {
    "warnings": [
      {
        "message": "This model is a Non-IBM Product governed by a third-party license that may impose use restrictions and other obligations. By using this model you agree to its terms as identified in the following URL.",
        "id": "disclaimer_warning",
        "more_info": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
      }
    ]
  }
}

Se você incluir ' "top_n": 1 no objeto de parâmetros, conforme mostrado no exemplo anterior, a resposta terá a seguinte aparência:

{
  "model_id": "cross-encoder/ms-marco-minilm-l-12-v2",
  "created_at": "2024-10-17T20:18:50.867Z",
  "results": [
    {
      "index": 2,
      "score": 5.063366413116455,
      "input": {
        "text": "Agentic AI is a generative AI flow that can decompose a prompt into multiple tasks, assign tasks to appropriate gen AI agents, and synthesize an answer without human intervention."
      }
    }
  ],
  "input_token_count": 292,
  "system": {
    "warnings": [
      {
        "message": "This model is a Non-IBM Product governed by a third-party license that may impose use restrictions and other obligations. By using this model you agree to its terms as identified in the following URL.",
        "id": "disclaimer_warning",
        "more_info": "https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"
      }
    ]
  }
}

Python

Veja a classe Rerank na biblioteca watsonx.ai Python.

Node.js

Você pode reclassificar os resultados da pesquisa no IBM watsonx.ai programaticamente usando o SDK Node.js. Para obter mais informações, consulte os recursos a seguir:

Para saber mais, consulte o exemplo de código.