Azure OpenAI på dina data

Använd den här artikeln om du vill lära dig mer om Azure OpenAI På dina data, vilket gör det enklare för utvecklare att ansluta, mata in och jorda sina företagsdata för att snabbt skapa personliga andrepiloter (förhandsversion). Det förbättrar användarförståelsen, påskyndar slutförande av uppgifter, förbättrar drifteffektiviteten och underlättar beslutsfattandet.

Vad är Azure OpenAI på dina data

Med Azure OpenAI On Your Data kan du köra avancerade AI-modeller som GPT-35-Turbo och GPT-4 på dina egna företagsdata utan att behöva träna eller finjustera modeller. Du kan chatta ovanpå och analysera dina data med större noggrannhet. Du kan ange källor som stöder svaren baserat på den senaste informationen som är tillgänglig i dina avsedda datakällor. Du kan komma åt Azure OpenAI På dina data med hjälp av ett REST-API, via SDK eller det webbaserade gränssnittet i Azure OpenAI Studio. Du kan också skapa en webbapp som ansluter till dina data för att aktivera en förbättrad chattlösning eller distribuera den direkt som andrepilot i Copilot Studio (förhandsversion).

Kom igång

Kom igång genom att ansluta datakällan med Azure OpenAI Studio och börja ställa frågor och chatta om dina data.

Kommentar

För att komma igång måste du redan ha godkänts för Azure OpenAI-åtkomst och ha en Azure OpenAI Service-resurs distribuerad i en region som stöds med antingen gpt-35-turbo- eller gpt-4-modellerna.

Rollbaserade åtkomstkontroller i Azure (Azure RBAC) för att lägga till datakällor

Om du vill använda Azure OpenAI på dina data helt måste du ange en eller flera Azure RBAC-roller. Mer information finns i Använda Azure OpenAI på dina data på ett säkert sätt .

Dataformat och filtyper

Azure OpenAI On Your Data stöder följande filtyper:

  • .txt
  • .md
  • .html
  • .docx
  • .pptx
  • .pdf

Det finns en uppladdningsgräns och det finns vissa varningar om dokumentstrukturen och hur den kan påverka kvaliteten på svar från modellen:

  • Om du konverterar data från ett format som inte stöds till ett format som stöds optimerar du kvaliteten på modellsvaret genom att säkerställa konverteringen:

    • Leder inte till betydande dataförlust.
    • Lägger inte till oväntat brus i dina data.
  • Om dina filer har särskild formatering, till exempel tabeller och kolumner eller punktpunkter, förbereder du dina data med det dataförberedelseskript som är tillgängligt på GitHub.

  • För dokument och datauppsättningar med lång text bör du använda det tillgängliga dataförberedelseskriptet. Skriptet delar upp data så att modellens svar är mer exakta. Det här skriptet stöder även skannade PDF-filer och bilder.

Datakällor som stöds

Du måste ansluta till en datakälla för att ladda upp dina data. När du vill använda dina data för att chatta med en Azure OpenAI-modell segmenteras dina data i ett sökindex så att relevanta data kan hittas baserat på användarfrågor.

Den integrerade vektordatabasen i vCore-baserade Azure Cosmos DB for MongoDB har inbyggt stöd för integrering med Azure OpenAI på dina data.

För vissa datakällor som att ladda upp filer från din lokala dator (förhandsversion) eller data som finns i ett bloblagringskonto (förhandsversion) används Azure AI Search. När du väljer följande datakällor matas dina data in i ett Azure AI Search-index.

Dricks

Om du använder Azure Cosmos DB (förutom dess VCore-baserade API för MongoDB) kan du vara berättigad till Azure AI Advantage-erbjudandet, vilket ger motsvarande upp till 6 000 USD i Azure Cosmos DB-dataflödeskrediter.

Data source beskrivning
Azure AI Search Använd ett befintligt Azure AI Search-index med Azure OpenAI på dina data.
Azure Cosmos DB Azure Cosmos DB:s API för Postgres och vCore-baserat API för MongoDB erbjuder inbyggd integrerad vektorindexering. Därför kräver de inte Azure AI Search. De andra API:erna kräver dock Azure AI Search för vektorindexering. Azure Cosmos DB för NoSQL:s inbyggda integrerade vektordatabas debuterar i mitten av 2024.
Ladda upp filer (förhandsversion) Ladda upp filer från den lokala datorn som ska lagras i en Azure Blob Storage-databas och matas in i Azure AI Search.
URL/webbadress (förhandsversion) Webbinnehåll från URL:erna lagras i Azure Blob Storage.
Azure Blob Storage (förhandsversion) Ladda upp filer från Azure Blob Storage som ska matas in i ett Azure AI Search-index.

Diagram över vektorindexeringstjänster.

Förutsättningar

Begränsningar

  • Endast virtuella kärnor baserade på Azure Cosmos DB för MongoDB stöds.
  • Söktypen är begränsad till Integrerad vektordatabas i Azure Cosmos DB för MongoDB med en Inbäddningsmodell för Azure OpenAI.
  • Den här implementeringen fungerar bäst på ostrukturerade och rumsliga data.

Dataförberedelse

Använd skriptet som tillhandahålls på GitHub för att förbereda dina data.

Mappning av indexfält

När du lägger till din vCore-baserade Azure Cosmos DB för MongoDB-datakälla kan du ange datafält för korrekt mappning av dina data för hämtning.

  • Innehållsdata (krävs): Ett eller flera angivna fält som ska användas för att jorda modellen på dina data. För flera fält separerar du värdena med kommatecken, utan blanksteg.
  • Filnamn/rubrik/URL: Används för att visa mer information när ett dokument refereras i chatten.
  • Vektorfält (krävs): Välj det fält i databasen som innehåller vektorerna.

En skärmbild som visar alternativen för mappning av indexfält för Mongo DB.

Distribuera till en andrepilot (förhandsversion) eller webbapp

När du har anslutit Azure OpenAI till dina data kan du distribuera dem med knappen Distribuera till i Azure OpenAI Studio.

En skärmbild som visar knappen för modelldistribution i Azure OpenAI Studio.

På så sätt kan du distribuera en fristående webbapp så att du och dina användare kan interagera med chattmodeller med hjälp av ett grafiskt användargränssnitt. Mer information finns i Använda Azure OpenAI-webbappen .

Du kan också distribuera till en andrepilot i Copilot Studio (förhandsversion) direkt från Azure OpenAI Studio, så att du kan använda konversationsupplevelser till olika kanaler som: Microsoft Teams, webbplatser, Dynamics 365 och andra Azure Bot Service-kanaler. Klientorganisationen som används i Azure OpenAI-tjänsten och Copilot Studio (förhandsversion) bör vara densamma. Mer information finns i Använda en anslutning till Azure OpenAI på dina data.

Kommentar

Distribution till en andrepilot i Copilot Studio (förhandsversion) är endast tillgängligt i amerikanska regioner.

Använda Azure OpenAI på dina data på ett säkert sätt

Du kan använda Azure OpenAI på dina data på ett säkert sätt genom att skydda data och resurser med rollbaserad åtkomstkontroll i Microsoft Entra-ID, virtuella nätverk och privata slutpunkter. Du kan också begränsa de dokument som kan användas som svar för olika användare med Säkerhetsfilter för Azure AI Search. Se Använda Azure OpenAI på dina data på ett säkert sätt.

Bästa praxis

Använd följande avsnitt för att lära dig hur du förbättrar kvaliteten på svar som ges av modellen.

Inmatningsparameter

När dina data matas in i Azure AI Search kan du ändra följande ytterligare inställningar i antingen studio- eller inmatnings-API:et.

Segmentstorlek (förhandsversion)

Azure OpenAI On Your Data bearbetar dina dokument genom att dela upp dem i segment innan de matas in. Segmentstorleken är den maximala storleken när det gäller antalet token för ett segment i sökindexet. Segmentstorlek och antalet hämtade dokument styr tillsammans hur mycket information (token) som ingår i uppmaningen som skickas till modellen. I allmänhet är segmentstorleken multiplicerad med antalet hämtade dokument det totala antalet token som skickas till modellen.

Ange segmentstorlek för ditt användningsfall

Standardstorleken för segment är 1 024 token. Men med tanke på att dina data är unika kan du hitta en annan segmentstorlek (till exempel 256, 512 eller 1 536 token) effektivare.

Om du justerar segmentstorleken kan du förbättra chattrobotens prestanda. Det krävs en del utvärderings- och fel för att hitta den optimala segmentstorleken, men börja med att tänka på vilken typ av datauppsättning du har. En mindre segmentstorlek är vanligtvis bättre för datauppsättningar med direkta fakta och mindre kontext, medan en större segmentstorlek kan vara fördelaktig för mer sammanhangsberoende information, även om det kan påverka hämtningsprestanda.

En liten segmentstorlek som 256 ger mer detaljerade segment. Den här storleken innebär också att modellen använder färre token för att generera sina utdata (såvida inte antalet hämtade dokument är mycket högt), vilket kan kosta mindre. Mindre segment innebär också att modellen inte behöver bearbeta och tolka långa delar av text, vilket minskar brus och distraktion. Den här kornigheten och fokuset utgör dock ett potentiellt problem. Viktig information kanske inte finns bland de mest hämtade segmenten, särskilt om antalet hämtade dokument är inställt på ett lågt värde som 3.

Dricks

Tänk på att ändring av segmentstorleken kräver att dina dokument matas in igen, så det är användbart att först justera körningsparametrar som strikthet och antalet hämtade dokument. Överväg att ändra segmentstorleken om du fortfarande inte får önskat resultat:

  • Om du stöter på ett stort antal svar, till exempel "Jag vet inte" för frågor med svar som bör finnas i dina dokument, bör du överväga att minska segmentstorleken till 256 eller 512 för att förbättra kornigheten.
  • Om chattroboten ger rätt information men saknar andra, vilket blir uppenbart i citaten, kan en ökning av segmentstorleken till 1 536 hjälpa till att samla in mer kontextuell information.

Körningsparametrar

Du kan ändra följande ytterligare inställningar i avsnittet Dataparametrar i Azure OpenAI Studio och API:et. Du behöver inte ange dina data igen när du uppdaterar dessa parametrar.

Parameternamn beskrivning
Begränsa svar på dina data Den här flaggan konfigurerar chattrobotens metod för att hantera frågor som inte är relaterade till datakällan eller när sökdokumenten inte räcker till för ett fullständigt svar. När den här inställningen är inaktiverad kompletterar modellen sina svar med sina egna kunskaper utöver dina dokument. När den här inställningen är aktiverad försöker modellen bara förlita sig på dina dokument för svar. Det här är parametern inScope i API:et och inställd på true som standard.
Hämtade dokument Den här parametern är ett heltal som kan anges till 3, 5, 10 eller 20 och styr antalet dokumentsegment som tillhandahålls till den stora språkmodellen för att formulera det slutliga svaret. Som standard är detta inställt på 5. Sökprocessen kan vara bullrig och ibland, på grund av segmentering, kan relevant information spridas över flera segment i sökindexet. Om du väljer ett topp-K-nummer, till exempel 5, ser du till att modellen kan extrahera relevant information, trots de inneboende begränsningarna för sökning och segmentering. Men att öka antalet för högt kan potentiellt distrahera modellen. Dessutom beror det maximala antalet dokument som kan användas effektivt på modellens version, eftersom var och en har olika kontextstorlek och kapacitet för att hantera dokument. Om du upptäcker att svar saknar viktig kontext kan du prova att öka den här parametern. Det här är parametern topNDocuments i API:et och är 5 som standard.
Strikthet Avgör systemets aggressivitet vid filtrering av sökdokument baserat på deras likhetspoäng. Systemet frågar Azure Search eller andra dokumentlager och bestämmer sedan vilka dokument som ska tillhandahållas till stora språkmodeller som ChatGPT. Om du filtrerar bort irrelevanta dokument kan du avsevärt förbättra prestandan för chattroboten från slutpunkt till slutpunkt. Vissa dokument undantas från top-K-resultaten om de har låga likhetspoäng innan de vidarebefordras till modellen. Detta styrs av ett heltalsvärde mellan 1 och 5. Om det här värdet anges till 1 innebär det att systemet filtrerar dokument minimalt baserat på söklikhet i användarfrågan. Omvänt anger en inställning på 5 att systemet aggressivt filtrerar bort dokument och tillämpar ett mycket högt tröskelvärde för likhet. Om du upptäcker att chattroboten utelämnar relevant information sänker du filtrets strikthet (ange värdet närmare 1) för att inkludera fler dokument. Omvänt, om irrelevanta dokument distraherar svaren, öka tröskelvärdet (ange värdet närmare 5). Det här är parametern strictness i API:et och inställd på 3 som standard.

Ej citerade referenser

Det är möjligt för modellen att returnera "TYPE":"UNCITED_REFERENCE" i stället "TYPE":CONTENT för i API:et för dokument som hämtas från datakällan, men som inte ingår i källhänvisning. Detta kan vara användbart för felsökning och du kan styra det här beteendet genom att ändra de strikta och hämtade dokumentkörningsparametrarna som beskrivs ovan.

Systemmeddelande

Du kan definiera ett systemmeddelande för att styra modellens svar när du använder Azure OpenAI på dina data. Med det här meddelandet kan du anpassa dina svar ovanpå rag-mönstret (hämtningsförhöjd generation) som Azure OpenAI On Your Data använder. Systemmeddelandet används utöver en intern basprompt för att tillhandahålla upplevelsen. För att stödja detta trunkerar vi systemmeddelandet efter ett visst antal token för att säkerställa att modellen kan svara på frågor med dina data. Om du definierar extra beteende utöver standardupplevelsen kontrollerar du att systemprompten är detaljerad och förklarar den exakta förväntade anpassningen.

När du har valt att lägga till din datauppsättning kan du använda avsnittet Systemmeddelande i Azure OpenAI Studio eller parametern roleInformationi API:et.

En skärmbild som visar systemmeddelandealternativet i Azure OpenAI Studio.

Potentiella användningsmönster

Definiera en roll

Du kan definiera en roll som du vill ha din assistent. Om du till exempel skapar en supportrobot kan du lägga till "Du är en supportassistent för expertincidenter som hjälper användarna att lösa nya problem".

Definiera vilken typ av data som hämtas

Du kan också lägga till den typ av data som du tillhandahåller till assistenten.

  • Definiera ämnet eller omfattningen för din datauppsättning, till exempel "finansiell rapport", "akademiskt papper" eller "incidentrapport". För teknisk support kan du till exempel lägga till "Du besvarar frågor med hjälp av information från liknande incidenter i de hämtade dokumenten".
  • Om dina data har vissa egenskaper kan du lägga till den här informationen i systemmeddelandet. Om dina dokument till exempel är på japanska kan du lägga till "Du hämtar japanska dokument och bör läsa dem noggrant på japanska och svara på japanska".
  • Om dina dokument innehåller strukturerade data som tabeller från en finansiell rapport kan du också lägga till detta faktum i systemprompten. Om dina data till exempel har tabeller kan du lägga till "Du får data i form av tabeller som rör ekonomiska resultat och du bör läsa tabellen rad för rad för att utföra beräkningar för att besvara användarfrågor".

Definiera utdataformatet

Du kan också ändra modellens utdata genom att definiera ett systemmeddelande. Om du till exempel vill se till att assistentsvaren är på franska kan du lägga till en uppmaning som "Du är en AI-assistent som hjälper användare som förstår franska att hitta information. Användarfrågorna kan vara på engelska eller franska. Läs de hämtade dokumenten noggrant och besvara dem på franska. Översätt kunskapen från dokument till franska för att säkerställa att alla svar är på franska."

Bekräfta kritiskt beteende

Azure OpenAI On Your Data fungerar genom att skicka instruktioner till en stor språkmodell i form av uppmaningar för att besvara användarfrågor med dina data. Om det finns ett visst beteende som är kritiskt för programmet kan du upprepa beteendet i systemmeddelandet för att öka dess noggrannhet. Om du till exempel vill vägleda modellen att bara svara från dokument kan du lägga till "Svara endast med hämtade dokument och utan att använda dina kunskaper. Generera citat till hämtade dokument för varje anspråk i ditt svar. Om användarfrågan inte kan besvaras med hjälp av hämtade dokument förklarar du varför dokument är relevanta för användarfrågor. I vilket fall som helst, svara inte med dina egna kunskaper."

Prompt Engineering tricks

Det finns många knep inom snabbteknik som du kan försöka förbättra utdata. Ett exempel är en tankekedja där du kan lägga till "Låt oss tänka steg för steg om information i hämtade dokument för att besvara användarfrågor. Extrahera relevant kunskap till användarfrågor från dokument steg för steg och skapa ett svar nedifrån och upp från den extraherade informationen från relevanta dokument."

Kommentar

Systemmeddelandet används för att ändra hur GPT-assistenten svarar på en användarfråga baserat på hämtad dokumentation. Det påverkar inte hämtningsprocessen. Om du vill ge instruktioner för hämtningsprocessen är det bättre att ta med dem i frågorna. Systemmeddelandet är bara vägledning. Modellen kanske inte följer alla angivna instruktioner eftersom den har förberetts med vissa beteenden, till exempel objektivitet, och för att undvika kontroversiella uttalanden. Oväntat beteende kan inträffa om systemmeddelandet strider mot dessa beteenden.

Maximalt svar

Ange en gräns för antalet token per modellsvar. Den övre gränsen för Azure OpenAI På dina data är 1 500. Detta motsvarar inställningen av parametern max_tokens i API:et.

Begränsa svar på dina data

Det här alternativet uppmuntrar modellen att endast svara med dina data och är valt som standard. Om du avmarkerar det här alternativet kan modellen lättare använda sina interna kunskaper för att svara. Fastställ rätt val baserat på ditt användningsfall och scenario.

Interagera med modellen

Använd följande metoder för bästa resultat när du chattar med modellen.

Konversationshistorik

  • Innan du startar en ny konversation (eller ställer en fråga som inte är relaterad till de tidigare) rensar du chatthistoriken.
  • Att få olika svar för samma fråga mellan den första konversationssvängen och efterföljande svängar kan förväntas eftersom konversationshistoriken ändrar modellens aktuella tillstånd. Om du får felaktiga svar rapporterar du det som ett kvalitetsfel.

Modellsvar

  • Om du inte är nöjd med modellsvaret för en specifik fråga kan du prova att antingen göra frågan mer specifik eller mer allmän för att se hur modellen svarar och omrama frågan i enlighet med detta.

  • Tankekedjan har visat sig vara effektiv när det gäller att få modellen att producera önskade utdata för komplexa frågor/uppgifter.

Frågelängd

Undvik att ställa långa frågor och dela upp dem i flera frågor om möjligt. GPT-modellerna har gränser för hur många token de kan acceptera. Tokengränser räknas mot: användarfrågan, systemmeddelandet, hämtade sökdokument (segment), interna frågor, konversationshistoriken (om någon) och svaret. Om frågan överskrider tokengränsen trunkeras den.

Stöd för flera språk

  • För närvarande har nyckelordssökning och semantisk sökning i Azure OpenAI On Your Data stöd för frågor på samma språk som data i indexet. Om dina data till exempel finns på japanska måste indatafrågor också finnas på japanska. För hämtning av flerspråkiga dokument rekommenderar vi att du skapar indexet med Vector Search aktiverat.

  • För att förbättra kvaliteten på svar på informationshämtning och modell rekommenderar vi att du aktiverar semantisk sökning efter följande språk: engelska, franska, spanska, portugisiska, italienska, Tyskland, kinesiska(Zh), japanska, koreanska, ryska, arabiska

  • Vi rekommenderar att du använder ett systemmeddelande för att informera modellen om att dina data är på ett annat språk. Till exempel:

  • *"*Du är en AI-assistent som är utformad för att hjälpa användare att extrahera information från hämtade japanska dokument. Granska de japanska dokumenten noggrant innan du formulerar ett svar. Användarens fråga kommer att finnas på japanska, och du måste även ta svar på japanska."

  • Om du har dokument på flera språk rekommenderar vi att du skapar ett nytt index för varje språk och ansluter dem separat till Azure OpenAI.

Strömma data

Du kan skicka en strömningsbegäran med hjälp av parametern stream så att data kan skickas och tas emot stegvis, utan att vänta på hela API-svaret. Detta kan förbättra prestanda och användarupplevelse, särskilt för stora eller dynamiska data.

{
    "stream": true,
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
                "key": "'$AZURE_AI_SEARCH_API_KEY'",
                "indexName": "'$AZURE_AI_SEARCH_INDEX'"
            }
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": "What are the differences between Azure Machine Learning and Azure AI services?"
        }
    ]
}

Konversationshistorik för bättre resultat

När du chattar med en modell kan en historik för chatten hjälpa modellen att returnera resultat av högre kvalitet. Du behöver inte inkludera context egenskapen för assistentmeddelandena i dina API-begäranden för bättre svarskvalitet. Exempel finns i API-referensdokumentationen .

Funktionsanrop

Med vissa Azure OpenAI-modeller kan du definiera verktyg och tool_choice parametrar för att aktivera funktionsanrop. Du kan konfigurera funktionsanrop via REST API/chat/completions. Om både tools och datakällor finns i begäran tillämpas följande princip.

  1. Om tool_choice är noneignoreras verktygen och endast datakällorna används för att generera svaret.
  2. Annars ignoreras datakällorna om tool_choice de inte har angetts eller angetts som auto eller ett objekt, och svaret innehåller det valda funktionsnamnet och eventuella argument. Även om modellen beslutar att ingen funktion har valts ignoreras fortfarande datakällorna.

Om principen ovan inte uppfyller dina behov bör du överväga andra alternativ, till exempel promptflöde eller API för assistenter.

Uppskattning av tokenanvändning för Azure OpenAI på dina data

Tjänsten Azure OpenAI On Your Data Retrieval Augmented Generation (RAG) som använder både en söktjänst (till exempel Azure AI Search) och generering (Azure OpenAI-modeller) för att låta användarna få svar på sina frågor baserat på angivna data.

Som en del av den här RAG-pipelinen finns det tre steg på hög nivå:

  1. Omformulera användarfrågan till en lista över sökinsikter. Detta görs genom att göra ett anrop till modellen med en uppmaning som innehåller instruktioner, användarfrågan och konversationshistorik. Nu ska vi kalla detta en avsiktsfråga.

  2. För varje avsikt hämtas flera dokumentsegment från söktjänsten. När du har filtrerat bort irrelevanta segment baserat på det användardefinierade tröskelvärdet för strikthet och reranking/aggregering av segmenten baserat på intern logik väljs det användardefinierade antalet dokumentsegment.

  3. Dessa dokumentsegment, tillsammans med användarfrågan, konversationshistorik, rollinformation och instruktioner skickas till modellen för att generera det slutliga modellsvaret. Nu ska vi anropa generationsprompten.

Totalt görs två anrop till modellen:

  • För bearbetning av avsikten: Tokenuppskattningen för avsiktsprompten innehåller de för användarfrågan, konversationshistoriken och instruktionerna som skickas till modellen för avsiktsgenerering.

  • För att generera svaret: Tokenuppskattningen för generationsprompten innehåller de för användarfrågan, konversationshistoriken, den hämtade listan över dokumentsegment, rollinformation och instruktionerna som skickas till den för generering.

Modellen genererade utdatatoken (både avsikter och svar) måste beaktas för total tokenuppskattning. Om du summerar alla fyra kolumnerna nedan får du de genomsnittliga totala token som används för att generera ett svar.

Modell Antal token för genereringsprompt Antal token för avsiktsprompt Antal svarstoken Antal avsiktstoken
gpt-35-turbo-16k 4297 1366 111 25
gpt-4-0613 3997 1385 118 18
gpt-4-1106-preview 4538 811 119 27
gpt-35-turbo-1106 4854 1372 110 26

Ovanstående tal baseras på testning av en datauppsättning med:

  • 191 konversationer
  • 250 frågor
  • 10 genomsnittliga token per fråga
  • 4 konversationsvändningar per konversation i genomsnitt

Och följande parametrar.

Inställning Värde
Antal hämtade dokument 5
Strikthet 3
Segmentstorlek 1024
Vill du begränsa svar till inmatade data? Sant

Dessa uppskattningar varierar beroende på de värden som anges för ovanstående parametrar. Om till exempel antalet hämtade dokument är inställt på 10 och striktheten är inställd på 1, ökar antalet token. Om returnerade svar inte är begränsade till inmatade data finns det färre instruktioner som ges till modellen och antalet token kommer att minska.

Uppskattningarna beror också på dokumentens art och de frågor som ställs. Om frågorna till exempel är öppna kommer svaren sannolikt att bli längre. På samma sätt skulle ett längre systemmeddelande bidra till en längre fråga som förbrukar fler token, och om konversationshistoriken är lång blir prompten längre.

Modell Maximalt antal token för systemmeddelande Maximalt antal token för modellsvar
GPT-35-0301 400 1500
GPT-35-0613-16K 1000 3200
GPT-4-0613-8K 400 1500
GPT-4-0613-32K 2000 6400

Tabellen ovan visar det maximala antalet token som kan användas för systemmeddelandet och modellsvaret. Dessutom använder följande även token:

  • Metaprompten: Om du begränsar svar från modellen till grunddatainnehållet (inScope=True i API:et) är det maximala antalet token högre. Annars (till exempel om inScope=False) är maxvärdet lägre. Det här talet är variabelt beroende på tokenlängden för användarens fråga och konversationshistorik. Den här uppskattningen inkluderar basprompten och frågan som skriver om prompter för hämtning.

  • Användarfråga och historik: Variabel men begränsad till 2 000 token.

  • Hämtade dokument (segment): Antalet token som används av de hämtade dokumentsegmenten beror på flera faktorer. Den övre gränsen för detta är antalet hämtade dokumentsegment multiplicerat med segmentstorleken. Den trunkeras dock baserat på de token som är tillgängliga token för den specifika modell som används efter att resten av fälten har räknats.

    20 % av de tillgängliga token är reserverade för modellsvaret. De återstående 80 % av tillgängliga token är metaprompten, användarfrågan och konversationshistoriken och systemmeddelandet. Den återstående tokenbudgeten används av de hämtade dokumentsegmenten.

För att beräkna antalet token som förbrukas av dina indata (till exempel din fråga, systemmeddelandet/rollinformationen) använder du följande kodexempel.

import tiktoken

class TokenEstimator(object):

    GPT2_TOKENIZER = tiktoken.get_encoding("gpt2")

    def estimate_tokens(self, text: str) -> int:
        return len(self.GPT2_TOKENIZER.encode(text))
      
token_output = TokenEstimator.estimate_tokens(input_text)

Felsökning

Om du vill felsöka misslyckade åtgärder bör du alltid hålla utkik efter fel eller varningar som anges i API-svaret eller Azure OpenAI Studio. Här är några av de vanligaste felen och varningarna:

Misslyckade inmatningsjobb

Problem med kvotbegränsningar

Det gick inte att skapa ett index med namnet X i tjänst Y. Indexkvoten har överskridits för den här tjänsten. Du måste antingen ta bort oanvända index först, lägga till en fördröjning mellan begäranden om att skapa index eller uppgradera tjänsten för högre gränser.

Standardindexeringskvoten för X har överskridits för den här tjänsten. Du har för närvarande X-standardindexerare. Du måste antingen ta bort oanvända indexerare först, ändra indexeraren "executionMode" eller uppgradera tjänsten för högre gränser.

Lösning:

Uppgradera till en högre prisnivå eller ta bort oanvända tillgångar.

Problem med tidsgränser för förbearbetning

Det gick inte att köra färdigheten eftersom webb-API-begäran misslyckades

Det gick inte att köra färdigheten eftersom webb-API:ets kompetenssvar är ogiltigt

Lösning:

Dela upp indatadokumenten i mindre dokument och försök igen.

Problem med behörigheter

Den här begäran har inte behörighet att utföra den här åtgärden

Lösning:

Det innebär att lagringskontot inte är tillgängligt med de angivna autentiseringsuppgifterna. I det här fallet granskar du autentiseringsuppgifterna för lagringskontot som skickas till API:et och kontrollerar att lagringskontot inte är dolt bakom en privat slutpunkt (om en privat slutpunkt inte har konfigurerats för den här resursen).

Varje användarmeddelande kan översättas till flera sökfrågor, som alla skickas till sökresursen parallellt. Detta kan ge begränsningsbeteende när antalet sökrepliker och partitioner är lågt. Det maximala antalet frågor per sekund som en enskild partition och en enskild replik kan stödja kanske inte räcker. I det här fallet bör du överväga att öka dina repliker och partitioner eller lägga till vilo-/återförsökslogik i ditt program. Mer information finns i dokumentationen för Azure AI Search.

Regional tillgänglighet och modellstöd

Du kan använda Azure OpenAI På dina data med en Azure OpenAI-resurs i följande regioner:

  • Australien, östra
  • Brasilien, södra
  • Östra Kanada
  • East US
  • USA, östra 2
  • Centrala Frankrike
  • Japan, östra
  • USA, norra centrala
  • Norge, östra
  • Sydafrika, norra
  • USA, södra centrala
  • Indien, södra
  • Sverige, centrala
  • Schweiz, norra
  • Storbritannien, södra
  • Europa, västra
  • USA, västra

Modeller som stöds

  • gpt-4 (0314)
  • gpt-4 (0613)
  • gpt-4 (0125)
  • gpt-4-32k (0314)
  • gpt-4-32k (0613)
  • gpt-4 (1106-förhandsversion)
  • gpt-35-turbo-16k (0613)
  • gpt-35-turbo (1106)

Om din Azure OpenAI-resurs finns i en annan region kan du inte använda Azure OpenAI på dina data.

Nästa steg