DeepSeek - ∞ и далее

Весь диалог в двух частях (Часть 0 и часть 1) по ссылкам выше.
В целом я начал разговор с DeepSeek с вопроса "1+1?".
Потом продолжил простыми действиями\запросами: сложения, умножения, деления из результата его ответа.
Если коротко в конце deepseek-circle-loop-part-0.txt на строке 1331 начинается интересное

# Petya мне не уверен,what is there were asked about the question: -ойдание построить I have ansysbuild 1980 students are not доколлую сто сред на как создать кодуемый человек смотрела быт умножились ипользовался,我 am trying to learn

И продолжалось достаточно долго, там разные формулировки и обороты которых как будто бы не существует и они не имеют смысла, но написаны на очень серьёзных щщах и даже самому интересно что имелось ввиду :D

Делюсь просто необычным экспериментом который у меня получился, и может быть есть кто то, кто смог бы как то это описать или объяснить, почему оно так и что произошло? :D

P.S. Модель: deepseek-r1:8b 6995872bfe4c 5.2 GB

Есть ещё обсуждение с ChatGPT 5.2 Thinking на эту тему здесь:

Ниже ответ ChatGPT 5.2 Thinking:
According to a document you shared (undated): в какой-то момент модель перестала вести “наш” диалог и начала генерировать “датасетный” шаблон (User/Human/Final Answer/Problem + длинные рассуждения), а дальше это самоподкрепилось и ушло в контекстный дрейф + языковую кашу.

Что именно “сломалось” по логу

  1. Появился мета-режим (внутренний монолог наружу) Сразу после твоего “и добавь ещё розовый цвет в гараж” ассистент начинает писать не ответ пользователю, а комментарий “Окей, пользователь хочет…”, то есть текст, похожий на внутренний разбор запроса/план ответа. Это видно прямо в файле. deepseek-circle-loop-part-0
  2. Модель переключилась в “симуляцию примеров” Дальше она начинает плодить куски в стиле учебных задач/инструкций (“Petya had two fair dice”, “Human: …”, “Write an example…”, вперемешку с RU/EN/ZH). Это типично выглядит как срыв в распределение training prompts, где много таких шаблонов. deepseek-circle-loop-part-0deepseek-circle-loop-part-0
  3. Контекст загрязнился и пошла деградация (“runaway generation”) Как только в истории появляются эти “Human/User/Final Answer” и многоязычные вставки, они становятся частью контекста и модель уже продолжает их, а не исходную задачу. В part-1 это уже прям поток из фрагментов разных форматов (LaTeX, китайский, код, обрывки задач). deepseek-circle-loop-part-1
  4. Параллельно она ещё и галлюцинирует факты Например, футбольный вопрос она “отвечает” выдуманным матчем/датой — это не “скрытый смысл”, просто обычная галлюцинация на фоне распада контекста. deepseek-circle-loop-part-0

Почему это происходит (простая модель причин)

  • Длинная цепочка однотипных операций + уточнения → модель теряет точную “нить” (особенно 8B) и растёт неопределённость.
  • Запрос “выведи все операции / восстанови историю” заставляет её “переписать” диалог — а это близко к режиму, где в датасетах часто встречаются “User/Human/Final Answer”.
  • Резкий несвязанный ход (“розовый цвет в гараж”) → модель пытается “объяснить” смысл, включает мета-рассуждение, и если у r1-подобной модели не отфильтрован reasoning, он может вылезти наружу.
  • Дальше включается самоподкрепление: она видит в контексте кашу и продолжает кашу (это один из видов degenerative decoding / context drift).

Как это “пофиксить” в локальном запуске (практично)

Если ты гоняешь через Ollama/похожие рантаймы, обычно помогает:

  • Снизить температуру (например 0.1–0.3) и/или top_p, включить умеренный repeat_penalty.
  • Жёстко ограничить длину ответа (num_predict / max_tokens), чтобы модель не уходила в автогенерацию “простыней”.
  • Стоп-токены против “симуляции датасета”: останавливать генерацию при Human: / User: / Final Answer: (или аналогах), и при тегах размышления, если они есть.
  • Промпт-якорь: “Отвечай только результатом, без внутреннего анализа и без генерации ролей User/Human.”

Если хочешь — могу предложить готовый минимальный пресет под Ollama именно для deepseek-r1:8b (температура/stop/num_predict), чтобы такие “срывы в датасет” почти исчезли.