Comment déployer DeepSeek Janus Pro en local ? 176

小编 ·

Comment déployer DeepSeek Janus Pro en local ?

Janus-Pro-7B de DeepSeek est un grand modèle multimodal open source qui prend en charge la reconnaissance et la génération d'images, surpassant DALL·E 3 d'OpenAI. Voici les étapes détaillées, conseils et précautions pour déployer DeepSeek Janus Pro-7B en local :

Comment déployer DeepSeek Janus Pro en local ?

Janus-Pro-7B publié par DeepSeek est un grand modèle multimodal open source qui prend en charge la reconnaissance et la génération d'images, avec des performances surpassant DALL·E 3 d'Openai. Voici les étapes détaillées, astuces et précautions pour déployer localement DeepSeek Janus Pro-7B :

I. Préparation de l'environnement

Exigences matérielles

  • GPU : mémoire vidéo ≥ 24 Go (recommandé NVIDIA RTX A6000 ou carte graphique plus performante) ; si la mémoire vidéo est insuffisante, essayez le mode basse précision (model.half()) ou réduisez les paramètres de génération.

  • Espace de stockage : ≥ 30 Go d'espace disponible (les fichiers du modèle pèsent environ 20 Go+).

  • Système d'exploitation : Ubuntu 20.04+ ou Windows recommandé (nécessite l'adaptation de CUDA).

  • Python : 3.8+, il est conseillé d'utiliser Conda pour gérer les environnements virtuels.

Dépendances logicielles

  • CUDA : 11.7+ (doit correspondre à la version de PyTorch).

  • PyTorch : version spécifiée torch==2.0.1+cu117 (à installer via l'index officiel).

  • Autres outils : Git, outil de téléchargement HuggingFace Hub (huggingface-cli).

II. Étapes de déploiement

1. Cloner le dépôt de code

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

2. Créer un environnement virtuel

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

3. Installer les dépendances

pip install torch==2.0.1+cu117 --index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
pip install -e .[gradio]  # Installer l'extension Gradio

4. Télécharger le modèle

  • Méthode 1 : télécharger le modèle complet via huggingface-cli (recommandé pour les utilisateurs en Chine continentale afin d'accélérer via un miroir) :

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éthode 2 : télécharger manuellement les fichiers du modèle depuis le dépôt HuggingFace et les décompresser dans ./models/Janus-Pro-7B.

5. Démarrer l'application

Interface d'interaction textuelle :

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

Interface multimodale (prenant en charge la génération d'images et les questions-réponses) :

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

Accédez à http://localhost:7860 ou http://127.0.0.1:7860 pour utiliser l'interface interactive.

III. Exemples d'utilisation des fonctionnalités

  • Texte vers image (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张图)
  • Questions-réponses 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]))

IV. Problèmes courants et optimisations

Mémoire vidéo insuffisante

  • Réduisez les paramètres de génération : max_new_tokens=256.

  • Activez le mode basse précision : model = model.half().

Vitesse de téléchargement lente

  • Utilisez un miroir en Chine continentale : HF_ENDPOINT=https://hf-mirror.com.

  • Activez le téléchargement multi-thread : --workers 8.

Conflits de dépendances

  • Installez strictement les versions spécifiées :

pip install transformers==4.33.2

Optimisation de la qualité de génération d'images

  • Ajustez le poids CFG (dans la plage 5-7).

  • Augmentez le nombre d'échantillonnages parallèles : parallel_size=16.

Je partage également ici la méthode de déploiement local d'un technicien que je suis sur X :

本地部署DeepSeek Janus Pro.webp

Petites astuces :

  • Astuce 1 : si vous avez déjà installé l'environnement pytorch de conda auparavant, vous pouvez utiliser conda create --name myenv --clone base pour le cloner directement, sinon chaque nouveau téléchargement de pytorch sera très lent et fera perdre du temps.

  • Astuce 2 : il faut absolument installer flash-attention, cela peut fonctionner sans, mais la mémoire vidéo explosera ; ceux qui ont un A100 peuvent ignorer.

Grâce aux étapes ci-dessus, vous pouvez déployer et expérimenter rapidement localement les capacités multimodales de Janus-Pro-7B. Pour une optimisation plus poussée ou pour comprendre les détails du modèle, vous pouvez consulter le dépôt GitHub et la documentation technique.