Home
Login

Tiempo de ejecución de inferencia de aprendizaje profundo con reconocimiento de la dispersión, diseñado específicamente para CPU

NOASSERTIONPython 3.2kneuralmagicdeepsparse Last Updated: 2025-06-02

DeepSparse - Motor de Inferencia de Aprendizaje Profundo con Reconocimiento de la Esparsidad, Diseñado para CPU

Resumen del Proyecto

DeepSparse es un revolucionario runtime de inferencia para CPU desarrollado por Neural Magic, diseñado específicamente para aprovechar la esparsidad de las redes neuronales y acelerar el proceso de inferencia de modelos de aprendizaje profundo. Este proyecto, al combinarse con la biblioteca de optimización SparseML, logra un rendimiento de inferencia excepcional en hardware de CPU.

Actualización Importante: En enero de 2025, Neural Magic fue adquirida por Red Hat. La versión comunitaria de DeepSparse dejará de recibir mantenimiento y será descontinuada el 2 de junio de 2025. El equipo se centrará en soluciones comerciales y de código abierto basadas en vLLM.

Características Principales

1. Optimización de la Esparsidad

  • Soporte de Kernels Esparsos: Aceleración y ahorro de memoria a través de pesos esparsos no estructurados.
  • Cuantización de 8 bits: Soporte para la cuantización de 8 bits de pesos y activaciones.
  • Optimización de Caché: Utilización eficiente de pares clave-valor de atención en caché, minimizando el movimiento de memoria.

2. Soporte para Modelos de Lenguaje Grandes (LLM)

DeepSparse proporciona soporte inicial para la inferencia de modelos de lenguaje grandes, incluyendo:

  • Técnicas de ajuste fino esparso para el modelo MPT-7B.
  • Rendimiento acelerado 7 veces mayor que la línea base densa (modelo esparso-cuantificado).
  • Soporte para modelos con hasta un 60% de esparsidad sin pérdida de precisión.

3. Amplio Soporte de Modelos

  • Visión Artificial: ResNet, EfficientNet, YOLOv5/8, ViT, etc.
  • Procesamiento del Lenguaje Natural: BERT, variantes de Transformer, etc.
  • Modelos Multimodales: Soporte para varias arquitecturas CNN y Transformer.

Requisitos del Sistema

Soporte de Hardware

  • Arquitectura x86: AVX2, AVX-512, AVX-512 VNNI
  • Arquitectura ARM: v8.2+

Entorno de Software

  • Sistema Operativo: Linux
  • Versión de Python: 3.8-3.11
  • Soporte ONNX: Versiones 1.5.0-1.15.0, conjunto de operaciones versión 11 o superior.

Nota: Se recomienda a los usuarios de Mac y Windows utilizar contenedores Docker Linux.

Instalación

Versión Estable

pip install deepsparse

Versión de Construcción Nocturna (Contiene las últimas funciones)

pip install deepsparse-nightly

Versión con Soporte LLM

pip install -U deepsparse-nightly[llm]

Instalación desde el Código Fuente

pip install -e path/to/deepsparse

Tres APIs de Despliegue

1. Engine API (API de Bajo Nivel)

La API de nivel más bajo, compila directamente modelos ONNX y maneja la entrada y salida de tensores.

from deepsparse import Engine

# Descargar y compilar el modelo
zoo_stub = "zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
compiled_model = Engine(model=zoo_stub, batch_size=1)

# Ejecutar la inferencia
inputs = compiled_model.generate_random_inputs()
output = compiled_model(inputs)

2. Pipeline API (API de Nivel Medio)

Envuelve Engine y agrega funciones de preprocesamiento y postprocesamiento, puede manejar directamente datos sin procesar.

from deepsparse import Pipeline

# Configurar el pipeline
sentiment_analysis_pipeline = Pipeline.create(
    task="sentiment-analysis",
    model_path="zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
)

# Ejecutar la inferencia
prediction = sentiment_analysis_pipeline("I love using DeepSparse Pipelines")
print(prediction)
# Salida: labels=['positive'] scores=[0.9954759478569031]

3. Server API (API de Alto Nivel)

Envuelve Pipeline basado en FastAPI, proporcionando un servicio REST API.

# Iniciar el servidor
deepsparse.server \
    --task sentiment-analysis \
    --model_path zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none
# Enviar la solicitud
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)
# Salida: {"labels":["positive"],"scores":[0.9965094327926636]}

Ejemplo de Modelo de Lenguaje Grande

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)

Ventajas Técnicas

1. Técnicas de Ajuste Fino Esparso

  • Tecnología innovadora desarrollada en colaboración con IST Austria.
  • Poda de MPT-7B hasta un 60% de esparsidad durante el ajuste fino.
  • Aceleración significativa sin pérdida de precisión.

2. Optimización del Rendimiento

  • Rendimiento de inferencia a nivel de GPU en CPU.
  • Reducción drástica del uso de memoria.
  • Soporte para modelos esparsos-cuantificados altamente optimizados.

3. Integración del Ecosistema

  • Integración perfecta con la biblioteca de optimización SparseML.
  • La biblioteca de modelos SparseZoo proporciona modelos pre-optimizados.
  • Soporte para múltiples escenarios de implementación.

Casos de Uso

  • Computación en el Borde: Implementación de modelos de IA de alto rendimiento en entornos con recursos limitados.
  • Inferencia en la Nube: Reducción de los costos de computación en la nube, mejorando la eficiencia de la inferencia.
  • Aplicaciones en Tiempo Real: Aplicaciones de IA en tiempo real que requieren baja latencia.
  • Implementaciones a Gran Escala: Entornos de producción que necesitan manejar solicitudes de inferencia de alta concurrencia.

Privacidad y Análisis

DeepSparse recopila datos telemétricos básicos de uso para el análisis del uso del producto. Los usuarios pueden deshabilitarlo configurando la variable de entorno:

export NM_DISABLE_ANALYTICS=True

Citas Académicas

Este proyecto se basa en varios artículos académicos importantes, incluyendo:

  • Sparse Fine-Tuning for Inference Acceleration of Large Language Models (2023)
  • The Optimal BERT Surgeon: Scalable and Accurate Second-Order Pruning (2022)
  • Inducing and Exploiting Activation Sparsity for Fast Inference (ICML 2020)

Resumen

DeepSparse representa un avance significativo en el campo de la optimización de la inferencia en CPU. A través de técnicas innovadoras de utilización de la esparsidad, logra un rendimiento de inferencia de aprendizaje profundo sin precedentes en hardware de CPU común. Aunque la versión comunitaria está a punto de dejar de recibir mantenimiento, su innovación tecnológica e ideas continuarán desarrollándose con el apoyo de Red Hat, contribuyendo aún más al campo de la optimización de la inferencia de IA.

Star History Chart