Ollama repeat_penalty: как проверить повторы в ответе
На странице · 3 разделов
`repeat_penalty` меняет склонность локальной модели повторять уже использованные части текста. В Ollama его можно передать в `options` одного запроса и сравнить ответы на одинаковый вопрос. Более высокое значение не гарантирует отсутствия повторов: проверяйте смысл и факты вручную.
Если локальная Ollama в длинном ответе повторяет одни и те же обороты, можно попробовать настроить repeat_penalty для одного запроса. Это штраф за повторение уже использованных частей текста при выборе продолжения, а не средство исправить неверные факты. Сравните два ответа на одном учебном вопросе и решите, помогло ли это именно вашей модели. s1 s2
Инструкция по источникам, проверенным 31 октября 2026 года: код Ollama v0.40.13 и тег qwen2.5:1.5b из официальной библиотеки на дату проверки. Нужны Linux, установленная Ollama, терминал, curl, место для загрузки модели и достаточная оперативная или видеопамять для запуска. Документированного универсального минимума памяти для этой связки здесь нет. Интернет нужен при установке и загрузке тега; оба учебных запроса идут на адрес своего компьютера 127.0.0.1. Редакция не запускала модель и не проверяла качество её ответов: ниже шаги, сверенные по документации и коду. s2 s6
Как сравнить ответы с разным штрафом?
Если Ollama ещё не установлена, откройте инструкцию по запуску. Затем в терминале Linux выполните ollama pull qwen2.5:1.5b, дождитесь окончания загрузки и проверьте точный тег в ollama list. Успешное скачивание само по себе не доказывает, что памяти хватит на ответ. Тег в библиотеке подвижен: запишите версию сервера и фактический идентификатор скачанной модели для повторения опыта позже. s6
Отправьте контрольный запрос: curl -fsS http://127.0.0.1:11434/api/generate -H 'Content-Type: application/json' -d '{"model":"qwen2.5:1.5b","prompt":"Назови пять разных способов экономить заряд ноутбука. Каждый пункт — одно короткое предложение.","stream":false,"options":{"repeat_penalty":1.0}}'. Локальный API — адрес Ollama, к которому обращается другая программа; stream:false собирает ответ в один JSON-объект, то есть текст с полями response и служебными сведениями. Прочитайте поле response: есть ли пять пунктов, не повторяют ли они друг друга и не теряют ли смысл. Конкретный текст модели заранее не известен. s1 s2 s3
Теперь повторите тот же вопрос с другим значением: curl -fsS http://127.0.0.1:11434/api/generate -H 'Content-Type: application/json' -d '{"model":"qwen2.5:1.5b","prompt":"Назови пять разных способов экономить заряд ноутбука. Каждый пункт — одно короткое предложение.","stream":false,"options":{"repeat_penalty":1.2}}'. Сохраните оба реальных ответа и подсчитайте повторяющиеся советы и одинаковые обороты. Более высокий штраф в документации означает более сильное подавление повторов, но не гарантирует ни пяти различных советов, ни улучшения смысла. Одна пара ответов не доказывает причинный эффект: при повторном сравнении держите неизменными тег, версию, вопрос и остальные настройки и смотрите несколько ответов на каждое значение. s1 s2
Что именно меняет параметр?
В версии v0.40.13 исходное базовое значение repeat_penalty равно 1.0, однако настройки конкретной модели могут его заменить. Здесь оба запроса явно передают своё значение через options, поэтому оно применяется после параметров модели и не переписывает её файлы. Исходный код передаёт его в программу выполнения модели. Это описание пути параметра в коде, а не свидетельство, что Modelium воспроизвёл определённый ответ на реальном компьютере. s3 s4 s5
Штраф работает с недавним фрагментом текста; насколько далеко смотреть назад, задаёт отдельный repeat_last_n (в этой версии базовое значение — 64, если модель его не переопределила). Это не число слов в ответе и не то же самое, что num_predict, ограничивающий длину генерации. Не увеличивайте штраф вслепую: результат может стать неестественным или обрывать полезные повторяющиеся слова. Это риск, который проверяют на собственных примерах, а не гарантированный исход. s1 s3
Когда лучше оставить прежнюю настройку?
Если ответ вовсе не приходит, сначала проверьте запуск Ollama, наличие тега и достаточность памяти; изменение штрафа не заменит диагностику ошибки запуска. Если ответы различаются даже без этой настройки, разберите отдельно температуру: разница в одной паре текстов не изолирует влияние repeat_penalty. Когда нужен постоянный вариант модели со своими параметрами, Modelfile — другая операция; этот учебный запрос создаёт лишь два отдельных вызова API. Не используйте непроверенный результат как достоверный совет или доказательство офлайн-режима всей системы. s1 s2 s4
Источники
- Ollama v0.40.13 — параметр repeat_penalty и окно repeat_last_n — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 140–153; закреплённая копия и SHA в research/raw/2026-10-31/seo/ollama-repeat-penalty/.. Получено 31.10.2026.
- Ollama v0.40.13 — POST /api/generate и options — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 34–58, 98–108; сохранённая копия и SHA.. Получено 31.10.2026.
- Ollama v0.40.13 — Options и базовые параметры — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Строки 573–590, 1218–1245; default 1.0 относится к v0.40.13, не к чужой версии или конкретному тегу.. Получено 31.10.2026.
- Ollama v0.40.13 — порядок применения настроек модели и запроса — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Опции отдельного запроса накладываются после генерационных defaults и параметров модели.. Получено 31.10.2026.
- Ollama v0.40.13 — передача repeat_penalty в runner — revision 04088e7c9d41cba5d33bafbf788d87a465c79d5b; Также строки 1455–1465: параметр и repeat_last_n входят в запрос runner; это анализ кода, не прогон модели.. Получено 31.10.2026.
- Официальная библиотека Ollama — qwen2.5:1.5b — Текущая карточка тега сохранена с SHA; тег может измениться. Не источник требований к памяти или качества ответа.. Получено 31.10.2026.