DeepSparse는 Neural Magic에서 개발한 혁신적인 CPU 추론 런타임으로, 신경망의 희소성을 활용하여 딥러닝 모델의 추론 과정을 가속화하도록 특별히 설계되었습니다. 이 프로젝트는 SparseML 최적화 라이브러리와 결합하여 CPU 하드웨어에서 뛰어난 추론 성능을 달성합니다.
중요 업데이트: 2025년 1월, Neural Magic은 Red Hat에 인수되었으며, DeepSparse 커뮤니티 버전은 2025년 6월 2일에 유지 관리가 중단되고 더 이상 사용되지 않습니다. 팀은 vLLM 기반의 상업 및 오픈 소스 솔루션으로 전환할 예정입니다.
DeepSparse는 대규모 언어 모델 추론을 위한 초기 지원을 제공하며, 다음을 포함합니다.
참고: Mac 및 Windows 사용자는 Docker Linux 컨테이너 사용을 권장합니다.
pip install deepsparse
pip install deepsparse-nightly
pip install -U deepsparse-nightly[llm]
pip install -e path/to/deepsparse
가장 낮은 수준의 API로, ONNX 모델을 직접 컴파일하고 텐서 입출력을 처리합니다.
from deepsparse import Engine
# 모델 다운로드 및 컴파일
zoo_stub = "zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
compiled_model = Engine(model=zoo_stub, batch_size=1)
# 추론 실행
inputs = compiled_model.generate_random_inputs()
output = compiled_model(inputs)
Engine을 래핑하고 전처리 및 후처리 기능을 추가하여 원시 데이터를 직접 처리할 수 있습니다.
from deepsparse import Pipeline
# 파이프라인 설정
sentiment_analysis_pipeline = Pipeline.create(
task="sentiment-analysis",
model_path="zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
)
# 추론 실행
prediction = sentiment_analysis_pipeline("I love using DeepSparse Pipelines")
print(prediction)
# 출력: labels=['positive'] scores=[0.9954759478569031]
FastAPI를 기반으로 Pipeline을 래핑하여 REST API 서비스를 제공합니다.
# 서버 시작
deepsparse.server \
--task sentiment-analysis \
--model_path zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none
# 요청 전송
import requests
url = "http://localhost:5543/v2/models/sentiment_analysis/infer"
obj = {"sequences": "Snorlax loves my Tesla!"}
response = requests.post(url, json=obj)
print(response.text)
# 출력: {"labels":["positive"],"scores":[0.9965094327926636]}
from deepsparse import TextGeneration
pipeline = TextGeneration(model="zoo:mpt-7b-dolly_mpt_pretrain-pruned50_quantized")
prompt = """
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: what is sparsity?
### Response:
"""
result = pipeline(prompt, max_new_tokens=75)
print(result.generations[0].text)
DeepSparse는 제품 사용 분석을 위해 기본 사용 원격 측정 데이터를 수집합니다. 사용자는 환경 변수를 설정하여 비활성화할 수 있습니다.
export NM_DISABLE_ANALYTICS=True
이 프로젝트는 다음과 같은 여러 중요한 학술 논문을 기반으로 합니다.
DeepSparse는 CPU 추론 최적화 분야의 획기적인 발전을 나타내며, 혁신적인 희소성 활용 기술을 통해 일반 CPU 하드웨어에서 전례 없는 딥러닝 추론 성능을 달성했습니다. 커뮤니티 버전의 유지 관리가 곧 중단되지만, 기술 혁신과 아이디어는 Red Hat의 지원 하에 계속 발전하여 AI 추론 최적화 분야에 더 큰 기여를 할 것입니다.