LLMOps: специфика LLM в проде
Большие языковые модели в проде ломают многие привычки классического MLOps — отсюда отдельная дисциплина.
LLMOps — практики эксплуатации больших языковых моделей в продакшне: версионирование промптов, RAG, оценка качества генерации, контроль стоимости и безопасности.
Чем LLM отличаются от классики
В классическом ML вы обучаете свою модель на своих данных и сами её хостите. С LLM чаще иначе: вы используете готовую большую модель (через API или развёрнутую) и адаптируете её поведение не переобучением, а промптами и контекстом. Это смещает фокус MLOps.
| Аспект | Классический ML | LLMOps |
| Адаптация | обучение модели | промпты, RAG, иногда fine-tuning |
| Главный артефакт | веса модели | + промпты и пайплайн контекста |
| Оценка | метрики (f1, AUC) | сложно: качество текста субъективно |
| Стоимость/латентность | обычно низкие | высокие, считаются в токенах |
Версионирование промптов
Промпт — это код поведения LLM. Его версионируют, тестируют и выкатывают как артефакт: изменили формулировку — поведение поменялось, нужен прогон оценки и A/B. «Магические строки» в коде без версий — антипаттерн LLMOps.
RAG и обновление знаний
LLM не знает ваших свежих данных. RAG (retrieval-augmented generation) подмешивает в промпт релевантные документы из вашей базы (через векторный поиск). Теперь у вас новый компонент пайплайна: индексирование документов, эмбеддинги, обновление базы знаний — со своими версиями и мониторингом «не устарел ли индекс».
вопрос --> [поиск релевантных документов] --> контекст
|
вопрос + контекст --> [LLM] --> ответ с опорой на ваши данные
Оценка качества — главная боль
Как измерить, что генерация «хорошая»? Нет одной метрики. Подходы: эталонные ответы + автосравнение, оценка человеком, и LLM-as-a-judge — отдельная модель оценивает ответы по критериям. Плюс проверки на галлюцинации (выдуманные факты), токсичность, утечку данных. Оценка в LLMOps — это пайплайн, а не одна цифра.
Стоимость и латентность в токенах
LLM считают и платят по токенам, и это ощутимо. Смоделируем оценку стоимости запроса.
# условные цены за 1000 токенов
PRICE_IN = 0.003 # вход (промпт + контекст)
PRICE_OUT = 0.015 # выход (генерация)
def cost(prompt_tok, context_tok, output_tok):
inp = prompt_tok + context_tok
return (inp / 1000) * PRICE_IN + (output_tok / 1000) * PRICE_OUT
short = cost(prompt_tok=80, context_tok=200, output_tok=120)
rag = cost(prompt_tok=80, context_tok=2000, output_tok=300) # RAG раздул контекст
print(f"Короткий запрос: ${short:.4f}")
print(f"RAG-запрос: ${rag:.4f}")
print(f"На 1 млн запросов RAG: ${rag*1_000_000:,.0f}")
Вывод:
Короткий запрос: $0.0026 RAG-запрос: $0.0107 На 1 млн запросов RAG: $10,740
Видно, как раздутый RAG-контекст увеличивает и стоимость, и латентность. Поэтому в LLMOps мониторят токены и оптимизируют длину контекста — это прямые деньги.
Что остаётся от классического MLOps
Многое: версионирование (теперь и промптов, и индексов), CI/CD (теперь с прогоном eval-набора), мониторинг (теперь латентность, токены, доля галлюцинаций, обратная связь пользователей), деплой и rollback. LLMOps — это надстройка над MLOps, а не его замена.
Как работает под капотом
Прод-LLM-система — это пайплайн: запрос → (опционально) поиск контекста в векторной базе → сборка промпта из версионированного шаблона → вызов LLM → постобработка и проверки безопасности → ответ. Каждый ответ логируют (как и в классике): промпт, контекст, ответ, токены, латентность, версия промпта и модели. Eval-пайплайн периодически прогоняет тест-набор и LLM-судью; мониторинг следит за стоимостью, галлюцинациями и фидбеком. Те же три слоя мониторинга — операционный, входные данные (дрейф запросов), качество (eval) — просто с поправкой на текст.
Частые ошибки
- Промпты как магические строки без версий. Изменение поведения нельзя отследить и откатить.
- Нет eval-пайплайна. «Вроде стало лучше» — не метрика; нужен прогон тест-набора.
- Игнорировать стоимость токенов. Раздутый контекст незаметно множит счёт.
- Не проверять галлюцинации и безопасность. LLM уверенно выдумывает факты и может утечь данными.
Итог
- LLMOps — надстройка над MLOps: добавляются версионирование промптов, RAG, оценка генерации и контроль токенов/стоимости.
- Главная сложность — оценка качества: нет одной метрики, используют эталоны, людей и LLM-as-a-judge, плюс проверки галлюцинаций.
- Стоимость и латентность считают в токенах; раздутый контекст — прямые деньги, поэтому его мониторят и оптимизируют.