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.txt
programie , 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
- Upewnij się, że spełnisz wymagania wstępne dotyczące tworzenia środowiska.
- Upewnij się, że masz połączenie z obszarem roboczym.
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.
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 wflow.dag.yaml
pliku.
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_version
wartoś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ą.
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ą.