Да, периодически используешь разные сервисы, чтоб пощупать, протестировать, но в итоге платить за них и использовать в своей работе не очень-то хотелось по итогу.
И вот в течение месяца произошло 2 переломных момента, после которых я поменял свой взгляд:
Первое – это выпуск сервиса 1С: Напарник для использования и тестирования
Легко подключить, работает в EDT, ускоряет написание кода на 20-40% (по моему опыту)
Подробней можно посмотреть на https://code.1c.ai/
Второе – локальные модели нейросетей.
Случайно посмотрел видео, в котором рассказывалось об использовании локальных нейросетей в работе программиста, стал разбираться в этом вопросе и все оказалось до безумия просто.
Кажется, что их настройка сложна, но это не так.
Уже давно существует фреймворк Ollama. Этот фреймворк предоставляет достаточно большое количество крупных языковых моделей, которые легко могут быть установлены и запущены локально на компьютере пользователя.
Не буду подробно описывать процесс установки, в интернете полно статей по этому поводу.
Если кратко, то порядок установки следующий:
-
Загружаем нужный дистрибутив для Вашей ОС
-
Устанавливаем
-
В командной строке запускаем загрузку нужной модели LLM, или нескольких, например,
ollama run llama2
-
Все готово для работы
Простым POST запросом обращаемся к локальному апи для получения ответов
curl http://localhost: 11434 /api/generate -d '{
"model": "llama2",
"prompt": "Why is the sky blue?",
}'
Все, после этих простых шагов Вы можете использовать локальную модель под свои задачи.
Также можно установить в браузер плагин, который работает с ollama
https://chromewebstore.google.com/detail/page-assist-веб-интерфейс/jfgfiigpkhlkbnfnbobbkinehhfdhndo
Все Карл! Буквально 5 минут, без учета времени скачивания, и локальная нейросеть развернута и доступна к использованию.
Почему я не использовать кучу других известных онлайн сервисов, а использую локальные модели?
На то есть ряд причин:
-
Это бесплатно. Сервисы, как правило, берут деньги за запросы.
-
Это безопасно и приватно. Модель находится у Вас на компьютере, и не нужно никакие данные передавать в какой-то сервис.
-
Офлайн. Не зависит от наличия интернета, работает всегда
Но есть и минусы:
-
Ресурсы. Чем больше параметров модели, тем больше ей надо ресурсов
-
Точность. Ответы локальных моделей нужно контролировать, они бредят чаще онлайн сервисов, но это сильно зависит от количества параметров.
-
Скорость. У локальных моделей она может быть не очень велика. Но это все зависит от выделенных ей ресурсов и параметров
Как по мне – эти минусы довольно легко решаются, об этом ниже.
Выглядит просто и круто, но как это применять на практике?
Дальше у меня посыпались идеи, как бы я применил нейросети на прошлых задачах, которые когда-то решал.
Для примера я взял несколько простых моделей, т.к. для тестов использую не самый производительный ноут, ну и чтобы сравнивать ответы.
LLM сейчас круто умеют обрабатывать текстовые данные, вот примеры задач, который можно легко решить с их помощью:
Как же обойти минусы локальных LLM, которые затронули в начале статьи?
Про ресурсы понятно – использовать более мощные сервера
Скорость – связана с ресурсами, но не всегда важна. Например, если код работает в фоне 24/7, то можно и пожертвовать в каких-то задача скоростью.
Но только не в чат-ботах )
Точность – вот это самая острая проблема. Нейросети иногда выдают разные результаты. Для ее решения – можно отправлять 2-3 запроса к нейросети, и сравнивать результаты.
Или если нужна более высокая точность, то 2-3 запроса к 2-3 разным моделям. Тем более в локальном варианте они бесплатны )
При использовании LLM обращайте внимание на лицензионную политику конкретных моделей, не все можно использовать в коммерческих целях.
https://habr.com/ru/companies/simbirsoft/articles/696404/
Кучу нейросетей, доступных для ollama, можно найти на сайтах
Для себя я использую в следующих сценариях:
-
Конечно же, 1С:напарник в EDT
Любой программист должен написать себе базу учета рабочего времени )
Вот в нее я и прикрутил некоторые функции:
-
Исправление орфографических и пунктуационных ошибок в тексте работ, раньше был онлайн сервис, сейчас перешел на локальную модель.
-
Автоматическая генерация описания работ для заказчика по тексту задачи или переписке. Иногда лень сочинять что сделано в описании работ, а так нейросеть помогает.
Но есть, конечно, и минусы, которые я стал замечать на себе:
Вы будете "тупеть" в тех областях, где передаете задачи нейросетям.
Например, писать код с 1С: Напарником круто, но я стал замечать, что плохо помню написанный код.
Т.е. если раньше каждая строка была «выстрадана» и я мог сходу понять при возникновении ошибки или нестандартной ситуации, где они ,в каком месте и как нужно подправить.
То после работы с напарником над обработкой – такого нет, приходится заново лезть в код и изучать как он работает.
При использовании LLM для исправления ошибок тоже перестал вдумываться при написании текста и вспоминать правила русского языка, ведь моделька все поправит )
Все чаще ленюсь описывать работу, делегирую это на нейросеть.
В прикрепленных файлах расширение, которое подключается к БП, УТ, КА, ERP и добавляет во все формы, где есть строковые реквизиты в контекстное меню кнопку «Выбрать промт».
Подробнее можно почитать в инструкции.
Можно скачать и переделать под свои нужны или просто чтобы поддержать автора)
Для себя решил, что в дальнейшем вышеперечисленные (или новые) задачи буду пробовать решать с помощью LLM.
А какие у Вас задачи, которые можно передать нейросетям?
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.15.40
- 1С:Комплексная автоматизация 2, релизы 2.5.15.40
- Управление торговлей, редакция 11, релизы 11.5.21.106
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.150.29