Een agent implementeren voor generatieve AI-toepassingen (Model Serving)

Important

Voor nieuwe use cases raadt Databricks aan agents te implementeren in Databricks-apps voor volledige controle over agentcode, serverconfiguratie en implementatiewerkstroom. Zie Een AI-agent ontwerpen en implementeren in Databricks-apps. Zie Een agent migreren van Model Serving naar Databricks-apps voor het migreren van een bestaande agent.

Implementeer uw AI-agent in Mosaic AI Model Serving met behulp van de functie deploy() uit de Agent Framework Python API. Implementatie maakt een dienend eindpunt met ingebouwde hulpprogramma's voor schaalbaarheid, bewaking en samenwerking.

Uw geïmplementeerde agent kan automatisch worden geïntegreerd met de evaluatie- en bewakingsmogelijkheden van MLflow 3 , waaronder realtime tracering, de beoordelings-app voor feedback van belanghebbenden en bewaking.

Requirements

MLflow 3

  • Registreer uw agent in Unity Catalog.
  • Installeer MLflow 3.1.3 of hoger om agents te implementeren met behulp van de deploy() API van databricks.agents.
  • Voor het implementeren van agents van buiten een Databricks-notebook is SDK-versie 1.1.0 of hoger vereist databricks-agents .

Installeer de vereisten:

# Install prerequisites
%pip install mlflow>=3.1.3 databricks-agents>=1.1.0

# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()

MLflow 2.x

Important

Databricks raadt aan om MLflow 3 te gebruiken om agents te implementeren, omdat sommige MLflow 2-logboekregistratiefunctionaliteit wordt afgeschaft. Bekijk gedetailleerde implementatieacties.

  • Registreer uw agent in Unity Catalog.
  • Installeer MLflow 2.13.1 of hoger om agents te implementeren met behulp van de deploy() API van databricks.agents.
  • Voor het implementeren van agents van buiten een Databricks-notebook is databricks-agents SDK-versie 0.12.0 of hoger vereist.

Installeer de vereisten:

# Install prerequisites
%pip install mlflow>=2.13.1 databricks-agents>=0.12.0

# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()

Agents implementeren met behulp van deploy()

Zet uw agent in op een eindpunt voor modelgebruik.

from databricks import agents

deployment = agents.deploy(uc_model_name, uc_model_info.version)

# Retrieve the query endpoint URL for making API requests
deployment.query_endpoint

Wanneer u deploy() aanroept, stelt Databricks automatisch een productie-infrastructuur in en integreert uw agent met AI-functies van MLflow gen door het volgende te doen:

Waarschuwing

Als u een agent implementeert vanuit een notebook dat is opgeslagen in een Databricks Git-directory, werkt MLflow 3 realtime tracering standaard niet.

Stel het experiment in op een niet-Git-gekoppeld experiment met behulp van mlflow.set_experiment() voordat u het agents.deploy() uitvoert om realtime tracering in te schakelen.

De functie deploy() voert standaard de volgende acties uit:

  • Hiermee maakt u een model voor eindpunt voor het hosten van uw agent met automatische schaalaanpassing en taakverdeling
  • Voorziet in beveiligde authenticatie voor uw agent om toegang te krijgen tot onderliggende resources
  • Maakt realtime-bewaking mogelijk via MLflow-experimenttracering en geautomatiseerde kwaliteitsevaluatie voor productieverkeer
  • Stelt samenwerking tussen belanghebbenden in met behulp van de beoordelings-app voor feedbackverzameling

Zie Gedetailleerde implementatieacties voor meer informatie.

Implementatie aanpassen

Geef aanvullende argumenten door aan deploy() om de implementatie te personaliseren. U kunt bijvoorbeeld schalen naar nul inschakelen voor niet-actieve eindpunten door scale_to_zero_enabled=Truedoor te geven. Dit vermindert de kosten, maar verhoogt de tijd voor het leveren van initiële query's.

Zie Databricks Agents Python API voor meer parameters.

Agentimplementaties ophalen en verwijderen

Bestaande agentimplementaties ophalen of beheren. Zie Databricks Agents Python API.

from databricks.agents import list_deployments, get_deployments, delete_deployment

# Print all current deployments
deployments = list_deployments()
print(deployments)

# Get the deployment for a specific agent model name and version
agent_model_name = ""    # Set to your Unity Catalog model name
agent_model_version = 1  # Set to your agent model version
deployment = get_deployments(model_name=agent_model_name, model_version=agent_model_version)

# List all deployments
all_deployments = list_deployments()

# Delete an agent deployment
delete_deployment(model_name=agent_model_name, model_version=agent_model_version)

Authenticatie voor afhankelijke bronnen

Agenten moeten zich vaak authenticeren bij andere bronnen om taken te voltooien wanneer zij worden ingezet. Een agent moet bijvoorbeeld toegang krijgen tot een Vector Search-index om een query uit te voeren op ongestructureerde gegevens.

Zie Verificatie voor AI-agents (Model Serving) voor informatie over verificatiemethoden, waaronder wanneer u deze moet gebruiken en hoe u deze instelt.

Netwerken voor agentimplementaties

Als uw werkruimte gebruikmaakt van Private Link of beperkt uitgaand netwerkbeleid, moet u netwerktoegang configureren om agentimplementaties te laten slagen. Voor modellen die eindpunten leveren, is uitgaande toegang vereist om afhankelijkheden te downloaden tijdens het proces voor het bouwen van containers. Agents moeten mogelijk ook externe API's bereiken tijdens runtime.

Zie Deploy apps in Private Link-omgevingen voor gedetailleerde richtlijnen voor het configureren van DNS- of uitgaand verkeer beleid voor agents die zijn geïmplementeerd in Databricks-apps.

Controleer het volgende voor agenten die zijn ingezet bij Model Serving:

  • Build-time-afhankelijkheden: Uw netwerkbeleid moet toegang toestaan tot pakketopslagplaatsen die vereist zijn voor de omgeving van uw agent, zoals pypi.org of files.pythonhosted.org voor Python pakketten. Azure Databricks registreert buildfouten die worden veroorzaakt door geblokkeerde netwerktoegang met network_source_type: ML Build in de systeemtabel system.access.outbound_network. Zie Valideren met modeluitvoering.
  • Runtime-afhankelijkheden: Als uw agent externe API's of services aanroept tijdens deductie, voegt u deze domeinen toe aan de acceptatielijst van uw netwerkbeleid.
  • DNS resolution: Controleer in Private Link omgevingen of uw agent de hostnamen van alle Azure Databricks services kan omzetten waarvan deze afhankelijk is, zoals Vector Search- of SQL Warehouse-eindpunten.

Gedetailleerde implementatieacties

De volgende tabel bevat gedetailleerde implementatieacties die het gevolg zijn van een deploy() aanroep. Het kan tot 15 minuten duren voordat implementaties zijn voltooid.

MLflow 3

deploy() actie Description
Eindpunt voor modellering maken Hiermee maakt u een schaalbaar REST API-eindpunt dat uw agent dient voor gebruikersgerichte toepassingen met automatische taakverdeling.
Beveiligde verificatie inrichten Biedt automatisch referenties met korte levensduur waarmee uw agent toegang heeft tot door Databricks beheerde resources (Vector Search-indexen , Functies van Unity Catalog, enzovoort) met minimale vereiste machtigingen.
Databricks controleert of de eigenaar van het eindpunt over de juiste machtigingen beschikt voordat referenties worden uitgegeven, waardoor onbevoegde toegang wordt voorkomen.
Voor niet-Databricks-resources geeft u omgevingsvariabelen met geheimen door aan deploy(). Zie Toegang tot resources configureren vanuit het model dat eindpunten bedient.
Beoordelings-app inschakelen Biedt een webinterface waar belanghebbenden met uw agent kunnen communiceren en feedback kunnen geven. Zie Feedback en verwachtingen verzamelen door bestaande sporen te labelen.
Realtime tracering inschakelen Registreert alle agentinteracties in realtime naar een MLflow-experiment, wat directe zichtbaarheid biedt voor bewaking en foutopsporing.
  • Traceringen van uw eindpunt worden naar het momenteel actieve MLflow-experiment geschreven (bepaald met mlflow.set_experiment())
  • Alle agents in het eindpunt delen hetzelfde experiment voor opslag van traceergegevens
  • Traceringen worden ook naar inferentietabellen geschreven voor langetermijnopslag
Productiebewaking inschakelen (bèta) Hiermee configureert u een geautomatiseerde kwaliteitsevaluatie die scorers op productieverkeer uitvoert. Zie productiebewaking.
Deductietabellen inschakelen Hiermee maakt u tabellen waarmee invoer en antwoorden van logboekaanvragen worden vastgelegd voor controle en analyse.
  • Waarschuwing: Aanvraaglogboeken en evaluatielogboeken zijn afgeschaft en worden in een toekomstige release verwijderd. Gebruik in plaats daarvan MLflow 3 realtime tracering. Zie de afschaffing van aanvraaglogboeken en evaluatielogboeken voor migratierichtlijnen.
  • Alle agents gebruiken AI Gateway-deductietabellen voor logboekregistratie
  • Alleen logboekvelden voor streaming-antwoorden die compatibel zijn met ResponsesAgent, ChatAgenten ChatCompletion schema's
REST API-aanvragen registreren en app-feedback beoordelen Registreert API-aanvragen en feedback naar een deductietabel.
Waarschuwing: Het feedbackmodel is afgeschaft en wordt verwijderd in een toekomstige release. Voer een upgrade uit naar MLflow 3 en gebruik in plaats daarvan de log_feedback API. Zie Feedback van gebruikers verzamelen.
  • Maak een feedbackmodel om feedback van de beoordelings-app te accepteren en te registreren.
  • Dit model wordt bediend via hetzelfde CPU-servereindpunt als uw geïmplementeerde agent.

MLflow 2

deploy() actie Description
Eindpunt voor modellering maken Hiermee maakt u een schaalbaar REST API-eindpunt dat uw agent dient voor gebruikersgerichte toepassingen met automatische taakverdeling.
Beveiligde verificatie inrichten Biedt automatisch referenties met korte levensduur waarmee uw agent toegang heeft tot door Databricks beheerde resources (Vector Search-indexen , Functies van Unity Catalog, enzovoort) met minimale vereiste machtigingen.
Databricks controleert of de eigenaar van het eindpunt over de juiste machtigingen beschikt voordat referenties worden uitgegeven, waardoor onbevoegde toegang wordt voorkomen.
Voor niet-Databricks-resources geeft u omgevingsvariabelen met geheimen door aan deploy(). Zie Toegang tot resources configureren vanuit het model dat eindpunten bedient.
Beoordelings-app inschakelen Biedt een webinterface waar belanghebbenden met uw agent kunnen communiceren en feedback kunnen geven. Zie Feedback en verwachtingen verzamelen door bestaande sporen te labelen.
Deductietabellen inschakelen Hiermee maakt u tabellen waarmee invoer en antwoorden van logboekaanvragen worden vastgelegd voor controle en analyse.
Waarschuwing: Aanvraaglogboeken en evaluatielogboeken zijn afgeschaft en worden in een toekomstige release verwijderd. Zie de afschaffing van aanvraaglogboeken en evaluatielogboeken voor migratierichtlijnen.
REST API-aanvragen registreren en app-feedback controleren (afgeschaft) Registreert API-aanvragen en feedback naar een deductietabel.
Waarschuwing: Het feedbackmodel is afgeschaft en wordt verwijderd in een toekomstige release. Voer een upgrade uit naar MLflow 3 en gebruik in plaats daarvan de log_feedback API. Zie Feedback van gebruikers verzamelen.
  • Maak een feedbackmodel om feedback van de beoordelings-app te accepteren en te registreren.
  • Dit model wordt bediend via hetzelfde CPU-servereindpunt als uw geïmplementeerde agent.

Volgende stappen