Сравнение локальных моделей (Deepseek, Codellama, Qwen 2.5)

04.02.25

Интеграция - Нейросети

Год назад я покупал доступ к CoPilot, чтобы рассмотреть возможность ускорения разработки на 1С. Однако, я столкнулся с проблемой, что CoPilot отвратительно работает с кодом на языке 1С. Он не знал синтаксиса абсолютно...

Интро

Речь в этой статье не пойдет о том, насколько удобно этим пользоваться или как дообучить модель для того, чтобы ей было максимально удобно пользоваться при разработке на языке 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. Задаю вопрос написания простейшей функциональности удаления элементов массива по условию.
  2. Описываю в чате ошибки и недостатки, обнаруженные в предоставленном коде.
  3. Анализирую улучшенные версии ответов.
  4. Пытаюсь запустить код на 1С.
 
 deepseek-r1:32b
 
 deepseek-coder-v2:16b
 
 codellama:34b
 
 qwen2.5-coder:32b

 

Выводы

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С.

 

Картиночки

 
 Дописываем код под структуру метаданных
 
 Добавление тестовых данных

AI LLM LocalLLM DeepSeek LLAMA QWEN2.5 VSC Continue plugin

См. также

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    3225    13    0    

23

Мастера заполнения Нейросети Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания товара (номенклатуры) с помощью модели ИИ ChatGPT с ключевыми словами. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    18978    47    50    

77

Нейросети Анализ продаж Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Решение задачи анализа продаж с помощью искусственного интеллекта как нельзя лучше демонстрирует основной принцип работы с ИИ: "сказал, что тебе надо, получил, что тебе надо". В типовых ERP (УТ, КА) есть регистр накопления "ВыручкаИСебестоимостьПродаж", в котором содержится вся необходимая нам информация о продажах. От реализации вышеозвученного принципа нас отделяет пара нехитрых технических приемов.

1 стартмани

05.03.2025    486    2    mkalimulin    4    

7

Нейросети ИТ-компания Бесплатно (free)

Как ИИ-агенты стали трендом №1? О трансформации подхода к автоматизации на основе LLM. Расскажу, как EmplDocs пересмотрел стратегию автоматизации и стал добавлять ИИ-агентов в свое решение.

04.03.2025    1374    comol    3    

7

Нейросети Бесплатно (free)

В статье я проведу обзор и сравнение двух популярных нейросетей — ChatGPT-4o и DeepSeek, доступных бесплатно, на примерах, которые часто помогают мне быстрее получать и обрабатывать различную информацию.

03.03.2025    1123    improg    7    

2

Распознавание документов и образов Нейросети Программист Платформа 1С v8.3 Абонемент ($m)

ИИ разработчик это не тот, кто не умеет писать код без ИИ помощника. Отличие ИИ разработчика от обычного разработчика не столь уж велико. Но есть один важный нюанс. На простом примере постараюсь вам его продемонстрировать.

1 стартмани

27.02.2025    2373    mkalimulin    21    

17

Нейросети Программист Платформа 1С v8.3 Абонемент ($m)

В библиотеке искусственного интеллекта для 1С появилась опция анализа изображения. Можно попросить большую языковую модель (LLM) выдать информацию на основании того, что она видит. Будет полезно познакомиться с тем, как это работает и что является best practice при работе с изображениями и LLM

1 стартмани

17.02.2025    4016    10    mkalimulin    11    

31

Нейросети Бесплатно (free)

В этой статье расскажу, какие задачи можно и даже нужно делегировать искусственному интеллекту, в чём трудности применения Chat GPT в России. Попробуем составить полноценное ТЗ для создания мобильного приложения на базе 1С:Предприятие с помощью ИИ и сервиса MAKER-STUDIO.

14.02.2025    895    1Concept    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 876 04.02.25 12:45 Сейчас в теме
оу. опередили)
тоже готовлю публикацию по локальным моделям )
1) какая видяха у вас и сколько в ней памяти? и сколько РАМы ?
2) сколько токенов в сек можете генерить?
3) пробовали ли локальные дистилляты и модели с разной квантизацией?
1818694@mail.ru; dimaster; +2 Ответить
2. huxuxuya 391 04.02.25 14:01 Сейчас в теме
(1) буду ждать вашу публикацю )

Я использовал модели которые помещаются в VRAM, чтобы быстро работали, так что скорость сильно выше пары токенов в секунду, позже гляну.

У меня 24Гб VRAM и 16 RAM и 2 ядра CPU :D

Прям много моделей еще не перепробовал, скорее пока вектор выбрал в которую сторону смотреть.
Из того куда глаз положил, видел модель смердженой qwen и deepseek но еще не добрался до нее.

Сейчас смотрю в сторону, скорее зафайнтюнить qwen, посмотреть что получится.

Так же любопытно попробовать модель от Тбанка, но там она либо слишком большая либо слишком маленькая.
dimaster; +1 Ответить
4. huxuxuya 391 04.02.25 19:55 Сейчас в теме
(1)
2.
total duration: 29.691433s
load duration: 13.678717s
prompt eval count: 59 token(s)
prompt eval duration: 844ms
prompt eval rate: 69.91 tokens/s
eval count: 717 token(s)
eval duration: 14.69s
eval rate: 48.81 tokens/s
SerVer1C; +1 Ответить
3. grumagargler 728 04.02.25 17:10 Сейчас в теме
Просто для полноты картины, вот какой код генерирует платная онлайн версия (claude-3-5-sonnet):

// Удаляет элементы массива по условию
//
// Параметры:
//  array - Массив - Исходный массив
//  condition - ОписаниеОповещения - Функция проверки условия удаления
//
// Возвращаемое значение:
//  Массив - Массив с удаленными элементами
//
function removeByCondition ( array, condition ) export
    
    result = new Array ();
    for each item in array do
        if not condition.ExecuteCallback ( item ) then
            result.Add ( item );
        endif;
    enddo;
    return result;
    
endfunction

// Пример использования:
procedure test ()
    
    numbers = new Array ();
    numbers.Add ( 1 );
    numbers.Add ( 2 );
    numbers.Add ( 3 );
    numbers.Add ( 4 );
    numbers.Add ( 5 );
    
    // Удалить все четные числа
    callback = new NotifyDescription ( "isEven" );
    filtered = removeByCondition ( numbers, callback );
    
endprocedure

// Функция условия: возвращает Истина для четных чисел
function isEven ( number ) export
    
    return number % 2 = 0;
    
endfunction
Показать

в этом коде есть две ошибки, но всё равно, кажется не плохо.
5. dreamadv 156 05.02.25 14:44 Сейчас в теме
Локальные без finetunning на датасете 1С кода не подойдут. :) проблема собрать качественный датасет.
6. m_aster 119 09.02.25 03:01 Сейчас в теме
Что-то у Вас с DeepSeek, видимо не очень)), с первого раза Ваш вопрос:
// Удаляет элементы массива, соответствующие условию
// Массив - исходный массив (передается по ссылке)
// Условие - строка с выражением, например: "Элемент < 0"
//
Функция УдалитьЭлементыПоУсловию(Массив, Условие)
    
    Для Индекс = Массив.ВГраница() По 0 Цикл
        Элемент = Массив[Индекс];
        
        // Проверка условия (пример для числовых значений)
        Если Элемент < 0 Тогда // Замените условие на нужное
            Массив.Удалить(Индекс);
        КонецЕсли;
    КонецЦикла;
    
    Возврат Массив;
    
КонецФункции
Показать
7. m_aster 119 09.02.25 03:05 Сейчас в теме
Или более универсальный вариант(что нравится, DeepSeek всегда дает развернутые ответы и несколько вариантов, плюс варианты использования):

Функция УдалитьЭлементыСОбработчиком(Массив, Обработчик)
    
    Для Индекс = Массив.ВГраница() По 0 Цикл
        Элемент = Массив[Индекс];
        Если Обработчик(Элемент) Тогда
            Массив.Удалить(Индекс);
        КонецЕсли;
    КонецЦикла;
    
    Возврат Массив;
    
КонецФункции

// Пример обработчика
Функция УсловиеДляУдаления(Элемент)
    Возврат ТипЗнч(Элемент) = Тип("Строка") И СтрДлина(Элемент) > 10;
КонецФункции

// Вызов
Строки = Новый Массив;
Строки.Добавить("Привет");
Строки.Добавить("Длинная строка для примера");
УдалитьЭлементыСОбработчиком(Строки, УсловиеДляУдаления);
Показать
8. m_aster 119 09.02.25 03:06 Сейчас в теме
Это примеры в одном ответе на один вопрос, модель "DeepThink (R1)".
9. m_aster 119 09.02.25 03:59 Сейчас в теме
В локальной модели конечно все хуже, возможности несравнимы.
Сбер недавно объявил о сотрудничестве с Китаем и DeepSeek, в частности, для развития своих моделей,
их ГигаЧат тоже не знает языка 1С, может и не должен, заточен в основном под банковские задачи.
10. m_aster 119 09.02.25 19:16 Сейчас в теме
Сам DeepSeek говорит о своей локальной версии:
"К сожалению, я (DeepSeek-R1) как облачный AI-ассистент не могу быть развернут локально — моя основная модель работает исключительно на серверах компании DeepSeek. Однако вы можете использовать альтернативные open-source LLM с похожей архитектурой на Windows 11".
Поэтому говорить, что локальный DeepSeek не знает языка 1С не совсем корректно, т.к., его локальную версию развернуть, хотя бы приблизительно, не удастся.
Есть похожие альтернативы, они используют, так называемый, "deepseek-r1-distill", другими словами, "выжимку" и это не совсем аналог реальной модели облачного сервиса.
11. KOTzilla 23 12.02.25 10:24 Сейчас в теме
я лично вообще немножко в шоке от DeepSeek, он ревьювит мой код и делает это очень хорошо, а главное быстро и с подробным объяснением принимаемых им решений... взял за правило прогонять через него функции и мне оч нравится, рекомендую
vsozan; wonderboy; +2 Ответить
12. Diversus 2332 12.02.25 11:22 Сейчас в теме
(11) А какие промпты используете для ревью своего кода?
13. KOTzilla 23 12.02.25 13:15 Сейчас в теме
(12) В том и прикол что мой запрос максимально абстрактный.
Например, вот прям сегодня делал.
1) Мой запрос - Проведи анализ кода на оптимизацию. Дальше пошел мой код
2) Ее(его) ответ - предложения по оптимизации
3) Мой запрос - Покажи итоговый код вместе с твоими вариантами оптимизации
4) PROFIT
vsozan; gamletspb; +2 Ответить
14. Diversus 2332 12.02.25 13:48 Сейчас в теме
(13) Будущее слишком быстро наступает))
15. frontez 16.02.25 13:31 Сейчас в теме
Здравствуйте, недавно вышла модель, которая представляет собой мерж из нескольких моделей, было бы интересно узнать ваше мнение о ней:
FuseO1-DeepSeekR1-Qwen2.5-Coder-32B
https://huggingface.co/bartowski/FuseO1-DeepSeekR1-Qwen2.5-Coder-32B-Preview-v0.1-GGUF
Оставьте свое сообщение