Облачные Large Language Model (LLM) в 2025 достигли гигантских размеров - сотни миллиардов параметров, останавливаться не собираются и скоро перерастут триллионы. Они умеют больше, чем только работать с текстом. Картинки рисуют, распознают, перерисовывают, пальцы на руках научились пересчитывать, генерируют уже прям неплохие видео, отлично нарушают авторские права (а может и нет). А начиналось с каких-то лавкрафтово-кислотных галлюцинаций, но сегодня речь не о них. Сегодня мы поговорим о том, как, а главное, зачем селфхостить LLM.
Использование облачных LLM сопряжено со следующими ограничениями:
- Стоимость токенов. Облачные нейронки - бизнес, а бизнес - про зарабатывание денег. Так что либо подписка, которая включает в себя N токенов генерации текста, либо... Помните фразу - "если долго смотреть в бездну, бездна начнёт вглядываться в тебя?". Вот с бесплатными нейронками всё то же самое. Всё что вы в неё писали - будет использовано. Не факт, что сейчас, может ещё не придумали как и зачем использовать. Данные же новая нефть, все дела. Можно рекламу точнее вбрасывать, можно на них дообучать модели.
- Зависимость от чужой инфраструктуры. Сегодня можно, а завтра будет уже нельзя, причём по причинам от вас не зависящим. Или станет существенно дороже. А привычка-то уже появилась.
Локальные LLM сохраняют способность к имитации мыслительного процесса, хоть они и в десятки или даже в сотни раз компактнее облачных гигантов. За счёт этого достигается отличие в системных требованиях: если облачные LLM используют кластеры из тысяч GPU, NPU, TPU (странно, что ТСПУ под это дело ещё не задействовали), то некоторым локальным LLM для работы достаточно одной видеокарты потребительского уровня. Качество в сравнении с облачными моделями, разумеется, хуже, но не значительно. Но мы и не собираемся науку делать и лекарства от рака открывать. Локальные модели демонстрируют 60% качества облачных решений, для повседневных сценариев, вроде структурирования заметок или подсказок по работе в тех местах, где есть пробелы в знаниях. Иногда этого достаточно.
Однако, размерность важна. Качество ответов модели растёт чуть ли экспоненциально.
- Какая-то 1.5b нейронка-кодер откровенно бредила и генерировала портянки несвязанного с вопросом шлака.
- От deepseek-r1:8b я плевался из-за того, что он придумывал слова, периодически скатывался в другие языки и в целом больше отнимал времени, чем экономил, - opencoder:8b перепечатывал код, вообще без изменений, но иногда отжигал - отвечал что-то в духе "Хорошо, вот исправленная версия функции, которая теперь делает XX". И всё. Функцию он не давал.
- А вот mistral-small:22b меня прям радует. Недавно узнал, что в мою видеокарту и :24b влезают, но пока толком не опробовал и значимой разницы не заметил.
Сразу сделаю ремарку: сейчас я редко использую нейронки для помощи в программировании. Своими руками получается быстрее в 95% случаев. Cursor AI не трогал, Zed установил, но не разобрался. Но есть лайфхак. Если не справилась нейронка, то хорошо сочинённый промпт можно вставить в облачный сервис под названием рабочий таск-трэкер... Шутки-шутками, а формирование качественных промптов слабо отличается от качественного техзадания для людей. Вы получите больше выхлопа от работы с LLM, если у вас развиты навыки передачи информации через текст. И наоборот, повозившись с постановкой задач нейронкам, вам будет проще ставить задачи людям.
Экономика
Время
- LLM, размером в 22-24 миллиарда параметров, размещённая целиком в VRAM, генерирует около 15 токенов/сек. Этого достаточно, чтобы дождаться ответа, не переключая внимание на что-то другое.
- LLM размером в 8 миллиардов параметров на моей системе выдают около 45 токенов/сек, но получается херня.
- Добиться эффективной работы LLM ни целиком на CPU + RAM, ни с частичным offload на CPU мне не удалось (экспериментировал с моделями побольше). Экономически это кажется неэффективным: процессор сильно перегревается, кажется, долго не протянет, а выдаёт при этом всего 1-2 токена в секунду. Я использую Ryzen 5700X, но 5950X выглядит неплохим вариантом - 16 ядер по 3.4GHz за 35 000₽, AM4 сокет означает низкую цену на остальные компоненты, потенциально устраняет бутылочное горлышко объёма VRAM, 105Вт TDP легко охладить – в теории можно замахнуться на модели больше 32b параметров и надеяться на скорость ≈5 токенов/сек. Если метить на AM5 - AMD 9950X за 60000₽ выглядит неплохим вариантом, но подозреваю прирост от дополнительных 1.3GHz составит один токен в секунду.
Скорость локальных LLM далека от идеала. Пока LLM генерирует текст, используйте время с пользой. Сделайте то, с чем компьютер не поможет - вынесите мусор, погуляйте, пообедайте, поиграйте с котом.
Автоматизация рутинных задач с помощью нейронок или иначе экономит время ежедневно. Перед тем как браться что-то автоматизировать - измерьте это. Может после автоматизации вы начнёте тратить на тот же объём работы ещё больше времени, а будет казаться - "о, круто, стало быстрее". Скорость важна, но важна скорость выполнения вашей работы, а не генерации каких-то токенов. Вы ведь не абстрактные токены генерируете.
Капитальные вложения
CAPEX на рабочую станцию для 24B-моделей начинается в районе 140 000 рублей:
- Видеокарта с 16Gb VRAM (RTX4060Ti 16Gb - 50 000 ₽) - для меня это показалось золотой серединой и приемлемой инвестицией,
- CPU с поддержкой PCI-E 4.0 (AMD Ryzen 5700X, 3.4GHz x 8 ядер, L3 32Mb, 12 000 ₽) - если видеокарта работает правильно, нагрузка на CPU будет практически нулевой и можно брать ещё более простой процессор. В режиме PCI-E 3.0 оно тоже будет работать и не сильно хуже, пропускная способность играет роль, похоже, только в момент загрузки модели в память.
- 16GB DDR4 или выше (10 000 ₽), RAM мало не бывает, но если модель целиком влезает в видеокарту - оперативная память не используется, частота тоже не имеет большого значения. Но меньше в 2025 уже как-то несолидно.
- NVMe-накопитель на 2TB с поддержкой PCI-E 4.0 (15 000 ₽). Модели весят много, при экспериментах вы запросто израсходуете 300Gb под них. Ждать пока она загрузится с диска иногда раздражает. Ollama [3] позволяет удерживать модель в памяти между запусками, то есть при повторных вызовах вас это не будет сильно напрягать, но задержка при холодном старте иногда раздражает.
Остальное - монитор, клавиатура, охлаждение, корпус и блок питания имеют меньшее значение, но всё равно стоят денег. Поэтому лучшее, что можно сделать - воспользоваться уже имеющимся оборудованием (если у вас не ноутбук) и провести небольшой апгрейд, начиная с видеокарты. Ежемесячная подписка на GPT-4 с аналогичной нагрузкой обойдётся дешевле хоть в короткой, хоть в долгой перспективе (а Deepseek и вовсе бесплатен), даже с учётом оплаты через посредников, но мы покупаем конфиденциальность, которую OpenAI не продаёт.
Итак, как и какую видеокарту выбрать? Составьте формулу из важных вам параметров. Самое простое объём VRAM на рубль. Можно вписать туда CUDA ядра (я не ощутил значимого прироста после увеличения их числа с ~3000 до ~4300), можно потребление электричества, это уж ваше дело, но основным показателем остаётся VRAM.
Пробежимся по 40й серии NVidia RTX и посмотрим, что они позволяют запустить. Я для себя вывел формулу потребления VRAM для запуска LLM-моделей в ollama: размер на диске / 0.85, но она эвристическая и неточная.
- 8GB VRAM, RTX 4060 ≈35 000 ₽, модели с 8B параметров.
- 12GB VRAM, RTX 4070 Ti ≈120 000 ₽, модели с 14B параметров.
- 16GB VRAM, RTX 4060 Ti ≈50 000 ₽, RTX 4080 ≈150 000 ₽, - модели с 24B параметров.
- 24GB VRAM, RTX 4090 ≈250 000 ₽ - это что-то для богатых, сам не щупал, но в теории позволит загружать 32B модели.
Что точно не стоит покупать для запуска локальных LLM:
RTX4060Ti на 8Gb, разницы с обычной RTX4060 (мне её не хватило) не ощутите, а разница в цене с версией RTX4060Ti на 16Gb – незначительна.
-- вы находитесь здесь --
RTX4070Ti на 12Gb экономически выгодна только если уже есть в наличии.
RTX5090 на 32Gb за 300 000 ₽ звучит как что-то недостижимое, при этом я не уверен, что она когда-либо окупится.
Чего я не знаю:
- Как дела у AMD.
- Что с 30й и 50й серией видеокарт от NVidia. 3060 на 12Gb кажется +/- привлекательной для старта, но мне 14b модели показались недостаточными.
- Как работают системы с несколькими видеокартами (NVLink, SLI).
- Как дела со старыми промышленными видеокартами без видеовыхода с хорошим запасом памяти и ценником в 12-13к на маркетплейсах. Но очень интересно, если пробовали собирать думающую машину из них - поделитесь опытом в комментах, мне это правда очень интересно (как и предыдущий пункт).
Операционные расходы
OPEX рассчитывается исходя из энергопотребления и амортизации.
Типовая конфигурация потребляет около 300-400 Вт под нагрузкой:
- GPU — 160-200W,
- CPU — 65-100W,
- периферия — 55W
и значительно меньше в простое. Выйдет около 500 рублей в месяц, но у вас и так компьютер скорее всего круглосуточно включен, а ручное решение рутинных задач - тоже требует электричества. Настройка автоматического ухода в спящий режим и выключения монитора через 30 минут бездействия значительно сэкономит расход электричества.
При сравнении энергопотребления с решением задачи без LLM сравнивать надо не отсутствие решения задачи, а реальное ручное решение – сколько бы времени занял такой же результат.
Рабочая лошадка
Локальные LLM стоит рассматривать как инструмент, а не игрушку. Лучше сперва найти проблему, которую не удаётся решить другим путём, чем натягивать сову на глобус, а потом разочаровываться. Перечислю, где мне удалось добиться успехов в использовании LLM.
Работа с диктофонными заметками
Если коротко - у меня не всегда есть возможность записать важную мысль, руки могут быть заняты, втыкать в телефон может быть некогда, ручка и блокнот - тоже долго. Я откладываю это на потом, а потом перекладываю на плечи нейронки. Бубню всякое в небольшой диктофон стоимостью в 2000 рублей. Вечером подключаю его к компьютеру, запускаю скрипт, получаю в Obsidian папку с оригиналами заметок (аудио, WAV) и транскрипциями (текст, markdown), сделанными с помощью Vosk [2]. Очень удобно, особенно на встречах с ремонтниками, мебельщиками, которые говорят чуть-чуть на другом языке. От оригиналов не спешу избавляться, словаря со специфическим сленгом для него я ещё не насобирал, так что порой приходится разбираться с его галлюцинациями.
Что в этой схеме делают LLM?
- Исправляют за Vosk очевидные ошибки.
- Расставляют пунктуацию, рассогласование пола и времени, итд.
- Классифицируют заметку, придумывая для неё название. Ту же самую классификацию я применяю и к другим источникам заметок.
- Обнаруживают среди текста дела, которые надо добавить в планировщик.
После обработки LLM такая заметка всё равно проходит через ручную обработку, иногда приходится подглядывать на оригинал, распознанный Vosk'ом, иногда - прослушать аудиофайл, но это всё равно быстрее, чем расшифровывать их целиком вручную. В случае, когда вся заметка - это напоминание что-то сделать, иногда проще сделать и удалить.
Зачем мне вообще всё это? Я люблю, когда у меня пустая голова. Мне так спится лучше. Когда-нибудь напишу об этом отдельную статью с краткой исторической справкой о том, как я к этому пришёл.
Чуть подробнее о speech-to-text в моей статье про инвентаризацию холодильника.
Вычитка статей
LLM хорошо ищут противоречия, которые другим способом автоматически не обнаружить. glvrd.ru – это очень крутой сервис для подготовки текстов, но он сфокусирован на стиле, логика ему не подвластна. Живого человека я бы задолбал по пять раз мои портянки перечитывать, а тут условно-бесплатный корректор. Обычно при подготовке статьи к публикации прохожу через промпт:
Ты главный редактор цифрового издательского агентства. Прочитай статью о <тема статьи>. Она рассчитана на <целевая аудитория>. Найди пять недочётов или противоречий, которые нужно исправить.
<текст статьи>
Два-три перечисленных противоречия исправляю, закидываю заново, исправляю, закидываю – около трёх таких итераций значительно улучшают статью.
Помощь с резюме
Это уже я начал размахивать молотком в руках, видя по всём незабитые гвозди.
Иногда я помогаю знакомым айтишникам причесать свои резюме или анкеты для внутренних аттестаций (грейдирований) в их компаниях перед отправкой. Я не добавляю им каких-либо достижений, не насыпаю от души баззвордов. Я вообще ничего не добавляю сам - я удаляю. Тяжело представить, насколько распространён в айти синдром самозванца. Люди, которые делают крутые вещи - не уверены в себе. Они очень неуверенно описывают свои достижения. Это заметно настолько, что нейронка хорошо справляется с первичным исправлением, а я так - косяки форматирования исправляю и изредко за нейронкой подправляю.
В процессе работы над резюме я придерживаюсь одного важного принципа: не врать. Враньё почти всегда вскрывается в процессе личной беседы. Я сам провожу грейдирования, через меня прошли около 15 человек за последние полгода. До этого я прособеседовал около 40 разработчиков. Враньё всегда всплывает. Говорят сейчас люди с нейронками наперевес хакают найм, их я решительно осуждаю. А помочь хорошим людям хорошо написать, какие они хорошие - на мой взгляд не зазорно. Мне, как интервьюеру очень приятно читать хорошо подготовленный текст и по нему я слагаю первое впечатление о человеке. От первого впечатления многое зависит, хорошее резюме или анкета дают +30% к успеху на мой взгляд.
Диетология
Я скормил описание маминых болячек и рекомендации её врачей локальной LLM для контекста и теперь, когда она жалуется, что не знает, что ей поесть, потому что "проклятые врачи всё запретили" - сперва успокаиваю, выражаю сопереживание, а когда она успокаивается, предлагаю придумать чего-нибудь. И блин, нейронка тот ещё диетолог + повар. Оно офигенно умеет подбирать и адаптировать рецепты с учётом введённых ограничений. Живого нутрициолога я бы задолбал. У меня у самого не хватает фантазии. А mistral справляется и справляется неплохо. Приемлемо ли для меня было бы загружать эту информацию в облако? Разумеется нет. В свою видеокарту - пожалуйста.
Развёртывание LLM дома. Техника.
"Лень" видеокарты после пробуждения
Моя основная проблема при использовании связки Linux + NVidia RTX 4060 Ti + Ollama - выход из спящего режима. После него в адаптивном режиме энергопотребления видеокарта работает в режиме PCI-E 1.0, ollama смотрит на это и решает, что она уж лучше на CPU поработает. И начинает нещадно тормозить. Решаю так:
#!/bin/bash
set -euEx
# номер PCI-слота подсмотрел в выводе lspci.
read mode < /sys/bus/pci/devices/0000:09:00.0/current_link_speed
# к чему условности: бесит вводить sudo-password лишний раз, когда всё и так нормально работает
if [ "$mode" = '2.5 GT/s PCIe' ]; then
sudo systemctl stop ollama
sudo rmmod nvidia_uvm
sudo modprobe nvidia_uvm
nvidia-settings -a "[gpu:0]/GpuPowerMizerMode=1"
sudo systemctl start ollama
elif ! pgrep ollama >/dev/null; then
sudo systemctl start ollama
fi
exit 0
Что странно, строчки:
nvidia-settings -a "[gpu:0]/GpuPowerMizerMode=1"
недостаточно. В GUI режим стоит performance, в мониторинге ресурсов у видеокарты режим PCI-E 4.0, но ollama всё равно упорно пытается работать на CPU, до тех пор, пока не перезагружу модуль ядра nvidia_uvm. Если вам известно более аккуратное решение проблемы, напишите, если не сюда - то хотя бы в Fediverse.
Раньше я использовал AMD Ryzen 5700G, но у него всплыл интересный нюанс - он не поддерживает PCI-E 4.0. Сперва мне показалось, что я могу что-то выиграть в производительности, скакнув с PCI-E 3.0, но перейдя на 5700X с поддержкой 4.0 – ничего не заметил. Но кажется это стоит учитывать при проектировании новой рабочей станции. Читайте спецификации выбранных видеокарт, материнских плат и CPU.
Отдельный сервер или прямо на ПК?
Я уже писал, но ещё раз повторюсь:
лучшее, что можно сделать - воспользоваться уже имеющимся оборудованием (если у вас не ноутбук) и провести небольшой апгрейд, начиная с видеокарты
Если у вас ноутбук - можно попробовать собрать сервер самостоятельно. Можно заказать готовый. Мне коллеги скидывали решение на базе процессора (если его ещё можно назвать процессором) AMD AI Max+ 395. Там и CPU и GPU и NPU, а в сумме обещают около 120 TFLOPS, при этом в форм-факторе мини-ПК за 200 000 рублей. Для сравнения - моя RTX 4060 Ti выжимает только 22 TFLOPS. Отдельный сервер нужно где-то держать и ему нужен воздух для охлаждения.
Я собрал себе рабочую станцию ещё в 2023, чтобы не так сильно зависеть от ноутбука, предоставленного работодателем и обновлял видеокарту в ней. Апгрейд обошёлся в 38 000 рублей с учётом продажи старого железа на авито, в бонус я актуализировал гарантийные сроки.
Как заставить всё работать
Вам не нужен продвинутый Python, понимание принципов машинного обучения и даже статистика. Не понадобится ни линейная регрессия, ни градиентный спуск — базовых навыков работы с любым скриптовым языком будет достаточно, главное чтобы вам было удобно:
- Работать с текстом
- Выполнять файловые операции вроде создания, переименования и удаления файлов, а также чтения и записи в них текстовых данных.
- Запускать процессы.
Всё, что нужно: это "клей" для передачи данных, который вы сможете встроить в свои бытовые процессы. Хорошие кандидаты:
- Bash + AWK + Sed или PowerShell.
- Perl, Python или Ruby.
- А ещё лучше их сочетание.
Мне очень повезло, в моей рабочей практике было около 10 лет использования bash, coreutils у меня всё ещё на кончиках пальцев, я помню ключи tar, не ошибаюсь в порядке параметров find, а вспомнить, как заставить xargs разделять аргументы не по пробелу, а по переносу строк я вспоминаю за минуту-две. Это прямо огромное подспорье, чтобы колхозить. Можно думать об этом плохо, но уверен, 95% вещей, которые облегчают вам жизнь были бы невозможны без костылей, а в 80% из них эти костыли всё ещё на месте.
Но перейдём, наконец к вишенке на торте. Обратиться к нейросети можно с помощью ollama. Её можно вызвать в качестве консоли, а промпт передать либо аргументом, например:
ollama run mistral-small:24b "Напиши абзац о том, как передавать многострочные аргументы через stdin"
Можно передать аргументы через stdin:
cat файл_с_многострочным_шаблоном_промпта.md ваша_конкретная_задача.md | ollama run mistral-small:24b
Следующий трюк: динамическая генерация промпта в зависимости от содержимого обрабатываемого файла. Можно использовать m4 или jinja2, чтобы динамически исключать часть пунктов задачи, если они не требуются. В крайнем случае сойдёт и простой советский grep + группировка команд с помощью скобочек:
words="$(wc -w < ваша_конкретная_задача.md)"
{
[ "$words" -lt 100 ] && grep -v "дела" "файл_с_многострочным_промптом.md" || cat "файл_с_многострочным_промптом.md"
cat "ваша_конкретная_задача.md"
} | ollama run mistral-small:24b
Чего я пока не освоил - это как последовательно передать цепочку вопросов, чтобы модель при этом не теряла контекст диалога и помнила свои ответы. Кажется этого не получится добиться без использования HTTP-API и curl, когда-нибудь посижу, поковыряюсь в консоли браузера, с открытым open-webui и больше никогда не буду онлайн. А может проще у нейронки и спросить - тоже неплохой трюк, если навыков программирования немного.
Меры предосторожности
Будьте очень аккуратны, предоставляя LLM опосредованный доступ к вашей файловой системе. Весь текстовый вывод нейросети необходимо обрабатывать - экранировать, обрезать итд. Следите за тем, чтобы код, который вышел из под нейронки никогда не исполнялся без ревью человеком. Вырезайте из её выхлопа всё, чего не ожидали:
- просили дать одну строку до 60 символов? x="$(head -n1 <<< "$x"); x="${x:0:60}".
- алфавитных символов и пробелов должно быть достаточно: x="$(sed -e 's/[^А-Яа-я0-9A-Za-z -]//g' <<< "$x")"
- ну и для удобства: обрезка пробелов в начале и в конце строки: x="${x## }"; x="${x%% }"
Промпт-инжиниринг: 40% успеха
Если попробовать оценить насколько разные факторы влияют на качество ответов LLM, я бы ответил так:
- грамотно составленный промпт - 40%,
- входные данные - 20%,
- размерность модели - 20%,
- конкретная модель - 10%,
- способ скармливания данных - 10%.
Как составлять промпты правильно? В каком-то роде всё как с людьми. Руководителям будет чуть проще - наверняка качество постановки задач уже становилось узким горлышком и в эту тему приходилось погружаться.
Чем проще и лаконичнее ТЗ тем лучше. Без чёткого ТЗ ~~результат хз~~ модель генерирует воду или уходит в абстракции. Но есть нюанс: слишком чёткое ТЗ - тоже проблема. Модель будет постоянно заморачиваться за незначительные противоречия. Это причина, по которой я выношу части промпта в пред- или пост-обработку на python.
Примеры. LLM - это попугай на максималках. Он хорошо владеет искусством "повторять, не особо вникая". Помогите ему в этом, дайте ему несколько примеров в формате:
- пример ввода
- хороший пример вывода
- список того, что получилось хорошо
- плохой пример вывода
- список того, что получилось плохо
Указывайте, какой формат ответа вам нужен, что должно быть в структуре ответа.
Хорошо работают нефункциональные подсказки, вроде:
- кем нужно притвориться
- для кого предназначен текст.
Не пытайтесь получить идеальный ответ с первого раза — корректируйте запрос пошагово. Я своего "секретаря" уже месяц "взращиваю" и постепенно он становится всё лучше и лучше. Мне по душе пришёлся фреймворк "КОМПОЗИТОР" [1]:
- Кого LLM будет отыгрывать в этот раз.
- Обстановка, ситуация, контекст.
- Миссия - что должно получить в конце.
Этого уже достаточно, чтобы оно "как-то сработало", но скорее первый блин выйдет комом. Ba-dum-tss.
- Позитивный пример
- Отрицательный пример
- Зона работы - перечень имеющихся ограничений.
- Инспекция - сюда заносим вещи, с которыми LLM раз за разом косячит и просим проверять саму себя.
- Тон - манера речи. В школе мы называли это "стилем".
- Окружение - для кого мы пишем.
- Результат - формат. Все детали про оформление, заголовки, таблицы, код.
Работа с ограничением контекста
У локальных LLM есть один недостаток - малый размер контекста. Представьте что вы ставите задачу зумеру. Чем проще задача и короче кусок данных для обработки - тем лучше LLM с ней справится. В моей практике частенько вываливал в нейронку такую портянку, что она напрочь забывала про её начало, слегка обработав первые 10-15%. Чтобы такого не было - надо дробить задачу, а как дробить - это ваша забота.
- Кормим много данных за раз - LLM пропустит часть из них.
- Просим сделать слишком много всего и сразу - LLM сделает, но хреново, а иногда сделает не всё.
- Можно использовать метод скользящего окна, но наивный подход приведёт к старинной проблеме: каша на входе → каша на выходе.
for chunk in (text[i:i+2048] for i in range(0, len(text), 1024)):
analysis += query_llm(f"Суммаризируй фрагмент: {chunk}")
Я не заморачивась и дроблю либо вручную, либо ищу какой-то семантический способ дробления, который позволит потом просто взять и автоматически склеить результаты в одно целое простым cat. Если бы я использовал наивное скользящее окно - скорее всего я бы тратил много времени на ручную постобработку результата.
Гибридные сценарии и снова конфиденциальность
То что вы развернули нейронку дома не означает, что вам нельзя пользоваться облачными моделями. Главная опасность — не техническая сложность, а привычка делиться избыточной информацией с облачными сервисами. То что попало в интернет - навеки в интернете. Проблема в том, что даже опытные специалисты иногда совершают неосторожности. Поэтому можно по-умолчанию использовать локальную модель и только в исключительных случаях пользоваться облачной, при этом сохраняя бдительность.
Что я считаю приемлемым оставлять в облаке:
- Абстрактные технические вопросы. Например "Поддерживает ли mastodon Ed25519 ключи шифрования для своих activitypub-пользователей?".
- Анализ текста, который не является секретным и в скором времени будет опубликован.
- Ограниченное использование в качестве поисковика. Здесь есть проблема - любой ваш поисковый запрос говорит о том, что вас интересует. Я не вижу большой разницы между тем, чтобы спросить "какие вопросы не решает scrumban" в google или в deepseek. Что так, что сяк меня будут преследовать рекламой курсов по управлению проектами. Или весь интернет покроется рекламой подгузников, потому что я попросил сводную таблицу по списку брендов с размерами упаковки, минимум, максимумом и медианной ценой за неё + медианной ценой за 1 подгузник. Здесь локальная модель скорее всего окажется бесполезной и можно принять это как неизбежное зло.
Что я считаю категорически неприемлемым для передачи в облако? То же самое, что и законодательство РФ, если поискать по слову "тайна":
- Банковские выписки и всевозможный анализ финансов.
- Медицинские заключения и вообще информация о заболеваниях.
- Сомнительные штуки, которые стрёмно обсудить даже с женой.
- Замена имён и дат через скрипты на псевдонимы тоже кажется сомнительной. Ну назвали вы Алексея Петровича Трансильванием Дракуловичем, суть упоминаемой ситуации всё равно утечёт. Анонимизация имеет смысл когда реально анонимны, а не пользуетесь сетью, которая работает за счёт идентификации, при этом авторизовавшись по email, который зарегистрирован на ваш сотовый телефон, пусть и в другом сервисе (данные которого утекли 34 раза, пока я писал эту статью).
Такие вещи я не только обрабатываю локально, но и чищу после этого историю (~/.ollama/history или её аналог в альтернативном интерфейсе, даже если он закрыт аутентификацией).
Выводы
Локальные LLM перешли из категории "технологий будущего" в инструменты ежедневного использования. Стартовая конфигурация за $1,200 и базовые навыки работы с текстом позволяют автоматизировать 60-70% рутинных операций уже сегодня. Ключ к успеху — не погоня за максимальным размерами моделей, а сбалансированное использование локальных моделей и облачных сервисов, с чётким разделением данных.
Ссылки
- Статья о фреймворке "КОМПОЗИТОР" на Хабре.
- Vosk - система оффлайн распозавания речи.
- Ollama - первый попавшийся под руки инструмент для запуска LLM. Есть и другие, этот выбрал потому что он был на слуху.
Другие статьи в цикле "Нейронки дома":