Seguimiento de una aplicación con el SDK de flujo de avisos | Azure AI Studio
Importante
Algunas de las características descritas en este artículo solo pueden estar disponibles en versión preliminar. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
El seguimiento es una herramienta eficaz que ofrece a los desarrolladores una comprensión detallada del proceso de ejecución de sus aplicaciones de IA generativa, como agentes, AutoGen y casos de uso de generación aumentada de recuperación (RAG). Proporciona una vista detallada del flujo de ejecución, incluidas las entradas y salidas de cada nodo dentro de la aplicación. Esta información esencial demuestra importancia al depurar aplicaciones complejas o al optimizar el rendimiento.
Aunque más desarrolladores usan varios marcos, como Langchain, Semantic Kernel, OpenAI y varios tipos de agentes para crear aplicaciones basadas en LLM. El seguimiento con el SDK de flujo de avisos ofrece visibilidad mejorada y solución de problemas simplificada para aplicaciones basadas en LLM, lo que admite de manera eficaz el desarrollo, la iteración y la supervisión de producción. El seguimiento en Inteligencia artificial de Azure Studio sigue la especificación de OpenTelemetry, capturando y visualizando los detalles de ejecución interna de cualquier aplicación de IA, lo que mejora la experiencia general de desarrollo.
Ventajas del seguimiento de Inteligencia artificial de Azure Studio en la plataforma en la nube de nivel empresarial
Además, ahora ofrecemos pruebas locales persistentes en Inteligencia artificial de Azure Studio, que es la plataforma en la nube de nivel empresarial, lo que mejora significativamente la colaboración, la persistencia y la administración del historial de pruebas.
Con el seguimiento, puede hacer lo siguiente:
- Tener una ubicación basada en la nube para conservar y realizar un seguimiento de las pruebas históricas.
- Extraer y visualizar fácilmente los resultados de la prueba, comparando las salidas de diferentes casos de prueba.
- Reutilizar los recursos de prueba anteriores para su uso posterior, por ejemplo, comentarios humanos, curación de datos, etc.
- Facilitar un mejor uso de los recursos en el futuro.
- Depurar y optimizar la aplicación con facilidad. Para empezar a depurar escenarios de aplicaciones LLM, consulte Seguimiento con una aplicación LLM.
- Analice los procesos de recuperación y generación en aplicaciones RAG.
- Observe las interacciones de varios agentes en los escenarios de varios agentes. Para empezar a trabajar con el seguimiento en escenarios de varios agentes, consulte Seguimiento con AutoGen.
Registro y visualización de seguimientos de las aplicaciones
Inteligencia artificial de Azure Studio proporciona la funcionalidad de seguimiento para registrar y administrar las pruebas y evaluaciones de las aplicaciones LLM, al tiempo que depura y observa mediante la exploración en profundidad de la vista de seguimiento.
La característica de seguimiento de cualquier aplicación hoy se implementa en el paquete de código abierto del flujo de avisos para permitir que el usuario realice un seguimiento de la llamada o función LLM y marcos LLM como LangChain y AutoGen, independientemente del marco que use, siguiendo la Especificación de OpenTelemetry.
Habilitación del seguimiento en la aplicación
Código primero: asegúrese de que ha anotado el código para el seguimiento en el flujo de avisos.
- Instalación del flujo de avisos: requerir el seguimiento del flujo de avisos
- Instrumentación del código de aplicación: mediante
@trace
ystart_trace()
. - Prueba y visualización del seguimiento en el entorno local
Para obtener más información sobre el seguimiento en el flujo de avisos, consulte esta documentación del flujo de avisos.
Registro del seguimiento en Inteligencia artificial de Azure Studio
Establecimiento del destino de seguimiento
De manera predeterminada, el seguimiento se registra y se ve en el entorno local. Para iniciar sesión en Inteligencia artificial de Azure Studio en la nube, debe establecer trace destination
en un proyecto de Inteligencia artificial de Azure Studio especificado.
Puede consultar los pasos siguientes para establecer el destino de seguimiento en el proyecto de Inteligencia artificial de Azure Studio.
En primer lugar, asegúrese de que la CLI de Azure esté instalada y haya iniciado sesión:
az login
A continuación, ejecute el siguiente comando para establecer el destino de seguimiento. Reemplace <your_subscription_id>
, <your_resourcegroup_name>
y <your_studio_project_name>
por el id. de suscripción específico, el nombre del grupo de recursos y el nombre del proyecto de Inteligencia artificial de Azure Studio:
pf config set trace.destination=azureml://subscriptions/<your_subscription_id>/resourcegroups/<your_resourcegroup_name>/providers/Microsoft.MachineLearningServices/workspaces/<your_studio_project_name>
Nota:
La región Oeste de EE. UU. 3 (westus3
) no admite el seguimiento.
Colecciones
Una colección es un grupo de seguimientos asociados. En Inteligencia artificial de Azure Studio, estas recopilaciones junto con sus seguimientos internos se administran y almacenan en el módulo Seguimiento en la pestaña Recopilaciones.
Vaya al proyecto en Inteligencia artificial de Azure Studio.
En el panel izquierdo, seleccione Seguimiento. Puede ver la pestaña Colecciones. Solo puede ver sus propias colecciones en la lista de colecciones. En este ejemplo, todavía no hay ninguna colección.
La pestaña Colección muestra una lista completa de todas las colecciones que ha creado. Muestra metadatos esenciales para cada colección, incluido su nombre, ubicación de ejecución, hora de última actualización y hora de creación.
- Ubicación de ejecución: indica si la aplicación se ejecuta localmente o en la nube. La colección en la nube está asociada al historial de pruebas de creación en la nube del flujo de avisos específico y a los seguimientos generados. En este caso, el nombre de la colección es el mismo que el nombre para mostrar del flujo de avisos.
- Hora de actualización: muestra la hora más reciente en que se registró un nuevo seguimiento en una colección. De manera predeterminada, las colecciones se ordenan en orden descendente en función de sus horas actualizadas.
- Hora de actualización: hora en la que se creó inicialmente la colección.
Al seleccionar el nombre de una colección, puede acceder a una lista de todos los seguimientos de esa colección. Solo se puede compartir un subconjunto de seguimientos con otros usuarios. Consulte Compartir seguimiento para obtener más información.
Al registrar un seguimiento, tiene la opción de especificar un nombre de colección para agruparlo con otros seguimientos relacionados. Puede crear varias colecciones para lograr una mejor organización de los seguimientos. Si no se especifica un nombre de colección al registrar un seguimiento, el valor predeterminado es el nombre de la carpeta del proyecto o la colección predeterminada.
Personalización de las colecciones
Para lograr una mejor organización de los seguimientos, puede especificar un nombre de colección personalizado al registrar un seguimiento.
Si está realizando un seguimiento de su propia aplicación, puede establecer el nombre de la colección en la función start_trace()
en el código:
from promptflow.tracing import start_trace, trace
@trace
def my_function(input: str) -> str:
output = input + "Hello World!"
return output
my_function("This is my function")
start_trace(collection="my_custom_collection")
Para obtener más información sobre la personalización de las colecciones, consulte el tutorial de seguimiento y el comando del flujo de avisos.
Visualización de los seguimientos
En primer lugar, debe completar los pasos anteriores para ver los seguimientos en la nube:
Ahora, ejecute el script de Python directamente. Tras una ejecución correcta, aparece un vínculo de seguimiento en la nube en la salida. Es posible que tenga un aspecto similar a este:
Starting prompt flow service...
...
You can view the traces in cloud from AI Studio: https://ai.azure.com/projecttrace/detail/....
Seleccione la dirección URL para ir a una página de detalles de seguimiento en Cloud Portal. Esta página es similar a la vista de seguimiento local.
La vista de detalles de seguimiento proporciona una visión general, completa y estructurada de las operaciones dentro de la aplicación.
Descripción de la vista de detalles del seguimiento
En la esquina superior derecha de la vista de seguimiento, encontrará lo siguiente:
- Nombre del seguimiento: es el mismo que el nombre del intervalo raíz, que representa el nombre de la función de entrada de la aplicación.
- Estado: este podría ser "completado" o "erróneo".
- Duración total: es el tiempo total de duración de la ejecución de la prueba. Mantenga el puntero por encima para ver las horas de inicio y finalización.
- Total de tokens: este es el costo total del token de la prueba. Mantenga el puntero por encima para ver los tokens de solicitud y los tokens completados.
- Hora de creación: hora en la que se creó el seguimiento.
En el lado izquierdo, puede ver una estructura de árbol jerárquica. Esta estructura muestra la secuencia de las llamadas de función. Los metadatos de cada llamada de función se organizan en intervalos. Estos intervalos se vinculan juntos en una estructura similar a un árbol, lo que ilustra la secuencia de ejecución.
En el SDK de flujo de avisos, definimos varios tipos de intervalo, como LLM, Función, Inserción, Recuperación y Flujo. Y el sistema crea automáticamente intervalos con información de ejecución en atributos y eventos designados.
Cada intervalo le permite ver lo siguiente:
- Nombre de función: de manera predeterminada, este es el nombre de la función tal como se define en el código. Sin embargo, también puede ser un nombre de intervalo personalizado definido a través de OpenTelemetry.
- Duración: representa la duración durante la que se ejecutó la función. Mantenga el puntero por encima para ver las horas de inicio y finalización.
- Tokens para llamadas LLM: este es el costo del token de la llamada LLM. Mantenga el puntero por encima para ver los tokens de solicitud y los tokens completados.
Al seleccionar un intervalo específico, puede desplazarse para ver la información detallada asociada en el lado derecho. Esta información incluye entradas, salidas, JSON sin formato, registros y excepciones, que son esenciales para observar y depurar la aplicación.
Para el intervalo de LLM, se proporciona una vista de conversación clara. Esto incluye la solicitud del sistema, la solicitud del usuario y la respuesta del asistente. Esta información es especialmente crucial en los casos de varios agentes, ya que permite comprender el flujo de la conversación y la interacción dentro de la llamada automática intermedia de LLM.
Puede seleccionar la pestaña JSON sin formato para ver los datos JSON del intervalo. Este formato puede ser más adecuado para los desarrolladores en lo que respecta a la depuración y solución de problemas.
Compartir seguimiento
Si desea compartir el seguimiento con otros usuarios que tengan permiso para el proyecto, puede seleccionar el botón Compartir en la esquina derecha de la página de detalles del seguimiento y, a continuación, tendrá el vínculo de la página copiado para compartirlo con otros usuarios.
Nota:
El seguimiento compartido es de solo lectura y solo las personas que tienen permiso para el proyecto pueden verlo a través del vínculo.