Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una sesión de proceso de flujo de mensajes proporciona los recursos informáticos necesarios para que se ejecute la aplicación, incluida una imagen de Docker con todos los paquetes de dependencia necesarios. Este entorno confiable y escalable permite solicitar el flujo de forma eficaz ejecutar tareas y funciones, lo que garantiza una experiencia de usuario sin problemas.
Permisos y roles para la administración de sesiones de proceso
Para asignar roles, necesita owner o Microsoft.Authorization/roleAssignments/write permiso en el recurso.
Para los usuarios de la sesión de proceso, asigne el rol AzureML Data Scientist en el área de trabajo. Para obtener más información, consulte Administración del acceso a un área de trabajo de Azure Machine Learning.
La asignación de roles puede tardar varios minutos en surtir efecto.
Inicio de una sesión de proceso en Studio
Antes de usar Azure Machine Learning Studio para iniciar una sesión de proceso, asegúrese de que:
- Tener el rol
AzureML Data Scientisten el área de trabajo. - El almacén de datos predeterminado (normalmente
workspaceblobstore) del área de trabajo es del tipo de blob. - El directorio de trabajo (
workspaceworkingdirectory) existe en el área de trabajo. - Si usa una red virtual para el flujo de avisos, comprende las consideraciones que se indican en Aislamiento de red en el flujo de avisos.
Iniciar una sesión de proceso en una página de flujo
Cada flujo se enlaza a una sola sesión de proceso. Inicie una sesión de proceso en una página de flujo.
Seleccione Iniciar. Inicie una sesión de proceso mediante el entorno definido en en
flow.dag.yamlla carpeta de flujo. Se ejecuta en el tamaño de la máquina virtual (VM) de proceso sin servidor, siempre que tenga suficiente cuota en el área de trabajo.Seleccione Inicio con la configuración avanzada. En la configuración avanzada, puede:
- Seleccione el tipo de proceso. Puede elegir entre el proceso sin servidor y la instancia de proceso.
Si elige proceso sin servidor, puede establecer la siguiente configuración:
- Personalice el tamaño de máquina virtual que usa la sesión de proceso. Opte por la serie D de máquinas virtuales y versiones posteriores. Para más información, consulte la sección sobre Series y tamaños de máquina virtual compatibles
- Personalice el tiempo de inactividad, que elimina automáticamente la sesión de proceso si no está en uso durante un tiempo.
- Incorporar la identidad administrada asignada por el usuario. La sesión de proceso usa esta identidad para extraer una imagen base, autenticar con paquetes de conexión e instalación. Asegúrese de que la identidad administrada asignada por el usuario tiene permisos suficientes. Si no establece esta identidad, la identidad del usuario se usa de forma predeterminada.
- Puede usar el siguiente comando de la CLI para asignar la identidad administrada asignada por el usuario al área de trabajo. Obtenga más información sobre cómo crear y actualizar identidades asignadas por el usuario para un área de trabajo.
az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>Donde el contenido de workspace_update_with_multiple_UAIs.yml es el siguiente:
identity: type: system_assigned, user_assigned user_assigned_identities: '/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai_name>': {} '<UAI resource ID 2>': {}Sugerencia
Las siguientes asignaciones de roles RBAC de Azure son necesarias en la identidad administrada asignada por el usuario para que el área de trabajo de Azure Machine Learning acceda a los datos de los recursos asociados al área de trabajo.
Recurso Permiso Área de trabajo de Azure Machine Learning Colaborador Azure Storage Colaborador (plano de control) + Colaborador de datos de blobs de almacenamiento + Colaborador con privilegios de datos de archivos de almacenamiento (plano de datos, consumir borrador de flujo en el recurso compartido de archivos y los datos del blob) Azure Key Vault (al usar el modelo de permisos de directivas de acceso) Colaborador y cualquier permiso de directiva de acceso además de operaciones de purgar, es el modo predeterminado para Azure Key Vault vinculado. Azure Key Vault (al usar el modelo de permisos RBAC) Colaborador (plano de control) + administrador de Key Vault (plano de datos) Azure Container Registry Colaborador Azure Application Insights Colaborador Nota:
El remitente del trabajo necesita
assignpermiso para la identidad administrada asignada por el usuario. Asigne elManaged Identity Operatorrol, ya que cada vez que se crea una sesión de proceso sin servidor, la identidad administrada asignada por el usuario se asigna al proceso.Si elige la instancia de proceso como tipo de proceso, solo puede establecer el tiempo de apagado de inactividad.
Dado que se ejecuta en una instancia de proceso existente, el tamaño de la máquina virtual es fijo y no se puede cambiar durante la sesión.
La identidad que se usa para esta sesión también se define en la instancia de proceso; de forma predeterminada usa la identidad del usuario. Obtenga más información sobre cómo asignar identidad a la instancia de proceso
Para el tiempo de apagado de inactividad que se usa para definir el ciclo de vida de la sesión de proceso, si la sesión está inactiva durante el tiempo establecido, se elimina automáticamente. Si el apagado inactivo está habilitado en la instancia de proceso, surte efecto en el nivel de proceso.
Obtenga más información sobre cómo crear y administrar instancias de proceso
- Seleccione el tipo de proceso. Puede elegir entre el proceso sin servidor y la instancia de proceso.
Uso de una sesión de proceso para enviar una ejecución de flujo en la CLI o el SDK
Además de usar Studio, especifique la sesión de proceso en la CLI o el SDK al enviar una ejecución de flujo.
Especifique el tipo de instancia o el nombre de instancia de proceso en la sección de recursos. Si no se especifica el tipo de instancia o el nombre de instancia de proceso, Azure Machine Learning elige un tipo de instancia (tamaño de máquina virtual) en función de factores como cuota, costo, rendimiento y tamaño del disco. Obtenga más información sobre Proceso sin servidor.
$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl
# specify identity used by serverless compute.
# default value
# identity:
# type: user_identity
# use workspace first UAI
# identity:
# type: managed
# use specified client_id's UAI
# identity:
# type: managed
# client_id: xxx
column_mapping:
url: ${data.url}
# define cloud resource
resources:
instance_type: <instance_type> # serverless compute type
# compute: <compute_instance_name> # use compute instance as compute type
Envíe esta ejecución a través de la CLI:
pfazure run create --file run.yml
Nota:
El apagado inactivo es de una hora si usa la CLI o el SDK para enviar una ejecución de flujo. Puede ir a la página de proceso para liberar el proceso.
Archivos de referencia fuera de la carpeta de flujo
A veces, es posible que quiera hacer referencia a un requirements.txt archivo que está fuera de la carpeta de flujo. Por ejemplo, puede tener un proyecto complejo que incluya varios flujos y comparta el mismo archivo requirements.txt. Para ello, agregue el additional_includes campo a .flow.dag.yaml El valor de este campo es una lista de la ruta de acceso relativa de archivo o carpeta a la carpeta de flujo. Por ejemplo, si requirements.txt está en la carpeta primaria de la carpeta de flujo, puede agregar ../requirements.txt al campo additional_includes.
inputs:
question:
type: string
outputs:
output:
type: string
reference: ${answer_the_question_with_context.output}
environment:
python_requirements_txt: requirements.txt
additional_includes:
- ../requirements.txt
...
El requirements.txt archivo se copia en la carpeta de flujo y se usa para iniciar la sesión de proceso.
Actualización de una sesión de proceso en la página de flujo de Studio
En una página de flujo, use estas opciones para administrar una sesión de proceso:
- Cambiar la configuración de la sesión de proceso: cambie la configuración como el tamaño de la máquina virtual o la identidad administrada asignada por el usuario para el proceso sin servidor. Si usa una instancia de proceso, cambie a otra instancia.
- Si cambia el tamaño de la máquina virtual, la sesión de proceso se restablece con el nuevo tamaño de máquina virtual.
-
Instalación de paquetes desde requirements.txt: abra
requirements.txten la interfaz de usuario del flujo del símbolo del sistema y agregue paquetes. -
Ver paquetes instalados: muestra los paquetes instalados en la sesión de proceso, incluidos los de la imagen base y especificados en el
requirements.txtarchivo de la carpeta flow. - Restablecer sesión de proceso elimina la sesión de proceso actual y crea una nueva con el mismo entorno. Si encuentra un problema de conflicto de paquetes, puede probar esta opción.
- Detener sesión de proceso elimina la sesión de proceso actual. Si no hay ninguna sesión de proceso activa en el proceso subyacente, también se eliminará el recurso de proceso sin servidor.
También puede personalizar el entorno que usa para ejecutar este flujo agregando paquetes en el archivo requirements.txt de la carpeta de flujo. Después de agregar más paquetes en este archivo, puede elegir cualquiera de estas opciones:
-
Guardar e instalar desencadena
pip install -r requirements.txten la carpeta de flujo. El proceso puede tardar unos minutos, en función de los paquetes que instale. -
Guardar solo guarda el archivo
requirements.txt. Puede instalar los paquetes más adelante.
Nota:
Puede cambiar la ubicación e incluso el nombre de archivo de requirements.txt, pero asegúrese de cambiarlo también en el archivo de la flow.dag.yaml carpeta de flujo.
No ancle las versiones de promptflow y promptflow-tools en requirements.txt porque ya están incluidas en la imagen base de sesión.
requirements.txt no admitirá archivos de rueda local. Compilarlos en la imagen y actualizar la imagen base personalizada en flow.dag.yaml. Obtenga más información sobre cómo crear una imagen base personalizada.
Adición de paquetes en una fuente privada en Azure DevOps
Si quiere usar una fuente privada en Azure DevOps, siga estos pasos:
Asigne una identidad administrada al área de trabajo o a la instancia de proceso.
Si usa proceso sin servidor como sesión de proceso, asigne una identidad administrada asignada por el usuario al área de trabajo.
Cree una identidad administrada asignada por el usuario y agréguela a la organización de Azure DevOps. Para más información, vea Uso de entidades de servicio e identidades administradas.
Nota:
Si el botón Agregar usuarios no está visible, probablemente no tenga los permisos necesarios para realizar esta acción.
Agregue o actualice las identidades asignadas por el usuario al área de trabajo.
Nota:
Asegúrese de que la identidad administrada asignada por el usuario tiene
Microsoft.KeyVault/vaults/readen el almacén de claves vinculado del área de trabajo.
Si usa una instancia de proceso como sesión de proceso, asigne una identidad administrada asignada por el usuario a la instancia de proceso.
Agregue
{private}a la dirección URL de la fuente privada. Por ejemplo, si quiere instalartest_packagedesdetest_feeden Azure DevOps, agregue-i https://{private}@{test_feed_url_in_azure_devops}enrequirements.txt:-i https://{private}@{test_feed_url_in_azure_devops} test_packageEspecifique el uso de la identidad administrada asignada por el usuario en la configuración de la sesión de proceso.
Si usa proceso sin servidor, especifique la identidad administrada asignada por el usuario en Inicio con la configuración avanzada si la sesión de proceso no se está ejecutando o use el botón Cambiar configuración de sesión de proceso si se está ejecutando la sesión de proceso.
Si usa la instancia de proceso, se usa la identidad administrada asignada por el usuario que asignó a la instancia de proceso.
Nota:
Este enfoque se centra principalmente en las pruebas rápidas en la fase de desarrollo de flujo, si también desea implementar este flujo como punto de conexión, cree esta fuente privada en la imagen y actualice la personalización de la imagen base en flow.dag.yaml. Obtenga más información sobre cómo crear una imagen base personalizada
Cambio de la imagen base para la sesión de proceso
De forma predeterminada, usamos la imagen base del flujo de avisos más reciente. Si desea usar otra imagen base, puede crear una personalizada.
- En Studio, puede cambiar la imagen base en la configuración de la imagen base en configuración de sesión de proceso.
También puede especificar la nueva imagen base en
environmenten el archivoflow.dag.yamlde la carpeta de flujo.environment: image: <your-custom-image> python_requirements_txt: requirements.txt
Para usar la nueva imagen base, debe restablecer la sesión de proceso. Este proceso tarda varios minutos a medida que extrae la nueva imagen base y vuelve a instalar los paquetes.
Administración de una instancia sin servidor usada por una sesión de proceso
Use el proceso sin servidor como una sesión de proceso para administrar la instancia sin servidor. Vea la instancia sin servidor en la pestaña lista de sesiones de proceso en la página de proceso.
Accede a los flujos y se ejecuta en el proceso en la pestaña Flujos y ejecuciones activos . La eliminación de la instancia afecta a los flujos y se ejecuta en ella.
Relación entre la sesión de proceso, el recurso de proceso, el flujo y el usuario
- Un solo usuario puede tener varios recursos de proceso (instancia sin servidor o de proceso). Por ejemplo, un usuario podría tener recursos de proceso con diferentes tamaños de máquina virtual o identidades administradas asignadas por el usuario.
- Un único usuario solo puede usar un recurso de proceso. Actúa como un cuadro de desarrollo privado para ese usuario. Varios usuarios no pueden compartir el mismo recurso de proceso.
- Un recurso de proceso puede hospedar varias sesiones de proceso. Una sesión de proceso es un contenedor que se ejecuta en el recurso de proceso subyacente. Por ejemplo, la creación del flujo de solicitud no requiere muchos recursos de proceso, por lo que un único recurso de proceso puede hospedar varias sesiones de proceso para el mismo usuario.
- Una sesión de proceso solo pertenece a un recurso de proceso a la vez. Puede eliminar o detener una sesión de proceso y reasignarla a otro recurso de proceso.
- Un flujo solo puede tener una sesión de proceso. Cada flujo es independiente y define la imagen base y los paquetes de Python necesarios en la carpeta flow para la sesión de proceso.
Cambio del entorno de ejecución a la sesión de proceso
Las sesiones de proceso ofrecen estas ventajas sobre los entornos de ejecución de la instancia de proceso:
- Administre automáticamente el ciclo de vida de las sesiones y el proceso subyacente. Ya no es necesario crearlos ni administrarlos manualmente.
- Personalice fácilmente los paquetes agregándolos al
requirements.txtarchivo en la carpeta de flujo en lugar de crear un entorno personalizado.
Cambie un entorno de ejecución de instancia de proceso a una sesión de proceso con estos pasos:
- Prepare el
requirements.txtarchivo en la carpeta de flujo. No ancle las versiones depromptflowypromptflow-toolsenrequirements.txtporque ya están incluidas en la imagen base. La sesión de proceso instala los paquetes en elrequirements.txtarchivo cuando se inicia. - Si crea un entorno personalizado para un entorno de ejecución de instancia de proceso, obtenga la imagen de la página de detalles del entorno y especifíquela en el
flow.dag.yamlarchivo de la carpeta flow. Para obtener más información, consulte Cambio de la imagen base para la sesión de proceso. Asegúrese de que usted o la identidad administrada asignada por el usuario relacionada en el área de trabajo tienenacr pullpermiso para la imagen.
- Para el recurso de proceso, siga usando la instancia de proceso existente para administrar manualmente el ciclo de vida o pruebe el proceso sin servidor, que administra el sistema.