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.
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'
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 '
inputsque 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_countmostra 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.