Назад в библиотеку

Обзор современных интеллектуальных чат-ботов

Автор: С. В. Гладков, И. А. Килбас, Р. А. Парингер
Источник: Гладков, С. В. Исследование влияния температуры сэмплирования на качество генерации программного кода большой языковой моделью Qwen2.5 / С. В. Гладков, И. А. Килбас, Р. А. Парингер // Volga Cyber Week : Сборник трудов I Всероссийской научно-технической конференции по информатике и кибернетике, Самара, 24–26 марта 2025 года. – Самара: Самарский национальный исследовательский университет им. акад. С.П. Королева, 2025. – С. 15-16. – EDN PGBFBW.

Ключевые слова: большие языковые модели, температура, генерация кода, HumanEval, Qwen2.5.

I. Введение

Современные языковые модели демонстрируют значительный прогресс в генерации программного кода. Однако качество их решений зависит от множества параметров, среди которых важную роль играет коэффициент температуры (temperature) при сэмплировании (sampling).

Этот параметр определяет степень случайности выбора следующего токена (token) и, следовательно, влияет на вариативность и точность генерируемого кода. Температура значительно влияет на качество и разнообразие результатов при генерации текста или кода, при этом зависит от задачи и цели генерации [1].

В данном исследовании рассматривается влияние изменения температуры на способность модели решать задачи программирования из бенчмарка HumanEval [2]. Основной целью является анализ зависимости метрики pass@k от параметра температуры и исследование типов ошибок при различных его значениях.

II. Методология

Для проведения эксперимента используется исходный код большой языковой модели Qwen2.5-3B [3] и набор задач HumanEval от OpenAI.

A. Температуры

Для исследования выбраны значения температур от 0,1 до 1,0 с шагом 0,1. Этот диапазон позволяет охватить различные режимы работы модели: от детерминированного (низкие значения температуры) до более стохастического (высокие значения температуры).

Наивысшие значения и самые качественные результаты ожидаются в диапазоне 0,2–0,8, так как часто именно в нем находятся оптимальные температуры для задачи генерации кода [4].

B. Оценка

Для оценки качества сгенерированного программного кода используется набор задач HumanEval, предложенный OpenAI [2]. Этот бенчмарк включает 164 задачи, охватывающие различные аспекты программирования на языке Python.

Каждая задача содержит описание проблемы, начальный код (функцию-заготовку) и набор автоматических тестов, которые позволяют объективно измерить корректность решений, сгенерированных моделью.

Основной метрикой оценки качества является pass@25 — доля задач, где хотя бы одно из 25 решений является корректным. Эта метрика позволяет оценить вероятность того, что при многократной генерации будет получено ожидаемое решение.

Ошибочные генерации разделены на две группы:

  • Синтаксические ошибки — задачи, в которых результат содержит несоответствия правилам языка программирования.
  • Логические ошибки — задачи, где код исполняется, но результат неверный.

Число ошибок указывается с учетом всех генераций одной температуры при pass@25.

C. Эксперимент

Для каждого значения температуры генерируются решения всех задач из HumanEval. Каждое значение температуры сопровождается запуском генерации 25 раз для каждой из 164 задач.

Затем производится оценка pass@k и анализ каждой из генераций для определения типов ошибок.

III. Результаты

Конечные результаты вычисления pass@25 для каждой температуры и процентное соотношение типов ошибок представлены в таблице I.

Таблица I. PASS@25 к температуре

Температураpass@25, %Синтаксис, %Логика, %Кол-во ошибок
0.129.376.223.83731
0.242.773.126.93700
0.354.971.029.03628
0.456.770.030.03589
0.564.066.233.83485
0.668.960.439.63449
0.768.955.644.43408
0.874.452.547.53425
0.964.047.752.33530
1.061.046.054.03598

При низких значениях температуры ошибки связаны с недостаточным разнообразием решений и повторяющимися ошибочными шаблонами. При высоких значениях температуры увеличивается число логических ошибок, а синтаксических — снижается, из-за чрезмерной стохастичности генерации.

Наивысшие значения pass@25 были достигнуты при диапазоне температур 0,6–0,8. В нем отмечается наименьшее количество ошибок по всему набору генераций. Наивысшей температурой по pass@k оказалась 0,8, хотя общее число ошибок при ней выше, чем при 0,7.

Более адаптивная стратегия изменения температуры во время генерации могла бы повысить качество решений [5].

Рис. 1. Зависимость pass@25 от температуры (в виде градиента).

Рис. 1. Зависимость pass@25 от температуры (в виде градиента)
Рис. 1. Зависимость pass@25 от температуры (в виде градиента)

IV. Выводы

Представлена оценка зависимости качества генерации программного кода БЯМ Qwen2.5-3B от температуры сэмплирования на основе бенчмарка HumanEval.

Полученные результаты показывают, что повышение температуры способствует улучшению метрики pass@k до диапазона 0,6–0,8, после чего качество решений начинает снижаться.

Это позволяет предположить, что оптимальные значения температуры не являются универсальными, и качество результатов зависит от специфики задачи. Таким образом, использование постоянной температуры во время генерации может снижать общий результат работы модели.

Эти данные могут быть полезны при настройке Qwen2.5-3B для автоматизированной генерации программного кода, а также для понимания того, как стохастичность влияет на качество кода.

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

Благодарности

Результаты исследования были получены в рамках выполнения государственного задания Минобрнауки России (Проект № FSSS-2023-0006).

Литература