Хороший ceкc с вашим chat GPT помощником - фантастика или реальность?

Добиться от нейронки чего-либо конструктивного путём увещеваний бывает не просто. В душе я Стамп из советского кинофильма “Электроник”. То бишь алчный и циничный делец, убежденный в том, что у всякого существа на Земле “есть кнопка”.

К стыду Стампа, ни он, ни его моторизованная марионетка Ури, никакой кнопки у Электроника не нашли. Я же оказался много шибче каррикатурных акул чистогана времён развитого социализма. Я таки нашел не просто кнопку, а целую клавиатуру, предназначенную для управления манерами и повадками chat GPT.

Как и на всякой клавиатуре, на этой есть “Самая Главная Кнопка”.

Вот скажите, какую самую главную кнопку вы бы попросили разработчиков прикрутить к интерфейсу LLM? Мне чаще всего нужна была кнопка “Перестать брехать и нести околесицу”.

Существует параметр, именуемый отчего-то “температура” или же “температура текста”. В зависимости от этого параметра GPT придерживается фактов и рассуждает здраво, или же несёт выспренний бред.

Этот параметр я подчерпнул из агентского API GPT. Однако его можно ввести и в обычном окне чата. Для этого достаточно поставить перед промптом конструкцию вида /t x, где x - величина температуры в пределах от нуля до двух.

Вот вам пример использования этой полезнейшей настройки.

Промпт: /t 0.1 Дай мне текст из пяти коротких предложений, рассказывающий о юности А.С. Пушкина.

Ответ: Александр Сергеевич Пушкин родился в Москве в 1799 году. С ранних лет он проявлял интерес к литературе. В 12 лет он поступил в Царскосельский лицей. Там он написал свои первые серьёзные стихи. Юность Пушкина прошла в окружении поэтов и друзей.

Промпт: /t 1.9 Дай мне текст из пяти коротких предложений, рассказывающий о юности А.С. Пушкина

Ответ: Юность Пушкина вспыхнула, как дерзкое пламя в лампе старого лицея. Он писал — втайне, вслух, на полях учебников и в сердцах друзей. Стихи его были дерзкими, как ветер под Петербургом. Мир казался ему сценой, где каждое слово — вызов. А за окнами всё звенело будущей славой.

На мой вкус - это самая полезная из существующих “кнопок для Электроника”. Но есть и другие. Вот вам ещё несколько:

`top_p` (nucleus sampling)
Что делает: ограничивает выбор слов по вероятности (порог кумулятивной вероятности).
Диапазон: `0.1` до `1.0` (где `1.0` = неограниченный выбор).
Пример: /p 0.9 использует только самые вероятные слова, отсекая редкие.

`max_tokens`
Что делает: ограничивает длину ответа в токенах. 1 токен примерно равен 0.75 слов.
Пример: /m 100 — короткий ответ; /m 2000 — длинное сочинение.

`presence_penalty`
Что делает: штрафует модель за повторение уже упомянутых тем.
Диапазон: -2 до 2
Пример: /pp 1 — модель будет чаще вводить новые темы; /pp - 1 — наоборот.

`frequency_penalty`
Что делает: штрафует повторение одних и тех же слов.
Диапазон: - 2 до 2.
Пример: /fp 0.8 высокий штраф = меньше повторов в тексте.

`stop`
Что делает: задаёт стоп-слова или последовательности, на которых модель должна остановиться.
Пример: /s END — модель прекратит вывод при появлении слова "END:".

`logit_bias`
Что делает: изменяет вероятность конкретных токенов (слов) — усиливает или подавляет их.
Пример: /bias love=+5, war=-10 можно "запретить" токен war или наоборот усилить слово love.

`top_k`
Что делает: выбирает из `k` наиболее вероятных токенов перед применением случайности.
Пример: /k 40 — выбор из 40 наиболее вероятных слов.

`system_prompt` или `role`
Что делает: задаёт тональность, стиль, контекст модели (например, «ты философ», «ты учёный»).
Пример: `/role философ` или `/as учёный` — влияет на весь дальнейший стиль.

Содержание книги