ЛитСерв: быстрое развертывание корпоративных сервисов вывода моделей ИИ общего назначения

Общее введение

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

LitServe:快速部署企业级通用AI模型推理服务

 

Список функций

  • Быстрое развертывание служб вывода: Поддержка быстрого преобразования моделей из таких фреймворков, как 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 поддерживает весь спектр требований к процессам - от прототипов до приложений корпоративного класса - за счет быстрого развертывания и оптимизации служб вывода.

© заявление об авторских правах

Похожие статьи

Outerspan:快速部署自动处理邮件的AI智能体
Blackbox:集成多模型智能体对话,独家Blackbox模型编程助手

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...