Задать вопрос
@mIka01

Вопрос про настройку LLM сетей?

У меня доступно для настройки следующие параметры: SamplingPipeline, PenalizeNL, MirostatEta, MirostatTau, Mirostat, PresencePenalty, FrequencyPenalty, RepeatLastTokensCount, RepeatPenalty, Temperature, TypicalP, TfsZ, MinP, TopP, TopK, AntiPrompts, LogitBias, MaxTokens, TokensKeep.
Что они означают и для чего нужны? Я тестировали существенной разницы не увидел.
  • Вопрос задан
  • 350 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@rPman
Тебя не смущает что до сих пор не сказал нам что за проект используется и почему не взглянул на его исходники?, Как окружающие должны понимать с чем ты работаешь?

p.s.
скрывались за модификатором доступа private

доступ к private members имеют ваши методы, в вашем классе, порожденном от целевого, это почти не зависит от языка программирования и используют даже там где классов в привычном понимании нет.

p.p.s. по названию свойств могу догадаться (я же почти телепат), что используется llama.cpp, только там я видел выбор mirastat алгоритма как опция
Советую полистать хелп к llama.cpp llama-cli (раньше он назывался main) llama-cli --help там все это есть но чуть чуть названное по другому. Напомню что llama.cpp все еще разрабатывается, документация к нему не всегда понятна а многие вещи приходится вытаскивать из issue и discussion проекта на github и даже из исходников.

p.p.p.s. если лень читать, скопируй этот хелп в запрос llm-ки и добавь вопрос в конец, спросив что то типа
в проекте использовались следующие переменные (перечисли переменные), названные похожим образом как указано в этом файле помощи, покажи какие именно ключи имеют название, соответствующие переменным и переведи описание на русский язык


upd. я сделаю это за тебя, спросив у бесплатного anthropic
claude.ai
Исходя из содержимого файла помощи, следующие ключи соответствуют указанным переменным:

1. SamplingPipeline: Возможно, `--samplers` и `--sampling-seq`
2. PenalizeNL: `--penalize-nl`
3. MirostatEta: `--mirostat-lr`
4. MirostatTau: `--mirostat-ent`
5. Mirostat: `--mirostat`
6. PresencePenalty: `--presence-penalty`
7. FrequencyPenalty: `--frequency-penalty`
8. RepeatLastTokensCount: `--repeat-last-n`
9. RepeatPenalty: `--repeat-penalty`
10. Temperature: `--temp`
11. TypicalP: `--typical`
12. TfsZ: `--tfs`
13. MinP: `--min-p`
14. TopP: `--top-p`
15. TopK: `--top-k`
16. AntiPrompts: `--cfg-negative-prompt` или `--cfg-negative-prompt-file`
17. LogitBias: `-l`
18. MaxTokens: `-n`
19. TokensKeep: `--keep`

Описание на русском языке:

1. `--samplers`: Выборочные алгоритмы, которые будут использоваться для генерации в указанном порядке, разделенные `;`.
2. `--penalize-nl`: Наказывать токены новой строки (по умолчанию: false).
3. `--mirostat-lr`: Коэффициент обучения Mirostat, параметр eta (по умолчанию: 0.1).
4. `--mirostat-ent`: Целевая энтропия Mirostat, параметр tau (по умолчанию: 5.0).
5. `--mirostat`: Использовать выборку Mirostat. (по умолчанию: 0, 0 = отключено, 1 = Mirostat, 2 = Mirostat 2.0).
6. `--presence-penalty`: Штраф за присутствие повторяющейся последовательности токенов, альфа (по умолчанию: 0.0, 0.0 = отключено).
7. `--frequency-penalty`: Штраф за частоту повторяющейся последовательности токенов, альфа (по умолчанию: 0.0, 0.0 = отключено).
8. `--repeat-last-n`: Последние n токенов, которые необходимо учитывать для наказания (по умолчанию: 64, 0 = отключено, -1 = ctx_size).
9. `--repeat-penalty`: Наказывать повторяющуюся последовательность токенов (по умолчанию: 1.0, 1.0 = отключено).
10. `--temp`: Температура (по умолчанию: 0.8).
11. `--typical`: Локальная типичная выборка, параметр p (по умолчанию: 1.0, 1.0 = отключено).
12. `--tfs`: Выборка без хвостов, параметр z (по умолчанию: 1.0, 1.0 = отключено).
13. `--min-p`: Выборка min-p (по умолчанию: 0.1, 0.0 = отключено).
14. `--top-p`: Выборка top-p (по умолчанию: 0.9, 1.0 = отключено).
15. `--top-k`: Выборка top-k (по умолчанию: 40, 0 = отключено).
16. `--cfg-negative-prompt`: Отрицательный подсказка для использования для направления (по умолчанию: '').
17. `-l`: Модифицирует вероятность появления токена в завершении.
18. `-n`: Количество токенов для предсказания (по умолчанию: -1, -1 = бесконечность, -2 = пока не заполнится контекст).
19. `--keep`: Количество токенов для сохранения из начальной подсказки (по умолчанию: 0, -1 = все).

затем по каждому делай запрос отдельно, добавляя что это утилита по inference llm и что может значить соответствующая опция, пример:
spoiler
в приведенном help файле были ключи приложения для запуску большой языковой модели ии на своих мощностях llama.cpp, что может значить ключ --temp
ответ:
В контексте параметров большой языковой модели ИИ --temp означает температуру (temperature) для алгоритма сэмплирования при генерации текста.

Температура - это гиперпараметр, который контролирует степень "вероятностности" или "креативности" выходных данных модели. Более высокие значения температуры приводят к более разнообразным и непредсказуемым результатам, в то время как более низкие значения делают выходные данные более предсказуемыми и сосредоточенными на наиболее вероятных токенах.

Например:

- Низкая температура (например, 0.2) заставит модель генерировать текст, который более "осмысленный" и склонный к использованию самых вероятных следующих токенов согласно модели.

- Высокая температура (например, 1.0 или выше) позволит модели генерировать более "креативный" и разнообразный текст, но с большей вероятностью семантических ошибок и непоследовательности.

Таким образом, значение --temp 0.8, указанное по умолчанию в помощи, задает относительно умеренную температуру сэмплирования для баланса между связностью и разнообразием генерируемого текста.

--mirostat

`--mirostat` - это ключ командной строки, который управляет использованием алгоритма выборки Mirostat при генерации текста с помощью большой языковой модели в llama.cpp.

Mirostat (Minimial Regret Optimal Sampling for Text) - это алгоритм выборки для условного генерирования текста, который пытается находить оптимальные завершения с минимальным сожалением (regret) по отношению к заданной функции штрафа.

Значения этого ключа:

- 0 (по умолчанию) - отключает использование Mirostat, и вместо этого используются другие указанные алгоритмы выборки, такие как top-k, top-p, повторные штрафы и т.д.
- 1 - включает использование оригинального алгоритма Mirostat.
- 2 - включает использование улучшенной версии Mirostat 2.0.

Когда Mirostat включен, он в основном игнорирует другие параметры выборки, такие как top-k, top-p, tail-free sampling и типичная выборка. Вместо этого он динамически адаптирует распределение выборки на основе целевой функции, используя обучение политики.

Два важных гиперпараметра для Mirostat:

1) `--mirostat-lr` (learning rate) - скорость обучения для алгоритма.
2) `--mirostat-ent` (target entropy) - целевая энтропия выходного распределения.

Использование Mirostat может улучшить качество и согласованность генерируемого текста по сравнению с более простыми эвристическими алгоритмами выборки, но требует дополнительных вычислительных ресурсов.


не пытайся спрашивать сразу обо всем, данных будет много, они превысят адекватные размеры контекста и начнутся глюки

ВАЖНО: важнейший навык, который может понадобиться в ближайшие годы наверное любому человеку, хоть как то работающему с информацией, и тем более программистам, это умение работать и понимание недостатков современного ИИ, хотя бы на базе chatgpt или других компаний.
Это похоже становится даже важнее чем гуглить (но не вместо, потому что современный ИИ все еще тупит и может напридумывать чуши), поэтому учиться учиться и еще раз учиться.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы