ML-levenscyclusbeheer met MLflow

In dit artikel wordt beschreven hoe MLflow wordt gebruikt in Databricks voor het beheer van de levenscyclus van machine learning. Het bevat ook voorbeelden die elk MLflow-onderdeel introduceren en koppelingen naar inhoud die beschrijven hoe deze onderdelen worden gehost in Azure Databricks.

Ml-levenscyclusbeheer in Databricks wordt geleverd door beheerde MLflow. Azure Databricks biedt een volledig beheerde en gehoste versie van MLflow, geïntegreerd met beveiligingsfuncties voor bedrijven, hoge beschikbaarheid en andere Azure Databricks-werkruimtefuncties zoals experimenter- en runbeheer en het vastleggen van revisies van notebooks.

De eerste keer dat gebruikers aan de slag moeten gaan met MLflow-experimenten, die de basis-API's voor MLflow-tracering demonstreert.

Wat is MLflow?

MLflow is een opensource-platform voor het beheren van de end-to-end levenscyclus van Machine Learning. Het bestaat uit de volgende hoofdcomponenten:

  • Bijhouden: Hiermee kunt u experimenten bijhouden om parameters en resultaten vast te leggen en te vergelijken.
  • Modellen: Hiermee kunt u modellen van verschillende ML-bibliotheken beheren en implementeren naar verschillende model-service- en deductieplatforms.
  • Projecten: Hiermee kunt u ML-code verpakken in een herbruikbare, reproduceerbare vorm om te delen met andere gegevenswetenschappers of overdracht naar productie.
  • Modelregister: Hiermee kunt u een modelarchief centraliseren voor het beheren van de volledige levenscyclusfase van modellen: van fasering tot productie, met mogelijkheden voor versiebeheer en aantekeningen. Databricks biedt een beheerde versie van het modelregister in Unity Catalog.
  • Modelverdiening: Hiermee kunt u MLflow-modellen hosten als REST-eindpunten. Databricks biedt een uniforme interface voor het implementeren, beheren en opvragen van uw aangeboden AI-modellen.

MLflow ondersteunt Java, Python, R en REST-API's.

MLflow-gegevens worden versleuteld door Azure Databricks met behulp van een door het platform beheerde sleutel. Versleuteling met door de klant beheerde sleutels voor beheerde services wordt niet ondersteund.

MLflow-tracering

MLflow in Azure Databricks biedt een geïntegreerde ervaring voor het bijhouden en beveiligen van trainingsuitvoeringen voor machine learning- en deep learning-modellen.

Levenscyclusbeheer van modellen

MLflow Model Registry is een gecentraliseerde modelopslagplaats en een gebruikersinterface en een set API's waarmee u de volledige levenscyclus van MLflow-modellen kunt beheren. Databricks biedt een gehoste versie van het MLflow-modelregister in Unity Catalog. Unity Catalog biedt gecentraliseerd modelbeheer, toegang tussen werkruimten, herkomst en implementatie. Zie Modellevenscyclus beheren in Unity Catalog voor meer informatie over het beheren van de levenscyclus van het model in Unity Catalog.

Als uw werkruimte niet is ingeschakeld voor Unity Catalog, kunt u het werkruimtemodelregister gebruiken.

Concepten van modelregisters

  • Model: Een MLflow-model dat is vastgelegd vanuit een experiment of uitvoering die is vastgelegd met een van de methoden van mlflow.<model-flavor>.log_model de modelsmaak. Nadat een model is geregistreerd, kunt u het registreren bij het modelregister.
  • Geregistreerd model: een MLflow-model dat is geregistreerd bij het modelregister. Het geregistreerde model heeft een unieke naam, versies, modelherkomst en andere metagegevens.
  • Modelversie: een versie van een geregistreerd model. Wanneer een nieuw model wordt toegevoegd aan het modelregister, wordt het toegevoegd als versie 1. Elk model dat is geregistreerd bij dezelfde modelnaam, wordt het versienummer verhoogd.
  • Modelalias: een alias is een veranderlijke, benoemde verwijzing naar een bepaalde versie van een geregistreerd model. Typische toepassingen van aliassen zijn om op te geven welke modelversies in een bepaalde omgeving in uw modeltrainingswerkstromen worden geïmplementeerd of om deductieworkloads te schrijven die zijn gericht op een specifieke alias. U kunt bijvoorbeeld de alias 'Kampioen' van uw geregistreerde model fraudedetectie toewijzen aan de modelversie die het merendeel van het productieverkeer moet leveren en vervolgens deductieworkloads schrijven die zijn gericht op die alias (dat wil gezegd, voorspellingen doen met behulp van de versie 'Kampioen').
  • Modelfase (alleen werkruimtemodelregister): aan een modelversie kan een of meer fasen worden toegewezen. MLflow biedt vooraf gedefinieerde fasen voor de algemene gebruiksvoorbeelden: Geen, Fasering, Productie en Gearchiveerd. Met de juiste machtiging kunt u een modelversie tussen fasen overzetten of een modelfaseovergang aanvragen. Modelversiefasen worden niet gebruikt in Unity Catalog.
  • Beschrijving: U kunt aantekeningen maken op de intentie van een model, inclusief een beschrijving en alle relevante informatie die nuttig is voor het team, zoals algoritmebeschrijving, gebruikte gegevensset of methodologie.

Voorbeeldnotebooks

Voor een voorbeeld dat laat zien hoe u het modelregister gebruikt om een machine learning-toepassing te bouwen die de dagelijkse energie-uitvoer van een windturbinepark voorspelt, raadpleegt u het volgende:

Modelimplementatie

Databricks Model Serving biedt een geïntegreerde interface voor het implementeren, beheren en opvragen van AI-modellen. Elk model dat u gebruikt, is beschikbaar als een REST API die u kunt integreren in uw web- of clienttoepassing.

Het leveren van modellen biedt ondersteuning voor het leveren van services:

  • Aangepaste modellen. Dit zijn Python-modellen die zijn verpakt in de MLflow-indeling. Ze kunnen worden geregistreerd in Unity Catalog of in het register van het werkruimtemodel. Voorbeelden hiervan zijn scikit-learn-, XGBoost-, PyTorch- en Hugging Face-transformatiemodellen.
  • State-of-the-art open modellen die beschikbaar worden gesteld door Foundation Model-API's. Deze modellen zijn gecureerde basismodelarchitecturen die geoptimaliseerde deductie ondersteunen. Basismodellen, zoals Llama-2-70B-chat, BGE-Large en Mistral-7B, zijn beschikbaar voor direct gebruik met prijzen voor betalen per token en workloads waarvoor prestatiegaranties en verfijnde modelvarianten nodig zijn, kunnen worden geïmplementeerd met ingerichte doorvoer.
  • Externe modellen. Dit zijn modellen die buiten Databricks worden gehost. Voorbeelden hiervan zijn basismodellen zoals GpT-4 van OpenAI, Claude van Antropic en andere. Eindpunten die externe modellen dienen, kunnen centraal worden beheerd en klanten kunnen frequentielimieten en toegangsbeheer voor hen vaststellen.

U kunt ook MLflow-modellen implementeren voor offlinedeductie. Zie Modellen implementeren voor batchdeductie.