Блог AST-SoftPro
Тестирование локальных LLM моделей для задач программирования
Тестирование локальных LLM моделей для задач программирования
Аппаратная конфигурация
Тестирование проводилось на следующем оборудовании:
- CPU: Intel Core i5-12600k
- Оперативная память: 32 GB DDR4
- Видеокарта: NVIDIA RTX 4070 12 GB
- ПО: LM Studio версий 0.4.5 и 0.4.6
- Runtime: CUDA llama.cpp (Windows) 2.5.1
- Размер контекста: 64000 токенов (или меньше, согласно ограничениям модели)
- Операционная система: Windows 10
- Версия драйвера NVIDIA: 576.57
Методология тестирования
Для тестирования использовались две задачи:
-
Генерация Python-скрипта: Создание скрипта для чтения CSV-файла, фильтрации строк по условию (значение колонки > 100), вычисления среднего значения числовой колонки и сохранения результата в JSON с обработкой ошибок и логированием.
-
Исправление ошибки: Исправление предоставленного кода с ошибкой на основе лога ошибок.
Оценка качества сгенерированного кода проводилась с помощью LLM (arcee-ai/trinity-large-preview:free) по шкале от 1 до 10 с учётом следующих критериев:
- Отсутствие синтаксических и логических ошибок
- Эффективность кода
- Читаемость и структура
- Соответствие поставленной задаче
Результаты тестирования
| Модель | Время генерации (с) | Оценка | Время исправления (с) | Оценка | Общее время (с) |
|---|---|---|---|---|---|
| liquid/lfm2.5-1.2b | 3.36 | 8 | 2.70 | 8 | 6.06 |
| tiny-aya-global | 6.17 | 8 | 0.92 | 9 | 7.09 |
| openchat-3.6-8b-20240522 | 5.82 | 7 | 6.54 | 8 | 12.36 |
| essentialai/rnj-1 | 7.36 | 8 | 7.73 | 7 | 15.09 |
| qwen3-1.7b | 14.72 | 8 | 8.12 | 9 | 22.84 |
| t-lite-it-1.0 | 10.69 | 8 | 7.39 | 8 | 18.08 |
| google/gemma-3-4b | 18.68 | 8 | 8.63 | 8 | 27.31 |
| qwen/qwen3-4b | 22.39 | 8 | 12.27 | 8 | 34.66 |
| google/gemma-3n-e4b | 23.66 | 8 | 7.93 | 8 | 31.59 |
| ibm/granite-4-h-tiny | 22.76 | 8 | 17.16 | 8 | 39.92 |
| gigachat3-10b-a1.8b | 9.59 | 8 | 52.51 | 8 | 62.10 |
| liquid/lfm2-24b-a2b | 43.65 | 8 | 18.37 | 8 | 62.02 |
| zai-org/glm-4.6v-flash | 33.69 | 9 | 25.70 | 8 | 59.39 |
| nanbeige4.1-3b | 34.79 | 8 | 35.52 | 7 | 70.31 |
| qwen/qwen3-vl-4b | 20.57 | 8 | 13.12 | 8 | 33.69 |
| qwen2.5-coder-7b-instruct | 104.69 | 8 | 68.81 | 8 | 173.50 |
| nvidia/nemotron-3-nano | 132.46 | 9 | 45.29 | 9 | 177.75 |
| x-coder-rl-qwen3-8b-i1 | 81.13 | 7 | 31.92 | 9 | 113.05 |
| openai/gpt-oss-20b | 68.24 | 9 | 21.84 | 8 | 90.08 |
| qwen/qwen3-vl-8b | 89.89 | 8 | 44.38 | 8 | 134.27 |
| qwen/qwen3-coder-30b | 164.00 | 9 | 41.09 | 8 | 205.09 |
| llama-3.1-8b-distill-chatgpt-o1 | 175.70 | 7 | 112.60 | 8 | 288.30 |
| mistralai/mathstral-7b-v0.1 | 37.71 | 6 | 105.00 | 8 | 142.71 |
| qwen/qwen3.5-35b-a3b | 187.06 | 8 | 295.75 | 8 | 482.81 |
| deepseek/deepseek-r1-0528-qwen3-8b | 178.74 | 8 | 280.05 | 8 | 458.79 |
| mistralai/devstral-small-2507 | 308.86 | 8 | 31.53 | 8 | 340.39 |
| zai-org/glm-4.7-flash | 238.83 | 9 | 122.65 | 8 | 361.48 |
| qwen3-14b | 300.25 | 8 | 100.82 | 9 | 401.07 |
| mistralai/devstral-small-2-2512 | 362.54 | 9 | 148.14 | 9 | 510.68 |
| claude-3.7-sonnet-reasoning-gemma3-12b | 448.53 | 8 | 224.73 | 9 | 673.26 |
| microsoft/phi-4-reasoning-plus | 579.06 | 8 | 682.77 | 8 | 1261.83 |
| t-pro-it-2.0 | 669.21 | 9 | 294.17 | 8 | 963.38 |
| qwen3-32b | 1032.75 | 8 | 298.20 | 8 | 1330.95 |
Анализ результатов
Скоростные лидеры (быстрее 30 секунд)
Наиболее быстрые модели, показавшие приемлемое качество кода:
- liquid/lfm2.5-1.2b (6.06 с) - Самая быстрая, минимальный размер
- tiny-aya-global (7.09 с) - Очень быстрая, оценка 9 за исправление
- openchat-3.6-8b-20240522 (12.36 с) - Отличная скорость
- essentialai/rnj-1 (15.09 с) - Быстрая, стабильно 7-8 баллов
- qwen3-1.7b (22.84 с) - Хороший баланс, 9 за исправление
Оптимальный выбор для железа с 12GB VRAM
На конфигурации с RTX 4070 12GB оптимально работают модели до 8-10B параметров:
- zai-org/glm-4.6v-flash (59.39 с, оценка 8-9) - Рекомендуемый выбор
- liquid/lfm2-24b-a2b (62.02 с) - MoE модель, быстрая
- qwen2.5-coder-7b-instruct (173.50 с) - Хорошее качество кода
- google/gemma-3-4b (27.31 с) - Быстрая, стабильно 8 баллов
- nvidia/nemotron-3-nano (177.75 с, оценка 9/9) - Отличное качество
Модели с высокой оценкой качества (9 баллов)
Модели, получившие оценку 9 за генерацию или исправление:
- zai-org/glm-4.6v-flash - 9 за генерацию
- zai-org/glm-4.7-flash - 9 за генерацию
- openai/gpt-oss-20b - 9 за генерацию
- qwen/qwen3-coder-30b - 9 за генерацию
- mistralai/devstral-small-2-2512 - 9/9 за оба теста
- nvidia/nemotron-3-nano - 9/9 за оба теста
- t-pro-it-2.0 - 9 за генерацию
- qwen3-1.7b - 9 за исправление
- x-coder-rl-qwen3-8b-i1 - 9 за исправление
- tiny-aya-global - 9 за исправление
- claude-3.7-sonnet-reasoning-gemma3-12b - 9 за исправление
- qwen3-14b - 9 за исправление
Медленные модели (>300 секунд)
Данные модели нецелесообразно использовать на оборудовании с 12GB VRAM:
- qwen3-32b - 1330.95 с (22 минуты)
- microsoft/phi-4-reasoning-plus - 1261.83 с (21 минута)
- t-pro-it-2.0 - 963.38 с (16 минут)
- claude-3.7-sonnet-reasoning-gemma3-12b - 673.26 с (11 минут)
- mistralai/devstral-small-2-2512 - 510.68 с (8.5 минут)
Выводы
Ключевые наблюдения
-
Модели, не помещающиеся в VRAM (более 12B параметров на 12GB) работают крайне медленно - 10-22 минуты на генерацию простого кода. Использовать их для практического кодинга на таком железе нецелесообразно.
-
MoE модели (Mixture of Experts) в целом показывают неплохую производительность по сравнению с монолитными моделями при сопоставимом общем количестве параметров (liquid/lfm2-24b-a2b, qwen/qwen3.5-35b-a3b).
-
Для локального кодинга требуется мощное железо с VRAM >= 24GB либо использование маленьких моделей (< 9B) для простых проектов.
-
Практический опыт: На указанном железе (RTX 4070 12GB) оптимально работает связка VS Code + Cline + GLM 4.6 flash через LM Studio. Claude Code при аналогичной конфигурации постоянно тормозил и выдавал ошибки.
-
GLM 4.6 flash показала высокую скорость работы и качество ответов (оценка 9 за генерацию), субъективно понравилась ещё до тестирования в проекте AST-Agent (доработанный GigaAgent).
-
nvidia/nemotron-3-nano - приятный сюрприз: при скромном размере показывает отличное качество кода (9/9 баллов) за приемлемое время (177 с).
Рекомендации
- Для максимальной скорости: liquid/lfm2.5-1.2b, tiny-aya-global, openchat-3.6-8b
- Для баланса скорости и качества: zai-org/glm-4.6v-flash, nvidia/nemotron-3-nano, qwen3-1.7b
- Для качества кода: nvidia/nemotron-3-nano, mistralai/devstral-small-2-2512, qwen/qwen3-coder-30b
Ссылка на исходный тест с результатами
https://github.com/AlexKidd727/ast-localLLMtester
Примечание:
1. В результатах отсутствует скорость генерации токенов/с. Это планируется добавить в расширенном
тестировании с выбором инструментов.
2. Некоторые модели дают более быстрые ответы не через CUDA, а через Vulcan, некоторые наоборот. Отдельное тестирование через разные Runtime будет добавлено позже.