Populaire onderwerpen
#
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.
Een eenvoudige techniek maakt RAG ~32x geheugen efficiënt!
- Perplexity gebruikt het in zijn zoekindex
- Azure gebruikt het in zijn zoekpijplijn
- HubSpot gebruikt het in zijn AI-assistent
Laten we begrijpen hoe we het kunnen gebruiken in RAG-systemen (met code):
Laten we vandaag een RAG-systeem bouwen dat 36M+ vectoren in <30ms opvraagt met behulp van Binary Quantization.
Technische stack:
- @llama_index voor orkestratie
- @milvusio als de vector DB
- @beam_cloud voor serverless deployment
- @Kimi_Moonshot Kimi-K2 als de LLM gehost op Groq
Laten we het bouwen!
Hier is de workflow:
- Documenten inlezen en binaire embeddings genereren.
- Een binaire vectorindex maken en embeddings opslaan in de vector DB.
- De top-k vergelijkbare documenten ophalen op basis van de gebruikersquery.
- LLM genereert een antwoord op basis van aanvullende context.
Laten we dit implementeren!
0️⃣ Stel Groq in
Voordat we beginnen, sla je Groq API-sleutel op in een .env-bestand en laad deze in je omgeving om gebruik te maken van 's werelds snelste AI-inferentie.
Bekijk dit 👇

1️⃣ Laad gegevens
We nemen onze documenten in met de directory reader tool van LlamaIndex.
Het kan verschillende gegevensformaten lezen, waaronder Markdown, PDF's, Word-documenten, PowerPoint-presentaties, afbeeldingen, audio en video.
Bekijk dit 👇

2️⃣ Genereer binaire embeddings
Vervolgens genereren we tekstembeddings (in float32) en converteren we deze naar binaire vectoren, wat resulteert in een vermindering van 32x in geheugen en opslag.
Dit wordt binaire kwantisatie genoemd.
Bekijk deze implementatie 👇

3️⃣ Vectorindexering
Nadat onze binaire kwantisatie is voltooid, slaan we de vectoren op en indexeren we ze in een Milvus-vector database voor efficiënte opvraging.
Indexen zijn gespecialiseerde datastructuren die helpen de prestaties van gegevensopvragingen te optimaliseren.
Bekijk dit 👇

4️⃣ Ophalen
In de ophaalfase:
- Embedden we de gebruikersquery en passen we binaire kwantisatie toe.
- Gebruiken we de Hamming-afstand als zoekmaatstaf om binaire vectoren te vergelijken.
- Haal de top 5 meest vergelijkbare stukken op.
- Voeg de opgehaalde stukken toe aan de context.
Bekijk dit👇

5️⃣ Generatie
Uiteindelijk bouwen we een generatiepijplijn met behulp van het Kimi-K2 instructiemodel, dat wordt aangeboden op de snelste AI-inferentie door Groq.
We specificeren zowel de query als de opgehaalde context in een prompttemplate en geven deze door aan de LLM.
Bekijk dit 👇

6️⃣ Implementatie met Beam
Beam maakt ultra-snelle serverless implementatie van elke AI-werkstroom mogelijk.
Daarom wikkelen we onze app in een Streamlit-interface, specificeren we de Python-bibliotheken en de rekenvereisten voor de container.
Ten slotte implementeren we de app in een paar regels code👇

7️⃣ Voer de app uit
Beam start de container en implementeert onze streamlit-app als een HTTPS-server die eenvoudig toegankelijk is via een webbrowser.
Bekijk deze demo 👇
Verder, om de schaal en inferentiesnelheid echt te beoordelen, testen we de geïmplementeerde setup op de PubMed-dataset (36M+ vectoren).
Onze app:
- vroeg 36M+ vectoren op in <30ms.
- genereerde een reactie in <1s.
Bekijk deze demo👇
Klaar!
We hebben net de snelste RAG-stack gebouwd die BQ benut voor efficiënte retrieval en
gebruik maakt van ultra-snelle serverless deployment van onze AI-workflow.
Hier is de workflow opnieuw ter referentie 👇
Dat is een wrap!
Als je het waardevol vond, deel het dan opnieuw met je netwerk.
Vind me → @_avichawla
Elke dag deel ik tutorials en inzichten over DS, ML, LLM's en RAG's.

4 aug, 14:33
Een eenvoudige techniek maakt RAG ~32x geheugen efficiënt!
- Perplexity gebruikt het in zijn zoekindex
- Azure gebruikt het in zijn zoekpijplijn
- HubSpot gebruikt het in zijn AI-assistent
Laten we begrijpen hoe we het kunnen gebruiken in RAG-systemen (met code):
695,79K
Boven
Positie
Favorieten