Compartilhar via


Introdução ao prompt flow

Este artigo orienta você pelo percurso do usuário principal de usar o prompt flow no Estúdio do Azure Machine Learning. Você aprende como habilitar o fluxo de prompt em seu espaço de trabalho do Azure Machine Learning, criar e desenvolver seu primeiro prompt flow, testá-lo e avaliá-lo e, em seguida, implantá-lo na produção.

Pré-requisitos

  • Verifique se o armazenamento de dados padrão no seu espaço de trabalho é o tipo de blob.

  • Se você proteger o fluxo de prompt com a rede virtual, siga Isolamento de rede no fluxo de prompt para obter mais detalhes.

Configurar conexão

Primeiro, você precisa configurar a conexão.

A conexão ajuda a armazenar e gerenciar com segurança chaves secretas ou outras credenciais confidenciais necessárias para interagir com LLM (Modelos de Linguagem Grande) e outras ferramentas externas, por exemplo, Segurança de Conteúdo do Azure.

Navegue até a página inicial do prompt flow, selecione a guia Conexões. A conexão é um recurso compartilhado para todos os membros no workspace. Portanto, se já vir uma ligação cujo fornecedor é AzureOpenAI, pode saltar esse passo, vá para Iniciar sessão de computação.

Se você ainda não estiver conectado ao AzureOpenAI, selecione o botão Criar e, em seguida , AzureOpenAI na lista suspensa.

Captura de tela da guia de conexões com criar realçado.

Em seguida, um painel à direita será exibido. Aqui, você precisará selecionar a assinatura e o nome do recurso, além de fornecer o nome da conexão, a chave da API (se o tipo de autenticação for igual à chave de API), a base da API, o tipo da API e a versão da API antes de selecionar o botão Salvar. O prompt flow também dá suporte à ID do Microsoft Entra como tipo de autenticação para autenticação baseada em identidade para o recurso de OpenAI do Azure. Saiba mais sobre Como configurar o Serviço OpenAI do Azure com identidades gerenciadas.

Captura de tela das conexões Azure OpenAI adicionadas.

Para obter a chave de API, base, tipo e versão, navegue até o playground de chat no portal do Azure OpenAI e selecione o botão Exibir código. A partir daqui, você pode copiar as informações necessárias e colá-la no painel de criação de conexão.

Captura de tela do playground de chat depois de selecionar o botão do código de exibição que mostra um pop-up com o código de exemplo, destacando a chave de API.

Depois de inserir os campos necessários, selecione Salvar para criar a conexão.

Criar e desenvolver seu prompt flow

Na guia Fluxos da página inicial do prompt flow, selecione Criar para criar seu primeiro prompt flow. Você pode criar um fluxo clonando os exemplos na galeria.

Clonar do exemplo

Os exemplos internos são mostrados na galeria.

Neste guia, usamos o exemplo de Classificação da Web para orientá-lo pelo percurso do usuário principal. Você pode selecionar Ver detalhes no bloco Classificação da Web para visualizar a amostra. Em seguida, uma janela de visualização é exibida. Você pode procurar a introdução de exemplo para ver se o exemplo é semelhante ao seu cenário. Ou você pode simplesmente selecionar Clonar para clonar a amostra diretamente e verificar o fluxo. Teste, modifique.

Captura de tela de criar da galeria destacando a classificação da WEB.

Após selecionar Clonar, um fluxo será criado e salvo em uma pasta específica no armazenamento de compartilhamento de arquivos do workspace. Você pode personalizar o nome da pasta de acordo com suas preferências no painel direito.

Iniciar sessão de computação

Em seguida, você entra na página de criação de fluxo. Antes de começarmos, primeiro inicie uma sessão de computação.

A sessão de computação serve como os recursos de computação necessários para a execução do aplicativo, incluindo uma imagem Docker que contém todos os pacotes de dependência necessários. É necessário para a execução do fluxo.

Captura de tela do início de uma sessão de inicialização.

Página de criação de fluxo

Quando a sessão de computação estiver iniciando, podemos dar uma olhada na página de criação de fluxo.

Captura de tela da classificação da Web destacando a área de trabalho principal.

À esquerda da página de criação está a exibição de nivelamento, a área de trabalho principal em que você pode criar o fluxo, por exemplo, adicionar um novo nó, editar o prompt, selecionar os dados de entrada de fluxo etc.

O canto superior direito mostra a estrutura de pastas do fluxo. Cada fluxo tem uma pasta que contém um arquivo flow.dag.yaml, arquivos de código-fonte e pastas do sistema. Você pode exportar ou importar um fluxo facilmente para fins de teste, implantação ou colaboração.

Além da edição em linha do nó na exibição mesclada, você também pode ativar a alternância do Modo de arquivo bruto e selecionar o nome do arquivo para editá-lo na guia de abertura do arquivo.

Captura de tela da guia de edição de arquivo no modo de arquivo bruto.

No canto inferior direito, é a exibição de gráfico apenas para visualização. Você pode ampliar, reduzir, aplicar o layout automático etc.

Neste guia, usamos o exemplo de Classificação da Web para orientá-lo pelo percurso do usuário principal. A Classificação da Web é um fluxo que demonstra a classificação de várias classes com LLM. Dado um URL, ele classifica o URL em uma categoria da web com apenas algumas fotos, resumo simples e prompts de classificação. Por exemplo, dado "https://www.imdb.com/", classifica esse URL em "Filme".

No modo de exibição de grafo, você pode ver como é a aparência do fluxo de exemplo. A entrada é uma URL para classificar, então ela usa um script Python para buscar conteúdo de texto da URL, usar LLM para resumir o conteúdo do texto em 100 palavras e, em seguida, classificar com base na URL e no conteúdo de texto resumido, usar o script Python pela última vez para converter a saída de LLM em um dicionário. O nó prepare_examples é alimentar exemplos de poucas capturas para o prompt do nó de classificação.

Dados de entrada de fluxo

Ao desdobrar a seção Entradas , você pode criar e exibir entradas. Para o exemplo de Classificação da Web, conforme mostrado na captura de tela abaixo, a entrada de fluxo é uma URL do tipo de cadeia de caracteres.

Captura de tela da classificação da Web destacando as entradas.

O esquema de entrada (nome: url; tipo: cadeia de caracteres) e o valor já estão definidos ao clonar amostras. Você pode alterar para outro valor manualmente, por exemplo, "https://www.imdb.com/".

Configurar nós LLM

Para cada nó LLM, você precisa selecionar uma conexão para definir suas chaves de API LLM.

Captura de tela da classificação da Web mostrando lista suspensa de conexão.

Para este exemplo, verifique se o tipo de API é chat, já que o exemplo de prompt que fornecemos é para a API de chat. Para saber a diferença de formato de prompt da API de chat e de conclusão, confira Desenvolver um fluxo.

Em seguida, dependendo do tipo de conexão selecionado, você precisa selecionar uma implantação ou um modelo. Se você usar a conexão do Azure OpenAI, precisará selecionar uma implantação na lista suspensa (se você não tiver uma implantação, crie uma no portal do Azure OPenAI seguindo Como criar um recurso e implantar um modelo por meio do Azure OpenAI). Se você usar a conexão OpenAI, precisará selecionar um modelo.

Temos dois nós LLM (summarize_text_content e classify_with_llm) no fluxo, portanto, você precisa configurar para cada um, respectivamente.

Executar nó único

Para testar e depurar um único nó, selecione o ícone Executar no nó no modo de exibição de nivelamento. O status da execução é mostrado na parte superior. Depois de concluída a execução, verifique a saída na seção de saída do nó.

Captura de tela da classificação da Web mostrando primeiro que você executa o nó do Python e, em seguida, verifica a saída, depois executa o nó LLM e verifica sua saída.

Execute fetch_text_content_from_url, em seguida, summarize_text_content, verifique se o fluxo puder buscar conteúdo com sucesso na Web e resumir o conteúdo da Web.

O único nó de status também é mostrado no modo de exibição de grafo. Você também pode alterar a URL de entrada de fluxo para testar o comportamento do nó para URLs diferentes.

Executar o fluxo inteiro

Para testar e depurar todo o fluxo, selecione o botão Executar na parte superior direita.

Captura de tela da classificação da Web mostrando uma execução inteira e destacando o botão de execução.

Em seguida, você pode verificar o status de execução e a saída de cada nó. Os status do nó também são mostrados na exibição de grafo. Da mesma forma, você pode alterar a URL de entrada de fluxo para testar como o fluxo se comporta para URLs diferentes.

Definir e verificar a saída de fluxo

Em vez de verificar as saídas em cada nó, você também pode definir a saída de fluxo e verificar saídas de vários nós em um só lugar. Além disso, a saída do fluxo ajuda a:

  • Verificar os resultados do teste em massa em uma única tabela
  • Definir o mapeamento da interface de avaliação
  • Definir o esquema de resposta de implantação

Quando você clona o exemplo, as saídas de fluxo (categoria e evidência) já estão definidas.

Você pode selecionar o botão Visualizar rastreamento no banner para visualizar informações detalhadas de entrada, saída, execução de fluxo e orquestração. Você pode ver que o fluxo prevê a URL de entrada com uma categoria e uma evidência.

Captura de tela da visualização do rastreamento na página de criação.

 Captura de tela do botão de saída de visualização em dois locais.

Você pode selecionar Ver resultado do teste para verificar todos os testes históricos em uma lista.

Captura de tela da classificação da Web mostrando o botão de exibição das saídas.

Captura de tela do resultado do teste de fluxo.

Teste e avaliação

Depois que o fluxo for executado com sucesso com uma única linha de dados, talvez você queira testar se ele tem um bom desempenho em um grande conjunto de dados, você pode executar um teste em massa e escolher alguns métodos de avaliação e, em seguida, verificar as métricas.

Preparar dados

Você precisa preparar os dados de teste primeiro. Há suporte para csv, tsv e arquivo jsonl, por enquanto.

Vá para GitHub para baixar "data.csv", o conjunto de dados dourado para a amostra de Classificação da Web.

Avaliar

Selecione o botão Avaliar ao lado do botão Executar e, em seguida, um painel direito será exibido. Trata-se de um assistente que orienta você a enviar uma execução em lote e selecionar o método de avaliação (opcional).

Você precisa definir um nome de execução em lote, uma descrição e selecionar Adicionar novos dados para carregar os dados baixados. Após carregar os dados, ou se seus colegas no workspace já tiverem criado um conjunto de dados, você pode escolher o conjunto de dados na lista suspensa e visualizar as primeiras cinco linhas. A seleção da lista suspensa do conjunto de dados dá suporte à pesquisa e à sugestão automática.

Além disso, o mapeamento de entrada dá suporte ao mapeamento da entrada do seu fluxo para uma coluna de dados específica no seu conjunto de dados, o que significa que você pode usar qualquer coluna como a entrada de dados, mesmo que os nomes da coluna não correspondam.

Captura de tela de avaliação e execução em lote, destacando o upload de novos dados.

Em seguida, selecione um ou vários métodos de avaliação. Os métodos de avaliação também são fluxos que usam Python ou LLM etc., para calcular métricas como precisão, pontuação de relevância. Os fluxos de avaliação internos e os personalizados são listados na página. Como a classificação da Web é um cenário de classificação, é adequado selecionar a Avaliação de Precisão de Classificação a ser avaliada.

Captura de tela da classificação da Web mostrando a avaliação e execução em lote nos métodos de avaliação.

Se você estiver interessado em como as métricas são definidas para métodos de avaliação internos, você pode visualizar os fluxos de avaliação selecionando Mais detalhes.

Depois de selecionar a Avaliação de Precisão de Classificação como método de avaliação, você pode definir o mapeamento de interface para mapear a verdade do solo para a entrada de fluxo e a previsão para a saída do fluxo.

Captura de tela da classificação da web mostrando a avaliação e execução em lote nas configurações de avaliação.

Em seguida, selecione Examinar e enviar para enviar uma execução em lote e a avaliação selecionada.

Verificar os resultados

Quando sua execução tiver sido enviada, selecione Exibir lista de execuções para navegar até a lista de execução em lote desse fluxo.

A execução em lote pode demorar um pouco para ser concluída. Você pode Atualizar a página para carregar o status mais recente.

Após a execução em lote ter sido concluída, selecione Visualizar saídas para exibir o resultado da execução em lote. Selecione Exibir saídas (ícone de olho) para acrescentar os resultados da avaliação à tabela de resultados de execução em lote. Você pode ver a contagem total de tokens e a precisão geral e, na tabela, verá os resultados para cada linha de dados: entrada, saída de fluxo e resultados de avaliação (quais casos são previstos corretamente e quais não são).

Captura de tela da página de detalhes da execução em lote da classificação da web na guia de resultados.

Você pode ajustar a largura da coluna, ocultar/reexibir colunas, alterar pedidos de coluna. Você também pode selecionar Exportar para baixar a tabela de saída para investigação adicional, fornecemos 2 opções:

  • Baixe a página atual: um arquivo csv das saídas de execução em lote na página atual.
  • Baixe todos os dados: se o seu download é um arquivo de notebook Jupyter, você precisa executá-lo para baixar as saídas no formato jsonl ou csv.

Como você deve saber, a precisão não é a única métrica que pode avaliar uma tarefa de classificação, por exemplo, você também pode usar recall para avaliar. Nesse caso, você pode selecionar Avaliar ao lado do botão "Visualizar saídas", escolher outros métodos de avaliação a serem avaliados.

Implantação

Após criar um fluxo e testá-lo adequadamente, é possível que você queira implantá-lo como um ponto de extremidade para que possa invocar o ponto de extremidade para inferência em tempo real.

Configurar o ponto de extremidade

Selecione o link de execução em lote, em seguida, você será direcionado para a página de detalhes da execução em lote e deve selecionar Implantar. Um assistente aparece para permitir que você configure o ponto de extremidade. Especifique um ponto de extremidade e um nome de implantação, selecione uma máquina virtual, defina conexões, faça algumas configurações (você pode usar as configurações padrão), selecione Examinar e criar para iniciar a implantação.

Testar o ponto de extremidade

Você pode acessar a página de detalhes do ponto de extremidade na notificação ou navegar até pontos de extremidade à esquerda do estúdio e, em seguida, selecionar o ponto de extremidade na guia Pontos de extremidade em tempo real. Leva vários minutos para implantar o ponto de extremidade. Depois que o ponto de extremidade for implantado com sucesso, você poderá testá-lo na guia Teste.

Coloque a URL que você deseja testar na caixa de entrada e selecione Testar. Em seguida, você verá o resultado previsto pelo ponto de extremidade.

Limpar os recursos

Se você planeja continuar agora para os guias de instruções e quiser usar os recursos criados aqui, pule para Próximas etapas.

Parar a instância de computação

Se não for usá-la agora, pare a instância de computação:

  1. No estúdio, na área de navegação à esquerda, selecione Computação.
  2. Nas guias superiores, selecione Instâncias de computação
  3. Selecione a instância de computação na lista.
  4. Na barra de ferramentas superior, selecione Parar.

Excluir todos os recursos

Se você não pretende usar nenhum dos recursos criados, exclua-os para não gerar custos:

  1. No portal do Azure, selecione Grupos de recursos no canto esquerdo.
  2. Selecione o grupo de recursos que você criou por meio da lista.
  3. Selecione Excluir grupo de recursos.

Próximas etapas

Agora que você tem uma ideia do que está envolvido no desenvolvimento, teste, avaliação e implantação de fluxo, saiba mais sobre o processo nesses tutoriais: