LitServe: 엔터프라이즈급 범용 AI 모델 추론 서비스의 신속한 배포

최신 AI 리소스5개월 전에 게시 됨 AI 공유 서클
1.2K 00

일반 소개

LitServe는 번개 AI는 범용 AI 모델을 위한 추론 서비스의 신속한 배포에 초점을 맞춘 FastAPI 기반의 오픈 소스 AI 모델 서비스 엔진을 출시했습니다. 대규모 언어 모델(LLM), 시각 모델, 오디오 모델부터 고전적인 머신 러닝 모델에 이르기까지 광범위한 시나리오를 지원하며, 일괄 처리, 스트리밍, GPU 자동 확장 기능을 제공하여 FastAPI 대비 최소 2배 이상의 성능 향상을 제공합니다. LitServe는 사용이 간편하고 유연성이 높으며 자체 호스팅하거나 Lightning Studios를 통해 완전히 호스팅할 수 있습니다. LitServe는 사용하기 쉽고 유연성이 뛰어나며, 자체 호스팅 또는 Lightning Studios를 통해 완전히 호스팅할 수 있어 연구원, 개발자 및 기업이 효율적인 모델 추론 API를 신속하게 구축하는 데 이상적입니다. 관계자들은 보안, 확장성, 고가용성과 같은 엔터프라이즈급 기능을 강조하며 프로덕션 환경에서 바로 사용할 수 있도록 보장합니다.

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

 

기능 목록

  • 추론 서비스의 신속한 배포파이토치, JAX, 텐서플로우 등과 같은 프레임워크에서 API로 모델을 빠르게 변환할 수 있도록 지원합니다.
  • 배치 파일여러 추론 요청을 일괄 처리로 병합하여 처리량을 개선합니다.
  • 스트리밍실시간 추론 결과 스트림 출력 지원, 연속 응답 시나리오에 적합.
  • GPU 자동 스케일링추론 부하에 따라 GPU 리소스를 동적으로 조정하여 성능을 최적화합니다.
  • 복합 AI 시스템여러 모델이 공동으로 추론하여 복잡한 서비스를 구축할 수 있습니다.
  • 셀프 호스팅 대 클라우드 호스팅라이트닝 스튜디오 클라우드를 통해 로컬 배포 또는 관리를 지원합니다.
  • vLLM과 통합대규모 언어 모델에 대한 추론 성능 최적화.
  • OpenAPI 호환간편한 테스트 및 통합을 위해 표준 API 문서를 자동으로 생성합니다.
  • 전체 모델 지원LLM, 시각, 오디오, 임베딩 등 다양한 모델의 추론 요구 사항을 충족합니다.
  • 서버 최적화FastAPI보다 2배 이상 빠른 다중 프로세스 처리 및 추론을 제공합니다.

 

도움말 사용

설치 프로세스

LitServe는 파이썬의 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 사용 방법

LitServe는 깔끔한 코드를 통해 AI 모델을 추론 서비스로 전환합니다. 자세한 작동 원리는 다음과 같습니다:

1. 간편 추론 서비스 생성

다음은 두 가지 모델이 있는 복합 추론 서비스의 예입니다:

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. 자동 GPU 확장

GPU를 사용할 수 있는 경우 LitServe는 자동으로 추론을 최적화합니다:

  • 운영 지침::accelerator="auto" GPU를 감지하고 우선순위를 지정합니다.
  • 검증(이론)실행 후 로그를 확인하여 GPU 사용량을 확인합니다.
  • 환경 요구 사항: 프레임워크의 GPU 버전(예: PyTorch)이 설치되어 있는지 확인합니다.

5. 복잡한 모델 추론 배포(BERT를 예로 사용)

허깅 페이스의 BERT 모델 추론 서비스를 배포합니다:

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대화형 시험 추론 서비스.
  • 기능 팁: OpenAPI 표준을 기반으로 하며 모든 엔드포인트 세부 정보를 포함합니다.

8. 호스팅 옵션

  • 자체 호스팅: 로컬 또는 서버에서 코드를 실행합니다.
  • 클라우드 호스팅라이트닝 스튜디오를 통해 배포되며, 계정 등록이 필요하고, 로드 밸런싱, 자동 확장 등을 제공합니다.

운영 팁

  • 테스트 중 구성 요소 조정: 설정 timeout=60 추론 시간 초과를 피하세요.
  • 로그(컴퓨팅)시작 시 터미널 로그를 확인하여 문제를 해결하세요.
  • 최적화인증 및 Docker 배포와 같은 고급 기능을 사용하려면 공식 문서를 참조하세요.

LitServe는 추론 서비스의 신속한 배포와 최적화를 통해 프로토타이핑부터 엔터프라이즈급 애플리케이션에 이르기까지 모든 프로세스 요구 사항을 지원합니다.

© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...