0 / 0
Retourner à la version anglaise de la documentation
Reranking de passages de documents à l'aide de l'API
Dernière mise à jour : 28 nov. 2024
Reranking de passages de documents à l'aide de l'API

Utilisez le modèle de reranker et l'API de reranker de texte disponibles sur watsonx.ai pour classer un ensemble de passages du plus au moins susceptible de répondre à une requête spécifiée.

Référence d'interface de programme d'application

Pour plus de détails, voir la documentation de référence de l'API.

Pour obtenir une liste des modèles de reranker disponibles, vous pouvez utiliser la méthode List the available foundation models dans l'API watsonx.ai as a service. Spécifiez le paramètre " filters=function_rerank pour ne renvoyer que les modèles de reranker disponibles.

Par exemple :

curl -X GET \
  'https://{region}.ml.cloud.ibm.com/ml/v1/foundation_model_specs?version=2024-10-18&filters=function_rerank'
Remarque : de nombreux modèles d'intégration indiquent également qu'ils prennent en charge la fonction rerank. Toutefois, les modèles d'intégration prennent en charge le reclassement sémantique, qui est une méthode de classement moins précise. Lorsque les modèles d'intégration classent les passages, ils se basent sur des scores de similarité dérivés des valeurs des vecteurs d'intégration. Les modèles à codage croisé sont plus efficaces pour le reclassement car ils comparent explicitement chaque passage à la requête et génèrent des scores de classement pour chaque paire.

Exemple

Le code de l'exemple utilise le modèle " ms-marco-minilm-l-12-v2 pour classer les passages de texte suivants de manière à ce que le passage qui contient les informations les plus susceptibles de répondre à la requête soit listé en premier.

query

Qu'est-ce qu'un flux de travail d'IA piloté par un agent ?

Passages

Les passages en entrée sont des définitions du glossaire de watsonx.ai

  • Poste 0. Un foundation model est un modèle d'IA génératif à grande échelle qui peut être adapté à un large éventail de tâches en aval.

  • Point 1. L'IA générative est une classe d'algorithmes d'IA qui peut produire divers types de contenu, notamment du texte, du code source, des images, du son et des données synthétiques.

  • Point 2. L'IA agentique est un flux d'IA génératif qui peut décomposer une demande en plusieurs tâches, assigner des tâches à des agents d'IA génériques appropriés et synthétiser une réponse sans intervention humaine.

  • Point 3. L'éthique de l'IA est un domaine multidisciplinaire qui étudie comment optimiser l'impact bénéfique de l'IA tout en réduisant les risques et les conséquences négatives. La responsabilité et la confidentialité des données, l'équité, l'explicabilité, la robustesse, la transparence, la durabilité environnementale, l'inclusion, l'agence morale, l'alignement des valeurs, la responsabilité, la confiance et l'utilisation abusive de la technologie sont autant d'exemples de questions éthiques liées à l'IA.

  • Point 4. La gouvernance de l'IA est l'acte de gouvernance d'une organisation, par le biais de ses instructions, de son personnel, de ses processus et de ses systèmes, pour diriger, évaluer, contrôler et prendre des mesures correctives tout au long du cycle de vie de l'IA, afin de garantir que le système d'IA fonctionne comme l'organisation l'entend, comme ses parties prenantes l'attendent et comme l'exige la réglementation pertinente.

Exemple de demande REST

Dans cet exemple, seuls 5 passages sont soumis au reranking. Vous pouvez spécifier jusqu'à 1 000 entrées. Cependant, plus vous spécifiez de passages, plus le processus de reclassement prend du temps, car un modèle de codage croisé traite chaque passage et la requête l'un après l'autre.

Chaque entrée que vous soumettez doit être conforme à la limite maximale de jetons d'entrée définie par le modèle de reranker.

Pour traiter les cas où un passage peut avoir plus de tokens que le modèle ne le permet, le paramètre " truncate_input_tokens est spécifié dans cet exemple pour forcer la ligne à être tronquée. Dans le cas contraire, la demande risque d'échouer.

Le paramètre d'options de retour " inputs est inclus dans cet exemple afin que le texte du passage original soit inclus dans la réponse, ce qui permet de mieux comprendre comment les passages originaux sont reclassés. Dans un flux de travail réel, il se peut que vous n'ayez pas besoin d'inclure le paramètre " inputs

Vous spécifiez le modèle de reranker que vous souhaitez utiliser en tant que " model_id dans la charge utile de la méthode de reranker de texte.

Dans l'exemple suivant, remplacez{url}variable with the right value for your instance, such asus-south.ml.cloud.ibm.com. Ajoutez votre propre jeton de porteur et votre ID de projet.

curl -X POST \
  'https://{url}/ml/v1/text/rerank?version=2024-10-17' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...' \
  --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"
    }'

Si vous souhaitez ne renvoyer que les passages les mieux classés, vous pouvez spécifier le paramètre 'top_n. L'exemple suivant montre comment indiquer que vous souhaitez que le modèle ne renvoie qu'un seul passage, celui qui est le plus en rapport avec la requête :

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

Exemple de réponse REST

La réponse suivante est renvoyée pour l'exemple de demande. Quelques points à noter :

  • Les passages sont réorganisés de manière à faire apparaître en premier les passages ayant obtenu les scores les plus élevés.

    Le modèle renvoie avec précision la définition de l'IA agentique en tête de liste parce qu'elle est la plus étroitement liée à la question sur les flux de travail pilotés par des agents.

  • Les valeurs d'index, qui vont de 0 à 4, représentent les positions originales des passages dans le tableau " inputs qui a été soumis dans la demande.

    Par exemple, le passage sur l'IA agentique était le troisième passage de la liste et a donc la valeur d'index " 2.

  • Le champ " input_token_count indique le nombre total de jetons traités par la demande.

    Pour plus d'informations sur le décompte des jetons, voir Informations sur la facturation.

{
  "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"
      }
    ]
  }
}

Si vous incluez " "top_n": 1 dans l'objet parameters comme indiqué dans l'exemple précédent, la réponse se présente comme suit :

{
  "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"
      }
    ]
  }
}

Informations de facturation

La facturation est basée sur le nombre de jetons traités par le modèle de reranker que vous utilisez. Le nombre de jetons utilisés par mot varie selon le modèle.

Rappelez-vous qu'un modèle de codage croisé traite la requête et chaque passage d'entrée ensemble pour générer un score pour chaque entrée. Par conséquent, pour additionner les jetons, vous devez utiliser une formule comme celle-ci :

(Mots clés dans la requête x Nombre d'entrées) + (Somme des mots clés dans toutes les entrées x Nombre de requêtes)

Remarque :

L'API n'accepte qu'une seule requête. Par conséquent, le " Number of queries est toujours égal à 1.

En plus du texte soumis, les marqueurs suivants sont utilisés par le modèle. Chaque marqueur compte pour un jeton :

  • CLS: signifie classification et est ajouté au début d'une séquence soumise au modèle pour identifier le début de la séquence.
  • SEP: signifie séparateur et est utilisé pour identifier la fin d'une séquence et le début de la suivante.

Chaque entrée contient un marqueur " CLS qui identifie le début de la séquence requête + entrée, et deux marqueurs séparateurs " SEP Par conséquent, ajoutez (3 x nombre d'entrées) à la somme que vous avez calculée précédemment pour obtenir le total.

En savoir plus

Sujet parent : Coder des solutions d'IA générative

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus