Partilhar via


Ajustar prompts usando variantes no Azure AI Studio

Importante

Alguns dos recursos descritos neste artigo podem estar disponíveis apenas na visualização. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Neste artigo, você aprenderá a usar variantes para ajustar prompts e avaliar o desempenho de diferentes variantes.

Elaborar um bom prompt é uma tarefa desafiadora que requer muita criatividade, clareza e relevância. Um bom prompt pode obter a saída desejada de um modelo de linguagem pré-treinado, enquanto um prompt ruim pode levar a saídas imprecisas, irrelevantes ou sem sentido. Portanto, é necessário ajustar prompts para otimizar seu desempenho e robustez para diferentes tarefas e domínios.

As variantes podem ajudá-lo a testar o comportamento do modelo sob diferentes condições, como diferentes palavras, formatação, contexto, temperatura ou top-k. Você pode comparar e encontrar o melhor prompt e configuração que maximiza a precisão, diversidade ou coerência do modelo.

Variantes no fluxo de prompt

Com o fluxo de prompt, você pode usar variantes para ajustar seu prompt. Uma variante refere-se a uma versão específica de um nó de ferramenta que tem configurações distintas. Atualmente, as variantes são suportadas apenas na ferramenta LLM. Por exemplo, na ferramenta LLM, uma nova variante pode representar um conteúdo de prompt diferente ou configurações de conexão diferentes.

Suponha que você queira gerar um resumo de uma notícia. Você pode definir diferentes variantes de prompts e configurações como esta:

Variantes Pedido Definições de ligação
Variante 0 Summary: {{input sentences}} Temperatura = 1
Variante 1 Summary: {{input sentences}} Temperatura = 0,7
Variante 2 What is the main point of this article? {{input sentences}} Temperatura = 1
Variante 3 What is the main point of this article? {{input sentences}} Temperatura = 0,7

Ao utilizar diferentes variantes de prompts e configurações, você pode explorar como o modelo responde a várias entradas e saídas, permitindo que você descubra a combinação mais adequada para suas necessidades.

Os benefícios do uso de variantes incluem:

  • Melhore a qualidade de sua geração LLM: Ao criar várias variantes do mesmo nó LLM com diversos prompts e configurações, você pode identificar a combinação ideal que produz conteúdo de alta qualidade alinhado às suas necessidades.
  • Economize tempo e esforço: mesmo pequenas modificações em um prompt podem produzir resultados diferentes. É crucial acompanhar e comparar o desempenho de cada versão de prompt. Com variantes, você pode gerenciar facilmente as versões históricas de seus nós LLM, facilitando atualizações baseadas em qualquer variante sem o risco de esquecer iterações anteriores. As variantes economizam tempo e esforço no gerenciamento do histórico de ajuste de prompts.
  • Aumente a produtividade: as variantes agilizam o processo de otimização para nós LLM, tornando mais simples criar e gerenciar várias variações. Você pode alcançar melhores resultados em menos tempo, aumentando assim sua produtividade geral.
  • Facilite a comparação fácil: Você pode comparar sem esforço os resultados obtidos de diferentes variantes lado a lado, permitindo que você tome decisões baseadas em dados em relação à variante que gera os melhores resultados.

Como ajustar prompts usando variantes?

Neste artigo, usamos o fluxo de exemplo de Classificação da Web como exemplo.

  1. Abra o fluxo de amostra e remova o nó prepare_examples como um início.
    1. Em Ferramentas, selecione Fluxo de prompt.
    2. Selecione Criar para abrir o assistente de criação de fluxo.
    3. Na galeria de fluxo, em Explorar galeria , na caixa "Classificação da Web", selecione Clonar.
    4. Na guia fluxo, exclua o nó prepare_examples .
  2. Use o seguinte prompt como um prompt de linha de base no nó classify_with_llm .
Your task is to classify a given url into one of the following types:
Movie, App, Academic, Channel, Profile, PDF or None based on the text content information.
The classification will be based on the url, the webpage text content summary, or both.

For a given URL : {{url}}, and text content: {{text_content}}.
Classify above url to complete the category and indicate evidence.

The output shoule be in this format: {"category": "App", "evidence": "Both"} 
OUTPUT:

Para otimizar esse fluxo, pode haver várias maneiras, e a seguir estão duas direções:

  • Para classify_with_llm nó: aprendi com a comunidade e os papéis que uma temperatura mais baixa dá maior precisão, mas menos criatividade e surpresa, então uma temperatura mais baixa é adequada para tarefas de classificação e também poucos prompts podem aumentar o desempenho do LLM. Então, eu gostaria de testar como meu fluxo se comporta quando a temperatura é alterada de 1 para 0, e quando o prompt é com poucos exemplos de tiro.

  • Para summarize_text_content nó: também quero testar o comportamento do meu fluxo quando altero o resumo de 100 palavras para 300, para ver se mais conteúdo de texto pode ajudar a melhorar o desempenho.

Criar variantes

  1. Selecione o botão Mostrar variantes no canto superior direito do nó LLM. O nó LLM existente é variant_0 e é a variante padrão.
  2. Selecione o botão Clonar no variant_0 para gerar variant_1 e, em seguida, você pode configurar parâmetros para valores diferentes ou atualizar o prompt em variant_1.
  3. Repita a etapa para criar mais variantes.
  4. Selecione Ocultar variantes para parar de adicionar mais variantes. Todas as variantes são dobradas. A variante padrão é mostrada para o nó.

Para classify_with_llm nó, com base em variant_0:

  • Crie variant_1 onde a temperatura é alterada de 1 para 0.
  • Crie variant_2 onde a temperatura é 0 e você pode usar o seguinte prompt, incluindo exemplos de algumas fotos.
Your task is to classify a given url into one of the following types:
Movie, App, Academic, Channel, Profile, PDF or None based on the text content information.
The classification will be based on the url, the webpage text content summary, or both.

Here are a few examples:

URL: https://play.google.com/store/apps/details?id=com.spotify.music 
Text content: Spotify is a free music and podcast streaming app with millions of songs, albums, and original podcasts. It also offers audiobooks, so users can enjoy thousands of stories. It has a variety of features such as creating and sharing music playlists, discovering new music, and listening to popular and exclusive podcasts. It also has a Premium subscription option which allows users to download and listen offline, and access ad-free music. It is available on all devices and has a variety of genres and artists to choose from. 
OUTPUT: {"category": "App", "evidence": "Both"} 
		
URL: https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw 
Text content: NFL Sunday Ticket is a service offered by Google LLC that allows users to watch NFL games on YouTube. It is available in 2023 and is subject to the terms and privacy policy of Google LLC. It is also subject to YouTube's terms of use and any applicable laws. 
OUTPUT: {"category": "Channel", "evidence": "URL"} 
		
URL: https://arxiv.org/abs/2303.04671 
Text content: Visual ChatGPT is a system that enables users to interact with ChatGPT by sending and receiving not only languages but also images, providing complex visual questions or visual editing instructions, and providing feedback and asking for corrected results. It incorporates different Visual Foundation Models and is publicly available. Experiments show that Visual ChatGPT opens the door to investigating the visual roles of ChatGPT with the help of Visual Foundation Models. 
OUTPUT: {"category": "Academic", "evidence": "Text content"} 
		
URL: https://ab.politiaromana.ro/ 
Text content: There is no content available for this text. 
OUTPUT: {"category": "None", "evidence": "None"}
		
For a given URL : {{url}}, and text content: {{text_content}}.
Classify above url to complete the category and indicate evidence.
OUTPUT:    

Para summarize_text_content nó, com base em variant_0, você pode criar variant_1 onde 100 words é alterado para 300 palavras no prompt.

Agora, o fluxo tem a seguinte aparência, 2 variantes para summarize_text_content nó e 3 para classify_with_llm nó.

Execute todas as variantes com uma única linha de dados e verifique as saídas

Para garantir que todas as variantes possam ser executadas com êxito e funcionar conforme o esperado, você pode executar o fluxo com uma única linha de dados para testar.

Nota

Cada vez que você só pode selecionar um nó LLM com variantes para executar, enquanto outros nós LLM usarão a variante padrão.

Neste exemplo, configuramos variantes para summarize_text_content nó e classify_with_llm nó, portanto, você precisa executar duas vezes para testar todas as variantes.

  1. Selecione o botão Executar no canto superior direito.
  2. Selecione um nó LLM com variantes. Os outros nós LLM usam a variante padrão.
  3. Envie a execução do fluxo.
  4. Depois que a execução do fluxo for concluída, você poderá verificar o resultado correspondente para cada variante.
  5. Envie outra execução de fluxo com o outro nó LLM com variantes e verifique as saídas.
  6. Você pode alterar outros dados de entrada (por exemplo, usar um URL de página da Wikipédia) e repetir as etapas acima para testar variantes para dados diferentes.

Avaliar variantes

Quando você executa as variantes com alguns dados e verifica os resultados a olho nu, isso não pode refletir a complexidade e a diversidade dos dados do mundo real, enquanto isso, a saída não é mensurável, então é difícil comparar a eficácia de diferentes variantes e, em seguida, escolher a melhor.

Você pode enviar uma execução em lote, que permite testar as variantes com uma grande quantidade de dados e avaliá-las com métricas, para ajudá-lo a encontrar o melhor ajuste.

  1. Primeiro, você precisa preparar um conjunto de dados, que seja representativo o suficiente do problema do mundo real que você deseja resolver com o fluxo de prompt. Neste exemplo, é uma lista de URLs e sua verdade de base de classificação. Usamos precisão para avaliar o desempenho das variantes.

  2. Selecione Avaliar no canto superior direito da página.

  3. Ocorre um assistente para Batch run & Evaluation . O primeiro passo é selecionar um nó para executar todas as suas variantes.

    Para testar como diferentes variantes funcionam para cada nó em um fluxo, você precisa executar uma execução em lote para cada nó com variantes uma a uma. Isso ajuda a evitar a influência das variantes de outros nós e a se concentrar nos resultados das variantes desse nó. Isso segue a regra do experimento controlado, o que significa que você só muda uma coisa de cada vez e mantém tudo o resto igual.

    Por exemplo, você pode selecionar classify_with_llm nó para executar todas as variantes, o nó summarize_text_content usa a variante padrão para essa execução em lote.

  4. Em seguida, em Configurações de execução em lote, você pode definir o nome da execução em lote, escolher um tempo de execução, carregar os dados preparados.

  5. Em seguida, em Configurações de avaliação, selecione um método de avaliação.

    Como esse fluxo é para classificação, você pode selecionar o método Avaliação de Precisão de Classificação para avaliar a precisão.

    A precisão é calculada comparando os rótulos previstos atribuídos pelo fluxo (previsão) com os rótulos reais dos dados (verdade do solo) e contando quantos deles correspondem.

    Na seção Mapeamento de entrada de avaliação, você precisa especificar que a verdade do terreno vem da coluna de categoria do conjunto de dados de entrada, e a previsão vem de uma das saídas de fluxo: categoria.

  6. Depois de revisar todas as configurações, você pode enviar a execução em lote.

  7. Depois que a execução for enviada, selecione o link, vá para a página de detalhes da execução.

Nota

A execução pode levar vários minutos para ser concluída.

Visualizar saídas

  1. Após a conclusão da execução em lote e da avaliação, na página de detalhes da execução, selecione várias vezes as execuções em lote para cada variante e, em seguida, selecione Visualizar saídas. Você verá as métricas de 3 variantes para o nó classify_with_llm e as saídas previstas LLM para cada registro de dados.
  2. Depois de identificar qual variante é a melhor, você pode voltar para a página de criação de fluxo e definir essa variante como variante padrão do nó
  3. Você também pode repetir as etapas acima para avaliar as variantes de summarize_text_content nó.

Agora, você concluiu o processo de ajuste de prompts usando variantes. Você pode aplicar essa técnica ao seu próprio fluxo de prompt para encontrar a melhor variante para o nó LLM.

Próximos passos