Strona główna / Rozdział 2 · Skąd model wie to, co wie
    Ostatnia zmiana · 7 min czytania

    Użyj z AI

    Jak model widzi czat

    Model nie widzi okienka czatu. System prompt, wiadomości, wywołania narzędzi i ich wyniki są sklejane w jeden dokument ze znacznikami ról, a model dopisuje ciąg dalszy za znacznikiem asystenta. Stąd biorą się koszty długich rozmów, granice system promptu i większość błędów przy self-hostingu.

    Po ludzkuScenariusz, w którym każda kwestia ma podpis: REŻYSER, KLIENT, ASYSTENT. Aktor bez pamięci dostaje za każdym razem cały scenariusz od pierwszej strony, na końcu widzi pusty podpis ASYSTENT i dopisuje swoją kwestię. Jeśli ktoś wsunie do scenariusza obcą kartkę, aktor przeczyta ją tak samo jak resztę.

    Dokładaj wiadomości i wywołania narzędzi, przełączaj widok. Zobacz, że każde zapytanie wysyła cały dokument od nowa

    tokenów w dokumencie teraz
    zapytań do API od początku rozmowy
    tokenów wejściowych wysłanych łącznie

    Uproszczony, poglądowy szablon. Każda rodzina modeli ma własne znaczniki i własny zapis narzędzi. Tokeny liczy uproszczony tokenizer jak w temacie „Tokeny”, a każdy znacznik to jeden token.

    Co naprawdę wysyła twój kod: lista wiadomości zamiast dokumentu

    Uproszczony zapis, jaki przyjmuje większość API czatu. Szczegóły, np. zapis wywołań narzędzi, różnią się między dostawcami. Znaczników i końcowego <|assistant|> nie wysyłasz, dokleja je serwer. Definicje narzędzi idą osobnym polem, a serwer wstawia je do dokumentu obok system promptu.

    Szablon czatu

    Cały dokument w każdej turze

    Obrazy, PDF-y i głos

    System prompt to nie zabezpieczenie

    Self-hosting i fine-tuning

    Sprawdź się

    Jak model widzi rozmowę i skąd wie, kto co mówi?

    Model nie widzi okienka czatu. Serwer skleja system prompt, historię wiadomości, wywołania narzędzi i ich wyniki w jeden dokument, a role oddziela tokenami specjalnymi według szablonu, którego model nauczył się w SFT. Na końcu stawia znacznik asystenta, a model dopisuje ciąg dalszy, aż wygeneruje token końca tury. Model nie ma pamięci, więc w każdej turze dostaje cały dokument od nowa. System prompt to tylko tekst na początku, a nie granica bezpieczeństwa: polecenie ukryte w mailu leży w tym samym ciągu.

    In English

    The model never sees a chat window. The server concatenates the system prompt, history, tool calls and tool results into one document, separating roles with special tokens from a template the model learned during SFT. The document ends with an assistant marker, and the model continues the text until it emits an end-of-turn token. The model has no memory, so the whole document is resent every turn. The system prompt is just text at the top, not a security boundary: an instruction hidden in an email sits in the same stream.

    Pytania pogłębiające (5)
    Czemu model czasem pisze dalej za użytkownika?
    Bo nie wygenerował tokena końca tury albo serwer nie ma go na liście tokenów stopu. Dla modelu to wciąż jeden dokument, więc najbardziej prawdopodobny ciąg dalszy to znacznik użytkownika i jego kolejna wiadomość. Zwykle winny jest zły szablon albo zła konfiguracja stopu.
    Czy model odróżnia polecenie z system promptu od polecenia w mailu?
    Tylko tyle, ile nauczył się w treningu. Modele trenuje się tak, by przestrzegały hierarchii: system ważniejszy od użytkownika, użytkownik od treści z narzędzi (OpenAI, „The Instruction Hierarchy”, 2024). To podnosi odporność, ale nie jest twardą granicą, bo wszystko leży w jednym ciągu tokenów.
    Po co API przyjmuje listę wiadomości zamiast gotowego tekstu?
    Żeby szablon, znaczniki i zapis narzędzi zawsze zgadzały się z tym, na czym trenowano model, i żeby treść od użytkownika nie mogła podrobić znacznika roli.
    Wdrażasz model open-weight na własnym serwerze. Co sprawdzasz w szablonie?
    Czy szablon z tokenizera zgadza się z kartą modelu, czy token końca tury jest na liście stopu, czy nie ma podwójnego tokena początku i czy tekst użytkownika nie zamienia się w tokeny specjalne. Najprościej wyrenderować przykładową rozmowę z narzędziami i porównać ją znak po znaku z przykładem z dokumentacji modelu.
    Co się dzieje, gdy edytujesz starą wiadomość?
    Model niczego nie zapamiętał, więc dostaje po prostu nowy dokument. Tracisz prompt cache od miejsca zmiany do końca. W Claude Opus 5.5, Fable 5.1 i Sonnet 5.5 zmiana historii przed blokiem myślenia kończy się błędem 400 (zobacz „Modele rozumujące”).

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę