---
title: "Stop sequences (language models) (BG)"
source: "https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)"
wiki: "systems-analysis.info/int"
article: "Stop_sequences_(language_models)_(BG)"
language: "bg"
categories:
  - "Category:Bulgarian"
  - "Category:Core LLM concepts"
  - "Category:Large language models"
  - "Category:Machine learning"
revision_id: 6932
wiki_created_at: 2026-09-07T00:13:27Z
wiki_modified_at: 2026-09-07T00:13:27Z
downloaded_at: 2026-09-07T23:16:29Z
---

# Stop sequences (language models) (BG)

**Stop Sequence** (*последователност за спиране*) в контекста на големите езикови модели (LLM) — това е специална последователност от символи или токени, която сигнализира на модела за необходимостта да преустанови генерирането на текст<sup>[\[1\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-promptitude_def-1)</sup>. Този механизъм е важен компонент на авторегресивните езикови модели, осигурявайки управляемо и предсказуемо завършване на отговора.

При използване на stop sequence моделът на всяка стъпка от генерирането проверява дали вече генерираният текст не завършва с една от зададените последователности. Ако съвпадение бъде открито, процесът незабавно се прекратява, като самата stop sequence **не се включва** в крайния изход<sup>[\[2\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-openai_api-2)</sup>. Това позволява на разработчика да контролира точно границите на отговора, без да променя самата заявка.

## Основни принципи на функциониране

В авторегресивните езикови модели генерирането на текст се извършва последователно, токен по токен. На всяка стъпка моделът предсказва следващия токен въз основа на цялата предишна последователност (входния prompt и вече генерирания текст). Математически това се изразява като условна вероятност:

$$
P(y_{t} \mid y_{< t},x)
$$

където $y_{t}$ — текущият генериран токен, $y_{< t}$ — последователността от предварително генерирани токени, а $x$ — входната последователност<sup>[\[3\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-vellum_params-3)</sup>.

Механизмът **stop sequence** функционира като външен критерий за прекъсване на този итеративен процес.

## Видове последователности за спиране

Съществуват няколко основни вида механизми за спиране, които могат да се използват както поотделно, така и в комбинация.

### 1. Токени за край на последователността (EOS)

**End-of-Sequence (EOS)** — това са специални токени (например \`\<\|endoftext\|\>\`), вградени в речника на модела и предназначени да обозначават края на логически фрагмент от текст. Моделът се обучава да генерира EOS-токен, когато счита отговора за завършен, тъй като всички текстове в обучаващата извадка завършват с този токен<sup>[\[4\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-gpt3_survey-4)</sup>. При засичане на EOS-токен генерирането автоматично се прекратява.

Изследванията показват, че наличието на EOS-токени влияе върху архитектурата на вниманието: моделите развиват вътрешни механизми за броене на позиции, което обаче може да ограничава способността им за екстраполация върху последователности, значително надхвърлящи дължината на обучаващите примери<sup>[\[5\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-no_eos_extrapolation-5)</sup>.

### 2. Потребителски последователности

Това са произволни низове, които разработчикът задава за конкретна задача. Те не са част от речника на модела, но се проследяват на ниво символи. Примерите включват:

- **Символи за нов ред**: \`\n\` или \`\n\n\` за спиране след абзац.
- **Контекстни маркери**: \`Human:\`, \`User:\` или \`Q:\` за разделяне на репликите в диалог.
- **Специални маркери**: \`###\`, \`\</output\>\` или \`END\`.

### 3. Структурни последователности

Това са специализирани маркери, използвани за завършване на определени структурни елементи, което е от критично значение при генериране на форматирано съдържание<sup>[\[1\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-promptitude_def-1)</sup>:

- **Код**: тройни обратни апострофи (\`\`\`) за завършване на блок с код.
- **JSON/XML**: затварящи скоби (\`}\`) или тагове (\`\</element\>\`).

## Техническа реализация и проблеми

Ефективното засичане на stop sequence е нетривиална задача, свързана с редица трудности.

### Алгоритъм за засичане и оптимизация

Процесът на засичане в реални системи включва:

1.  **Проверка на всяка стъпка**: След генерирането на всеки нов токен системата проверява дали текущият изход не завършва с някоя от зададените stop sequences.
2.  **Обработка на частични съвпадения**: Системата трябва да проследява ситуации, при които част от последователността вече е генерирана, но пълно съвпадение все още не е налице.
3.  **Многокритериална проверка**: Повечето системи (например OpenAI API) позволяват проследяване на няколко (до четири) stop sequences едновременно<sup>[\[2\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-openai_api-2)</sup>.

Във фреймуърка Hugging Face Transformers за тази цел е реализиран абстрактният клас \`StoppingCriteria\`, който позволява създаване на персонализирани критерии за спиране, като \`MaxLengthCriteria\` (по дължина) или \`EosTokenCriteria\` (по EOS-токен)<sup>[\[4\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-gpt3_survey-4)</sup>.

### Проблеми и ограничения

- **Проблем с токенизацията**: Това е основната техническа трудност. Една и съща последователност от символи (например \`\nUser:\`) може да бъде разбита на токени по различен начин в зависимост от контекста. Това затруднява надеждното засичане, тъй като stop sequence може да се окаже разделена между няколко токена<sup>[\[5\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-no_eos_extrapolation-5)</sup>.
- **Производителност**: Проверката на множество дълги stop sequences на всяка стъпка може да забавя генерирането, особено при работа с дълги последователности в реално време.
- **Фалшиви задействания**: Зададената последователност може случайно да се появи в средата на желания отговор, което ще доведе до преждевременно завършване. Затова е важно да се избират достатъчно уникални и специфични маркери (например \`\n###\n\`)<sup>[\[6\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-finetune_gpt3-6)</sup>.

## Приложение и сценарии на използване

Stop sequences са мощен инструмент за управление на поведението на LLM.

- **Контрол на дължината и разходите**: Позволяват ограничаване на максималния размер на отговора и, като следствие, намаляване на разхода на токени, което е важно при използване на платени API.
- **Диалогови системи**: Използват се за ясно разделяне на репликите на събеседниците, така че моделът-асистент да не генерира отговор вместо потребителя.
- **Генериране на структурирано съдържание**: Незаменими за получаване на коректен изход в JSON, XML формати или при писане на код, предотвратявайки добавянето на излишна информация след завършване на структурата<sup>[\[7\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-cursor_backticks-7)</sup>.
- **Предотвратяване на нежелано поведение**: Помагат да се прекъсне генерирането при появата на повтарящо се или некоректно съдържание (халюцинации).
- **Обучение и fine-tuning**: В обучаващите набори от данни често се използват уникални маркери (например \`###\`) като stop sequence, за да може моделът да се научи да завършва отговора на правилното място<sup>[\[6\]](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_note-finetune_gpt3-6)</sup>.

## Съвременни насоки на изследване

- **Адаптивни критерии за спиране**: Разработване на методи, които динамично определят точката на завършване въз основа на контекста и качеството на генерирания текст.
- **Ентропийни подходи**: Използване на ентропията на разпределението на токените като критерий. Високата ентропия може да указва несигурност на модела и да служи като сигнал за прекратяване на генерирането.

## Връзки

- Документация на OpenAI за използването на stop sequences
- Документация на Hugging Face за StoppingCriteria

## Литература

- Sutskever, I.; Vinyals, O.; Le, Q. V. (2014). *Sequence to Sequence Learning with Neural Networks*. arXiv:1409.3215.
- Vaswani, A. et al. (2017). *Attention Is All You Need*. arXiv:1706.03762.
- Keskar, N. S. et al. (2019). *CTRL: A Conditional Transformer Language Model for Controllable Generation*. arXiv:1909.05858.
- Holtzman, A. et al. (2020). *The Curious Case of Neural Text Degeneration*. arXiv:1904.09751.
- Brown, T. et al. (2020). *Language Models are Few-Shot Learners*. arXiv:2005.14165.
- Zong, M.; Krishnamachari, B. (2022). *A Survey on GPT-3*. arXiv:2212.00857.
- Zhao, Y. et al. (2022). *Calibrating Sequence Likelihood Improves Conditional Language Generation*. arXiv:2210.00045.
- Hu, J. C.; Cavicchioli, R.; Capotondi, A. (2023). *A Request for Clarity over the End-of-Sequence Token in the Self-Critical Sequence Training*. arXiv:2305.12254.
- Zhu, W. et al. (2024). *Improving Open-Ended Text Generation via Adaptive Decoding*. arXiv:2402.18223.
- Zhang, H. et al. (2024). *Adaptable Logical Control for Large Language Models*. arXiv:2406.13892.
- Suh, Y. J. et al. (2025). *The Curious Case of Sequentially Mis-calibrated Language Models*. arXiv:2205.11916.

## Бележки

1.  <span id="cite_note-promptitude_def-1">↑ <sup>[1.0](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-promptitude_def_1-0)</sup> <sup>[1.1](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-promptitude_def_1-1)</sup> «Stop Sequence: Understanding & Setting It Correctly». *Promptitude.io Help Center*. <a href="https://help.promptitude.io/en/articles/8897040-stop-sequence-understanding-setting-it-correctly" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-openai_api-2">↑ <sup>[2.0](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-openai_api_2-0)</sup> <sup>[2.1](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-openai_api_2-1)</sup> «How do I use stop sequences in the OpenAI API?». *OpenAI Help Center*. <a href="https://help.openai.com/en/articles/5072263-how-do-i-use-stop-sequences-in-the-openai-api" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-vellum_params-3">[↑](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-vellum_params_3-0) «How to use stop sequences?». *Vellum*. <a href="https://www.vellum.ai/llm-parameters/stop-sequence" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-gpt3_survey-4">↑ <sup>[4.0](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-gpt3_survey_4-0)</sup> <sup>[4.1](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-gpt3_survey_4-1)</sup> Brown, Tom, et al. «A Survey on GPT-3». *arXiv:2212.00857* \[cs.CL\], 1 дек. 2022 г. <a href="https://arxiv.org/pdf/2212.00857" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-no_eos_extrapolation-5">↑ <sup>[5.0](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-no_eos_extrapolation_5-0)</sup> <sup>[5.1](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-no_eos_extrapolation_5-1)</sup> Suh, Y. J., et al. «The Curious Case of Sequentially Mis-calibrated Language Models». *arXiv:2205.11916* \[cs.CL\], 24 мая 2022 г. <a href="https://arxiv.org/pdf/2205.11916" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-finetune_gpt3-6">↑ <sup>[6.0](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-finetune_gpt3_6-0)</sup> <sup>[6.1](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-finetune_gpt3_6-1)</sup> Eric, Mihail. «How to Finetune GPT3». *mihaileric.com*. <a href="https://www.mihaileric.com/posts/how-to-finetune-gpt3/" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-cursor_backticks-7">[↑](https://systems-analysis.info/int/Stop_sequences_(language_models)_(BG)#cite_ref-cursor_backticks_7-0) Corin, Daniel. «Way Enough - Cursor Triple Backticks Stop Sequence». *danielcorin.com*. <a href="https://www.danielcorin.com/til/cursor/triple-backticks-stop-sequence/" class="external autonumber" rel="nofollow">[7]</a></span>
