Aller au contenu principal

Affiner un réorganisateur de recherche IA

info

Bêta

Cette fonctionnalité est en bêta. Les administrateurs de Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Aperçus . Voir Gérer les prévisualisations Databricks.

L'affinage du réorganisateur entraîne un réorganisateur personnalisé sur vos propres données d'index, puis le met en service afin qu'un modèle ajusté à votre corpus réorganise vos requêtes. Databricks gère pour vous la génération des données d'entraînement, l'entraînement du modèle, l'enregistrement dans Unity Catalog et le déploiement sur un endpoint de Model Serving.

Cette fonctionnalité ne prend en charge que les index gérés. Les index gérés sont des index Delta Sync où Databricks compute les intégrations.

Exigences

  • Un index de recherche IA Delta Sync avec des intégrations gérées par Databricks. Les index à accès direct et les index avec des intégrations autogérées ne sont pas pris en charge. Consultez Créer des endpoints et des index de recherche IA.
  • La fonctionnalité doit être activée pour votre workspace. Les administrateurs du workspace peuvent contrôler l’accès à cette fonctionnalité depuis la page Previews . Voir Gérer les aperçus Databricks.
  • Cette fonctionnalité est uniquement disponible dans les régions suivantes :
    • us-west-2
    • us-west-1
    • us-east-1
    • us-east-2

Autorisations

Le Job d'affinage s'exécute en votre nom et crée plusieurs objets Unity Catalog pour vous ; vous devez donc détenir tous les privilèges Unity Catalog suivants avant de start un Job :

  • SELECT sur l’index, pour lire ses documents à des fins d’entraînement.
  • CREATE VOLUME et CREATE TABLE sur le catalogue et le schéma de l'index, pour le volume de données d'entraînement et les tables intermédiaires.
  • CREATE MODEL sur le schéma où le modèle affiné est enregistré. Il s'agit du schéma de votre nom de modèle si vous en avez défini un, sinon il s'agit du schéma propre à l'index.

Si l'un de ces privilèges vous manque, Databricks rejette la demande avec une erreur d'autorisation au lieu de démarrer un Job qui échouerait ultérieurement.

Fonctionnement de l'affinage du réorganisateur

Le réglage fin du réorganisateur exécute le pipeline suivant sur vos données :

  1. Générez des données d'entraînement. Vous start un Job de réglage fin sur un index. Databricks échantillonne des requêtes à partir de vos logs de charge utile, d'une table que vous fournissez ou de requêtes synthétisées à partir de vos données. Il récupère ensuite des candidats et utilise un LLM pour juger de la pertinence et constituer des données d'entraînement.
  2. Entraînez le réorganisateur. Databricks entraîne un réorganisateur sur ces données, à partir d'un modèle de réorganisateur de base.
  3. Enregistrez et déployez. Le résultat est enregistré en tant que modèle dans Unity Catalog et déployé sur un endpoint de Model Serving, tous deux créés automatiquement.
  4. Query l’index. Vous query l’index avec le réorganisateur affiné via le SDK Python ou l’API REST.

start un Job de réglage fin

L’affinage du réorganisateur est disponible sur la page des détails de l’index vectoriel dans Catalog Explorer.

  1. Dans l’Explorateur de catalogues, accédez à votre index vectoriel et ouvrez son Vue d’ensemble tab. Faites défiler jusqu’à la section Affinage du réorganisateur .

    Section d'affinage du réorganisateur sur l'Overview tab de l'index vectoriel

  2. Cliquez sur Exécuter l'affinage du réorganisateur . Si vous avez déjà effectué un réglage fin, ce bouton indique Exécuter un nouveau réglage fin et est activé une fois l’exécution précédente terminée.

  3. Dans la boîte de dialogue Configurer l'affinage du réorganisateur , examinez et remplissez les champs suivants :

    Boîte de dialogue de configuration de l’affinage du réorganisateur

    • Nom du modèle : le nom Unity Catalog pour le modèle affiné. Ceci est pré-rempli en tant que catalog.schema.reranker_<index>. Modifiez-le si vous souhaitez un nom différent.

    • Source de la query d'entraînement : d'où proviennent les queries d'entraînement :

      • Utiliser la table des Logs de charge utile : utilise les Logs de query capturés de votre index. Databricks sélectionne ceci par default lorsqu’une table de Logs de charge utile existe.
      • Générer à partir de documents d’index : Databricks synthétise des queries à partir des données de votre index.
      • À partir d’une table Delta : cliquez sur Select table pour sélectionner une table Delta de queries, puis sélectionnez éventuellement la Query column . La query column a pour valeur par défaut query_text.
    • Paramètres avancés (facultatif) : développez pour définir Max queries , le plafond du nombre de queries à utiliser pour l'entraînement. La valeur default est 5 000. Si votre table de queries contient moins de queries que le plafond, Databricks en génère davantage pour l'atteindre.

  4. Cliquez sur start le réglage fin . La boîte de dialogue se ferme et une confirmation L'affinage du réorganisateur start s'affiche.

Suivre la progression du réglage fin

Après avoir start un Job, la section Affinage du réorganisateur affiche un Statut :

Statut

Description

Démarrage en cours…

Le job est en file d'attente.

Exécution de l’affinage…

L’entraînement est en cours.

Terminé

Le réorganisateur affiné est enregistré et déployé, prêt à query.

Échec

L'entraînement ne s'est pas terminé. Un message d'erreur s'affiche.

Statut

Description

Démarrage en cours…

Le job est en file d'attente.

Exécution de l’affinage…

L’entraînement est en cours.

Terminé

Le réorganisateur affiné est enregistré et déployé, prêt à query.

Échec

L'entraînement ne s'est pas terminé. Un message d'erreur s'affiche.

Statut de l&#39;affinage du réorganisateur indiquant Démarrage

Le statut refresh automatiquement. Une fois le job terminé, un Link View model apparaît pour vous permettre d’ouvrir le modèle de reclassement déployé.

Statut de l&#39;affinage du réorganisateur indiquant Terminé avec un Link Voir le modèle

Query avec le réorganisateur affiné

Une fois l'entraînement réussi, query votre index avec le réorganisateur affiné en utilisant le SDK Python ou l'API REST. Pour des conseils généraux sur les query, consultez query un index de recherche IA.

query avec le SDK Python

query votre index avec le SDK Python databricks-ai-search.

Python
from databricks.ai_search.client import AISearchClient
from databricks.ai_search.reranker import ExperimentalDatabricksFinetunedReranker

client = AISearchClient()
index = client.get_index(
endpoint_name="my-endpoint",
index_name="catalog.schema.my_index",
)

results = index.similarity_search(
query_text="How do I create an AI Search index?",
columns=["id", "text"],
num_results=10,
reranker=ExperimentalDatabricksFinetunedReranker(
columns_to_rerank=["text"], # must be exactly the embedding source column
),
)
  • columns_to_rerank: Doit correspondre exactement à la colonne source d'intégration de l'index, sous la forme d'une liste à un seul élément.
  • L’Endpoint de mise en service du modèle est résolu automatiquement à partir de votre index. Pour cibler un Endpoint spécifique, transmettez endpoint_name="...".

Pour confirmer que le réorganisateur a été exécuté, transmettez debug_level=1 et inspectez le résultat :

Python
results = index.similarity_search(..., debug_level=1)

dbg = results.get("debug_info", {})
if "warnings" in dbg:
print("Reranker fell back:", dbg["warnings"])
else:
print(f"Reranker ran, took {dbg['reranker_time']}ms")

Query avec l’API REST

Vous pouvez également effectuer des query avec le réorganisateur (reranker) optimisé via REST. Envoyez un POST à l'Endpoint de query de l'index avec un bloc reranker. Dans le bloc, définissez model sur le nom de l'endpoint Model Serving affiné, model_type sur MODEL_TYPE_FINETUNED et parameters.columns_to_rerank sur la colonne source d'intégration :

Bash
curl -X POST \
https://<workspace-host>/api/2.0/vector-search/indexes/catalog.schema.my_index/query \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query_text": "How do I create an AI Search index?",
"columns": ["id", "text"],
"num_results": 10,
"debug_level": 1,
"reranker": {
"model": "<finetuned-endpoint-name>",
"model_type": "MODEL_TYPE_FINETUNED",
"parameters": {
"columns_to_rerank": ["text"]
}
}
}'
  • model: le nom de l'endpoint Model Serving hébergeant le réorganisateur affiné, créé par le Job d'affinage. Contrairement au SDK Python, l'API REST ne le déduit pas pour vous.
  • parameters.columns_to_rerank: doit correspondre exactement à la colonne source d'intégration de l'index, selon la même règle que pour le SDK.
  • debug_level: 1 surfaces debug_info.reranker_time, ou debug_info.warnings sur fallback, dans la réponse.

Limitations

  • L'affinage du réorganisateur ne prend en charge que les index Delta Sync avec des intégrations gérées par Databricks. Vous ne pouvez pas affiner les index à accès direct et à intégration autogérée.
  • L'Endpoint de service monte en charge à zéro ; la première query après une période d'inactivité subit donc un délai de start à froid. Vous pouvez désactiver le Monter en charge à zéro.
  • Le reclassement est fixé à la colonne source d'intégration. Lorsque vous effectuez une query avec un réorganisateur affiné, columns_to_rerank doit correspondre exactement à la colonne source d'intégration de l'index, c'est-à-dire la colonne sur laquelle le réorganisateur a été entraîné. Databricks refuse le reclassement de toute autre colonne ou ensemble de colonnes.