Inbäddningar i .NET
Inbäddningar är hur LLM:er samlar in semantisk betydelse. De är numeriska representationer av icke-numeriska data som en LLM kan använda för att fastställa relationer mellan begrepp. Du kan använda inbäddningar för att hjälpa en AI-modell att förstå innebörden av indata så att den kan utföra jämförelser och transformeringar, till exempel att sammanfatta text eller skapa bilder från textbeskrivningar. LLM:er kan använda inbäddningar omedelbart och du kan lagra inbäddningar i vektordatabaser för att tillhandahålla semantiskt minne för LLM:er efter behov.
Användningsfall för inbäddningar
I det här avsnittet visas de viktigaste användningsfallen för inbäddningar.
Använda dina egna data för att förbättra relevansen för slutförande
Använd dina egna databaser för att generera inbäddningar för dina data och integrera dem med en LLM för att göra dem tillgängliga för slutföranden. Den här användningen av inbäddningar är en viktig komponent i hämtningsförhöjd generering.
Öka mängden text som får plats i en fråga
Använd inbäddningar för att öka mängden kontext som du får plats i en fråga utan att öka antalet token som krävs.
Anta till exempel att du vill inkludera 500 sidor text i en prompt. Antalet token för den mycket råa texten överskrider gränsen för indatatoken, vilket gör det omöjligt att inkludera direkt i en prompt. Du kan använda inbäddningar för att sammanfatta och dela upp stora mängder text i bitar som är tillräckligt små för att passa in i en inmatning och sedan utvärdera likheten mellan varje del och hela råtexten. Sedan kan du välja ett stycke som bäst bevarar den semantiska innebörden av den råa texten och använda den i din prompt utan att nå tokengränsen.
Utföra textklassificering, sammanfattning eller översättning
Använd inbäddningar för att hjälpa en modell att förstå textens innebörd och kontext och sedan klassificera, sammanfatta eller översätta texten. Du kan till exempel använda inbäddningar för att hjälpa modeller att klassificera texter som positiva eller negativa, skräppost eller inte skräppost eller nyheter eller åsikter.
Generera och transkribera ljud
Använd ljudinbäddningar för att bearbeta ljudfiler eller indata i din app.
Speech-tjänsten stöder till exempel en rad inbäddningar av ljud, inklusive tal till text och text till tal. Du kan bearbeta ljud i realtid eller i batchar.
Omvandla text till bilder eller bilder till text
Semantisk bildbearbetning kräver inbäddningar av bilder, som de flesta LLM:er inte kan generera. Använd en bildinbäddningsmodell som ViT för att skapa vektorinbäddningar för bilder. Sedan kan du använda dessa inbäddningar med en bildgenereringsmodell för att skapa eller ändra bilder med hjälp av text eller vice versa. Du kan till exempel använda DALL· E-modell för att generera bilder som logotyper, ansikten, djur och landskap.
Generera eller dokumentera kod
Använd inbäddningar för att hjälpa en modell att skapa kod från text eller vice versa genom att konvertera olika kod- eller textuttryck till en gemensam representation. Du kan till exempel använda inbäddningar för att hjälpa en modell att generera eller dokumentera kod i C# eller Python.
Välj en inbäddningsmodell
Du genererar inbäddningar för dina rådata med hjälp av en AI-inbäddningsmodell som kan koda icke-numeriska data till en vektor (en lång matris med tal). Modellen kan också avkoda en inbäddning i icke-numeriska data som har samma eller liknande betydelse som de ursprungliga rådata. Det finns många inbäddningsmodeller som du kan använda, där OpenAI:s text-embedding-ada-002
modell är en av de vanliga modeller som används. Fler exempel finns i listan över inbäddningsmodeller som är tillgängliga i Azure OpenAI.
Lagra och bearbeta inbäddningar i en vektordatabas
När du har genererat inbäddningar behöver du ett sätt att lagra dem så att du senare kan hämta dem med anrop till en LLM. Vektordatabaser är utformade för att lagra och bearbeta vektorer, så de är ett naturligt hem för inbäddningar. Olika vektordatabaser erbjuder olika bearbetningsfunktioner, så du bör välja en baserat på dina rådata och dina mål. Information om dina alternativ finns i tillgängliga vektordatabaslösningar.
Använda inbäddningar i din LLM-lösning
När du skapar LLM-baserade program kan du använda semantisk kernel för att integrera inbäddningsmodeller och vektorlager, så att du snabbt kan hämta textdata och generera och lagra inbäddningar. På så sätt kan du använda en vektordatabaslösning för att lagra och hämta semantiska minnen.