Применение LLM в ваших IT проектах - с чего начать?

Применение LLM в ваших IT проектах - с чего начать?

Разработка
AI
Время прочтения — 32 минуты
Применение LLM в ваших IT проектах - с чего начать?
Два пути работы с нейронками:
  1. Вы используете только opensource и развертываете всё сами
  2. Вы используете внешние сервисы и не паритесь

В первом случае плюсы очевидны:

  • Инфрастуктура полностью зависит только от вас, вы сам себе барин.
  • Вы не платите кому-то сверху маржу, а оплачиваете только использование электроэнергии.
  • Ваши переданные данные не “утекают” кому-то и остаются в рабочем пространстве.

Из главных минусов - системные требования. Обычно у вас три варианта для запуска нейросетей: только процессор + оперативка, быстрая память видеокарты + часть модели уходит в оперативку, десктопные маки со своими M-series, под которых заточен отдельный процесс. Процессор и оперативку мы сразу откидываем, ибо это зачастую медленно и нам не особо подходит. С Мак мне работать не приходилось. Поэтому остановимся на видеокартах, которые используют для генерации 99% пользователей. Поскольку весь процесс генерации происходит в преимущественно на видеокартах, то и траты на них будут соответствующие. По моему личному опыту, чтобы запустить что-то более-менее приличное из объемных моделей и на нормальной скорости, нужно как минимум 1-3 GeForce RTX 4090. Альтернатива - более дешёвые Radeon. Я и сам сейчас сижу на нём. Но и тут есть одно большое НО в виде ROCm, о котором чуть позже. Второй минус - софт. Нет какого-то универсального решения на все виды моделей, под каждый тип вам придётся заморачиваться с отдельной настройкой - допустим для “текстовых генеративных моделей” в основном используют что-то типо LM Studio или Ollama, а для модели вида “текст в видео” уже ComfyUI. Более того, даже в линейках моделей созданных для одной цели бывают различия по использованию.

Во втором случае всё чуть проще. Плюсы:

  • С настройкой и оборудованием всё уже сделали за вас. Зачастую сервисы стараются выглядеть максимально user friendly и от вас только требуется вовремя платить за запросы. Более того 99% из них предоставляют свой веб-клиент (страницу в браузере) для пользования услугами.
  • Сервисы-агрегаторы предоставляют доступы не к одной, а к множеству моделей и постоянно обновляют их. Если вы хотите перейти с одной модели на другую, это осуществляется в несколько кликов мыши.
  • Некоторые модели являются исключительно проприетарными и вы никак не сможете запустить их локально, только через провайдера.

Минусы:

  • Будьте готовы что данные отправленные вами спокойно могут уйти на обучение других нейронок (даже если написано что это не так). Не рекомендуется оперировать конфиденциальной информацией.
  • Вы напрямую зависите от доступности сервиса. И если он будет лежать пару часов - это ещё не проблема, а вот если внезапно решит ограничить услуги для IP адресов из России - то тут придётся что-то придумывать.
  • Появляется дополнительная маржа. Тут вы уже платите не только за энергию, но и за пользование услугами (а если подаётся бесплатно - то 100% платите своими переданными данными для обучения других нейронок).
От теории к практике - локальный запуск:

Итак, вы решили поднять что-то у себя на локалке. И сразу же первый вопрос: Nvidia или Radeon, точнее, в нашем случае он звучит немного по другому: CUDA от Nvidia или ROCm от Radeon. Что это вообще такое? Это программно-аппаратные платформы, которые позволяют использовать графические процессоры для сложных вычислений, а не только для обработки графики. Именно на них базируется использование нейросетей. А вот тут начинаются интересные вещи: на данный момент 60-90% рынка ориентировано на использование именно CUDA. Особенно если вы работаете из под Windows. Практически весь софт делается с поправкой что вы будете использовать технологию CUDA и видеокарты Nvidia. В последнее время Radeon как-то пытается исправить эту ситуацию, но получается это далеко не всегда. Следовательно, приобретая Radeon, вы практически всегда будете “шаманить с бубном” чтобы что-то запустить. Из личного опыта, чтобы запустить ComfyUI с модулем генерации видео мне пришлось через wsl поднимать ubuntu второй системой и делать всё через неё. Тогда как с Nvidia это буквально ставится нативным приложением.

Вторая вещь, которую вам будет необходимо всегда учитывать - квантизация. Полноценные модели могут занимать огромное количество памяти: от 120+ гб и больше. Чтобы оптимизировать это, придумали специальные алгоритмы сжатия. За счёт некоторой потери качества, они позволяют “ужать” модель до адекватных размеров, достаточных для запуска в памяти на локальной машине. Точность сжатия обычно измеряется побитово - fp16, q8, q4 и т.д. Тем меньше бит - тем сильнее сжатие и хуже качество. По моему опыту использования, оптимальные варианты обычно лежат в районе q4-q6. На hugginface зачастую выкладывают полный набор со всеми видами сжатия, чтобы вы выбрали себе подходящее. (пример https://huggingface.co/unsloth/gpt-oss-20b-GGUF/tree/main) Но если что, вы всегда можете сжать модель и сами - мануалы есть в интернете.

И наконец, третье - софт. Я не буду подробно останавливаться на этом процессе, потому что его много и он очень разный. От практически полностью user-friendly, до более сложных вещей. Для начала попробуйте установить банальный lmstudio (https://lmstudio.ai/) для текстовых моделей и запустить что-то простенькое и не особо объёмное, Там прям показывают рекомендованные разработчиками модели в поиске. Чтобы была возможность поиграться с параметрами и самой моделью.

blog
Применение нейронок при локальном развертывании

Итак, мы разобрались с тем, “как” запускать модели. Теперь перейдем к самому главному вопросу: а зачем вообще всё это нужно?

  • Персональные чат-боты. Общая проблема множества проприетарных LLM (ChatGPT, Claude, Gemini) - жесткие фильтры. Попробуйте попросить их обсудить острые темы - и зачастую получите лекцию о морали. Большинство же локальных моделей будут отвечать на любые ваши запросы без нравоучений. И даже те в которых есть встроенная “цензура”, со временем обычно получают “разлоченные” версии от сообщества.
  • Работа с конфиденциальными данными. Это то самое использование ваших документов. Вы можете загружать свои договоры, выписки или другие данные. Нейросеть будет работать с ними, но ничего из этой информации не уйдет на внешние сервера для обучения будущих моделей.
  • Безлимитная генерация картинок и видео. С локальной моделью вы не платите лишнюю маржу за каждую генерацию. Делайте итерации одного портрета, пока не добьетесь идеала.
  • Перевод аудио в текст. Ещё одна замечательная возможность нейронок, позволяющая использовать их для транскрибации аудио. Вкупе с пунктом про конфиденциальность информации - локальная модель отличный выбор для этого.
  • Использование моделей для дополнения кода. Через множество расширений для различных IDE вы можете подключить свою локальную модель к разработке. Это неплохое решение для разработчиков, которым корпоративная политика запрещает сливать код проекта в сеть, но ускорить написание рутинных функций очень хочется.
  • Голосовые ассистенты. Генерация речи или изменение голоса в реальном времени. Применяется для озвучки самого различного контента.
  • Локальные оффлайн-переводчики. Локальные модели позволяют переводить огромные массивы текста с весьма неплохим качеством, но при этом работать без всякого интернета.
Источники информации по нейронкам:
  1. https://www.reddit.com/r/LocalLLaMA/ - сабредит про opensource нейросети. В основном все последние новости там.
  2. https://t.me/seeallochnaya - ТГ канал с новостями и размышелниями на тему нейросетей.
  3. https://t.me/denissexy - личный блог Дениса Ширяева. Экс-продакт Комитета (VC, TJ и DTF), ныне занимается нейронками.
  4. https://www.youtube.com/@Aitrepreneur/videos - youtube канал с тонной мануалов на тему поднятия различных нейронок на локалке для “самых маленьких”
  5. https://huggingface.co/models - главный сайт куда выкладывают open source нейросети.
Дмитрий Сидоркин
Дмитрий Сидоркин
Персональные данные в медицине
Персональные данные в медицине
Безопасность
Вайбкодинг в контексте 1С-Битрикс
Вайбкодинг в контексте 1С-Битрикс
1С-Битрикс
Как защитить сайт на 1С-Битрикс от спам-регистраций ботов
Как защитить сайт на 1С-Битрикс от спам-регистраций ботов
1С-Битрикс
Безопасность