Delen via


Afleiding tables voor het monitoren en debuggen van modellen

Belangrijk

Deze functie is beschikbaar als openbare preview.

In dit artikel wordt inferentie tables beschreven voor het bewaken van geserveerde modellen. In het volgende diagram wordt een typische werkstroom met inferentie tablesgetoond. De inference table legt automatisch binnenkomende aanvragen en uitgaande antwoorden vast voor een modelserveer-eindpunt en registreert deze als een Unity Catalog Delta table. U kunt de gegevens in deze table gebruiken om ML-modellen te bewaken, fouten op te sporen en te verbeteren.

Voor modellen die eindpunten leveren die externe modellen hosten, kunt u alleen deductie inschakelen tables met behulp van de AI Gateway-.

inferentie tables werkstroom

Wat zijn inferenties tables?

Het bewaken van de prestaties van modellen in productiewerkstromen is een belangrijk aspect van de levenscyclus van HET AI- en ML-model. Inferentie tables vereenvoudigt het bewaken en diagnosticeren van modellen door continu de invoer en antwoorden van aanvragen (voorspellingen) van Mosaic AI Model bedienen-eindpunten te loggen en deze op te slaan in een Delta table in Unity Catalog. Vervolgens kunt u alle mogelijkheden van het Databricks-platform gebruiken, zoals Databricks SQL-query's, notebooks en Lakehouse Monitoring om uw modellen te bewaken, fouten op te sporen en optimize.

U kunt deductie tables inschakelen voor een bestaand of nieuw gemaakt model voor eindpunten en aanvragen voor dat eindpunt worden vervolgens automatisch geregistreerd bij een table in UC.

Enkele veelvoorkomende toepassingen voor deductie tables zijn:

  • Gegevens en modelkwaliteit bewaken. U kunt uw modelprestaties en gegevensdrift continu bewaken met Behulp van Lakehouse Monitoring. Lakehouse Monitoring genereert automatisch dashboards voor gegevens- en modelkwaliteit die u met belanghebbenden kunt delen. Daarnaast kunt u waarschuwingen inschakelen om te weten wanneer u uw model opnieuw moet trainen op basis van verschuivingen in binnenkomende gegevens of verminderingen van modelprestaties.
  • Problemen met productie opsporen. Inferentie Tables logboekgegevens, zoals HTTP-statuscodes, uitvoeringstijden van modellen en aanvraag- en antwoord-JSON-code. U kunt deze prestatiegegevens gebruiken voor foutopsporing. Ook kunt u de historische gegevens in Inference Tables gebruiken om de prestaties van het model te vergelijken met historische aanvragen.
  • Maak een trainingstaak. Door Inferentie Tables te combineren met grondwaarheidlabels, kunt u een trainingscorpus maken dat u kunt gebruiken om uw model opnieuw te trainen, bij te stellen en te verbeteren. Met Databricks-taken kunt u een continue feedbacklus set en de training automatiseren.

Eisen

  • Voor uw werkruimte moet Unity Catalog ingeschakeld zijn.
  • Zowel de maker van het eindpunt als de modifier moet de machtiging Kan beheren hebben voor het eindpunt. Zie Toegangsbeheerlijsten.
  • Zowel de maker van het eindpunt als de modifier moet de volgende machtigingen hebben in Unity Catalog:
    • USE CATALOG machtigingen voor de opgegeven catalog.
    • USE SCHEMA machtigingen op het gespecificeerde schema.
    • CREATE TABLE machtigingen in de schema.

In- en uitschakelen van inferentie tables

In deze sectie wordt beschreven hoe u deductie tables inschakelt of uitschakelt met behulp van de Databricks-gebruikersinterface. U kunt ook de API gebruiken; zie Deductie tables inschakelen voor eindpunten die eindpunten leveren met behulp van de API- voor instructies.

De eigenaar van de deductie tables is de gebruiker die het eindpunt heeft gemaakt. Alle toegangsbeheerlijsten (ACL's) op de table de standaardmachtigingen voor Unity Catalog volgen en kunnen worden gewijzigd door de table eigenaar.

Waarschuwing

De deductie table kan beschadigd raken als u een van de volgende handelingen uitvoert:

  • Wijzig de tableschema.
  • Wijzig de naam van de table.
  • Verwijder de table.
  • Het intrekken van machtigingen voor de Unity-Catalogcatalog of schema.

In dit geval toont de auto_capture_config van de eindpuntstatus een FAILED status voor de payload table. Als dit gebeurt, moet u een nieuw eindpunt maken om deductie tableste blijven gebruiken.

Voer de volgende stappen uit om inference tables te gebruiken tijdens het maken van het eindpunt:

  1. Klik op Serveren in de AI-gebruikersinterface van Databricks Mosaic.

  2. Klik op Een service-eindpunt maken.

  3. Select deductie inschakelen tables.

  4. select in de vervolgkeuzelijsten de gewenste catalog en schemawhere u de gewenste table wilt hebben.

    catalog en schema voor deductie table

  5. De standaardnaam table is <catalog>.<schema>.<endpoint-name>_payload. Desgewenst kunt u een aangepast table voorvoegsel invoeren.

  6. Klik op Een service-eindpunt maken.

U kunt ook inferentie tables inschakelen op een bestaand eindpunt. Ga als volgt te werk om een bestaande eindpuntconfiguratie te bewerken:

  1. Navigeer naar de eindpuntpagina.
  2. Klik op Configuratie bewerken.
  3. Volg de vorige instructies, te beginnen met stap 3.
  4. Wanneer u klaar bent, klikt u op Update eindpunt.

Volg deze instructies om deductie uit te schakelen tables:

  1. Navigeer naar de eindpuntpagina.
  2. Klik op Configuratie bewerken.
  3. Klik op Deductie inschakelen table om het vinkje te remove.
  4. Zodra u tevreden bent met de eindpuntspecificaties, klikt u op Update.

Werkstroom: modelprestaties bewaken met inferentie tables

Voer de volgende stappen uit om modelprestaties te bewaken met behulp van deductie tables:

  1. Schakel deductie in tables op uw eindpunt, hetzij tijdens het maken van het eindpunt of door het later bij te werken.
  2. Plan een werkstroom voor het verwerken van de JSON-payloads in de inferentie table door ze uit te pakken volgens de schema van het eindpunt.
  3. (Optioneel) Join de uitgepakte aanvragen en antwoorden met grond-waarheidslabels om modelkwaliteitsstatistieken te kunnen berekenen.
  4. Maak een monitor aan voor de resulterende Delta-table en refresh metrics.

De startersnotebooks implementeren deze werkstroom.

Starternotebook voor het monitoren van een inferentie table

In het volgende notebook worden de hierboven beschreven stappen geïmplementeerd om aanvragen uit een Lakehouse Monitoring-inference uit te pakken table. Het notebook kan op aanvraag worden uitgevoerd of volgens een terugkerend schema met behulp van Databricks-taken.

Inferentie table Lakehouse Monitoring Starter Notebook

Get notebook

Starter-notebook voor het bewaken van de tekstkwaliteit van eindpunten die LLM's leveren

In het volgende notebook worden aanvragen uit een deductie-tableuitgepakt, wordt een set berekend metrische gegevens over tekstevaluatie (zoals leesbaarheid en toxiciteit) en wordt bewaking van deze metrische gegevens mogelijk. Het notebook kan op aanvraag worden uitgevoerd of volgens een terugkerend schema met behulp van Databricks-taken.

LLM-inference table Lakehouse Monitoring Starter Notebook

Get notebook

Resultaten opvragen en analyseren in de deductie table

Nadat uw aangeboden modellen gereed zijn, worden alle aanvragen voor uw modellen automatisch geregistreerd bij de inferentie table, samen met de antwoorden. U kunt de table bekijken in de gebruikersinterface, de table opvragen vanuit DBSQL of een notebook of een query uitvoeren op de table met behulp van de REST API.

Als u de table wilt weergeven in de gebruikersinterface: Klik op de eindpuntpagina op de naam van de deductie table om de table te openen in Catalog Explorer.

link naar inferentie table naam op eindpuntpagina

Om een query uit te voeren op de table vanuit DBSQL of een Databricks-notebook: U kunt code uitvoeren die vergelijkbaar is met het volgende om een query uit te voeren op de deductie table.

SELECT * FROM <catalog>.<schema>.<payload_table>

Als u inferentie tables hebt ingeschakeld via de gebruikersinterface, is payload_table de table naam die u hebt toegewezen toen u het eindpunt creëerde. Als u deductie tables hebt ingeschakeld met behulp van de API, wordt payload_table gerapporteerd in de sectie state van het auto_capture_config antwoord. Zie voor een voorbeeld inference tables inschakelen voor model-serveer-eindpunten met behulp van de API.

Prestatienotitie

Nadat u het eindpunt hebt aangeroepen, ziet u dat de aanroep binnen een uur na het verzenden van een scoringsverzoek is geregistreerd bij uw inferentie table. Bovendien garandeert Azure Databricks dat logboekbezorging ten minste één keer plaatsvindt, dus het is mogelijk, hoewel onwaarschijnlijk, dat er dubbele logboeken worden verzonden.

Unity Catalog inferentie tableschema

Elke aanvraag en elk antwoord dat wordt geregistreerd bij een gevolgtrekking table wordt geschreven naar een Delta table met de volgende schema:

Notitie

Als u het eindpunt aanroept met een batch invoer, wordt de hele batch geregistreerd als één rij.

Column naam Beschrijving Type
databricks_request_id Een door Azure Databricks gegenereerde aanvraag identifier gekoppeld aan alle aanvragen voor het verwerken van modellen. STRING
client_request_id Een optionele door de client gegenereerde aanvraag identifier die kan worden opgegeven in de aanvraagbody van het model. Zie Geef op client_request_id voor meer informatie. STRING
date De UTC-datum waarop de aanvraag voor het verwerken van het model is ontvangen. DATUM
timestamp_ms De tijdstempel in epoch milliseconden op het moment dat de aanvraag voor het verwerken van het model werd ontvangen. LANG
status_code De HTTP-statuscode die is geretourneerd uit het model. INT
sampling_fraction De steekproeffractie die wordt gebruikt in het geval dat de aanvraag is uitgevallen. Deze waarde ligt tussen 0 en 1, where 1 geeft aan dat 100% binnenkomende aanvragen zijn opgenomen. DOUBLE
execution_time_ms De uitvoeringstijd in milliseconden waarvoor het model deductie heeft uitgevoerd. Dit omvat geen netwerkoverheadvertragingen en vertegenwoordigt alleen de tijd die het model nodig had om voorspellingen te generate. LANG
request De JSON-hoofdtekst van de onbewerkte aanvraag die is verzonden naar het eindpunt van de modelfunctie. STRING
response De onbewerkte antwoord-JSON-hoofdtekst die is geretourneerd door het model dat het eindpunt levert. STRING
request_metadata Een kaart met metagegevens die betrekking hebben op het model dat het eindpunt biedt dat aan de aanvraag is gekoppeld. Deze kaart bevat de eindpuntnaam, modelnaam en modelversie die wordt gebruikt voor uw eindpunt. KAARTTEKENREEKS<, TEKENREEKS>

Specificeren client_request_id

Het client_request_id veld is een optionele waarde die de gebruiker kan opgeven in de hoofdtekst van de aanvraag voor het model. Hierdoor kan de gebruiker zijn eigen identifier opgeven voor een verzoek dat wordt weergegeven in de uiteindelijke inferentie table onder de client_request_id en kan worden gebruikt voor het samenvoegen van uw verzoek met andere tables die gebruikmaken van de client_request_id, zoals het samenvoegen van grondwaarheidslabels. Als u een client_request_idwilt opgeven, neemt u deze op als sleutel op het hoogste niveau van de nettolading van de aanvraag. Als er geen client_request_id is opgegeven, wordt de waarde weergegeven als null in de rij die overeenkomt met de aanvraag.

{
  "client_request_id": "<user-provided-id>",
  "dataframe_records": [
    {
      "sepal length (cm)": 5.1,
      "sepal width (cm)": 3.5,
      "petal length (cm)": 1.4,
      "petal width (cm)": 0.2
    },
    {
      "sepal length (cm)": 4.9,
      "sepal width (cm)": 3,
      "petal length (cm)": 1.4,
      "petal width (cm)": 0.2
    },
    {
      "sepal length (cm)": 4.7,
      "sepal width (cm)": 3.2,
      "petal length (cm)": 1.3,
      "petal width (cm)": 0.2
    }
  ]
}

De client_request_id kan later worden gebruikt voor het samenvoegen van grondwaarheidlabels, indien er andere tables zijn die labels aan de client_request_idhebben gekoppeld.

Beperkingen

  • Door de klant beheerde sleutels worden niet ondersteund.
  • Voor eindpunten die basismodellenhosten, worden inferentie-tables alleen ondersteund op geprovisioneerde throughputsnelheid workloads.
  • Azure Firewall kan leiden tot fouten bij het maken van de Unity Catalog Delta table, dus wordt niet standaard ondersteund. Neem contact op met uw Databricks-accountteam om dit in te schakelen.
  • Wanneer deductie tables zijn ingeschakeld, is de limit voor de totale maximale gelijktijdigheid voor alle aangeboden modellen in één eindpunt 128. Neem contact op met uw Azure Databricks-accountteam om een verhoging aan te vragen voor deze limit.
  • Als een deductie table meer dan 500.000 bestanden bevat, worden er geen extra gegevens geregistreerd. Als u wilt voorkomen dat deze limitwordt overschreden, voert u OPTIMIZE of set retentie uit op uw table door oudere gegevens te verwijderen. Als u het aantal bestanden in uw tablewilt controleren, voert u DESCRIBE DETAIL <catalog>.<schema>.<payload_table>uit.
  • Inferentie tables logboeklevering wordt momenteel naar beste vermogen uitgevoerd, maar u kunt verwachten dat logboeken binnen 1 uur na een verzoek beschikbaar zijn. Neem contact op met uw Databricks-accountteam voor meer informatie.

Zie Limieten en regio's voor het leveren van modellen voor algemene eindpunten voor modellen.