ЛитСерв: быстрое развертывание корпоративных сервисов вывода моделей ИИ общего назначения
Общее введение
ЛитСерв - это молния Компания AI запустила сервисный движок с открытым исходным кодом для моделей ИИ, построенный на базе FastAPI и ориентированный на быстрое развертывание сервисов вывода для моделей ИИ общего назначения. Он поддерживает широкий спектр сценариев - от больших языковых моделей (LLM), визуальных моделей, аудиомоделей до классических моделей машинного обучения - и обеспечивает пакетную обработку, потоковую передачу и автомасштабирование на GPU с как минимум двукратным приростом производительности по сравнению с FastAPI. LitServe прост в использовании и очень гибок, может быть размещен как самостоятельно, так и полностью через Lightning Studios. LitServe прост в использовании и очень гибок, его можно размещать как самостоятельно, так и через Lightning Studios, что делает его идеальным решением для исследователей, разработчиков и предприятий для быстрого создания эффективных API для вывода моделей. Официальные представители делают упор на функции корпоративного класса, такие как безопасность, масштабируемость и высокая доступность, чтобы гарантировать, что производственные среды будут готовы к работе сразу же после установки.

Список функций
- Быстрое развертывание служб вывода: Поддержка быстрого преобразования моделей из таких фреймворков, как PyTorch, JAX, TensorFlow и т. д., в API.
- пакетный файл: Объедините несколько запросов на вывод в пакет, чтобы повысить пропускную способность.
- потоковое вещание: Поддержка вывода потока результатов в режиме реального времени, подходит для сценариев непрерывного реагирования.
- Автоматическое масштабирование GPU: Оптимизирует производительность, динамически регулируя ресурсы GPU в зависимости от нагрузки на вывод.
- Композитная система искусственного интеллекта: Позволяет нескольким моделям совместно рассуждать для создания сложных сервисов.
- Самостоятельный хостинг в сравнении с облачным хостингом: Поддерживает локальное развертывание или управление через облако Lightning Studios.
- Интеграция с vLLM: Оптимизация производительности вывода для больших языковых моделей.
- Совместимость с OpenAPI: Автоматически генерирует стандартную документацию по API для упрощения тестирования и интеграции.
- Полная поддержка моделей: Покрытие потребностей в выводах для различных моделей, таких как LLM, зрение, аудио, встраивание и т.д.
- Оптимизация сервера: Обеспечивает многопроцессную обработку и вывод выводов более чем в 2 раза быстрее, чем FastAPI.
Использование помощи
Процесс установки
LitServe легко установить с помощью программы Python pip
Инструмент справится с этой задачей. Ниже приведены подробные шаги:
1. Подготовка среды
Убедитесь, что на вашей системе установлен Python 3.8 или более поздней версии; рекомендуется использовать виртуальную среду:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
2. Установка LitServe
Выполните следующую команду, чтобы установить стабильную версию:
pip install litserve
Если вам нужны новейшие функции, вы можете установить версию для разработчиков:
pip install git+https://github.com/Lightning-AI/litserve.git@main
3. Осмотр установок
Убедитесь в успешном выполнении:
python -c "import litserve; print(litserve.__version__)"
Успешный вывод номера версии завершает установку.
4. Дополнительные зависимости
Если вам нужна поддержка GPU, установите GPU-версию соответствующего фреймворка, например:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
Как использовать ЛитСерв
LitServe превращает модели ИИ в сервисы выводов с помощью чистого кода. Вот как это работает в деталях:
1. Создание сервиса Simple Reasoning Service
Ниже приведен пример составной службы рассуждений с двумя моделями:
import litserve as ls
class SimpleLitAPI(ls.LitAPI):
def setup(self, device):
# 初始化,加载模型或数据
self.model1 = lambda x: x ** 2 # 平方模型
self.model2 = lambda x: x ** 3 # 立方模型
def decode_request(self, request):
# 解析请求数据
return request["input"]
def predict(self, x):
# 复合推理
squared = self.model1(x)
cubed = self.model2(x)
return squared + cubed
def encode_response(self, output):
# 格式化推理结果
return {"output": output}
if __name__ == "__main__":
server = ls.LitServer(SimpleLitAPI(), accelerator="auto")
server.run(port=8000)
- быть в движении: Сохранить как
server.py
Реализацияpython server.py
. - испытание (машины и т.д.): Использование
curl
Отправляет запрос на обоснование:curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"input": 4.0}'
Выход:
{"output": 80.0}
(16 + 64).
2. Включение массовых рассуждений
Модифицируйте код для поддержки пакетной обработки:
server = ls.LitServer(SimpleLitAPI(), max_batch_size=4, accelerator="auto")
- Инструкция по эксплуатации::
max_batch_size=4
Указывает на одновременную обработку до 4 запросов на вывод и их автоматическое объединение для повышения эффективности. - Методы испытаний: Отправьте запрос несколько раз и наблюдайте за улучшением пропускной способности:
curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"input": 5.0}'
3. Настройка потокового рассуждения
Для сценариев рассуждений в реальном времени:
class StreamLitAPI(ls.LitAPI):
def setup(self, device):
self.model = lambda x: [x * i for i in range(5)]
def decode_request(self, request):
return request["input"]
def predict(self, x):
for result in self.model(x):
yield result
def encode_response(self, output):
return {"output": output}
server = ls.LitServer(StreamLitAPI(), stream=True, accelerator="auto")
server.run(port=8000)
- Инструкция по эксплуатации::
stream=True
Включение потокового рассуждения.predict
пользоватьсяyield
Возвращает результаты по одному. - Методы испытаний: Используйте клиент, поддерживающий потоковые ответы:
curl --no-buffer -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"input": 2}'
4. Автоматическое расширение графического процессора
Если доступен графический процессор, LitServe автоматически оптимизирует вывод:
- Инструкция по эксплуатации::
accelerator="auto"
Обнаружение и определение приоритетов графических процессоров. - подтвердить (теорию): Проверьте журналы после запуска, чтобы убедиться в использовании GPU.
- Экологические требования: Убедитесь, что установлена GPU-версия фреймворка (например, PyTorch).
5. развертывание комплексного обоснования моделей (на примере BERT)
Разверните службу BERT для вывода моделей Hugging Face:
from transformers import BertTokenizer, BertModel
import litserve as ls
class BertLitAPI(ls.LitAPI):
def setup(self, device):
self.tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
self.model = BertModel.from_pretrained("bert-base-uncased").to(device)
def decode_request(self, request):
return request["text"]
def predict(self, text):
inputs = self.tokenizer(text, return_tensors="pt").to(self.model.device)
outputs = self.model(**inputs)
return outputs.last_hidden_state.mean(dim=1).tolist()
def encode_response(self, output):
return {"embedding": output}
server = ls.LitServer(BertLitAPI(), accelerator="auto")
server.run(port=8000)
- быть в движении: После выполнения сценария зайдите в
http://127.0.0.1:8000/predict
. - испытание (машины и т.д.)::
curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"text": "Hello, world!"}'
6. Интеграция vLLM для развертывания рассуждений LLM
Эффективные рассуждения для больших языковых моделей:
import litserve as ls
from vllm import LLM
class LLMLitAPI(ls.LitAPI):
def setup(self, device):
self.model = LLM(model="meta-llama/Llama-3.2-1B", dtype="float16")
def decode_request(self, request):
return request["prompt"]
def predict(self, prompt):
outputs = self.model.generate(prompt, max_tokens=50)
return outputs[0].outputs[0].text
def encode_response(self, output):
return {"response": output}
server = ls.LitServer(LLMLitAPI(), accelerator="auto")
server.run(port=8000)
- Установка vLLM::
pip install vllm
. - испытание (машины и т.д.)::
curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"prompt": "What is AI?"}'
7. просмотрите документацию по API
- Инструкция по эксплуатации: Доступ
http://127.0.0.1:8000/docs
, Интерактивный тест Reasoning Service. - Советы по выполнению функций: Основан на стандарте OpenAPI и содержит все данные о конечной точке.
8. Опции хостинга
- самостоятельный хостинг: Запустите код локально или на сервере.
- облачный хостинг: Развертывается через Lightning Studios, требует регистрации аккаунта, предлагает балансировку нагрузки, автомасштабирование и многое другое.
Советы по эксплуатации
- регулировка компонентов во время тестирования: Настройки
timeout=60
Избегайте тайм-аутов в рассуждениях. - журнал (вычисления): Проверьте журналы терминала при запуске, чтобы устранить проблему.
- оптимизация: Обратитесь к официальной документации, чтобы включить дополнительные функции, такие как аутентификация и развертывание Docker.
LitServe поддерживает весь спектр требований к процессам - от прототипов до приложений корпоративного класса - за счет быстрого развертывания и оптимизации служб вывода.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...