Практическое руководство по самостоятельному хостингу составных LLM-систем
Во время SF #TechWeek ежемесячная встреча Zilliz “Unstructured Data Meetup” собрала более 800 разработчиков, основателей и венчурных инвесторов, чтобы обсудить последние события в экосистеме ИИ. Второй доклад, представленный Chaoyu Yang (основатель/CEO BentoML), дал практические рекомендации тем, кто предпочитает контроль и кастомизацию самостоятельного хостинга больших языковых моделей (LLMs), пытаясь при этом достичь производительности, сопоставимой с простым вызовом управляемого API. BentoML делится своими исследовательскими выводами в области AI-оркестрации, демонстрируя разработанные решения для оптимизации типичных проблем производительности при самостоятельном хостинге моделей.
В этом посте мы кратко перескажем ключевые моменты доклада Chaoyu и обсудим основные вызовы, соображения и практики самостоятельного хостинга ваших LLM. Мы также рассмотрим, как интегрировать BentoML и Milvus для создания более мощных GenAI-приложений.
LLM Doom Stack
Как человеку, довольно недавно пришедшему в ИИ, мне было проще всего понять BentoML и Milvus в контексте современного LLM-стека. В произвольном порядке — просто потому что это круто звучит — давайте рассмотрим то, что я называю 'LLM DOOM Stack.'
Data: Подготовка, хранение и обработка крупномасштабных наборов данных для высококачественного обучения и инференса. К таким технологиям относятся пайплайны данных, модели эмбеддингов и векторные базы данных (например Zilliz/Milvus, ура!)
Operations: Мониторинг, масштабирование и поддержание работоспособности и производительности развернутых моделей. Наблюдаемость в реальном времени для активной отладки с целью поддержания надежности.
Orchestration: Развертывание и масштабирование моделей по инфраструктуре, управление потоками между LLM, внешними системами и пользователями. (Именно здесь BentoML играет ключевую роль.)
AI Models: Сердце LLM-приложений — обучение, дообучение и оптимизация моделей под конкретные задачи, будь то использование API, open-source или предобученных моделей.
Figure- The LLM Doom Stack.png
Рисунок: LLM Doom Stack (адаптировано из этого изображения.)
Каждый стартап в области AI-инфраструктуры вписывается в эту DOOM-концепцию. Milvus и его управляемый облачный сервис Zilliz Cloud — это векторные базы данных, созданные для хранения, индексирования и извлечения неструктурированных данных в числовых представлениях, называемых векторными эмбеддингами, в многомерном пространстве. Они являются фундаментальными компонентами различных систем на базе LLM, особенно retrieval augmented generation (RAG). BentoML предоставляет операционные оптимизации для текущих LLM-воркфлоу. Заимствуя концепции, доказавшие свою эффективность в операционных системах, и сочетая их с исследованиями, подкрепленными данными, BentoML доказал, что обеспечивает превосходную производительность при создании и развертывании LLM, — а его основатель Chaoyu поделился этими секретами в своем докладе.
Дилемма LLM: самостоятельный хостинг или просто вызов API?
Одно из самых важных решений при развертывании LLM — выбрать самостоятельный хостинг или полагаться на управляемые API. У обоих вариантов есть свои компромиссы, поэтому важно сопоставить удобство с контролем. Управляемые API привлекательны простотой использования, меньшими затратами на поддержку и возможностью быстрого масштабирования, тогда как самостоятельный хостинг дает полный контроль и гибкость, позволяя выполнять более глубокую кастомизацию. В конечном счете для большинства команд решение сводится к балансу между скоростью развертывания в краткосрочной перспективе и долгосрочными целями масштабируемости и производительности.
Рисунок — Преимущества и проблемы самостоятельного хостинга LLM.png
Рисунок: Преимущества и проблемы самостоятельного хостинга LLM
Кому следует самостоятельно размещать LLM?
Chaoyu начал своё выступление с краткого опроса о managed и self-hosted LLM. Большинство участников подняли руки за managed APIs, и это вполне понятно — создание, масштабирование и поддержка инфраструктуры при одновременной разработке приложения — непростая задача.
Chaoyu подчеркнул, что managed services, хотя и удобны, часто отдают приоритет пропускной способности, а не оптимизации под конкретные сценарии использования. Self-hosting, с другой стороны, позволяет выполнять пользовательскую тонкую настройку моделей, применять продвинутые стратегии инференса и получать предсказуемое качество и задержку.
Однако self-hosting — не правильный выбор для всех. Итак, кому именно стоит рассмотреть самостоятельный хостинг LLM? Вот ключевые причины изучить этот подход:
Рисунок — Кому следует самостоятельно размещать LLM? .png
Рисунок: Кому следует самостоятельно размещать LLM?
Контроль: Self-hosting позволяет запускать LLM на ваших собственных условиях, соблюдая требования к безопасности данных, нормы конфиденциальности и конкретные потребности организации. Это особенно актуально для отраслей со строгими требованиями к защите данных, где конфиденциальные данные не могут покидать вашу инфраструктуру.
Кастомизация: При self-hosting вы можете тонко настраивать модели и оптимизировать стратегии инференса под ваш конкретный сценарий использования, достигая лучшей производительности, скорости и точности, чем могут предложить managed APIs. Вы также получаете гибкость для экспериментов с продвинутыми техниками инференса, такими как декодирование Chain of Thought (CoT) или Equilibrium Search, которые возможны только при полном контроле над слоем инференса.
Долгосрочные выгоды по затратам: Хотя self-hosting может требовать более высоких первоначальных затрат на инфраструктуру и обслуживание, в долгосрочной перспективе он может обеспечить экономию. Вы можете со временем оптимизировать затраты и масштабирование, используя open-source платформы, такие как BentoML и OpenLLM, без привязки к ценовым моделям поставщиков.
Ключевые проблемы и оптимизации для самостоятельного хостинга LLM
Самостоятельный хостинг LLM обеспечивает больший контроль, но сопряжён с рядом технических проблем, особенно связанных с масштабированием, оптимизацией инференса и проблемой холодного старта. BentoML предлагает набор решений для устранения этих проблем, позволяя командам эффективно оптимизировать свои развёртывания. Chaoyu поделился ключевыми подходами, которые они использовали для решения таких задач.
Оптимизация инференса
При самостоятельном хостинге LLM оптимизация инференса критически важна для повышения производительности и снижения затрат. Chaoyu выделил несколько ключевых техник:
Рисунок — Оптимизация инференса LLM — стек таблиц.png
Рисунок: Оптимизация инференса LLM: стек таблиц
Пакетная обработка запросов
Как одна из наиболее эффективных стратегий, пакетная обработка запросов может увеличить пропускную способность до 23 раз. Обрабатывая несколько запросов параллельно, а не последовательно, вы можете максимально использовать ресурсы GPU, сокращая время простоя и повышая эффективность, особенно для приложений с высоким трафиком.
Потоковая передача токенов
Ещё одна важная оптимизация — потоковая передача токенов, при которой токены возвращаются постепенно по мере их генерации. Такой подход значительно улучшает воспринимаемую задержку, особенно в приложениях реального времени, таких как чат-боты, где более быстрое время ответа улучшает пользовательский опыт.
Квантование
Кроме того, квантование снижает использование памяти и задержку инференса за счёт уменьшения точности модели (например, с 32 бит до 8 бит). Хотя этот подход может вызвать небольшое снижение качества вывода для некоторых задач, такой компромисс оправдан ради прироста производительности.
Оптимизации ядра
Оптимизация на уровне ядра позволяет выполнять низкоуровневые оптимизации GPU, адаптированные к рабочим нагрузкам LLM, обеспечивая максимально эффективную обработку вычислительных задач. Однако эти оптимизации могут снизить переносимость между различными аппаратными платформами.
Параллелизм модели
Для чрезвычайно больших моделей (70B+ параметров) распределение рабочей нагрузки между несколькими GPU обеспечивает более эффективный инференс. Хотя это повышает пропускную способность, оно вносит некоторые накладные расходы на коммуникацию между GPU.
Масштабирование инференса LLM: автомасштабирование на основе параллельных запросов
Распространенной проблемой в самостоятельно размещаемых средах является управление масштабированием. Традиционные метрики масштабирования, такие как загрузка CPU/GPU и количество запросов в секунду (QPS), недостаточны для LLM, у которых требования к ресурсам варьируются в зависимости от сложности входных данных.
Chaoyu объяснил, что масштабирование на основе параллельных запросов является более эффективным подходом. Этот метод отслеживает количество одновременных запросов для определения нагрузки на систему и динамически корректирует ресурсы на основе размера батча. Этот метод обеспечивает масштабирование системы именно тогда, когда это необходимо, предотвращая избыточное выделение ресурсов и снижая затраты, сохраняя при этом высокую производительность во время всплесков трафика.
Кэширование префиксов для экономии затрат
Один из наиболее эффективных способов снизить затраты и повысить производительность в самостоятельно размещаемых средах — это кэширование префиксов, которое может привести к экономии затрат более чем на 90%. Эта стратегия работает за счет кэширования общих частей промптов, таких как системные инструкции или статический контент, чтобы избежать избыточных вычислений.
Размещая статическую информацию в начале запросов, вы повышаете вероятность попаданий в кэш, снижая вычислительную нагрузку для последующих запросов с похожими структурами. Это особенно полезно для приложений, обрабатывающих частые повторяющиеся запросы, где большая часть промпта остается неизменной. Кэширование префиксов снижает задержку и уменьшает использование ресурсов, значительно оптимизируя производительность и затраты на инференс LLM.
Проблема холодного старта
Еще одной серьезной проблемой при самостоятельном размещении является проблема холодного старта — задержка, возникающая, когда новым инстансам требуется время, чтобы стать готовыми к обработке трафика. Chaoyu обсудил две ключевые стратегии преодоления этой проблемы.
Одно из решений — держать предварительно прогретые модели в режиме ожидания. Это гарантирует, что модели будут мгновенно готовы обрабатывать запросы при всплеске нагрузки, минимизируя задержки запуска.
Еще одна важная оптимизация — уменьшение размера образов контейнеров. Сокращая ненужные зависимости, можно значительно уменьшить время, необходимое для загрузки образов при динамическом масштабировании сервисов. Например, образ размером 154MB загрузится гораздо быстрее, чем громоздкий образ размером 6.7GB, значительно сокращая время запуска.
Кроме того, потоковая загрузка весов модели в память GPU постепенно, а не последовательная их загрузка, дополнительно сокращает время инициализации. Это гарантирует, что ваша система сможет справляться с внезапными всплесками трафика без длительных задержек запуска, улучшая общую отзывчивость ваших самостоятельно размещаемых моделей.
Интеграция BentoML и Milvus для более мощных приложений LLM
BentoML оптимизирует системы онлайн-обслуживания для AI-приложений и инференса моделей. Его управляемый сервис, BentoCloud, предлагает широкий спектр современных open-source AI-моделей, включая Llama 3, Stable Diffusion, CLIP и Sentence Transformers. Эти предварительно созданные модели можно развернуть на платформе одним щелчком мыши.
Milvus — это open-source векторная база данных, созданная для хранения, индексирования и поиска неструктурированных данных миллиардного масштаба с использованием высокоразмерных векторных эмбеддингов. Она идеально подходит для современных AI-приложений, таких как RAG, семантический поиск, мультимодальный поиск и рекомендательные системы.
BentoCloud бесшовно интегрируется с Milvus и его управляемым сервисом, Zilliz Cloud, позволяя легко разрабатывать мощные приложения на базе LLM, в частности Retrieval Augmented Generation (RAG). RAG — это техника улучшения вывода LLM путем предоставления модели внешних знаний, к которым у нее не было доступа.
Вы можете использовать BentoCloud для обслуживания моделей эмбеддингов и преобразования неструктурированных данных в векторные эмбеддинги, которые затем можно хранить и извлекать в Milvus (или Zilliz Cloud). Затем Milus извлекает наиболее релевантные результаты и предоставляет их как контекст для LLM, чтобы генерировать более точные результаты.
Figure- RAG workflow.png
Для получения дополнительной информации о том, как создавать RAG или другие типы GenAI APPs, ознакомьтесь с приведенными ниже руководствами и блогами:
Руководство: Retrieval-Augmented Generation (RAG) with Milvus and BentoML | Milvus Documentation
Руководство: RAG Without OpenAI: BentoML, OctoAI and Milvus
Блог | Infrastructure Challenges in Scaling RAG with Custom AI Models
Видео | RAG as a service with BentoML
Краткое содержание
Развертывание LLM связано с критически важными решениями и вызовами — от выбора между самостоятельным хостингом и управляемыми API до оптимизации производительности и масштабирования. В то время как управляемые API предлагают удобство и простоту, самостоятельный хостинг обеспечивает больший контроль, гибкость и долгосрочную экономическую эффективность для команд, которым нужны кастомные решения. Платформа BentoML решает многие сложности самостоятельного хостинга, предлагая мощные инструменты для оптимизации инференса, эффективного масштабирования и преодоления технических препятствий, таких как проблема холодного старта.
Используя BentoML, Milvus или их управляемые сервисы, команды могут бесшовно интегрировать слои Data и Operations своих LLM-приложений, создавая высокопроизводительные системы, отвечающие их конкретным потребностям.
Если вы готовы погрузиться в самостоятельный хостинг LLM и создавать LLM-приложения, такие инструменты, как BentoML, OpenLLM и Milvus, помогут проще начать работу и оптимизировать ее под ваш уникальный сценарий использования.
Объединяйтесь с людьми, которые стремятся оптимизировать свой слой стека DOOM. Стойте на плечах гигантов, используйте мир как Архимед и продолжайте поддерживать импульс.
Читать далее

Build Multimodal Search for 3D Assets with Tripo and Zilliz Cloud
Generate 3D assets with Tripo, then search them by text, image, and metadata with multimodal embeddings and Zilliz Cloud.

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.



