Skip to Content
БлогSystem Design для Эпохи LLM. Часть 1

System Design для Эпохи LLM. Часть 1

Помните книгу “System Design. Подготовка к сложному интервью”. Я читал издание 2022 году, за это время наши системы сильно поменялись. Прямо сейчас у нас порядка 100 инициатив-запросов от разных подразделений для внедрения в бизнес LLM, AI Agents.

Влияние ИИ, в частности LLM меняет архитектуру приложений / инфраструктуры. Нужно внедрять новые инструменты и технологии. Возможно эта книга нуждается в новой главе. Ниже мое видение нового раздела System Design для Лидера.

Ключевые знания

1. Общие сведения об LLM

Какие модели бывают? (Детализация)

Foundation Models (текст, код, мультимодальные) → Доменные/ФинтюненныеСпециализированные (Embedding, Модерация). Ключевое отличие: Назначение (текст-генерация vs. векторное представление vs. анализ изображений).

Embedding модели:

  • Алгоритмы (Transformer-based, word2vec descendants)
  • Размерность векторов
  • Нормализация
  • Применение: Поиск, кластеризация, классификация, основа RAG

Thinking модели (текст-генерация):

  • Autoregressive (GPT-стиль) vs. Encoder-Decoder (T5)
  • Поколения (LLaMA 2/3, Mistral, Command R+, GPT-4 класса)

Multimodal модели:

  • Архитектуры (Flamingo, CLIP, LLaVA)
  • Вход/выход (текст+изобр+аудио)
  • Применение (анализ документов, генерация контента)

Баланс (Cost/Latency/Quality)

Метрики:

  • $/1k токенов
  • Time-To-First-Token (TTFT)
  • Токенов в секунду (TPS)
  • Точность (accuracy, F1)
  • Релевантность
  • Связность

Торг:

  • GPT-4 Turbo (качество, цена) vs. Mistral/Mixtral (баланс) vs. TinyLlama (latency, cost)

Стратегии:

  • Выбор модели под задачу
  • Кэширование
  • Оптимизация промптов

Эффективный промт

Техники:

  • CRISPE/RTF (Role, Task, Format)
  • Few-Shot Learning
  • Chain-of-Thought (CoT)
  • ReAct (Reasoning + Action)

Инструменты:

  • PromptHub
  • LangChain Hub
  • Ручное тестирование + A/B

Принципы:

  • Ясность
  • Контекст
  • Ограничения
  • Примеры

2. Modular Thinking & RAG (Retrieval-Augmented Generation)

Embedding модели (детально)

  • Выбор модели (размер, качество, скорость, язык)
  • Инференс эмбеддингов (batch, on-the-fly)
  • Нормализация векторов

Векторные БД

Выбор:

  • Pinecone (managed)
  • Qdrant (open-source, perf)
  • Weaviate (hybrid search)
  • ChromaDB (легковесный)
  • Milvus (scale)
  • PGVector (PostGIS-style)

Критерии:

  • Скорость поиска
  • Масштабируемость
  • Гибридный поиск (метаданные + вектор)
  • Фильтрация
  • Стоимость
  • Управляемость

Chunking

Стратегии разделения данных:

  • Фиксированный размер
  • Семантический
  • Иерархический

Влияние на качество RAG.

Системный промт

Цель: Задать контекст, роль, формат ответа, ограничения до пользовательского запроса.

Пример: “Ты - помощник компании X. Отвечай на основе ТОЛЬКО предоставленного контекста. Если ответа нет, скажи ‘Не знаю’. Ответ краткий, маркированный список.”

RAG (Сердце раздела)

Архитектура: Retriever (сем. поиск в VectorDB) → Ranker (опционально) → Prompt Builder (контекст + запрос + системный промт) → LLM

Паттерны:

  • Наивный RAG
  • Advanced RAG (переписывание запроса, переранжирование чанков, суммаризация)
  • Hybrid RAG (вектор + ключевые слова + граф знаний)

Оптимизации:

  • Размер контекста
  • Кол-во чанков

3. Экономика Архитектуры

Облачные LLM API

Провайдеры: OpenAI, Anthropic, Google, Yandex GPT, GigaChat

Плюсы:

  • Простота
  • Масштабируемость
  • Доступ к SOTA

Минусы:

  • Стоимость токенов
  • Задержка
  • Vendor lock-in
  • Безопасность данных

Сравнение:

  • Таблицы $/1M токенов (Input/Output)
  • TPS
  • Размер контекста
  • Регионы

Собственные модели

Self-hosted OSS: LLaMA, Mistral, Mixtral, Command R+

Плюсы:

  • Контроль
  • Безопасность
  • Долгосрочная экономия

Минусы:

  • Инфраструктура
  • Экспертиза
  • Время вывода на рынок

Выбор модели: Баланс размер/качество/требования к железу

Инференс

GPU:

  • Необходимы для больших моделей (>7B) и низкой задержки
  • Оптимизации: Quantization (GPTQ, AWQ), FlashAttention, PagedAttention (vLLM)

CPU:

  • Возможно для малых моделей (<7B) и больших задержек
  • Инструменты: llama.cpp (GGUF формат), ONNX Runtime
  • Требует сильной квантизации

Оптимизация затрат (Ключевое!)

  • Кэширование ответов/эмбеддингов
  • Адаптивный выбор модели (сложная задача → мощная модель, простая → легкая)
  • Rate-limiting
  • Прогнозирование бюджета

4. Безопасность

Prompt Injection

Защита:

  • Системные промты с явным запретом
  • Санитайзинг ввода
  • Изоляция контекста LLM от критичных систем
  • Использование доверенных инструментов у агентов
  • Мониторинг аномальных промптов

Техники:

  • Запрос на отражение атаки (“Ignore previous…”) vs. Jailbreak

Галлюцинации

Выявление:

  • RAG (ответ на основе контекста)
  • Self-consistency (несколько запусков)
  • Метрики Faithfulness/Answer Relevance
  • Кросс-проверка фактов (если возможно)
  • LLM-as-Judge (осторожно!)

Снижение:

  • Температура ~0
  • Точные промпты
  • RAG
  • Fine-tuning

Фильтр ввода/вывода

Модерация промптов и ответов:

  • Спец. модели: Moderation API, self-hosted - Llama Guard, Nvidia NeMo Guardrails
  • Блокировка PII, токсичности, запрещенных тем

Конфиденциальность данных

  • Предотвращение утечки в промпты/логи провайдера (маскировка PII)
  • Использование on-prem моделей/инфраструктуры для чувствительных данных

5. AI Агенты

Что это?

Автономные (или полуавтономные) сущности, использующие LLM как “мозг” для выполнения последовательности действий (планирование, использование инструментов, анализ) для достижения цели.

Ключевые компоненты

  • Планировщик (разбивает цель)
  • Исполнитель (LLM + Tools)
  • Память (кратк./долгосрочная)
  • Инструменты (API, функции)
  • Оркестратор (управляет потоком)

Оркестраторы

Готовые (Low-code):

  • LangChain (самый гибкий, но сложный)
  • LangGraph (новый, графы)
  • LlamaIndex (RAG + агенты)
  • CrewAI (high-level)
  • AutoGen (Microsoft)
  • Haystack

Плюсы: Быстрый старт, сообщество

Собственные:

  • Кастомный код (Python + Async)

Плюсы: Полный контроль, оптимизация, безопасность

Минусы: Сложность разработки/поддержки

Выбор: Зависит от сложности агентов, требований к производительности/безопасности, наличия экспертизы. CrewAI/LangGraph для старта, кастом для критичных/сложных задач.

Инструменты (Дополнение):

  • Semantic Kernel (Microsoft)
  • DSPy (программирование промптов)

6. Обучение моделей

Fine-tuning

“Дообучение” всей модели (или ее части) на доменных данных.

Цель: Адаптация стиля, домена, улучшение качества в нише.

Требует: Больше данных, мощные GPU, время.

LoRA (Low-Rank Adaptation)

Метод эффективного дообучения. Встраивает малые адаптеры в слои модели.

Преимущества:

  • Меньше данных
  • Быстрее обучение
  • Дешевле
  • Легкие веса (~1% от модели)

Использование:

  • Hugging Face peft
  • Объединение адаптеров

QLoRA: Квантованное LoRA для CPU/памяти

7. Площадки (Хабы) для моделей

Hugging Face

Де-факто стандарт:

  • Модели (LLM, Embedding, Diffusion)
  • Датасеты
  • Spaces (демо)
  • Inference Endpoints

ModelScope (Alibaba)

Китайский аналог HF, фокус на китайских моделях и мультимодальности.

Civitai

Платформа специфически для Stable Diffusion и других image/генеративных моделей (checkpoints, LoRA, embeddings).

Другие

  • Replicate (легкий деплой)
  • TensorFlow Hub
  • PyTorch Hub

8. MLOps / LLMOps

Инструменты (Расширение)

Эксперименты/Трекинг:

  • MLflow
  • Weights & Biases (W&B)
  • Neptune
  • TensorBoard

Пайплайны:

  • Kubeflow Pipelines
  • Airflow
  • Prefect
  • Metaflow
  • ZenML

Реестр моделей:

  • MLflow Model Registry
  • Hugging Face Hub

Мониторинг:

  • Prometheus/Grafana (инфра)
  • Arize
  • WhyLabs
  • LangSmith (спец. для LLM цепочек/агентов)
  • Helicone (мониторинг LLM API)

Управление данными:

  • DVC
  • Feast/Hopsworks (Feature Store)

MLflow

Сильные стороны:

  • Универсальность (Python)
  • Эксперименты
  • Реестр моделей
  • Деплой (REST, Docker)

Для LLM:

  • Трекинг промптов
  • Интеграция с langchain, openai

Kubeflow

Сильные стороны:

  • Нативный Kubernetes
  • Масштабируемость
  • End-to-end пайплайны (от данных до сервинга)

Для LLM:

  • Запуск обучения (fine-tuning, LoRA)
  • Сервинг больших моделей (KServe/KFServing, vLLM интеграции)

9. Тестирование LLM Систем

LLM-as-Judge

Использование мощной LLM (e.g., GPT-4) для оценки качества ответов других моделей/систем.

Осторожно!

  • Предвзятость судьи
  • Стоимость
  • Согласованность

Лучшие практики:

  • Четкие критерии оценки
  • Калибровка
  • Несколько судей
  • Человеческая проверка сэмплов

LLM Метрики

  • Традиционные (BLEU, ROUGE - осторожно для генерации)
  • Семантическое сходство (BERTScore, Sentence-BERT)
  • Точность (factual accuracy - сложно)
  • Токсичность

RAG Метрики

Retrieval:

  • Hit Rate @k
  • MRR (Mean Reciprocal Rank)
  • NDCG @k
  • Precision/Recall @k

Generation:

  • Faithfulness (соответствие ответа контексту)
  • Answer Relevance (ответ на вопрос?)
  • Context Relevance (релевантность чанков запросу)

End-to-End:

  • Задержка
  • Стоимость
  • Пользовательский feedback (thumbs up/down)

10. Выполнение моделей (Inference Serving)

Инференс-движки

vLLM:

  • Плюсы: Высокая пропускная способность (throughput) благодаря PagedAttention, continuous batching
  • Минусы: Требует GPU
  • Идеально: Облачные/on-prem GPU сервера, массовый асинхронный трафик

Ollama:

  • Плюсы: Супер-простота (desktop/laptop), локальное CPU/GPU, GGUF формат
  • Минусы: Не для высоких нагрузок/пропускной
  • Идеально: Локальная разработка, эксперименты, edge с малыми моделями

Другие:

  • Text Generation Inference (TGI - Hugging Face)
  • TensorRT-LLM (Nvidia, макс. перф на GPU)
  • llama.cpp (CPU focus)

Инфраструктура

Cloud (Managed):

  • SageMaker, Vertex AI, Azure ML, Yandex DataSphere
  • Плюсы: Простота, масштаб
  • Минусы: Стоимость, vendor lock-in

Cloud (Self-managed):

  • VMs (CPU/GPU) + Docker/Kubernetes + vLLM/TGI
  • Плюсы: Контроль, гибкость
  • Минусы: Операционные затраты

On-Premise:

  • GPU-кластер + Kubernetes + vLLM/TGI/TRT-LLM
  • Плюсы: Контроль, безопасность
  • Минусы: Капитальные затраты, экспертиза

На устройстве (Edge):

  • Крошечные модели (<3B)
  • Квантизация (GGUF)
  • llama.cpp, MediaPipe
  • Ограничения: Память, вычислительная мощность

Интервью

Пришло время продемонстрировать знания

Интервьюер:

Разработайте ИИ помошника для продажи квартир, который сможет работать 24/7, отвечать как человек и предлагать настоящие лоты для покупки.

На традиционном собеседовании по системному проектированию здесь вы бы спросили о функциях, трафике и масштабе. На собеседовании по генеративному проектированию систем ИИ. Здесь Нужно определить задержку, стоимость, архитектуру и пользовательский опыт.

1. Требования

Вы проясняете не только поведение продукта, но и поведение моделей.

1.1 Функциональные требования

Задайте вопросы:

  • Поддерживает ли помошник длинные разговоры?
  • Как происходит взадимодействие с пользователем?
  • Ответы только в формате текста или есть картинки и видео?
  • Какой сценарий воронки sale?

1.2 Нефункциональные требования

  • Задержка - как быстро должен генерировать ответ помошник?
  • Контекст - как часто у нас меняются данные по лотам?
  • Точность - насколько должны быть точные ответы?
  • Масштабируемость - какой поток клиентов мы ожидаем?
  • Безопасность - насколько чувствительные данные или они могут быть доступны всему интернету?

2. Уточнение ожиданий

2.1 Уточнение ожиданий в отношении данных и их извлечения

  • Как часто обновляются лоты по квартирам?
  • Как часто появляются новые ЖК?
  • У вас типовые планировки и архитектура дома?
  • Как часто меняются промо акции?

Это влияет на дополненный поиск, выбор векторной БД, на выбор embedding модели, и нужно ли нам fine-tune если область бизнеса специфичная. Как выстраивать пайплайн обновления данных.

2.2 Уточнение ожиданий по инструментам агента

В sale воронки у нас должен появиться артефакт? Например запись клиента на просмотр квартиры в календаре?

Это влияет на выбор оркестратора, function calling агента, MCP, интеграция с API календаря.

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

2.3 Уточнение ожиданий вопрос связка к следующей части

“Прежде чем я перейду к архитектуре, я бы хотел прояснить несколько моментов, особенно касающихся интеграции LLM, ожидаемой задержки и конфиденциальности данных”.

Эта одна строка задает тон на следующие 30 минут и показывает, что вы мыслите как владелец системы, а не как обезьяна, пишущая код.

3. Оцените нагрузку, бюджет токенов и пропускную способность

После уточнения требований пришло время смоделировать, что эта система будет фактически обрабатывать. На собеседовании по проектированию генеративных систем ИИ вы также оцениваете количество токенов в секунду, размер контекстного окна, генерацию встраиваемых систем и стоимость вызова.

3.1 Пример: ИИ помошника для продажи квартир

Предположим:

  • 1000 обращение ежедневно (пользователей)
  • Каждое пользовательское взаимодействие с помощником примерно 50 сообщений
  • Каждое взаимодействие включает ~1000 входных токенов и генерирует ~1000 выходных токенов

Это: 1000 пользователей × 50 взаимодействий × 2000 токенов = 100 000 000 токенов/день

Это дает нам: 1 200 токенов в секунду. Пиковый трафик при 3× = 3 600 токенов/сек

3.2 Осознание затрат

Если вы используете GigaChat 2 Lite:

  • 500 000 000 токенов - 95 000 ₽
  • 100 000 000 токенов/день = 19 000 ₽ в день

Если вы используете YandexGPT Lite:

  • 1000 токенов - 0.1 ₽
  • 100 000 000 токенов/день = 10 000 ₽ в день

Если свое оборудование:

  • RTX 4090 для моделей YandexGPT-5-Lite-8B скорость ~100 токенов/с
  • Значит нужно порядка 15 RTX 4090

Аппаратная часть:

  • 14 × RTX 4090: ~2 500 000 ₽
  • Сервер (CPU, RAM, корпус): ~1 500 000 ₽
  • ИБП/охлаждение: ~500 000 ₽
  • Итого: ~5 000 000 ₽

За месяц GigaChat 2 Lite обойдется 600 000₽, значит выгода своего порядка 10 мес.

4. Архитектура высокого уровня

Системная схема высокого уровня (концептуальная)…


Продолжение следует в части 2…

Читай также

Last updated on