🎯 Definicja

Stop Sequence to specjalny ciąg znaków, który służy do przerwania generowania tekstu przez model językowy (np. GPT) w dokładnie określonym momencie. Jego zadaniem jest zatrzymać model w ustalonym punkcie wynikowym – zazwyczaj po wykonaniu konkretnego zadania.

🔑 Kluczowe punkty

  • Pozwala na kontrolowanie długości i granic odpowiedzi generowanej przez model.
  • Ogranicza generację do tylko istotnej treści — bez zbędnej kontynuacji.
  • Stosowany w interfejsach API do generowania tekstu: OpenAI, Cohere, Anthropic, itp.
  • Może występować w formie ciągu znaków: "\n", "###", "--END--" lub innego wybranego tokenu.
  • Umożliwia tworzenie interaktywnych narzędzi, które precyzyjnie kończą odpowiedź modelu (np. chatboty, agenci AI, systemy wbudowane).

📚 Szczegółowe wyjaśnienie

W trakcie generowania tekstu modele językowe przewidują kolejne tokeny, bazując na wcześniejszych słowach i kontekście. Domyślnie model może generować tekst aż do:

  • osiągnięcia limitu tokenów,
  • napotkania instrukcji zatrzymującej, np. stop sequence.

Stop sequence działa jako warunek zakończenia generacji — jeśli tekst zawiera zadany ciąg, model przerywa dalsze generowanie.

Można zdefiniować jedną lub kilka sekwencji zatrzymujących, a generowanie zakończy się przy pierwszej napotkanej.

Typowe zastosowania:

  • Interfejsy konwersacyjne (chatbot): "User:", "Agent:", "###"
  • Podział na fragmenty: "---", "\n"
  • Model jako komponent w aplikacji sterowanej promptami: "END"

💡 Przykład zastosowania (Python / OpenAI)

import openai
 
response = openai.Completion.create(
    engine="text-davinci-003",
    prompt="Zakończ to zdanie: 'Inteligentne systemy uczą się na podstawie danych dzięki temu, że'",
    max_tokens=50,
    stop=["."],  # Zatrzymaj generację po pierwszej kropce
)
 
print(response.choices[0].text.strip())

Wynik:

są w stanie wykrywać wzorce i przewidywać wyniki.

Model przestał generować po napotkaniu pierwszej kropki (".").

🚀 Zaawansowany przykład

W interakcji wielu podpowiedzi np. agenta AI, można użyć "User:" jako stop:

response = openai.ChatCompletion.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "Jesteś pomocnym asystentem."},
        {"role": "user", "content": "Wyjaśnij czym jest overfitting w ML."}
    ],
    stop=["User:"]
)

Model zakończy odpowiedź przed kolejną repliką „User:”, umożliwiając płynne kontynuowanie rozmowy.

✅ Korzyści

FunkcjaKorzyść
Graniczna kontrola A → BOdpowiedzi generowane dokładnie do znaku
Redukcja “hallucynacji”Mniej nieistotnego lub niechcianego tekstu
Obsługa interakcjiUmożliwia przerywanie/dzielenie rozmów
Wydajność i kosztKrótszy wynik = mniej tokenów do przetwarzania

📌 Źródła

👽 Brudnopis

  • Pozornie prosty mechanizm – krytyczny dla integracji LLM w aplikacjach
  • W prompt chaining — konieczny do określenia granic dla wyjścia częściowego
  • Działa na poziomie tokenów – „stop” = zawiera całą sekwencję tokenów w generacji
  • Stop sequence ≠ limit — nie wpływa na max_tokens, tylko przerywa wcześniej