Redigera

Dela via


Konversationssammanfattning

Azure AI services

De flesta företag tillhandahåller kundtjänstsupport för att hjälpa kunder med produktfrågor, felsökning och underhåll eller uppgradering av funktioner eller själva produkten. För att ge en tillfredsställande lösning måste kundsupportspecialister svara snabbt med korrekt information. OpenAI kan hjälpa organisationer med kundsupport på flera olika sätt.

Den här guiden beskriver hur du genererar sammanfattningar av kundagentinteraktioner med hjälp av Azure OpenAI GPT-3-modellen. Den innehåller en exempelarkitektur från slutpunkt till slutpunkt som illustrerar de viktigaste komponenterna som ingår i att få en sammanfattning av en textinmatning. Genereringen av textinmatningen ligger utanför omfånget för den här guiden. Fokus i den här guiden är att beskriva processen med att implementera sammanfattningen av en uppsättning exempel på agent-kund-konversationer och analysera resultatet av olika metoder för sammanfattning.

Konversationsscenarier

  • Chattrobotar med självbetjäning (helt automatiserade). I det här scenariot kan kunder interagera med en chattrobot som drivs av GPT-3 och tränas på branschspecifika data. Chattroboten kan förstå kundfrågor och svara på rätt sätt baserat på svar som lärts från en baza znanja.
  • Chattrobot med agentintervention (halvautomatiserad). Frågor som ställs av kunder är ibland komplexa och kräver mänsklig inblandning. I sådana fall kan GPT-3 ge en sammanfattning av kundchattrobotkonversationen och hjälpa agenten med snabba sökningar efter ytterligare information från en stor baza znanja.
  • Sammanfatta avskrifter (helt automatiserade eller halvautomatiserade). I de flesta kundsupportcenter måste agenter sammanfatta konversationer för arkivering, framtida uppföljning, utbildning och andra interna processer. GPT-3 kan tillhandahålla automatiserade eller halvautomatiserade sammanfattningar som samlar in viktig information om konversationer för vidare användning.

Den här guiden fokuserar på processen för att sammanfatta avskrifter med hjälp av Azure OpenAI GPT-3.

I genomsnitt tar det en agent 5 till 6 minuter att sammanfatta en enda agent-kund-konversation. Med tanke på de stora mängder förfrågningar som tjänstteam hanterar en viss dag kan den här ytterligare uppgiften överbelasta teamet. OpenAI är ett bra sätt att hjälpa agenter med sammanfattningsrelaterade aktiviteter. Det kan förbättra effektiviteten i kundsupportprocessen och ge bättre precision. Konversationssammanfattning kan tillämpas på alla kundsupportuppgifter som involverar interaktion mellan agent och kund.

Tjänst för konversationssammanfattning

Konversationssammanfattning är lämplig i scenarier där kundsupportkonversationer följer ett fråge- och svarsformat.

Några fördelar med att använda en sammanfattningstjänst är:

  • Ökad effektivitet: Det gör det möjligt för kundtjänstagenter att snabbt sammanfatta kundkonversationer, vilket eliminerar behovet av långa utbyten fram och tillbaka. Den här effektiviteten hjälper till att påskynda lösningen av kundproblem.
  • Förbättrad kundservice: Agenter kan använda sammanfattningar av konversationer i framtida interaktioner för att snabbt hitta den information som behövs för att lösa kundernas problem korrekt.
  • Förbättrad kunskapsdelning: Konversationssammanfattning kan hjälpa kundtjänstteam att dela kunskap med varandra snabbt och effektivt. Det ger kundtjänstteam bättre lösningar och hjälper dem att ge snabbare support.

Arkitektur

En typisk arkitektur för en konversationssammanfattning har tre huvudsteg: förbearbetning, sammanfattning och efterbearbetning. Om indata innehåller en verbal konversation eller någon form av tal måste talet transkriberas till text. Mer information finns i Azure speech to text service(Azure speech to text service).

Här är en exempelarkitektur:

Diagram som visar en arkitektur för konversationssammanfattning.

Ladda ned en PowerPoint-fil med den här arkitekturen.

Arbetsflöde

  1. Samla in indata: Mata in relevanta indata i pipelinen. Om källan är en ljudfil måste du konvertera den till text med hjälp av en TTS-tjänst (text till tal) som Text till tal i Azure.
  2. Förbearbeta data: Ta bort konfidentiell information och eventuella oviktiga konversationer från data.
  3. Mata in data i sammanfattningen: Skicka data i en prompt via Azure OpenAI-API:er. I kontextinlärningsmodeller finns nollskott, få skott eller en anpassad modell.
  4. Generera en sammanfattning: Modellen genererar en sammanfattning av konversationen.
  5. Efterprocess av data: Använd ett svordomsfilter och olika valideringskontroller i sammanfattningen. Lägg till känsliga eller konfidentiella data som togs bort under förprocessens steg tillbaka till sammanfattningen.
  6. Utvärdera resultaten: Granska och utvärdera resultaten. Det här steget kan hjälpa dig att identifiera områden där modellen behöver förbättras och hitta fel.

Följande avsnitt innehåller mer information om de tre huvudstegen.

Förprocess

Målet med förbearbetning är att säkerställa att de data som tillhandahålls till summarizer-tjänsten är relevanta och inte innehåller känslig eller konfidentiell information.

Här följer några förbearbetningssteg som kan hjälpa dig att villkora dina rådata. Du kan behöva utföra ett eller flera steg, beroende på användningsfallet.

  • Ta bort personligt identifierbar information (PII). Du kan använda API:et för konversations-PII (förhandsversion) för att ta bort PII från transkriberad eller skriftlig text. Det här exemplet visar utdata när API:et har tagit bort PII:

    Document text: Parker Doe has repaid all of their loans as of
          2020-04-25. Their SSN is 999-99-9999. To contact them, use 
          their phone number 555-555-0100. They are originally from 
          Brazil and have Brazilian CPF number 998.214.865-68 
    Redacted document text: ******* has repaid all of their
          loans as of *******. Their SSN is *******. To contact 
          them, use their phone number *******. They are originally from Brazil and have Brazilian CPF number 998.214.865-68
    
    ...Entity 'Parker Doe' with category 'Person' got redacted
    ...Entity '2020-04-25' with category 'DateTime' got redacted
    ...Entity '999-99-9999' with category 'USSocialSecurityNumber' got redacted
    ...Entity '555-555-0100' with category 'PhoneNumber' got redacted
    
  • Ta bort överflödig information. Kundagenter startar konversationer med tillfälliga utbyten som inte innehåller relevant information. En utlösare kan läggas till i en konversation för att identifiera den punkt där problemet eller relevant fråga först åtgärdas. Om du tar bort det utbytet från kontexten kan du förbättra noggrannheten för summarizer-tjänsten eftersom modellen sedan finjusteras på den mest relevanta informationen i konversationen. Curie GPT-3-motorn är ett populärt val för den här uppgiften eftersom den tränas mycket, via innehåll från Internet, för att identifiera den här typen av avslappnad konversation.

  • Ta bort överdrivet negativa konversationer. Konversationer kan också innehålla negativa sentiment från missnöjda kunder. Du kan använda azure-metoder för innehållsfiltrering som Azure Content Moderator för att ta bort konversationer som innehåller känslig information från analysen. Alternativt erbjuder OpenAI en modereringsslutpunkt, ett verktyg som du kan använda för att kontrollera om innehållet uppfyller OpenAI:s innehållsprinciper.

Summarizer

OpenAI:s API-slutpunkt för textkomplettering kallas slutpunkten för slutföranden. För att starta textkompletteringsprocessen krävs en uppmaning. Prompt engineering är en process som används för att använda språkmodeller. Den första delen av prompten innehåller instruktioner för naturligt språk eller exempel på den specifika uppgift som begärdes (i det här scenariot sammanfattning). Med prompter kan utvecklare tillhandahålla viss kontext till API:et, vilket kan hjälpa dem att generera mer relevanta och korrekta textavslutningar. Modellen slutför sedan uppgiften genom att förutsäga den mest sannolika nästa text. Den här tekniken kallas för kontextinlärning .

Kommentar

Extraherande sammanfattning försöker identifiera och extrahera viktig information från en text och gruppera den för att skapa en kortfattad sammanfattning utan att förstå innebörden eller kontexten.

Abstrakt sammanfattning skriver om en text genom att först skapa en intern semantisk representation och sedan skapa en sammanfattning med hjälp av bearbetning av naturligt språk. Den här processen omfattar parafrasering.

Det finns tre huvudsakliga metoder för träningsmodeller för kontextinlärning: nollskott, få skott och finjustering. Dessa metoder varierar beroende på mängden uppgiftsspecifika data som tillhandahålls till modellen.

  • Nollskott: I den här metoden tillhandahålls inga exempel till modellen. Uppgiftsbegäran är den enda indatan. I zero-shot learning förlitar sig modellen på data som GPT-3 redan har tränats på (nästan alla tillgängliga data från Internet). Den försöker relatera den angivna uppgiften till befintliga kategorier som den redan har lärt sig om och svarar därefter.

  • Några bilder: När du använder den här metoden tar du med ett litet antal exempel i prompten som visar det förväntade svarsformatet och kontexten. Modellen är försedd med en mycket liten mängd träningsdata, vanligtvis bara några exempel, för att vägleda dess förutsägelser. Genom att träna med en liten uppsättning exempel kan modellen generalisera och förstå relaterade men tidigare osedda uppgifter. Det kan vara svårt att skapa de här exemplen med få bilder eftersom de måste klargöra den uppgift som du vill att modellen ska utföra. Ett vanligt problem är att modeller, särskilt små, är känsliga för den skrivstil som används i träningsexemplen.

    De största fördelarna med den här metoden är en betydande minskning av behovet av uppgiftsspecifika data och minskad potential att lära sig en alltför smal fördelning från en stor men smal finjusteringsdatauppsättning.

    Med den här metoden kan du inte uppdatera vikterna för den förtränad modellen.

    Mer information finns i Language Models are few-shot learners (Språkmodeller är få bilder).

  • Finjustering: Finjustering är processen att skräddarsy modeller för att få ett specifikt önskat resultat från dina egna datamängder. Det handlar om omträning av modeller på nya data. Mer information finns i Lär dig hur du anpassar en modell för ditt program.

    Du kan använda det här anpassningssteget för att förbättra processen genom att:

    • Inklusive en större uppsättning exempeldata.
    • Använd traditionella optimeringstekniker med backpropagation för att justera modellens vikter. De här teknikerna ger bättre resultat än nollskotts- eller fåskottsmetoderna själva.
    • Förbättra inlärningsmetoden med få skott genom att träna modellvikterna med specifika uppmaningar och en specifik struktur. Med den här tekniken kan du uppnå bättre resultat på ett bredare antal uppgifter utan att behöva ange exempel i prompten. Resultatet är mindre text som skickas och färre token.

    Nackdelarna är behovet av en stor ny datamängd för varje uppgift, potentialen för dålig generalisering ur distribution och möjligheten att utnyttja falska funktioner i träningsdata, vilket resulterar i stora chanser till orättvis jämförelse med mänsklig prestanda.

    Att skapa en datauppsättning för modellanpassning skiljer sig från att utforma uppmaningar för användning med de andra modellerna. Uppmaningar om slutförandeanrop använder ofta detaljerade instruktioner eller inlärningstekniker med få skott och består av flera exempel. För finjustering rekommenderar vi att varje träningsexempel består av ett enda indataexempel och önskade utdata. Du behöver inte ange detaljerade instruktioner eller exempel i prompten.

    När du ökar antalet träningsexempel förbättras dina resultat. Vi rekommenderar att du inkluderar minst 500 exempel. Det är typiskt att använda mellan tusentals och hundratusentals märkta exempel. Testning indikerar att varje fördubbling av datamängdens storlek leder till en linjär ökning av modellkvaliteten.

Den här guiden visar motorerna curie-instruct/text-curie-001 och davinci-instruct/text-davinci-001. Dessa motorer uppdateras ofta. Den version som du använder kan vara annorlunda.

Efter processen

Vi rekommenderar att du kontrollerar giltigheten för de resultat som du får från GPT-3. Implementera giltighetskontroller med hjälp av en programmatisk metod eller klassificerare, beroende på användningsfallet. Här följer några viktiga kontroller:

  • Kontrollera att inga viktiga punkter missas.
  • Kontrollera om det finns faktiska felaktigheter.
  • Kontrollera om det finns någon bias som introduceras av träningsdata som används i modellen.
  • Kontrollera att modellen inte ändrar text genom att lägga till nya idéer eller punkter. Det här problemet kallas hallucination.
  • Kontrollera om det finns grammatiska fel och stavfel.
  • Använd ett filter för innehållssvordomar som Content Moderator för att säkerställa att inget olämpligt eller irrelevant innehåll ingår.

Slutligen återinför du all viktig information som tidigare togs bort från sammanfattningen, till exempel konfidentiell information.

I vissa fall skickas även en sammanfattning av konversationen till kunden, tillsammans med den ursprungliga avskriften. I dessa fall innebär efterbearbetning att avskriften bifogas i sammanfattningen. Det kan också inkludera att lägga till inledande meningar som "Se sammanfattningen nedan".

Att tänka på

Det är viktigt att finjustera basmodellerna med en branschspecifik träningsdatauppsättning och ändra storleken på tillgängliga datamängder. Finjusterade modeller presterar bäst när träningsdata innehåller minst 1 000 datapunkter och markens sanning (människogenererade sammanfattningar) som används för att träna modellerna är av hög kvalitet.

Kompromissen är kostnad. Det kan vara dyrt att märka och rensa datamängder. För att säkerställa högkvalitativa träningsdata kan du behöva granska mark sanningssammanfattningar manuellt och skriva om sammanfattningar av låg kvalitet. Tänk på följande punkter om sammanfattningssteget:

  • Snabbteknik: Davinci presterar ofta bättre än andra modeller när davinci får lite instruktioner. För att optimera resultaten experimenterar du med olika frågor för olika modeller.
  • Tokenstorlek: En sammanfattning som baseras på GPT-3 är begränsad till totalt 4 098 token, inklusive prompten och slutförandet. Om du vill sammanfatta större passager separerar du texten i delar som överensstämmer med dessa begränsningar. Sammanfatta varje del individuellt och samla sedan in resultaten i en slutlig sammanfattning.
  • Skräp i, skräp ute: Tränade modeller är bara lika bra som de träningsdata som du tillhandahåller. Se till att sammanfattningarna av grund sanning i träningsdata passar bra för den information som du så småningom vill sammanfatta i dina dialogrutor.
  • Stopppunkt: Modellen slutar sammanfatta när den når en naturlig stopppunkt eller en stoppsekvens som du anger. Testa den här parametern för att välja mellan flera sammanfattningar och kontrollera om sammanfattningarna ser ofullständiga ut.

Exempelscenario: Sammanfatta avskrifter i callcenter

Det här scenariot visar hur sammanfattningsfunktionen i Azure OpenAI kan hjälpa kundtjänstagenter med sammanfattningsuppgifter. Den testar metoderna zero-shot, few-shot och fine-tuning och jämför resultaten med människogenererade sammanfattningar.

Den datauppsättning som används i det här scenariot är en uppsättning hypotetiska konversationer mellan kunder och agenter i Xbox-kundsupportcentret om olika Xbox-produkter och -tjänster. Den hypotetiska chatten är märkt med Prompt. Den mänskligt skrivna abstrakta sammanfattningen är märkt med Completion (Slutförande).

Prompt Fullbordande
Kund: Fråga om XAIL

Agent: Hej! Hur kan jag hjälpa dig idag?

Kund: Hej, jag har en fråga om tillgänglighet insider ringen

Agent: Okej. Jag kan verkligen hjälpa dig med det.

Kund: Behöver jag registrera mig för förhandsgranskningsringen för att gå med i tillgänglighetsligan?

Agent: Nej. Du kan lämna konsolen borta från Xbox Preview-ringar och fortfarande gå med i Ligan. Observera dock att vissa funktioner som gjorts tillgängliga för dig kan kräva att du ansluter till en Xbox Preview-ring.

Kund: Okej. Och jag kan bara registrera mig för förhandsversion ring senare ja?

Agent: Det stämmer.

Kund: Söt.
Kunden vill veta om de behöver registrera sig för förhandsversionsringar för att gå med i Xbox Accessibility Insider League. Agenten svarar att det inte är obligatoriskt, men att vissa upplevelser kan kräva det.

Idealiska utdata. Målet är att skapa sammanfattningar som följer det här formatet: "Kunden sa x. Agenten svarade y." Ett annat mål är att samla in viktiga funktioner i dialogrutan, till exempel kundens klagomål, föreslagna lösningar och uppföljningsåtgärder.

Här är ett exempel på en kundsupportinteraktion, följt av en omfattande mänskligt skriven sammanfattning av den:

Dialog

Kund: Hej. Jag har en fråga om matchpasset.

Agent: Hej. Hur mår du idag?

Kund: Jag är bra.

Handläggare. Jag ser att du behöver hjälp med Xbox Game Pass.

Kund: Ja. Jag ville veta hur länge jag kan komma åt spelen efter att de har lämnat spelpasset.

Agent: När ett spel lämnar Xbox Game Pass-katalogen måste du köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store, spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. Kom ihåg att Xbox meddelar medlemmar innan ett spel lämnar Xbox Game Pass-katalogen. Och som medlem kan du köpa valfritt spel i katalogen för upp till 20% rabatt (eller det bästa tillgängliga rabatterade priset) för att fortsätta spela ett spel när det lämnar katalogen.

Kund: Fick det, tack

Sammanfattning av grundsanningar

Kunden vill veta hur länge de kan komma åt spel när de har lämnat Game Pass. Agenten informerar kunden om att de skulle behöva köpa spelet för att fortsätta ha åtkomst.

Nollskott

Nollskottsmetoden är användbar när du inte har tillräckligt med märkta träningsdata. I det här fallet finns det inte tillräckligt med mark sanningssammanfattningar. Det är viktigt att utforma uppmaningar noggrant för att extrahera relevant information. Följande format används för att extrahera allmänna sammanfattningar från kund-agent-chattar:

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

Här är ett exempel som visar hur du kör en nollskottsmodell:

rouge = Rouge()
# Run zero-shot prediction for all engines of interest
deploymentNames = ["curie-instruct","davinci-instruct"] # also known as text-davinci/text-instruct
for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_zeroshotsummary"] = summary_list
test[deployment + "_zeroshotroguescore"] = rouge_list

Resultat och observationer

Nollskottsmodellens utdata produceras direkt från basmodellen. I det här fallet sammanfattar både Curie och Davinci dialogrutan ganska bra. Den enda märkbara skillnaden är att Curie-modellen ger lite mindre detaljer. Curie börjar sammanfattningen med "Kunden frågar agenten om Xbox-spelpasset". Motsvarande mening i Davinci är "Kunden frågade hur länge de kunde komma åt spel efter att de lämnat Xbox-spelpasskatalogen."

Dialog

Kund: Hej. Jag har en fråga om matchpasset.

Agent: Hej. Hur är det med dig?

Kund: Jag är bra.

Agent: Jag ser att du behöver hjälp med Xbox Game Pass.

Kund: Ja. Jag ville veta hur länge jag kan komma åt spelen efter att de har lämnat spelpasset.

Agent: När ett spel lämnar Xbox-spelpasskatalogen måste du köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store, spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. Kom ihåg att Xbox meddelar medlemmar innan ett spel lämnar Xbox Game Pass-katalogen. Och som medlem kan du köpa valfritt spel i katalogen för upp till 20% rabatt eller det bästa tillgängliga rabatterade priset för att fortsätta spela ett spel när det lämnar katalogen.

Grund sanning

Kunden vill veta hur länge de kan komma åt spel när de har lämnat Game Pass. Agenten informerar kunden om att de skulle behöva köpa spelet för att fortsätta ha åtkomst.

Davinci-resultat

Kunden frågade hur länge de kunde komma åt spel efter att de lämnat Xbox-spelpasskatalogen. Agenten berättade för dem att de skulle behöva köpa en digital kopia av spelet från aplikacija Xbox för Windows eller Microsoft Store för att fortsätta spela det. Agenten påminde också kunden om att de skulle meddelas innan ett spel lämnade Xbox Game Pass-katalogen. som medlem kunde kunden köpa valfritt spel i katalogen för upp till 20 off eller det bästa tillgängliga rabatterade priset.

Curie-resultat

Kunden frågar agenten om Xbox-spelpasset. agenten meddelar kunden att när ett spel lämnar Xbox-spelpasskatalogen måste kunden köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. Agenten påminner också kunden om att Xbox meddelar medlemmar innan ett spel lämnar Xbox-spelpasskatalogen.

Få skott

När du använder metoden med få skott får modellen ett litet antal exempel.

context_primer = "Below are examples of conversations and their corresponding summaries:"

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

Här är ett exempel som visar hur du kör en modell med några skott:

train_small = train[]
train_small_json = train_small.to_dict(orient='records')
compiled_train_prompt = build_prompt_fewshot(prefix,context_primer, train_small_json, suffix)

for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = compiled_train_prompt+build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_fewshot"] = summary_list
test[deployment + "_FSscore1"] = rouge_list

Resultat och observationer

Med metoden med få skott fortsätter sammanfattningarna att fånga viktiga funktioner i konversationen. Davinci-sammanfattningen är mer kompakt och närmare grundsanningen. Curie fabricerar några triviala detaljer.

Dialog

Kund: Hej. Jag har en fråga om matchpasset.

Agent: Hej. Hur är det med dig?

Kund: Jag är bra.

Agent: Jag ser att du behöver hjälp med Xbox Game Pass.

Kund: Ja. Jag ville veta hur länge jag kan komma åt spelen efter att de har lämnat spelpasset.

Agent: När ett spel lämnar Xbox Game Pass-katalogen måste du köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store, spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. Kom ihåg att Xbox meddelar medlemmar innan ett spel lämnar Xbox Game Pass-katalogen. Och som medlem kan du köpa valfritt spel i katalogen för upp till 20% rabatt eller det bästa tillgängliga rabatterade priset för att fortsätta spela ett spel när det lämnar katalogen.

Grund sanning

Kunden vill veta hur länge de kan komma åt spel när de har lämnat Game Pass. Agenten informerar kunden om att de skulle behöva köpa spelet för att fortsätta ha åtkomst.

Davinci-resultat

kunden ville veta hur länge de kunde komma åt spel efter att de lämnat spelpasset. Agenten informerar om att när ett spel lämnar Xbox-spelpasskatalogen skulle kunden behöva köpa en digital kopia eller få en annan form av berättigande för att fortsätta spela spelet.

Curie-resultat

kunden har en fråga om spelpasset. kunden är bra. agenten behöver hjälp med Xbox-spelpasset. kunden frågar hur länge de kan komma åt spelen när de lämnar spelpasskatalogen. Agenten informerar om att när ett spel lämnar Xbox-spelpasskatalogen måste kunden köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. kunden är glad att höra detta och tack agent.

Finjustering

Finjustering är processen att skräddarsy modeller för att få ett specifikt önskat resultat från dina egna datauppsättningar.

Här är ett exempelformat:

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}

Resultat och observationer

Testning tyder på att en finjusterad Curie-modell leder till resultat som är jämförbara med resultaten från en Davinci-modell med få skott. Båda sammanfattningarna samlar in kundens fråga och agentens svar utan att samla in information om rabatter och utan att lägga till innehåll. Båda sammanfattningarna liknar grundsanningen.

Dialog

Kund: Hej. Jag har en fråga om matchpasset.

Agent: Hej. Hur är det med dig?

Kund: Jag är bra.

Agent: Jag ser att du behöver hjälp med Xbox Game Pass.

Kund: Ja. Jag ville veta hur länge jag kan komma åt spelen efter att de har lämnat spelpasset.

Agent: När ett spel lämnar Xbox Game Pass-katalogen måste du köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store, spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. Kom ihåg att Xbox meddelar medlemmar innan ett spel lämnar Xbox Game Pass-katalogen. Och som medlem kan du köpa valfritt spel i katalogen för upp till 20% rabatt eller det bästa tillgängliga rabatterade priset för att fortsätta spela ett spel när det lämnar katalogen.

Grund sanning

Kunden vill veta hur länge de kan komma åt spel när de har lämnat Game Pass. Agenten informerar kunden om att de skulle behöva köpa spelet för att fortsätta ha åtkomst.

Curie-resultat

kunden vill veta hur länge de kan komma åt spelen när de lämnar spelpasset. agenten förklarar att när ett spel lämnar Xbox-spelpasskatalogen måste de köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet.

Slutsatser

I allmänhet kräver Davinci-modellen färre instruktioner för att utföra uppgifter än andra modeller, till exempel Curie. Davinci passar bättre för att sammanfatta text som kräver en förståelse för kontext eller specifikt språk. Eftersom Davinci är den mest komplexa modellen är svarstiden högre än för andra modeller. Curie är snabbare än Davinci och kan sammanfatta konversationer.

Dessa tester tyder på att du kan generera bättre sammanfattningar när du ger mer instruktioner till modellen via få skott eller finjustering. Finjusterade modeller är bättre på att följa strukturen och kontexten som lärts från en träningsdatauppsättning. Den här funktionen är särskilt användbar när sammanfattningar är domänspecifika (till exempel generera sammanfattningar från en läkares anteckningar eller onlinerecept kundsupport). Om du använder finjustering har du större kontroll över de typer av sammanfattningar som du ser.

Här är en sammanfattning av de resultat som presenteras tidigare för en enkel jämförelse:

Grund sanning

Kunden vill veta hur länge de kan komma åt spel när de har lämnat Game Pass. Agenten informerar kunden om att de skulle behöva köpa spelet för att fortsätta ha åtkomst.

Davinci nollskottsresultat

Kunden frågade hur länge de kunde komma åt spel efter att de lämnat Xbox-spelpasskatalogen. Agenten berättade för dem att de skulle behöva köpa en digital kopia av spelet från aplikacija Xbox för Windows eller Microsoft Store för att fortsätta spela det. Agenten påminde också kunden om att de skulle meddelas innan ett spel lämnade Xbox Game Pass-katalogen. Som medlem kunde kunden köpa valfritt spel i katalogen för upp till 20 av eller det bästa tillgängliga rabatterade priset.

Curie nollskottsresultat

Kunden frågar agenten om Xbox-spelpasset. agenten meddelar kunden att när ett spel lämnar Xbox-spelpasskatalogen måste kunden köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. Agenten påminner också kunden om att Xbox meddelar medlemmar innan ett spel lämnar Xbox-spelpasskatalogen.

Davinci få skott resultat

kunden ville veta hur länge de kunde komma åt spel efter att de lämnat spelpasset. Agenten informerar om att när ett spel lämnar Xbox-spelpasskatalogen skulle kunden behöva köpa en digital kopia eller få en annan form av berättigande för att fortsätta spela spelet.

Curie få skott resultat

kunden har en fråga om spelpasset. kunden är bra. agenten behöver hjälp med Xbox-spelpasset. kunden frågar hur länge de kan komma åt spelen när de lämnar spelpasskatalogen. Agenten informerar om att när ett spel lämnar Xbox-spelpasskatalogen måste kunden köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet. kunden är glad att höra detta och tack agent.

Curie-finjusteringsresultat

kunden vill veta hur länge de kan komma åt spelen när de lämnar spelpasset. agenten förklarar att när ett spel lämnar Xbox-spelpasskatalogen måste de köpa en digital kopia från aplikacija Xbox för Windows eller Microsoft Store spela från en skiva eller få en annan form av berättigande för att fortsätta spela spelet.

Utvärdera sammanfattning

Det finns flera metoder för att utvärdera prestanda för sammanfattningsmodeller.

Här är några:

ROUGE (Recall-Oriented Understudy for Gisting Evaluation). Den här tekniken innehåller mått för att automatiskt fastställa kvaliteten på en sammanfattning genom att jämföra den med idealiska sammanfattningar som skapats av människor. Måtten räknar antalet överlappande enheter, till exempel n-gram, ordsekvenser och ordpar, mellan den datorgenererade sammanfattning som utvärderas och de ideala sammanfattningarna.

Här är ett exempel:

reference_summary = "The cat ison porch by the tree"
generated_summary = "The cat is by the tree on the porch"
rouge = Rouge()
rouge.get_scores(generated_summary, reference_summary)
[{'rouge-1': {'r':1.0, 'p': 1.0, 'f': 0.999999995},
  'rouge-2': {'r': 0.5714285714285714, 'p': 0.5, 'f': 0.5333333283555556},
  'rouge-1': {'r': 0.75, 'p': 0.75, 'f': 0.749999995}}]

BertScore. Den här tekniken beräknar likhetspoäng genom att justera genererade sammanfattningar och referenssammanfattningar på en tokennivå. Tokenjusteringar beräknas girigt för att maximera cosinuslikheten mellan kontextualiserade tokeninbäddningar från BERT.

Här är ett exempel:

  import torchmetrics
  from torchmetrics.text.bert import BERTScore
  preds = "You should have ice cream in the summer"
  target = "Ice creams are great when the weather is hot"
  bertscore = BERTScore()
  score = bertscore(preds, target)
  print(score)

Likhetsmatris. En likhetsmatris är en representation av likheterna mellan olika entiteter i sammanfattningsutvärderingen. Du kan använda den för att jämföra olika sammanfattningar av samma text och mäta deras likhet. Den representeras av ett tvådimensionellt rutnät, där varje cell innehåller ett mått på likheten mellan två sammanfattningar. Du kan mäta likheten med hjälp av en mängd olika metoder, till exempel cosininlikitet, Jaccard-likhet och redigeringsavstånd. Sedan använder du matrisen för att jämföra sammanfattningarna och avgöra vilken som är den mest exakta representationen av den ursprungliga texten.

Här är ett exempelkommando som genererar likhetsmatrisen för en BERTScore-jämförelse av två liknande meningar:

bert-score-show --lang en -r "The cat is on the porch by the tree"
                          -c "The cat is by the tree on the porch"
                          -f out.png

Den första meningen, "Katten är på verandan vid trädet", kallas kandidaten. Den andra meningen kallas referensen. Kommandot använder BERTScore för att jämföra meningarna och generera en matris.

I följande matris visas de utdata som genereras av föregående kommando:

Diagram som visar en likhetsmatris.

Mer information finns i SummEval: Omvärdera sammanfattningsutvärdering. En Python Package Index-verktygslåda (PyPI) för sammanfattning finns i Summ-eval 0.892.

Ansvarsfull användning

GPT kan ge utmärkta resultat, men du måste kontrollera resultatet för sociala, etiska och juridiska fördomar och skadliga resultat. När du finjusterar modeller måste du ta bort alla datapunkter som kan vara skadliga för modellen att lära sig. Du kan använda röd teamindelning för att identifiera skadliga utdata från modellen. Du kan implementera den här processen manuellt och stödja den med hjälp av halvautomatiserade metoder. Du kan generera testfall med hjälp av språkmodeller och sedan använda en klassificerare för att identifiera skadligt beteende i testfallen. Slutligen bör du utföra en manuell kontroll av genererade sammanfattningar för att säkerställa att de är redo att användas.

Mer information finns i Red Teaming Language Models with Language Models (Red Teaming Language Models with Language Models).

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Annan deltagare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg