Dostosowywanie środowiska uruchomieniowego

Dostosowywanie środowiska za pomocą kontekstu platformy Docker dla środowiska uruchomieniowego

W tej sekcji założono, że masz wiedzę na temat środowisk platformy Docker i usługi Azure Machine Edukacja.

Krok 1. Przygotowanie kontekstu platformy Docker

Utwórz image_build folder

W środowisku lokalnym utwórz folder zawierający następujące pliki, struktura folderów powinna wyglądać następująco:

|--image_build
|  |--requirements.txt
|  |--Dockerfile
|  |--environment.yaml

Definiowanie wymaganych pakietów w programie requirements.txt

Opcjonalnie: Dodaj pakiety w prywatnym repozytorium pypi.

Użyj następującego polecenia, aby pobrać pakiety do środowiska lokalnego: pip wheel <package_name> --index-url=<private pypi> --wheel-dir <local path to save packages>

requirements.txt Otwórz plik i dodaj do niego dodatkowe pakiety i określoną wersję. Na przykład:

###### Requirements with Version Specifiers ######
langchain == 0.0.149        # Version Matching. Must be version 0.0.149
keyring >= 4.1.1            # Minimum version 4.1.1
coverage != 3.5             # Version Exclusion. Anything except version 3.5
Mopidy-Dirble ~= 1.1        # Compatible release. Same as >= 1.1, == 1.*
<path_to_local_package>     # reference to local pip wheel package

Aby uzyskać więcej informacji na temat struktury pliku requirements.txt , zobacz Format pliku wymagań w dokumentacji narzędzia pip.

Uwaga

Nie przypinaj wersji elementu promptflow i promptflow-tools w requirements.txtprogramie , ponieważ uwzględniamy je już w obrazie podstawowym środowiska uruchomieniowego.

Definiowanie Dockerfile

Utwórz plik i dodaj następującą Dockerfile zawartość, a następnie zapisz plik:

FROM <Base_image>
COPY ./* ./
RUN pip install -r requirements.txt

Uwaga

Ten obraz platformy Docker powinien zostać skompilowany na podstawie obrazu podstawowego przepływu monitu, który ma wartość mcr.microsoft.com/azureml/promptflow/promptflow-runtime:<newest_version>. Jeśli to możliwe, użyj najnowszej wersji obrazu podstawowego.

Krok 2. Tworzenie niestandardowego środowiska usługi Azure Machine Edukacja

Definiowanie środowiska w programie environment.yaml

W środowisku obliczeniowym lokalnym możesz użyć interfejsu wiersza polecenia (wersja 2), aby utworzyć dostosowane środowisko na podstawie obrazu platformy Docker.

Uwaga

az login # if not already authenticated

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

environment.yaml Otwórz plik i dodaj następującą zawartość. Zastąp <symbol zastępczy environment_name> odpowiednią nazwą środowiska.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: <environment_name>
build:
  path: .

Utwórz środowisko

cd image_build
az ml environment create -f environment.yaml --subscription <sub-id> -g <resource-group> -w <workspace>

Uwaga

Tworzenie obrazu środowiska może potrwać kilka minut.

Przejdź do strony interfejsu użytkownika obszaru roboczego, a następnie przejdź do strony środowiska i znajdź utworzone środowisko niestandardowe. Teraz możesz go użyć do utworzenia środowiska uruchomieniowego wystąpienia obliczeniowego w przepływie monitu. Aby dowiedzieć się więcej, zobacz Tworzenie środowiska uruchomieniowego wystąpienia obliczeniowego w interfejsie użytkownika.

Obraz można również znaleźć na stronie szczegółów środowiska i użyć go jako obrazu podstawowego w automatycznym środowisku uruchomieniowym (wersja zapoznawcza) w pliku w flow.dag.yaml folderze przepływu monitu. Ten obraz będzie również używany do tworzenia środowiska na potrzeby wdrażania przepływu z poziomu interfejsu użytkownika.

Zrzut ekranu przedstawiający nazwę obrazu na stronie szczegółów środowiska.

Aby dowiedzieć się więcej na temat interfejsu wiersza polecenia środowiska, zobacz Zarządzanie środowiskami.

Dostosowywanie środowiska za pomocą folderu przepływu dla automatycznego środowiska uruchomieniowego (wersja zapoznawcza)

W flow.dag.yaml pliku w folderze przepływu monitów można użyć environment sekcji, którą możemy zdefiniować dla przepływu. Zawiera ona dwie części:

  • obraz: który jest obrazem podstawowym przepływu, jeśli go pominięto, używa najnowszej wersji obrazu mcr.microsoft.com/azureml/promptflow/promptflow-runtime:<newest_version>podstawowego przepływu monitu. Jeśli chcesz dostosować środowisko, możesz użyć obrazu utworzonego w poprzedniej sekcji.
  • Można również określić pakiety requirements.txt, zarówno automatyczne środowisko uruchomieniowe, jak i wdrożenie przepływu z interfejsu użytkownika będzie używać środowiska zdefiniowanego w flow.dag.yaml pliku.

Zrzut ekranu przedstawiający dostosowywanie środowiska automatycznego środowiska uruchomieniowego na stronie przepływu.

Jeśli chcesz używać prywatnych źródeł danych w usłudze Azure devops, zobacz Dodawanie pakietów w prywatnym kanale informacyjnym w usłudze Azure devops.

Tworzenie aplikacji niestandardowej w wystąpieniu obliczeniowym, które może być używane jako środowisko uruchomieniowe wystąpienia obliczeniowego przepływu monitu

Środowisko uruchomieniowe wystąpienia obliczeniowego to aplikacja niestandardowa uruchamiana w wystąpieniu obliczeniowym. Aplikację niestandardową można utworzyć na wystąpieniu obliczeniowym, a następnie użyć jej jako środowiska uruchomieniowego przepływu monitu. Aby utworzyć aplikację niestandardową w tym celu, należy określić następujące właściwości:

INTERFEJS UŻYTKOWNIKA SDK Uwaga
Obraz Dockera Image Ustawienia.reference Obraz używany do kompilowania tej aplikacji niestandardowej
Port docelowy Punkty końcowe Ustawienia.target Port, do którego chcesz uzyskać dostęp do aplikacji, port wewnątrz kontenera
opublikowany port Punkty końcowe Ustawienia.published Port, w którym aplikacja jest uruchomiona na obrazie, port uwidoczniony publicznie

Tworzenie aplikacji niestandardowej jako środowiska uruchomieniowego wystąpienia obliczeniowego przepływu monitów za pomocą zestawu SDK w wersji 2

import os
from azure.ai.ml import MLClient
from azure.ai.ml.entities import ComputeInstance, CustomApplications, EndpointsSettings, ImageSettings, VolumeSettings, WorkspaceConnection
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential

try:
    credential = DefaultAzureCredential()
    # Check if given credential can get token successfully.
    credential.get_token("https://management.azure.com/.default")
except Exception as ex:
    # Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work
    credential = InteractiveBrowserCredential()

ml_client = MLClient.from_config(credential=credential)

image = ImageSettings(reference='mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version>') 
endpoints = [EndpointsSettings(published=8081, target=8080)]

app = CustomApplications(name='promptflow-runtime',endpoints=endpoints,bind_mounts=[],image=image,environment_variables={}) 

ci_basic_name = "<compute_instance_name>"
ci_basic = ComputeInstance(name=ci_basic_name, size="<instance_type>",custom_applications=[app]) 

ml_client.begin_create_or_update(ci_basic)

Uwaga

Zmień newest_versionwartości i instance_type na własną compute_instance_name wartość.

Tworzenie aplikacji niestandardowej jako środowiska uruchomieniowego wystąpienia obliczeniowego za pomocą szablonu usługi Azure Resource Manager

Możesz użyć tego szablonu usługi Azure Resource Manager do utworzenia wystąpienia obliczeniowego z aplikacją niestandardową.

Wdróż na platformie Azure

Aby dowiedzieć się więcej, zobacz Szablon usługi Azure Resource Manager dla aplikacji niestandardowej jako środowisko uruchomieniowe przepływu monitów w wystąpieniu obliczeniowym.

Tworzenie aplikacji niestandardowej jako środowiska uruchomieniowego wystąpienia obliczeniowego przepływu monitu za pomocą interfejsu użytkownika wystąpienia obliczeniowego

Postępuj zgodnie z tym dokumentem, aby dodać aplikację niestandardową.

Zrzut ekranu przedstawiający obliczenia przedstawiające aplikacje niestandardowe.

Następne kroki