LLM-toepassingen in productie (RAG + vectordatabase + caching) · Les

Horizontaal schalen van RAG-componenten

Ontwerp en implementeer strategieën om uw RAG-componenten horizontaal te schalen, waaronder vectordatabases en LLM-inferentieservices.

Les 1 van 412 stappen

Horizontaal schalen van RAG-componenten is een gratis LLM-toepassingen in productie (RAG + vectordatabase + caching)-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject LLM-toepassingen in productie (RAG + vectordatabase + caching). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus LLM-toepassingen in productie (RAG + vectordatabase + caching) bevat in totaal 4 lessen.

Waarom je RAG-app schalen?

Naarmate je RAG-app groeit, zullen meer gebruikers ermee werken en zullen je gegevensbronnen zich uitbreiden. Dat legt druk op je systeem!

Horizontaal schalen helpt je app meer aanvragen en grotere gegevenssets te verwerken door meer componenten toe te voegen in plaats van bestaande componenten groter te maken.

Horizontaal versus verticaal schalen

Stel je je RAG-app voor als een restaurant. Als je meer klanten moet bedienen:

  • Verticaal schalen: Koop een grotere oven en neem een topchef aan (bestaande bronnen upgraden).
  • Horizontaal schalen: Open een identiek restaurant ernaast (meer identieke bronnen toevoegen).

Horizontaal schalen heeft vaak de voorkeur voor cloud-native RAG-apps vanwege de flexibiliteit en kosteneffectiviteit.

Unieke schaalvereisten van RAG

RAG-applicaties hebben specifieke schaalbehoeften:

  • Toegenomen gebruikersbelasting: Meer gelijktijdige gebruikers betekenen meer LLM-aanroepen en meer opzoekaanvragen.
  • Groeiende gegevens: Naarmate je kennisbank groeit, wordt je vectordatabase groter en worden aanvragen complexer.
  • Vereisten voor latentie: Gebruikers verwachten snelle antwoorden, dus trage componenten moeten worden geoptimaliseerd of opgeschaald.

Vectordatabases: een knelpunt bij het schalen

Je vectordatabase is cruciaal voor RAG. Deze slaat hoogdimensionale representaties (embeddings) van je documenten op en voert snelle zoekopdrachten naar overeenkomst uit.

Naarmate je documentverzameling groeit (miljoenen of miljarden vectoren) en het aantal aanvragen toeneemt, kan één exemplaar van een vectordatabase een knelpunt worden.

Je vectordatabase sharden

Sharding (ook partitionering genoemd) is een techniek voor horizontaal schalen van vectordatabases. Hierbij wordt je volledige gegevensset verdeeld over meerdere database-exemplaren of 'shards'.

Elke shard bevat een deel van je vectoren. Wanneer er een aanvraag binnenkomt, bepaalt het systeem welke shard(s) mogelijk relevante resultaten bevatten en verdeelt het de belasting.

Je vectordatabase repliceren voor leesbewerkingen

Een andere belangrijke strategie is replicatie. Dit betekent dat je identieke kopieën (replica's) van je vectordatabase maakt.

Je kunt aanvragen met veel leesbewerkingen, zoals opzoekaanvragen, naar deze replica's sturen. Zo verhoog je de leescapaciteit aanzienlijk en bied je fouttolerantie als een replica uitvalt.

LLM-inferentie schalen

Het deel 'Generation' van RAG bestaat uit het aanroepen van een Large Language Model (LLM). Deze aanroepen kunnen veel bronnen gebruiken en hebben vaak snelheidslimieten of gebruikskosten.

Wanneer veel gebruikers je RAG-app tegelijkertijd gebruiken, heb je een manier nodig om al die LLM-aanvragen efficiënt af te handelen zonder lange wachttijden of fouten.

LLM-aanvragen verdelen met load balancing

Een load balancer werkt als een verkeersregelaar en verdeelt binnenkomende LLM-aanvragen over meerdere beschikbare exemplaren van een LLM-service of API-eindpunten.

Zo voorkom je dat één exemplaar overbelast raakt, waardoor reactietijden en de algehele betrouwbaarheid van het systeem verbeteren. Dit is een eenvoudig idee:

import random

class LLMService:
    def __init__(self, name):
        self.name = name
    def process_request(self, prompt):
        return f"Response from {self.name} for '{prompt[:15]}...'"

# Our available LLM service instances
llm_endpoints = [
    LLMService("LLM-Inst-A"),
    LLMService("LLM-Inst-B"),
    LLMService("LLM-Inst-C")
]

def distribute_request(prompt):
    # Simple load balancer: pick a random instance
    chosen_endpoint = random.choice(llm_endpoints)
    return chosen_endpoint.process_request(prompt)

if __name__ == "__main__":
    print(distribute_request("What is the capital of France?"))
    print(distribute_request("Tell me a fun fact about space."))
    print(distribute_request("How does photosynthesis work?"))

Meerdere LLM-eindpunten beheren

Voor load balancing heb je meerdere LLM-eindpunten nodig. Dat kan het volgende betekenen:

  • Meerdere API-sleutels gebruiken voor een cloud-LLM-provider (bijvoorbeeld OpenAI of Anthropic).
  • Verschillende exemplaren van een opensource-LLM (zoals Llama 3) implementeren op verschillende servers.

Elk eindpunt kan vervolgens een deel van de binnenkomende aanvragen afhandelen.

Schaaluitdagingen aanpakken

Hoewel horizontaal schalen krachtig is, brengt het ook complexiteit met zich mee:

  • Meer infrastructuur: Meer machines betekenen hogere kosten en meer zaken om te beheren.
  • Gegevensconsistentie: Ervoor zorgen dat alle replica's of shards actuele informatie bevatten, kan lastig zijn.
  • Operationele complexiteit: Een gedistribueerd systeem beheren is ingewikkelder dan één server beheren.

Zorgvuldige planning en monitoring zijn essentieel.

Korte controle: schaalconcepten

Je hebt verschillende strategieën voor horizontaal schalen geleerd. Laten we testen of je het begrijpt!

RAG schalen: belangrijkste punten

Goed gedaan! Je hebt onderzocht hoe je je RAG-applicatie horizontaal kunt schalen.

  • Horizontaal schalen voegt meer bronnen toe om een hogere belasting te verwerken.
  • Vectordatabases kunnen worden geschaald met sharding (gegevens verdelen) en replicatie (kopieën voor leesbewerkingen).
  • LLM-inferentieservices profiteren van load balancing over meerdere eindpunten.

Schalen vereist zorgvuldige planning, maar zorgt ervoor dat je RAG-app goed blijft presteren en betrouwbaar blijft!

Gratis beginnen

Leer LLM-toepassingen in productie (RAG + vectordatabase + caching) met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Horizontaal schalen van RAG-componenten” gratis?

Ja — de volledige tekst van “Horizontaal schalen van RAG-componenten” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus LLM-toepassingen in productie (RAG + vectordatabase + caching) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus LLM-toepassingen in productie (RAG + vectordatabase + caching) bevat in totaal 4 lessen.

Wat leer ik in “Horizontaal schalen van RAG-componenten”?

Ontwerp en implementeer strategieën om uw RAG-componenten horizontaal te schalen, waaronder vectordatabases en LLM-inferentieservices. Je oefent met LLM-toepassingen in productie (RAG + vectordatabase + caching) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met LLM-toepassingen in productie (RAG + vectordatabase + caching) te beginnen?

Ervaring vooraf is niet nodig. LLM-toepassingen in productie (RAG + vectordatabase + caching) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Horizontaal schalen van RAG-componenten”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over LLM-toepassingen in productie (RAG + vectordatabase + caching)?

Ja. Elke les over LLM-toepassingen in productie (RAG + vectordatabase + caching) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Horizontaal schalen van RAG-componenten
  2. Observability: logging, meetwaarden en tracing
  3. Alerting en incidentrespons voor LLM Ops
  4. Loadtesting en capaciteitsplanning
← Terug naar LLM-toepassingen in productie (RAG + vectordatabase + caching)