Dela via


Metodtips – GenAI Prompt-kompetens

Genom att införliva anpassad kompetens för GenAI Prompt som en del av en indexerares inmatningsflöde kan utvecklare utnyttja innehållsgenereringsfunktionerna i språkmodeller för att berika innehållet från datakällan. Det här dokumentet beskriver några rekommendationer och metodtips som kan införlivas när du använder den här funktionen för att säkerställa bra systemprestanda och beteende.

Funktioner för GenAI Prompt-kompetens

Den anpassade färdigheten GenAI Prompt är ett nytt tillägg till Azure AI Searchs kompetenskatalog, vilket gör det möjligt för sökkunder att skicka sitt dokumentinnehåll och kundskapade uppmaningar till en språkmodell som de äger, som finns i Azure AI Foundry. Det resulterande berikade innehållet, tillsammans med källdokumentet, matas in i sökindexet. Vi föreställer oss att utvecklare använder detta i olika scenarier för att möjliggöra applikationer för återhämtningsförstärkt generering (RAG). Några viktiga scenarier är AI-genererade dokumentsammanfattningar, bildtexter och entitets-/faktasökning baserat på anpassningsbara kriterier via användardefinierade uppmaningar.

Språkmodellernas funktioner för innehållsgenerering fortsätter att utvecklas snabbt och deras integrering i pipelinen för innehållsinmatning ger spännande möjligheter till relevans för sökhämtning. Utmaningen för utvecklare är dock att se till att de uppmaningar och data som de använder för sina scenarier är säkra och skyddar användarna mot oavsiktliga resultat från språkmodellen.

Personas interagerar med ett RAG-program

För att kunna lista ut de olika utmaningarna med att införliva AI-innehållsgenereringsfunktioner i en Azure AI Search-indexerare-pipeline är det viktigt att förstå de olika personas som interagerar med RAG-programmet eftersom var och en av dem kan ha olika utmaningar.

  • Slutanvändare: Denna persona är den som ställer frågor till RAG-programmet och förväntar sig ett väl citerat svar på sin fråga baserat på resultat från källdokumentet. Förutom att svaret är korrekt förväntar sig slutanvändaren att eventuella citat som tillhandahålls av programmet gör det tydligt om det var från ordagrant innehåll i en fil från datakällan eller om det baserades på en AI-baserad sammanfattning av innehåll från filen.
  • ADMINISTRATÖR FÖR RAG-programutvecklare/sökindex: Den här personen ansvarar för att konfigurera schemat för sökindex och konfigurera indexeraren och kompetensuppsättningen för att mata in förhöjda data för språkmodellen i indexet. Med anpassad kompetens för GenAI Prompt kan utvecklare konfigurera kostnadsfria prompter till flera modeller som finns i AI-gjuteri, vilket ger betydande flexibilitet för att lysa upp olika scenarier. Utvecklare måste dock se till att kombinationen av data + kompetenskonfiguration som används i pipelinen inte ger skadligt eller osäkert innehåll. Utvecklare måste också utvärdera innehållet som genereras av språkmodellerna för bias, felaktigheter och felaktig information. Detta blir särskilt svårt att göra för dokument i stor skala och bör vara ett av de första stegen när du skapar ett RAG-program, tillsammans med indexschemadefinitionen.
  • Dataansvarig: Denna persona förväntas vara den viktigaste ämnesexperten (Ämnesexpert) för innehåll som härrör från datakällan. SME förväntas vara den bästa bedömaren av språkmodellsdrivna förbättringarna som matas in i indexet och av svaret som genereras av språkmodellen i RAG-applikationen. Den viktiga rollen för datamyndigheten att kunna få ett representativt urval och verifiera kvaliteten på berikningarna och svaret, vilket kan vara svårt om man hanterar data i stor skala.

I resten av det här dokumentet beskrivs dessa olika utmaningar tillsammans med tips och metodtips som RAG-programutvecklare kan följa för att minimera eventuella risker.

Utmaningar

Följande är de viktigaste utmaningarna för de olika personas som interagerar med ett RAG-system som använder språkmodeller för att utöka innehåll som matas in i ett sökindex (med hjälp av den anpassade genAI Prompt-färdigheten) och för att formulera svar på frågor:

  • Transparens: Användare av RAG-system bör förstå att många av systemet drivs av AI-modeller som kanske inte alltid är korrekta i innehållet som matas in eller det svar som formuleras. Azure AI Search har en utförligt dokumenterad Transparensnot som utvecklare bör läsa igenom för att förstå de olika sätt på vilka AI används för att utöka funktionerna hos kärnsökmotorn. Vi rekommenderar att utvecklare som skapar RAG-program delar transparensmeddelandet till användarna av sina program, eftersom de kanske inte känner till hur AI-gränssnitt med olika aspekter av programmet används. När du använder anpassade kompetensutvecklare för GenAI Prompt bör du dessutom notera att endast en del av innehållet som matas in i sökindexet genereras av språkmodellen och bör markera detta för användarna av deras program.
  • Innehållssampling/kontroll av innehållskvalitet: Utvecklare och små och medelstora dataföretag bör överväga att ta prover på en del av innehållet som matas in i sökindexet efter att ha utökats av genAI Prompts anpassade kunskaper för att inspektera kvaliteten på den berikning som utförs av deras språkmodell. Felsökningssessioner och sökutforskaren på Azure-portalen kan användas för detta ändamål.
  • Filtrering och utvärdering av innehållssäkerhet: Det är viktigt för utvecklare att se till att de språkmodeller som de använder med anpassad genAI Prompt-kompetens har lämpliga filter för att säkerställa säkerheten för det innehåll som genereras och efter inmatning i sökindexet. Utvecklare och små och medelstora dataföretag bör också se till att de utvärderar innehållet som genereras av språkmodellen på olika mått, till exempel noggrannhet, uppgiftsspecifik prestanda, bias och risk. Azure AI Foundry erbjuder en robust uppsättning verktyg för utvecklare för att lägga till säkerhetsfilter för innehåll och tydlig vägledning för utvärderingsmetoder
  • Att vara flexibel när det gäller att återställa ändringar eller ändra kompetenskonfiguration: Det är möjligt att språkmodellen som används med genAI Prompt-anpassade kunskaper har problem över tid (till exempel att producera innehåll av låg kvalitet). Utvecklare bör vara beredda att återställa dessa ändringar antingen genom att ändra indexerarens och kompetensuppsättningens konfiguration eller genom att exkludera indexfält med AI-genererat innehåll från sökfrågor.

Metodtips för att minska risker

När du använder anpassad kompetens för GenAI Prompt för att driva RAG-program finns det en risk för överberoende av AI enligt beskrivningen i utmaningarna i föregående avsnitt. I den här delen av dokumentet presenterar vi några mönster och strategier som kan användas för att minska riskerna och övervinna utmaningarna.

Innehållssampling och kontroll före inmatning i sökindexet

Felsökningssessioner är en Azure AI Search-funktion som är tillgänglig för kunder som använder Azure-portalen för att inspektera berikningstillståndet för ett enda dokument. För att kunna använda en felsökningssession måste Azure AI Search-kunder skapa en kompetensuppsättning och en indexerare och låta indexeraren slutföra en körning. Vi rekommenderar kunder som har en indexerare som använder den anpassade färdigheten GenAI Prompt för att initialt mata in innehåll i ett "utvecklingsindex" – en sådan indexerare kan användas med en felsökningssession för att inspektera hela strukturen och innehållet i det berikade dokumentet som kommer att skrivas till indexet. En enda körning av en felsökningssession fungerar med ett specifikt livedokument, och innehållet som genereras av språkmodellen visas i en specifik del av det berikade dokumentet. Utvecklare kan använda flera körningar av sin felsökningssession och peka på olika dokument från sin datakälla för att få en rimlig uppfattning om tillståndet för innehållet som produceras av deras språkmodell (och dess relation till den berikade dokumentstrukturen). Bilderna nedan visar hur utvecklare kan inspektera både konfigurationen av en färdighet och de värden som skapas av färdigheten efter att ha anropat språkmodellen.

Inspektera konfigurationen av GenAI Prompt-färdigheten

Skärmbild av en felsökningssession som visar konfigurationen av anpassad kompetens för GenAI Prompt.

Inspektera resultat från GenAI Prompt-verktyget

Skärmbild av en felsökningssession som visar anpassade färdighetsutdata för GenAI Prompt från språkmodellen.

Förutom felsökningssessioner erbjuder Azure AI Search även möjlighet att utforska flera dokument samtidigt genom att fråga sökindexet via Sökutforskaren i Azure-portalen. Utvecklare kan utfärda en bred fråga för att hämta ett stort antal dokument från sitt sökindex och kan inspektera fälten som har sitt innehåll genererat av anpassad kompetens för GenAI Prompt. För att kunna visa innehållet i fältet måste det konfigureras med egenskapen "Hämtningsbar" när du definierar indexschemat. För samma dokument som inspekterades via felsökningssessionen visar bilden nedan det fullständiga innehållet i sökdokumentet som hamnar i indexet.

Skärmbild av sökutforskarens sida som visar det fullständiga tillståndet för ett indexerat dokument.

Utvecklare kan använda båda dessa verktyg för att få en rimlig sampling av data som genereras av deras språkmodeller när de matas in i sitt "utvecklingsindex". I det här läget rekommenderar vi utvecklare att arbeta med små och medelstora dataföretag för att säkerställa att exempeldata uppfyller kvalitets- och noggrannhetsstandarder. När önskade nivåer har uppnåtts kan utvecklare sedan övergå till att använda ett "produktionsindex" som kommer att vara kunskapskällan för deras RAG-applikationer.

Filtrering och utvärdering av innehållssäkerhet

Azure AI-innehållssäkerhet är en AI-tjänst som identifierar skadligt användargenererat och AI-genererat innehåll i program och tjänster. Azure AI Foundry har en robust integrering med Azure AI-innehållssäkerhetstjänsten för många scenarier i både text- och bildinnehåll. Den anpassade genAI Prompt-färdigheten är tillräckligt flexibel för att utvecklare ska kunna ange alla typer av frågor och innehåll, eftersom vi vill att utvecklare ska anpassa kunskapskonfigurationen till sitt scenario. Men det innebär att det finns en möjlighet att innehållet som genereras av modellen kan vara skadligt, partiskt, explicit eller våldsamt till sin natur. Vi rekommenderar starkt att utvecklare, som konfigurerar GenAI Prompt-färdigheten för att interagera med Azure AI Foundry-språkmodeller, konfigurerar lämpliga innehållssäkerhetsfilter för de modeller som de har distribuerat.

Azure AI Foundry har en detaljerad guide om ansvarsfulla AI-metoder och vi rekommenderar starkt att utvecklare granskar innehållet i guiden och ser till att de har implementerat dem för de modeller som används med anpassad kompetens för GenAI Prompt. En av de viktigaste faktorerna som kan fastställa kvalitet och noggrannhet för resultat som genereras av en språkmodell är ett väl utformat systemmeddelande. Azure AI Foundry har också publicerat en mallguide för systemmeddelanden för att minimera potentiella RAI-skador och vägleda system att interagera på ett säkert sätt med användare.

Azure AI Foundry har också publicerat en detaljerad guide om utvärderingskriterier för att välja de modeller som utvecklare kan välja att distribuera för sina olika program. Även om GenAI Prompt-färdigheten är tillräckligt flexibel för att fungera med nästan alla chattmodeller i Azure AI Foundry, kan vissa modeller fungera bättre än andra, beroende på kriterierna för slutanvändaren. Vissa modeller för chattkomplettering har avancerade bildbearbetningsfunktioner med hög noggrannhet, men med hög kostnad. Vissa modeller kan vara mer benägna att attackera via prompter, felaktig information och så vidare. Utvecklare som konfigurerar anpassad kompetens för GenAI Prompt måste vara medvetna om dessa egenskaper för de modeller som de väljer att använda för innehållsgenerering och inmatning i sökindexet. Vi rekommenderar starkt att utvecklare använder "utvecklingsindexet" och många samplingar för att tydligt förstå arten av dessa modeller när de interagerar med data innan de byter till produktion.

Att vara flexibel vid återställning eller ändring av inmatningskonfiguration

I de föregående två avsnitten betonades vikten av att utvecklare har en "utvecklingsmiljö", där de konfigurerar ett "utvecklingsindex" med en inbyggd mekanism för utvecklare/små och medelstora dataföretag för att utvärdera innehållet i sökindexet.

Diagram som visar utvecklingsutvärderingsmiljön.

När utvärderingen i utvecklingsmiljön är tillfredsställande bör utvecklarna överföra inmatningsprocessen till en produktionsmiljö, där indexeraren arbetar med fullständiga kunddata. Det är dock möjligt att det uppstår oväntade kvalitets- eller prestandafall när du arbetar med den här datauppsättningen. Det är också möjligt att modellen uppdateras utan utvärdering i utvecklingsmiljön – båda dessa fall kan resultera i en suboptimal upplevelse för användare som interagerar med RAG-program, och utvecklare måste vara flexibla när det gäller att identifiera och mildra sådana villkor. För att fånga sådana situationer bör utvecklare se till att de också har en konstant övervakning av sitt "produktionsindex" och vara redo att ändra konfigurationer efter behov. I följande avsnitt beskrivs några mönster som utvecklare kan använda för att svara på sådana scenarier.

Primary-Seconday index som driver RAG-applikationer

Utvecklare bör överväga att ha ett primärt och ett sekundärt index för att driva sina RAG-program. De primära och sekundära indexen skulle vara liknande i konfigurationen av fält – den enda skillnaden skulle vara att det primära indexet har ett extra fält (sökbart och hämtningsbart) som innehåller innehåll som genereras från språkmodellen via den anpassade färdigheten GenAI Prompt. Utvecklare bör konfigurera sina RAG-program så att AI-modellen som utökas kan använda antingen det primära eller det sekundära indexet som kunskapskälla. Det primära indexet bör föredras, men om kvaliteten på resultaten från RAG-programmet verkar påverkas negativt bör programmet växla till att använda det sekundära indexet som inte har genererat innehåll som en del av kunskapskällan. Detta kan uppnås utan att du behöver någon kodändring/omdistribution av RAG-appen genom att använda indexaliasfunktionen och låta RAG-programmet köra frågor mot aliaset och sedan växla indexen som mappas till aliaset om det behövs.

Följande diagram illustrerar det här mönstret.

Diagram som visar mönstret för primär-sekundärt index.

Ta bort användning av genererat fält i sökfrågor

Ett enklare alternativ till att ha två kopior av sökindexet är att se till att RAG-programmet enkelt kan ändra sökfrågan som utfärdas till Azure AI Search. Som standard genomsöks alla sökbara fält när en sökfråga utfärdas, men Med Azure AI Search kan du ange vilka fält som måste analyseras för att skapa en uppsättning sökresultat.

Överväg ett index som har två innehållsfält – ett namnfält och ett (utförligt) "beskrivningsfält" för en exempeldatauppsättning som innehåller hotellinformation. Anta att RAG-utvecklaren/sökindexadministratören har konfigurerat ett tredje fält med namnet "summary", som innehåller en AI-genererad sammanfattning av beskrivningen via GenAI Prompt-färdigheten. När du konfigurerar ett RAG-program kan utvecklare ange två typer av sökfrågor – standardsökfrågan som analyserar alla sökbara fält och en annan specifik fråga som bara tittar på de sökbara fält vars innehåll inte genereras av en språkmodell. Följande är ett exempel på en sådan specifik fråga som uttryckligen utelämnar fältet "sammanfattning".

POST https://[service-name].search.windows.net/indexes/[index-name]?api-version=[api-version] 

{ 
    "search": "Spacious, air-condition* +\"Ocean view\"", 
    "searchFields": "description, name", 
    "searchMode": "any",  
    "queryType": "full"  
} 

RAG-programmet kan återgå till den här specifika frågan (kan kräva en kodändring/omdistribution), om standardfrågan börjar försämras i prestanda- eller utvärderingsmått, vilket illustreras av följande diagram.

Diagram som visar mönstret för tillbakafallsfrågan.

Återställa indexeraren efter att ha modifierat kunskapskonfigurationen

Ibland kan det system- eller användarmeddelande som anges för den anpassade kunskapen för GenAI Prompt påverkas på grund av nya data i den "fullständiga" kunddatauppsättningen och justering av dessa meddelanden kan ge ett snabbare alternativ än de tidigare alternativen. Vi rekommenderar dock att utvecklare även återställer och kör en indexerare igen om system- eller användarmeddelanden ändras för den anpassade färdigheten GenAI Prompt för att tillämpa detta på alla dokument i datakällan. Det här alternativet kan eventuellt medföra ytterligare kostnader.

Begränsningar

De strategier och mönster för riskreducering som föreslås i det här dokumentet kan ha begränsningar baserat på antingen scenariospecifika eller databeroende orsaker samt av lagrings- och kostnadsskäl. Det är RAG-utvecklarens ansvar att se till att de förstår alla specifika risker som är kopplade till AI-innehållsgenerering som en del av inmatningspipelinen och har lämpliga strategier för att minimera dem.

Mänsklig ingripande och tillsyn

Med tanke på datainhämtningens omfattning kanske det inte är möjligt att ha en mänsklig övervakning av processen för "produktionsapplikationer". Vi rekommenderar omfattande validering av små och medelstora dataföretag i utvecklingsmiljön för att minimera behovet av detta i produktion. Följ en utvärderingsprocess som: (1) använder vissa interna intressenter för att utvärdera resultat, (2) använder A/B-experiment för att distribuera den här funktionen till användare och (3) innehåller nyckeltal (KPI:er) och måttövervakning när funktionen distribueras.

Läs mer om ansvarsfull AI