LLM-Chat Sequenzdiagramm

Dieses Diagramm veranschaulicht die Interaktionen beim Chat eines Benutzers mit einem Large Language Model (LLM).

LLM Chat Interaction SequenceLLM Chat Interaction SequenceBrowserBrowserBrowserMiddleware ServerLLMUserUserBrowserBrowserMiddleware ServerMiddleware ServerLLMLLMUserUserBrowserBrowserMiddleware ServerMiddleware ServerLLMLLMBrowserBrowserBrowserMiddleware ServerLLM[01]Enter prompt[02]HTTP POST /v1/chat/completions{ messages: [ {‘role’: ‘user’,‘content’: ‘##user-provided prompt##’} ]‘model’: ‘my-llama-0.1’ }[03]Forward promptcold start: load LLM model[04]load and initialize model “my-llama-0.1”Prefill Phase (Prompt Processing)[05]tokenize input text[06]perform token embedding lookup[07]populate QKV cache for all input tokensDecoding Phase (First Token)[08]Process new state via Transformer blocks[09]Sample next token from output probabilities[10]De-tokenize the token ID to text[11]Start generating responsefrom first token[12]Establish SSE connection:send HTTP esponse header“Content-Type: text/event-stream”[13]Display textToken Generation LoopDecoding Phase (More Tokens)[14]Update QKV cache with previous token’s state[15]Process new state via Transformer blocks[16]Sample next token from output probabilities[17]De-tokenize the token ID to text[18]Send token as text[19]Push new text data via SSE stream[20]Display additional text[21]Send new LLM output via SSE[22]Display new LLM output[23]generate special End-Of-Sequence (EOS) token[24]Response complete[25]Send completion event[26]Display complete LLM outputif conversation continues[27]enters next prompt[28]HTTP POST /v1/chat/completionswith complete chat session historyprocess repeats from [02]

Komponenten

  • Benutzer: Die Person, die mit der Chat-Oberfläche interagiert
  • Browser: Die Anwendung, die im Webbrowser des Benutzers läuft
  • Middleware-Server: Der Backend-Server, der Web-Anwendung bereitstellt und die Kommunikation mit dem LLM übernimmt.
  • LLM: Das Large Language Model, das Anfragen verarbeitet und Antworten generiert.

Ablauf

  1. Initialisierung: Der Benutzer öffnet die Chat-Oberfläche, und der Browser stellt eine Verbindung zum Middleware-Server her.

  2. Chat-Interaktion: Der Benutzer gibt einen Prompt ein, der über eine HTTP-POST-Anfrage an den Middleware-Server gesendet wird. Der Server leitet diesen Prompt zur Verarbeitung an das LLM weiter.

  3. Inkrementelle Antwort mit SSE (Server-Sent Events): Mit dem ersten Token startet der Server eine SSE-Antwort zum Browser. Während das LLM Tokens generiert, werden diese in Echtzeit an den Browser gestreamt. Der Browser zeigt diese Tokens inkrementell an und erzeugt den Effekt, dass das LLM seine Antwort “tippt”

  4. Nachfrage: Der Benutzer kann das Gespräch mit Folgefragen fortsetzen. Diese beinhalten immer den bisherigen Gesprächsverlauf. Das LLM ist zwischen zwei Chat-Interaktionen “stateless”.

  5. Was das LLM macht, um die Antwort zu generieren

    Ist bei der ersten Anfrage das Modell noch nicht geladen (“Kaltstart”) wird das LLM-Modell geladen und initialisiert. Dies kann sehr lange dauern. Deswegen wird man dafür zumeist dafür sorgen, dass das Laden vor dem ersten Prompt stattfindet und ein Warmstart möglich ist.

    In jedem Fall beginnt mit der Prompt-Verarbeitung die Prefill-Phase, in der der Eingabetext in einzelne Token aufgeteilt wird. Für jedes Token im Prompt wird sein Embedding bestimmt und der sogenannte QKV-Cache wird befüllt. Hierdurch kann das Modell semantische Beziehungen im Prompt herstellen (“Attention”).

    In der Dekodierungsphase wird der so aufbereitete Input durch Transformer-Blöcke verarbeitet. Für jedes Token ergibt sich am Ende eine Wahrscheinlichkeit, wie gut es als Folgetoken passt. Das LLM wählt daraus das nächste Token aus und wandelt es in Text um.

    Um nun ein weiteres Token zu generieren, muss zuerst das voherige Token der QKV-Datenstrukur hinzugefügt werden. Diese beiden Schritte wiederholen sich kontinuierlich und die Ausgabe verlängert sich jeweils um ein Token.

    Das Ende der Ausgabe ist dann erreicht, wenn ein besonderes Token, meist das “End-of-Sequence”-Token vom LLM ausgewählt wird. Die Antort ist jetzt vollständig generiert. Alle Datenstrukturen werden vom LLM freigegeben für die nächste Prompt-Anfrage.

Wir nehmen das Risiko aus Ihrer KI.

Sie wollen Ihre KI-Architektur in den Griff bekommen? Sie müssen Ihre KI-Produkte regulierungs-konform machen? algo consult hilft Unternehmen dabei.

Übersicht Dienstleistungen Lassen Sie es uns zusammen angehen.