Dela via


Justera frågor med hjälp av varianter i Azure AI Studio

Viktigt!

Vissa av de funktioner som beskrivs i den här artikeln kanske bara är tillgängliga i förhandsversionen. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

I den här artikeln får du lära dig hur du använder varianter för att finjustera frågor och utvärdera prestanda för olika varianter.

Att skapa en bra uppmaning är en utmanande uppgift som kräver mycket kreativitet, tydlighet och relevans. En bra fråga kan framkalla önskade utdata från en förtränad språkmodell, medan en felaktig uppmaning kan leda till felaktiga, irrelevanta eller meningslösa utdata. Därför är det nödvändigt att justera uppmaningar för att optimera deras prestanda och robusthet för olika uppgifter och domäner.

Varianter kan hjälpa dig att testa modellens beteende under olika förhållanden, till exempel olika formuleringar, formatering, kontext, temperatur eller topp-k. Du kan jämföra och hitta den bästa prompten och konfigurationen som maximerar modellens noggrannhet, mångfald eller konsekvens.

Varianter i promptflöde

Med promptflöde kan du använda varianter för att finjustera din fråga. En variant refererar till en specifik version av en verktygsnod som har distinkta inställningar. För närvarande stöds varianter endast i LLM-verktyget. I LLM-verktyget kan till exempel en ny variant representera ett annat promptinnehåll eller olika anslutningsinställningar.

Anta att du vill generera en sammanfattning av en nyhetsartikel. Du kan ange olika varianter av frågor och inställningar så här:

Varianter Prompt Anslutningsinställningar
Variant 0 Summary: {{input sentences}} Temperatur = 1
Variant 1 Summary: {{input sentences}} Temperatur = 0,7
Variant 2 What is the main point of this article? {{input sentences}} Temperatur = 1
Variant 3 What is the main point of this article? {{input sentences}} Temperatur = 0,7

Genom att använda olika varianter av frågor och inställningar kan du utforska hur modellen svarar på olika indata och utdata, så att du kan identifiera den lämpligaste kombinationen för dina behov.

Fördelarna med att använda varianter är:

  • Förbättra kvaliteten på DIN LLM-generation: Genom att skapa flera varianter av samma LLM-nod med olika uppmaningar och konfigurationer kan du identifiera den optimala kombinationen som ger högkvalitativt innehåll som är anpassat efter dina behov.
  • Spara tid och ansträngning: Även små ändringar i en fråga kan ge olika resultat. Det är viktigt att spåra och jämföra prestanda för varje promptversion. Med varianter kan du enkelt hantera de historiska versionerna av dina LLM-noder, vilket underlättar uppdateringar baserat på valfri variant utan att glömma tidigare iterationer. Varianter sparar tid och arbete med att hantera historik för snabbjustering.
  • Öka produktiviteten: Varianter effektiviserar optimeringsprocessen för LLM-noder, vilket gör det enklare att skapa och hantera flera varianter. Du kan uppnå förbättrade resultat på kortare tid, vilket ökar din totala produktivitet.
  • Underlätta enkel jämförelse: Du kan enkelt jämföra resultaten från olika varianter sida vid sida, så att du kan fatta datadrivna beslut om den variant som genererar bästa resultat.

Hur finjusterar jag frågor med hjälp av varianter?

I den här artikeln använder vi exempelflödet för webbklassificering som exempel.

  1. Öppna exempelflödet och ta bort noden prepare_examples som en start.
    1. Under Verktyg väljer du Fråga flöde.
    2. Välj Skapa för att öppna guiden skapa flöde.
    3. I flödesgalleriet under Utforska galleri i rutan "Webbklassificering" väljer du Klona.
    4. Ta bort noden prepare_examples på flödesfliken.
  2. Använd följande fråga som en baslinjeprompt i noden 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:

För att optimera det här flödet kan det finnas flera sätt, och följande är två riktningar:

  • För classify_with_llm nod: Jag lärde mig från communityn och papper att en lägre temperatur ger högre precision men mindre kreativitet och överraskning, så lägre temperatur är lämplig för klassificeringsuppgifter och även få skott kan öka LLM-prestanda. Så jag vill testa hur mitt flöde beter sig när temperaturen ändras från 1 till 0, och när prompten är med få skottexempel.

  • För summarize_text_content nod: Jag vill också testa flödets beteende när jag ändrar sammanfattning från 100 ord till 300 för att se om mer textinnehåll kan förbättra prestandan.

Skapa varianter

  1. Välj knappen Visa varianter längst upp till höger på LLM-noden. Den befintliga LLM-noden är variant_0 och är standardvarianten.
  2. Välj knappen Klona på variant_0 för att generera variant_1. Sedan kan du konfigurera parametrar till olika värden eller uppdatera kommandotolken på variant_1.
  3. Upprepa steget för att skapa fler varianter.
  4. Välj Dölj varianter för att sluta lägga till fler varianter. Alla varianter är vikta. Standardvarianten visas för noden.

För classify_with_llm nod baserat på variant_0:

  • Skapa variant_1 där temperaturen ändras från 1 till 0.
  • Skapa variant_2 där temperaturen är 0 och du kan använda följande fråga, inklusive exempel på några bilder.
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:    

För summarize_text_content nod, baserat på variant_0, kan du skapa variant_1 där 100 words ändras till 300 ord i prompt.

Nu ser flödet ut som följande, 2 varianter för summarize_text_content nod och 3 för classify_with_llm nod.

Kör alla varianter med en enda rad med data och kontrollera utdata

För att se till att alla varianter kan köras och fungera som förväntat kan du köra flödet med en enda rad med data som ska testas.

Kommentar

Varje gång kan du bara välja en LLM-nod med varianter som ska köras medan andra LLM-noder använder standardvarianten.

I det här exemplet konfigurerar vi varianter för både summarize_text_content nod och classify_with_llm nod, så du måste köra två gånger för att testa alla varianter.

  1. Välj knappen Kör längst upp till höger.
  2. Välj en LLM-nod med varianter. De andra LLM-noderna använder standardvarianten.
  3. Skicka flödeskörningen.
  4. När flödeskörningen är klar kan du kontrollera motsvarande resultat för varje variant.
  5. Skicka en annan flödeskörning med den andra LLM-noden med varianter och kontrollera utdata.
  6. Du kan ändra ytterligare indata (till exempel använda en Wikipedia-sid-URL) och upprepa stegen ovan för att testa varianter för olika data.

Utvärdera varianter

När du kör varianterna med några få datadelar och kontrollerar resultatet med blotta ögat kan det inte återspegla komplexiteten och mångfalden hos verkliga data, samtidigt som utdata inte är mätbara, så det är svårt att jämföra effektiviteten hos olika varianter och sedan välja det bästa.

Du kan skicka en batchkörning, som gör att du kan testa varianterna med en stor mängd data och utvärdera dem med mått, för att hjälpa dig att hitta den bästa passformen.

  1. Först måste du förbereda en datauppsättning, som är tillräckligt representativ för det verkliga problem som du vill lösa med Prompt-flödet. I det här exemplet är det en lista över URL:er och deras klassificeringsgrundssanning. Vi använder noggrannhet för att utvärdera prestanda för varianter.

  2. Välj Utvärdera längst upp till höger på sidan.

  3. En guide för Batch-körning och utvärdera inträffar. Det första steget är att välja en nod för att köra alla dess varianter.

    Om du vill testa hur olika varianter fungerar för varje nod i ett flöde måste du köra en batchkörning för varje nod med varianter en i taget. Detta hjälper dig att undvika påverkan från andra noders varianter och fokusera på resultatet av den här nodens varianter. Detta följer regeln för det kontrollerade experimentet, vilket innebär att du bara ändrar en sak i taget och behåller allt annat på samma sätt.

    Du kan till exempel välja classify_with_llm nod för att köra alla varianter. Den summarize_text_content noden använder standardvarianten för den här batchkörningen.

  4. I inställningarna för Batch-körning kan du ange batchkörningsnamn, välja en körning och ladda upp förberedda data.

  5. Välj sedan en utvärderingsmetod i Utvärderingsinställningar.

    Eftersom det här flödet är för klassificering kan du välja metod för utvärdering av klassificeringsnoggrannhet för att utvärdera noggrannheten.

    Noggrannhet beräknas genom att jämföra de förutsagda etiketterna som tilldelats av flödet (förutsägelsen) med de faktiska dataetiketterna (grund sanning) och räkna hur många av dem som matchar.

    I avsnittet Utvärderingsindatamappning måste du ange grund sanning som kommer från kategorikolumnen för indatauppsättningen, och förutsägelsen kommer från något av flödesutdata: kategori.

  6. När du har granskat alla inställningar kan du skicka batchkörningen.

  7. När körningen har skickats väljer du länken och går till sidan för körningsinformation.

Kommentar

Körningen kan ta flera minuter att slutföra.

Visualisera utdata

  1. När batchkörningen och utvärderingskörningen är klar går du till sidan körningsinformation och väljer batchkörningarna för varje variant och väljer sedan Visualisera utdata. Du ser måtten på 3 varianter för den classify_with_llm noden och LLM-förutsagda utdata för varje post med data.
  2. När du har identifierat vilken variant som är bäst kan du gå tillbaka till flödesredigeringssidan och ange den varianten som standardvariant för noden
  3. Du kan upprepa stegen ovan för att utvärdera varianterna av summarize_text_content nod också.

Nu har du slutfört processen med att justera frågor med hjälp av varianter. Du kan använda den här tekniken i ditt eget promptflöde för att hitta den bästa varianten för LLM-noden.

Nästa steg