Affiner un réorganisateur de recherche IA
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-2us-west-1us-east-1us-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 :
SELECTsur l’index, pour lire ses documents à des fins d’entraînement.CREATE VOLUMEetCREATE TABLEsur le catalogue et le schéma de l'index, pour le volume de données d'entraînement et les tables intermédiaires.CREATE MODELsur 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 :
- 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.
- 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.
- 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.
- 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.
-
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 .
-
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.
-
Dans la boîte de dialogue Configurer l'affinage du réorganisateur , examinez et remplissez les champs suivants :

-
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.
-
-
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. |
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é.
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.
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 :
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 :
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: 1surfacesdebug_info.reranker_time, oudebug_info.warningssur 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_rerankdoit 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.