¿Cómo desplegar DeepSeek Janus Pro en local? 172

小编 ·

¿Cómo desplegar DeepSeek Janus Pro en local?

Janus-Pro-7B de DeepSeek es un modelo multimodal de código abierto que admite reconocimiento y generación de imágenes, superando a DALL·E 3 de OpenAI. A continuación se detallan los pasos, consejos y precauciones para desplegar DeepSeek Janus Pro-7B en local:

¿Cómo desplegar DeepSeek Janus Pro en local?

Janus-Pro-7B, lanzado por DeepSeek, es un modelo multimodal de código abierto que admite reconocimiento y generación de imágenes, con un rendimiento superior al DALL·E 3 de OpenAI. A continuación se detallan los pasos, consejos y precauciones para desplegar DeepSeek Janus Pro-7B localmente:

1. Preparación del entorno

Requisitos de hardware

  • GPU: VRAM ≥24 GB (se recomienda NVIDIA RTX A6000 o una tarjeta gráfica de mayor rendimiento); si la VRAM es insuficiente, puedes probar el modo de baja precisión (model.half()) o reducir los parámetros de generación.

  • Espacio de almacenamiento: ≥30 GB de espacio disponible (los archivos del modelo ocupan aproximadamente 20 GB+).

  • Sistema operativo: se recomienda Ubuntu 20.04+ o Windows (requiere compatibilidad con CUDA).

  • Python: 3.8+, se recomienda usar Conda para gestionar entornos virtuales.

Dependencias de software

  • CUDA: 11.7+ (debe coincidir con la versión de PyTorch).

  • PyTorch: versión指定 torch==2.0.1+cu117 (debe instalarse desde el índice oficial).

  • Otras herramientas: Git, herramienta de descarga HuggingFace Hub (huggingface-cli).

2. Pasos de despliegue

1. Clonar el repositorio

git clone https://github.com/deepseek-ai/Janus.git
cd Janus

2. Crear un entorno virtual

conda create -n janus python=3.8 -y
conda activate janus

3. Instalar dependencias

pip install torch==2.0.1+cu117 --index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
pip install -e .[gradio]  # 安装 Gradio 扩展

4. Descargar el modelo

  • Método 1: Descargar el modelo completo mediante huggingface-cli (se recomienda usar el espejo para usuarios en China para acelerar la descarga):

HF_ENDPOINT=https://hf-mirror.com huggingface-cli download deepseek-ai/Janus-Pro-7B \
  --local-dir ./models/Janus-Pro-7B \
  --resume-download --cache-dir ./cache
  • Método 2: Descargar manualmente los archivos del modelo desde el repositorio de HuggingFace y descomprimirlos en ./models/Janus-Pro-7B.

5. Iniciar la aplicación

Interfaz de interacción de texto:

python demo/app_text.py --model-path ./models/Janus-Pro-7B

Interfaz multimodal (admite generación de imágenes y preguntas y respuestas):

python demo/app_multimodal.py --model-path ./models/Janus-Pro-7B --port 7860

Accede a http://localhost:7860 o http://127.0.0.1:7860 para usar la interfaz interactiva.

3. Ejemplos de uso de funciones

  • Texto a imagen (Text-to-Image)

from janus.utils import generate_image
generate_image(
    model_path="./models/Janus-Pro-7B",
    prompt="夕阳下的雪山,山脚下有蓝色的湖泊",
    output_dir="./outputs",
    num_images=4  # 生成4张图)
  • Preguntas y respuestas multimodales (Visual QA)

from janus.models import MultiModalityCausalLM, VLChatProcessor
processor = VLChatProcessor.from_pretrained("./models/Janus-Pro-7B")
model = MultiModalityCausalLM.from_pretrained("./models/Janus-Pro-7B").to("cuda")
# 输入对话与图片路径
conversation = [
    {"role": "", "content": "描述这张图片的内容", "images": ["sample.jpg"]},
    {"role": "", "content": ""}
]
inputs = processor(conversations=conversation)
outputs = model.generate(**inputs)
print(processor.decode(outputs[0]))

4. Problemas frecuentes y optimizaciones

VRAM insuficiente

  • Reducir los parámetros de generación: max_new_tokens=256.

  • Activar el modo de baja precisión: model = model.half().

Descarga lenta

  • Usar la fuente espejo nacional: HF_ENDPOINT=https://hf-mirror.com.

  • Activar la descarga multihilo: --workers 8.

Conflictos de dependencias

  • Instalar estrictamente la versión指定:

pip install transformers==4.33.2

Optimización de la calidad de generación de imágenes

  • Ajustar el peso CFG (en el rango de 5 a 7).

  • Aumentar el número de muestreos paralelos: parallel_size=16.

Aquí también comparto el método de despliegue local de un técnico que sigo en X:

本地部署DeepSeek Janus Pro.webp

Consejos útiles:

  • Consejo 1: Si ya has instalado previamente el entorno pytorch de conda, puedes usar conda create --name myenv --clone base para clonarlo directamente; de lo contrario, cada vez que reinstales pytorch será muy lento y una pérdida de tiempo.

  • Consejo 2: Asegúrate de instalar flash-attention. Aunque funciona sin él, la VRAM explotará. Si tienes una A100, puedes ignorarlo.

Siguiendo estos pasos, podrás desplegar y experimentar rápidamente con las capacidades multimodales de Janus-Pro-7B en local. Para optimizar o conocer más detalles del modelo, consulta el repositorio de GitHub y la documentación técnica.