Опыт написания кода по ТЗ для llm

Оригинал моей статьи: https://nikitayev.livejournal.com/143455.html

Оригинал исследования на предмет реального размера контекста:

https://github.com/hsiehjackson/RULER

Победитель - Mixtral 8x7b На второе место можно поставить две БЯМ: Llama 3.1 70b Mixtral 8x22b

На данный момент могу оценить, что работа с Mixtral 8x7b мне в своё время очень понравилась. Код генерирует полностью, но может начать сваливаться в непрерывную генерацию мусора при определённых настройках. Это болезнь всех старых LLM, выпущенных до мая 2024 года.

Современные LLM работают очень устойчиво, но лени стало невероятное количество.

Приходится устанавливать следующие параметры:

Значение temperature: 0 Штраф за повторение: 1.1 Min P: 0.0000001 Top P: 0.000001 Top K: 500

А чтобы модель побольше держала данных в памяти - за то отвечает размер пакета оценивания. Устанавливаю его в максимум: 10000

Эти настройки работают очень хорошо для большинства вариантов LLM llama 3.1 8b и 70b

Для llama 3.1 405b даже эти настройки не способны избавить от лени.

При этом, llama 3.1 405b в начале генерации сообщает, что обязательно сгенерирует код полностью, но по факту игнорирует своё обещание.

Чтобы код программы сгенерировался как можно полнее, в начале задания необходимо ставить фразу:

Write fill program code on python/c#/c++...

В конце можно иногда добавить аналогичную по смыслу строку, но для отдельных случаев такая строка только повредит.

В системный Промт надо вставить строку:

You are an assistant to a programmer. Realize full code for program.

Увеличивать размер промта вредно - отрицательно сказывается на генерации.

Многие модели Mistral не принимают формат проста, который установлен по умолчанию в LM studio. Им нужен базовый - первый из списка. Иначе, пишут ошибку, если пытаешься задать системный промт.

Экспериментальная функция Flash attention в настройках запуска модели улучшает результат.

В основном, для больших моделей достаточно квантования iq5 - лучше ускоряется видеокартой.

Разгружать на видеокарту для больших моделей можно до 70% слоёв. Малые модели можно разгружать на 50%.

Модели Mistral большие труженицы, но как их всё правильно понимать - хороший вопрос.

Когда составляете ТЗ для LLM - имеет значение последовательность описания блоков. Что напишете первым - то первым и будет реализовано и показано. Даже основная форма приложения окажется в конце, если описана в конце.

Глупые они все, кроме умных, но ленивых llama 3.1 405b и chat GPT-4o.

Код на английском языке генерируется лучше, чем на русском.

DeepSeek Code v2 не умный. Просто умеет правильно конвертировать с языка на нужный язык программирования. Слабее моделей llama 3.1. И это относится только к самому большому варианту, а не к малым. Малые недееспособны в принципе.

repost

67

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь