Интро
Речь в этой статье не пойдет о том, насколько удобно этим пользоваться или как дообучить модель для того, чтобы ей было максимально удобно пользоваться при разработке на языке 1С. Вместо этого мы поговорим о том, какую модель можно выбрать как стартовую площадку для дальнейшего использования.
Сейчас облачные модели уже могут использоваться для обработки кода на языке 1С, но проблема с использованием облачных моделей в том, что код передается на сервера для обработки, что с точки зрения конфиденциальности и безопасности может быть проблемой.
C улучшением качества локальных моделей, я решил посмотреть их возможности для использования в разработке на 1С и поделиться своими результатами.
Рассматриваемые модели
Все модели я запускал у себя на видеокарте и их размер имел значение, поэтому были выбраны не большие, популярные модели:
deepseek-coder-v2:16b | 8.9 GB |
codellama:34b | 19 GB |
qwen2.5-coder:32b | 19 GB |
deepseek-r1:32b | 19 GB |
Рабочее окружение
В качестве IDE я использую Visual Studio Code, и плагин "Continue" который поддерживает Ollama, что позволяет использовать модели без необходимости установки дополнительных инструментов.
Данный плагин имеет функционал аналогичный CoPilot, но может работать с локальными моделями.
Итого: ollama(фреймвор для локального запуска) + VSC + continue(плагин vsc)
Примеры чатов с моделями
Пример взаимодействия с моделями:
- Задаю вопрос написания простейшей функциональности удаления элементов массива по условию.
- Описываю в чате ошибки и недостатки, обнаруженные в предоставленном коде.
- Анализирую улучшенные версии ответов.
- Пытаюсь запустить код на 1С.
Выводы
deepseek-r1:32b |
Размышляет хорошо. Но синтаксис 1С как языка не знает. Рабочий код не получилось получить за три итерации. |
deepseek-coder-v2:16b |
В данном примере очень плохо работает модель. Только с 3его раза получилось получить код который работает. При этом пришлось закомментировать сообщения пользователю, потому что вызывается несуществующий метод массива. |
codellama:34b |
Модель не знает синтаксиса языка 1С. С трех попыток не удалось добиться адекватного кода для выполнения на языке 1С. |
qwen2.5-coder:32b | Синтаксис 1С знает. С первого промта удалось получить результат уровня deepseek_coder_v2_16b. Алгоритмы знает но не всегода синтаксис 1С понимает. |
Выбор в контексте языка 1С остается за моделью qwen2.5-coder:32b, достаточно хорошо себя показала, похоже в ее датасет входило достаточно много кода на 1С.