Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Machine Learning-omgevingen kapselen de omgeving in waar uw machine learning-training of inferentie plaatsvindt. Ze geven de Python-pakketten en software-instellingen voor uw trainings- en scorescripts op. De Machine Learning-werkruimte beheert en zorgt voor versiebeheer van deze omgevingen, waardoor reproduceerbare, controleerbare en draagbare machine learning-werkstromen in verschillende rekenomgevingen mogelijk zijn. Gebruik een Environment object om het volgende te doen:
- Ontwikkel uw trainingsscript.
- Gebruik dezelfde omgeving op Azure Machine Learning Compute opnieuw voor modeltraining op schaal.
- Implementeer uw model met dezelfde omgeving.
- Ga opnieuw naar de omgeving waarin een bestaand model is getraind.
In het volgende diagram ziet u hoe u één Environment object kunt gebruiken in zowel uw taakconfiguratie (voor training) als uw deductie- en implementatieconfiguratie (voor webservice-implementaties).
De omgeving, het rekendoel en het trainingsscript vormen samen de taakconfiguratie: de volledige specificatie van een trainingstaak.
Typen omgevingen
Omgevingen vallen in drie categorieën: gecureerd, door de gebruiker beheerd en door het systeem beheerd.
Gecureerde omgevingen worden geleverd door Azure Machine Learning en zijn standaard beschikbaar in uw werkruimte. Gebruik ze als zodanig. Ze bevatten verzamelingen Python-pakketten en -instellingen om u te helpen aan de slag te gaan met verschillende machine learning-frameworks. Deze vooraf gemaakte omgevingen bieden ook een snellere implementatietijd. Azure Machine Learning host gecureerde omgevingen in het AzureML-register. Dit is een machine learning-register dat wordt gehost door Microsoft. Zie de omgevingen in het AzureML-register voor een volledige lijst.
In door de gebruiker beheerde omgevingen bent u verantwoordelijk voor het instellen van uw omgeving en het installeren van elk pakket dat uw trainingsscript nodig heeft op het rekendoel. Zorg er ook voor dat u eventuele afhankelijkheden opneemt die nodig zijn voor modelimplementatie. Door de gebruiker beheerde omgeving kan BYOC (Bring Your Own Container) of Docker Build Context zijn op basis van het delegeren van de materialisatie van installatiekopieën naar Azure Machine Learning. Net als bij gecureerde omgevingen kunt u door de gebruiker beheerde omgevingen delen in werkruimten met behulp van een machine learning-register dat u maakt en beheert.
Gebruik door het systeem beheerde omgevingen wanneer u wilt dat Conda de Python-omgeving voor u beheert. Er wordt een nieuwe Conda-omgeving gerealiseerd op basis van uw Conda-specificatie boven op een basis-Docker-installatiekopieën.
Omgevingen maken en beheren
U kunt omgevingen maken op basis van de Azure Machine Learning Python SDK, Azure Machine Learning CLI, Azure Machine Learning-studio en de VS Code-extensie. Met elke client kunt u, indien nodig, het basisimage, de Dockerfile en de Python-laag aanpassen.
Zie de sectie 'Een omgeving maken' van Omgevingen gebruiken voor specifieke codevoorbeelden.
U kunt ook omgevingen beheren via uw werkruimte. Met uw werkruimte kunt u het volgende doen:
- Omgevingen registreren.
- Haal omgevingen op uit uw werkruimte die moeten worden gebruikt voor training of implementatie.
- Maak een nieuw exemplaar van een omgeving door een bestaande te bewerken.
- Bekijk wijzigingen in uw omgevingen in de loop van de tijd, waardoor reproduceerbaarheid wordt gegarandeerd.
- Bouw automatisch Docker-installatiekopieën vanuit uw omgevingen.
Wanneer u een experiment indient, registreert de service automatisch 'anonieme' omgevingen in uw werkruimte. Deze omgevingen worden niet vermeld, maar u kunt de versie gebruiken om ze op te halen.
Zie de sectie 'Omgevingen beheren' van Omgevingen beheren voor codevoorbeelden.
Omgeving bouwen, opslaan in cache en hergebruik
Azure Machine Learning bouwt omgevingsdefinities in Docker-installatiekopieën. Ook worden de omgevingen in de cache opgeslagen, zodat u ze opnieuw kunt gebruiken in volgende trainingstaken en service-eindpuntimplementaties. Voor het extern uitvoeren van een trainingsscript is het maken van een Docker-installatiekopie vereist. Standaard beheert Azure Machine Learning het builddoel voor installatiekopieën op het beschikbare serverloze rekenquotum van de werkruimte als er geen toegewezen rekenkracht is ingesteld voor de werkruimte.
Notitie
Voor netwerkbeperkingen in de Azure Machine Learning-werkruimte is mogelijk een toegewezen door de gebruiker beheerde rekenprocesinstallatiekopieën vereist. Volg de stappen om werkruimtebronnen te beveiligen.
Een taak verzenden met behulp van een omgeving
Wanneer u een remote taak voor het eerst verzendt door een omgeving te gebruiken of handmatig een omgevingsexemplaar maakt, bouwt Azure Machine Learning een installatiekopie voor de opgegeven specificatie. De resulterende afbeelding wordt gecachet in de containerregisterinstantie die is gekoppeld aan de werkruimte. Gecureerde omgevingen worden al in de cache opgeslagen in het Azure Machine Learning-register. Aan het begin van de taakuitvoering haalt het rekendoel de installatiekopieën op uit het relevante containerregister.
Omgevingen bouwen als Docker-installatiekopieën
Als de image voor een omgevingsdefinitie nog niet bestaat in de container register instantie die is gekoppeld aan de Azure Machine Learning-werkruimte, bouwt de service een nieuwe image. Voor systeembeheerde omgevingen bestaat het bouwproces van de afbeelding uit twee stappen:
- Een basisinstallatiekopieën downloaden en eventuele Docker-stappen uitvoeren
- Het bouwen van een conda-omgeving volgens conda-afhankelijkheden die zijn opgegeven in de omgevingsdefinitie.
Voor door de gebruiker beheerde omgevingen maakt de service gebruik van de geleverde Docker-context-builds. In dit geval bent u verantwoordelijk voor het installeren van Python-pakketten, door ze op te nemen in uw basisinstallatiekopieën of aangepaste Docker-stappen op te geven.
Afbeeldingen opslaan in cache en opnieuw gebruiken
Als u dezelfde omgevingsdefinitie voor een andere taak gebruikt, hergebruikt Azure Machine Learning de gecachete images van het containerregister dat is gekoppeld aan uw werkruimte.
Als u de details van een afbeelding in de cache wilt bekijken, controleert u de pagina Omgevingen in Azure Machine Learning-studio of gebruikt MLClient.environments u deze om de omgeving op te halen en te inspecteren.
Azure Machine Learning berekent een hash-waarde uit de omgevingsdefinitie om te bepalen of een afbeelding in de cache opnieuw moet worden gebruikt of een nieuwe moet worden gemaakt. Vervolgens wordt de hash vergeleken met de hashes van bestaande omgevingen. De hash fungeert als een unieke id voor een omgeving en is gebaseerd op de volgende omgevingsdefinities:
- Basisinstallatiekopieën
- Aangepaste docker-stappen
- Python-pakketten
De omgevingsnaam en -versie hebben geen effect op de hash. Als u de naam van uw omgeving wijzigt of een nieuwe maakt met dezelfde instellingen en pakketten als een andere omgeving, blijft de hashwaarde hetzelfde. Het toevoegen of verwijderen van een Python-pakket of het wijzigen van een pakketversie in de omgevingsdefinitie verandert echter de resulterende hashwaarde. Als u de volgorde van afhankelijkheden of kanalen in een omgeving wijzigt, wordt de hash gewijzigd en is een nieuwe build van de installatiekopieën vereist. Op dezelfde manier resulteert elke wijziging in een gecureerde omgeving in het maken van een aangepaste omgeving.
Notitie
U kunt geen lokale wijzigingen indienen in een gecureerde omgeving zonder de naam van de omgeving te wijzigen. De voorvoegsels 'AzureML-' en 'Microsoft' zijn exclusief gereserveerd voor gecureerde omgevingen en uw taakverzending mislukt als de naam met een van beide begint.
De berekende hashwaarde van de omgeving wordt vergeleken met de hashes in het containerregister van de werkruimte. Als er een overeenkomst is, wordt de afbeelding in de cache opgehaald en gebruikt. Anders wordt een afbeelding-build geactiveerd.
In het volgende diagram ziet u drie omgevingsdefinities. Twee daarvan hebben verschillende namen en versies, maar identieke basisinstallatiekopieën en Python-pakketten, wat resulteert in dezelfde hash en bijbehorende afbeelding in de cache. De derde omgeving heeft verschillende Python-pakketten en -versies, wat leidt tot een andere hash- en cache-installatiekopieën.
Werkelijke installatiekopieën in de cache in het containerregister van uw werkruimte hebben namen die vergelijkbaar azureml/azureml_e9607b2514b066c851012848913ba19f zijn met de hash die aan het einde wordt weergegeven.
Belangrijk
Als u een omgeving maakt met een losgemaakte pakketafhankelijkheid (bijvoorbeeld
numpy), gebruikt de omgeving de pakketversie die beschikbaar was toen de omgeving werd gemaakt. Elke toekomstige omgeving die gebruikmaakt van een overeenkomende definitie, maakt gebruik van de oorspronkelijke versie.Als u het pakket wilt bijwerken, geeft u een versienummer op om het opnieuw opbouwen van een installatiekopieën af te dwingen. Een voorbeeld van deze wijziging is bijwerken
numpynaarnumpy==1.18.1. Nieuwe afhankelijkheden, waaronder geneste afhankelijkheden, worden geïnstalleerd en kunnen een eerder werkend scenario verbreken.Als u een niet vastgezette basisimage zoals
mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04in uw omgevingsdefinitie gebruikt, kan dit ertoe leiden dat de basisimage telkens opnieuw wordt opgebouwd wanneer delatesttag wordt bijgewerkt. Dit gedrag helpt de systeemimages de nieuwste patches en systeemupdates te ontvangen.
Patching van installatiekopieën
Microsoft patcht de basisafbeeldingen voor bekende beveiligingsproblemen. Updates voor ondersteunde installatiekopieën worden elke twee weken uitgebracht en de nieuwste versie van de installatiekopieën heeft geen niet-gepatchte beveiligingsproblemen ouder dan 30 dagen. Patch-installatiekopieën worden uitgebracht met een nieuwe onveranderbare tag en de :latest tag wordt bijgewerkt naar de nieuwste versie van de gepatchte installatiekopieën.
U moet gekoppelde Azure Machine Learning-assets bijwerken om de zojuist gepatchte installatiekopieën te kunnen gebruiken. Wanneer u bijvoorbeeld werkt met een beheerd online-eindpunt, moet u uw eindpunt opnieuw implementeren om de patchinstallatiekopie te gebruiken.
Als u uw eigen installatiekopieën opgeeft, bent u verantwoordelijk voor het bijwerken en bijwerken van de Azure Machine Learning-assets die deze gebruiken.
Zie de volgende koppelingen voor meer informatie over de basisafbeeldingen:
- GitHub-opslagplaats voor basisinstallatiekopieën van Azure Machine Learning.
- Een aangepaste container gebruiken om een model te implementeren op een online-eindpunt
- Omgevingen en containerinstallatiekopieën beheren
Gerelateerde inhoud
- Meer informatie over het maken en gebruiken van omgevingen in Azure Machine Learning.
- Raadpleeg de python SDK-referentiedocumentatie voor de omgevingsklasse.