Trendande ämnen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
En enkel teknik gör RAG ~32x minne effektivt!
- Perplexity använder det i sitt sökindex
- Azure använder det i sin sökpipeline
- HubSpot använder det i sin AI-assistent
Låt oss förstå hur man använder den i RAG-system (med kod):
Idag ska vi bygga ett RAG-system som frågar 36M+ vektorer i <30 ms med hjälp av binär kvantisering.
Teknisk stack:
- @llama_index för orkestrering
- @milvusio som vektorn DB
- @beam_cloud för serverlös distribution
- @Kimi_Moonshot Kimi-K2 som LLM värd på Groq
Låt oss bygga det!
Här är arbetsflödet:
- Mata in dokument och generera binära inbäddningar.
- Skapa ett binärt vektorindex och lagra inbäddningar i vektordatabasen.
- Hämta top-k liknande dokument som användarens fråga.
- LLM genererar ett svar baserat på ytterligare sammanhang.
Låt oss genomföra detta!
0️⃣ Inställning Groq
Innan vi börjar, lagra din Groq API-nyckel i en .env-fil och ladda den i din miljö för att utnyttja världens snabbaste AI-inferens.
Kolla in det här 👇

1️⃣ Ladda data
Vi matar in våra dokument med hjälp av LlamaIndex's katalogläsarverktyg.
Den kan läsa olika dataformat inklusive Markdown, PDF-filer, Word-dokument, PowerPoint-kortlekar, bilder, ljud och video.
Kolla in det här 👇

2️⃣ Generera binära inbäddningar
Därefter genererar vi textinbäddningar (i float32) och konverterar dem till binära vektorer, vilket resulterar i en 32x minskning av minne och lagring.
Detta kallas binär kvantisering.
Kontrollera den här implementeringen 👇

3️⃣ Indexering av vektorer
Efter att vår binära kvantisering är klar lagrar och indexerar vi vektorerna i en Milvus-vektordatabas för effektiv hämtning.
Index är specialiserade datastrukturer som hjälper till att optimera prestanda för datahämtningsåtgärder.
Kolla in det här 👇

4️⃣ Hämtning
I hämtningsfasen gör vi följande:
- Bädda in användarfrågan och tillämpa binär kvantisering på den.
- Använd Hamming-avstånd som sökmått för att jämföra binära vektorer.
- Hämta de 5 mest liknande bitarna.
- Lägg till de hämtade segmenten i kontexten.
Kolla in det här👇

5️⃣ Generering
Slutligen bygger vi en genereringspipeline med hjälp av Kimi-K2-instruktionsmodellen, som betjänas på den snabbaste AI-inferensen av Groq.
Vi anger både frågan och den hämtade kontexten i en promptmall och skickar den till LLM.
Kolla in det här 👇

6️⃣ Distribution med Beam
Beam möjliggör ultrasnabb serverlös distribution av alla typer av AI-arbetsflöden.
Därför lindar vi in vår app i ett Streamlit-gränssnitt, anger Python-biblioteken och beräkningsspecifikationerna för containern.
Slutligen distribuerar vi appen i några rader kod👇

7️⃣ Kör appen
Beam startar containern och distribuerar vår streamlit-app som en HTTPS-server som enkelt kan nås från en webbläsare.
Kolla in den här demon 👇
För att verkligen bedöma skalan och inferenshastigheten testar vi den distribuerade konfigurationen över PubMed-datasetet (36M+ vektorer).
Vår app:
- frågade 36M+ vektorer i <30ms.
- genererade ett svar i <1s.
Kolla in den här demon👇
Färdig!
Vi har precis byggt den snabbaste RAG-stacken som utnyttjar BQ för effektiv hämtning och
med hjälp av ultrasnabb serverlös distribution av vårt AI-arbetsflöde.
Här är arbetsflödet igen för din referens 👇
Det är en wrap!
Om du tyckte att det var insiktsfullt, dela det igen med ditt nätverk.
Hitta mig → @_avichawla
Varje dag delar jag med mig av handledningar och insikter om DS, ML, LLM och RAGs.

4 aug. 14:33
En enkel teknik gör RAG ~32x minne effektivt!
- Perplexity använder det i sitt sökindex
- Azure använder det i sin sökpipeline
- HubSpot använder det i sin AI-assistent
Låt oss förstå hur man använder den i RAG-system (med kod):
695,78K
Topp
Rankning
Favoriter