Ajuste os prompts usando variantes no Estúdio de IA do Azure
Importante
Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.
Neste artigo, você aprenderá como usar variantes para ajustar os prompts e avaliar o desempenho de diferentes variantes.
Criar um bom prompt é uma tarefa desafiadora, que requer muita criatividade, clareza e relevância. Um bom prompt pode provocar o resultado desejado de um modelo de linguagem pré-treinado, enquanto um prompt incorreto pode levar a resultados imprecisos, irrelevantes ou sem sentido. Portanto, é necessário ajustar prompts para otimizar seu desempenho e robustez para diferentes tarefas e domínios.
As variantes podem ajudar você a testar o comportamento do modelo em diferentes condições, como texto, formatação, contexto, temperatura ou top-k diferentes. Você pode comparar e encontrar o melhor prompt e configuração que maximize a precisão, a diversidade ou a coerência do modelo.
Variantes no prompt flow
Com o prompt flow, 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 têm suporte apenas na ferramenta LLM. Por exemplo, na ferramenta LLM, uma nova variante pode representar um conteúdo de prompt diferente ou diferentes configurações de conexão.
Suponha que você queira gerar um resumo de um artigo de notícias. Você pode definir diferentes variantes de prompts e configurações como esta:
Variantes | Prompt | Configurações de conexão |
---|---|---|
Variante 0 | Summary: {{input sentences}} |
Temperatura = 1 |
Variant 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 as 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 de usar variantes incluem:
- Melhore a qualidade da geração do seu LLM: ao criar várias variantes do mesmo nó de LLM com diversos prompts e configurações, você pode identificar a combinação ideal que produz conteúdos de alta qualidade alinhados às suas necessidades.
- Economize tempo e esforço: até mesmo pequenas modificações em um prompt podem produzir resultados diferentes. É crucial acompanhar e comparar o desempenho de cada versão do prompt. Com as variantes, você pode facilmente gerenciar as versões históricas dos seus nós de LLM, facilitando as atualizações com base em qualquer variante sem o risco de esquecer as iterações anteriores. As variantes economizam seu tempo e esforço ao gerenciar o histórico do juste de prompt.
- Aumente a produtividade: as variantes otimizam o processo de otimização dos nós do LLM, simplificando a criação e o gerenciamento de diversas variações. Você pode obter melhores resultados em menos tempo, aumentando assim sua produtividade geral.
- Facilitar a comparação fácil: você pode comparar facilmente os resultados obtidos de diferentes variantes lado a lado, permitindo que você tome decisões baseadas em dados sobre a variante que gera os melhores resultados.
Como ajustar prompts por meio de variantes?
Neste artigo, usamos o fluxo de exemplo de Classificação da Web como exemplo.
- Abra o fluxode amostra e remova o nó prepare_examples como início.
- Em Ferramentas, selecione Prompt flow.
- Selecione Criar para abrir o assistente de criação de fluxo.
- Na galeria de fluxos, em Explorar galeria, na caixa "Classificação da Web", selecione Clonar.
- Na guia de fluxos, exclua o nó prepare_examples.
- Use o prompt a seguir 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 você encontra duas direções a seguir:
Para o nó classify_with_llm: aprendi com a comunidade e com artigos que uma temperatura mais baixa dá maior precisão, mas menos criatividade e surpresa, de modo que a temperatura mais baixa é adequada para tarefas de classificação e também que poucos prompts disparados podem aumentar o desempenho da 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 disparo.
Para o nó summarize_text_content: 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.
Como criar variantes
- Selecione o botãoMostrar variantes no canto superior direito do nó LLM. O nó LLM existente é variant_0 e é a variante padrão.
- Selecione o botão Clonar na variant_0 para gerar a variant_1 e, em seguida, você pode configurar parâmetros para valores diferentes ou atualizar o prompt na variant_1.
- Repita a etapa para criar mais variantes.
- Selecione Ocultar variantes para parar de adicionar mais variantes. Todas as variantes são dobradas. A variante padrão é mostrada para o nó.
Para o nó classify_with_llm, com base na variant_0:
- Crie a variant_1 em que a temperatura é alterada de 1 para 0.
- Crie a variant_2 em que a temperatura é 0 e você pode usar o prompt a seguir, incluindo alguns exemplos simples.
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 o nó summarize_text_content, com base na variant_0, você pode criar a variant_1 em que 100 words
é alterado para 300
palavras no prompt.
Agora, o fluxo tem a seguinte aparência: duas variantes para o nó summarize_text_content e três para o nóclassify_with_llm.
Como executar todas as variantes com uma única linha de dados e verificar os resultados
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.
Observação
A cada vez, você pode selecionar apenas um nó LLM com variantes a serem executadas, enquanto outros nós LLM usarão a variante padrão.
Neste exemplo, configuramos variantes para o nó summarize_text_content e o nóclassify_with_llm, portanto, você precisa executar duas vezes para testar todas as variantes.
- Selecione o botão Executar na barra superior.
- Selecione um nó LLM com variantes. Os outros nós LLM usam a variante padrão.
- Envie a execução do fluxo.
- Depois que a execução do fluxo for concluída, você poderá marcar o resultado correspondente para cada variante.
- Envie outra execução de fluxo com o outro nó LLM com variantes e marcar as saídas.
- Você pode alterar outros dados de entrada (por exemplo, usar uma URL de página da Wikipédia) e repetir as etapas acima para testar variantes para dados diferentes.
Como avaliar variantes
Quando você executa as variantes com algumas partes simples de dados e verifica os resultados a olho nu, isso não pode refletir a complexidade e a diversidade dos dados do mundo real; ao mesmo tempo, a saída não é mensurável, portanto, é difícil comparar a eficácia de variantes diferentes e 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.
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 a precisão para avaliar o desempenho das variantes.
Selecione Avaliar no canto superior direito da página.
Ocorre um assistente para Execução do Lote e Avaliar. A primeira etapa é 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 você a evitar a influência das variantes de outros nós e 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 todo o restante igual.
Por exemplo, você pode selecionar o nó classify_with_llm para executar todas as variantes, o nó summarize_text_content usa a variante padrão para esta execução em lote.
Em seguida, nas Configurações de teste em massa, você pode definir o nome do teste em massa, escolher um runtime e carregar os dados preparados.
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 de 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 de dados (verdade base) e contando quantos deles correspondem.
Na seção Mapeamento de entrada de avaliação , você precisa especificar a verdade base proveniente da coluna de categoria do conjunto de dados de entrada e a previsão vem de um dos resultados de fluxo: categoria.
Depois de examinar todas as configurações, você pode enviar a execução em lote.
Depois que a execução for enviada, selecione o link e vá para a página de detalhes da execução.
Observação
A execução pode demorar vários minutos para ser concluída.
Visualizar saídas
- Depois que a execução e a avaliação do lote forem concluídas, na página de detalhes da execução, selecione várias execuções do lote para cada variante e selecione Visualizar saídas. Você verá as métricas de três variantes para o nó classify_with_llm e as saídas previstas para LLM para cada registro de dados.
- 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ó
- Você também pode repetir as etapas acima para avaliar as variantes do nó summarize_text_content.
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.