Local LLM Deployment

Локальный/self-hosted запуск open-weight моделей: Ollama (или vLLM) для самих моделей + визуальные оболочки (Dify, Open WebUI, LobeChat). Зачем: данные не уходят наружу, нет оплаты по токенам, контроль над инфраструктурой.

Суть

Open-weight модель (Llama, Qwen, Mistral) скачивается и крутится у тебя. ollama run qwen3:8b поднимает локальный inference-сервер с OpenAI-совместимым API, к которому подключаются агенты и оболочки.

Зачем это нужно

  • Конфиденциальность/compliance — данные не покидают периметр.
  • Стоимость — нет оплаты за токены (платишь за железо).
  • Подходит для простых/частых шагов агента, где не нужен фронтир (см. Model Selection).

Как работает

  • Что влезает: на MacBook Air M4 16GB — Qwen3-4B «оптимум для агентов», Qwen3-8B — лучшее качество.
  • Установка: curl -fsSL https://ollama.com/install.sh | shollama run qwen3:8b; контекст: OLLAMA_CONTEXT_LENGTH=131072.
  • Оболочки (self-host через Docker): Dify (RAG/агенты/аналитика из коробки), Open WebUI (офлайн, LDAP), LobeChat (42 провайдера). Нужно: сервер, Docker, API-ключи провайдеров.
  • На практике (первый агент): «более-менее разумная» локальная модель через Ollama требует ~12–15 ГБ RAM — на типовом ноутбуке тяжело, поэтому на старте часто берут облачный API («не насиловать ноутбуки»), а локаль оставляют для приватности (см. экономику в Model Selection). Векторный индекс для RAG поднимают на FAISS (можно проиндексировать корпус в облаке и перенести индекс на свою машину, см. Vector Store Persistence); запускается и в Google Colab.
  • Локальный RAG-стек (практика): компактная Llama 3.1 8B в Colab + векторные хранилища в оперативной памяти (Chroma / Qdrant / FAISS, см. Vector Databases) + локальная модель эмбеддингов (~100–150 МБ, кэшируется на диск). GPU для инференса эмбеддингов не нужен — хватает CPU.
  • Коробочные RAG-платформы (self-host через Docker): помимо Dify — RAGFlow (глубокий парсинг таблиц/формул, GraphRAG/RAPTOR, реранкинг из коробки; Docker Compose, 2 ГБ slim или 9 ГБ full с моделями; Ollama/vLLM для локальных LLM, полная изоляция данных).
  • Инференс упирается в память: VRAM ≈ веса модели + KV Cache (растёт с длиной контекста). Поэтому при локальном запуске важны квантизация (Q4 и т.п.) и GQA, а не только число параметров. (Обучение моделей — отдельная история про GPU-фермы; для применения в агентах это не критично.)

Связано с

  • Model Selection — локальная модель как «дешёвый» tier
  • AI Agent — где агент может работать офлайн/локально
  • KV Cache — VRAM при инференсе = веса + KV-cache

Открытые вопросы

  • Ollama vs vLLM — когда что (throughput/латентность)
  • квантизация (Q4 и т.п.) — отдельная заметка (TODO)