Как развернуть DeepSeek Janus Pro локально? 186

小编 ·

Как развернуть DeepSeek Janus Pro локально?

Janus-Pro-7B от DeepSeek — это мультимодальная модель с открытым исходным кодом, поддерживающая распознавание и генерацию изображений и превосходящая DALL·E 3 от OpenAI. Ниже приведены подробные инструкции, советы и рекомендации по локальному развёртыванию DeepSeek Janus Pro-7B:

Как развернуть DeepSeek Janus Pro локально?

DeepSeek выпустил Janus-Pro-7B — мультимодальную модель с открытым исходным кодом, поддерживающую распознавание и генерацию изображений, по производительности превосходящую DALL·E 3 от Openai. Ниже приведены подробные шаги, приёмы и注意事项 для локального развёртывания DeepSeek Janus Pro-7B:

I. Подготовка среды

Требования к оборудованию

  • GPU: видеопамять ≥24 ГБ (рекомендуется NVIDIA RTX A6000 или более производительная видеокарта); при нехватке видеопамяти можно попробовать режим низкой точности (model.half()) или уменьшить параметры генерации.

  • Место на диске: ≥30 ГБ свободного пространства (файлы модели занимают около 20 ГБ+).

  • Операционная система: рекомендуется Ubuntu 20.04+ или Windows (требуется поддержка CUDA).

  • Python: 3.8+, рекомендуется использовать Conda для управления виртуальной средой.

Программные зависимости

  • CUDA: 11.7+ (должна совпадать с версией PyTorch).

  • PyTorch: указанная версия torch==2.0.1+cu117 (необходимо устанавливать через официальный индекс).

  • Прочие инструменты: Git, утилита загрузки HuggingFace Hub (huggingface-cli).

II. Шаги развёртывания

1. Клонирование репозитория

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

2. Создание виртуальной среды

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

3. Установка зависимостей

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. Загрузка модели

  • Способ 1: загрузка полной модели через huggingface-cli (для пользователей из Китая рекомендуется использовать зеркало для ускорения):

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
  • Способ 2: вручную загрузить файлы модели из репозитория HuggingFace и распаковать их в ./models/Janus-Pro-7B.

5. Запуск приложения

Текстовый интерфейс:

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

Мультимодальный интерфейс (поддерживает генерацию изображений и вопросы-ответы):

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

Перейдите по адресу http://localhost:7860 или http://127.0.0.1:7860, чтобы воспользоваться интерактивным интерфейсом.

III. Примеры использования функций

  • Генерация изображений по тексту (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张图)
  • Мультимодальные вопросы-ответы (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. Распространённые проблемы и оптимизация

Нехватка видеопамяти

  • Уменьшите параметры генерации: max_new_tokens=256.

  • Включите режим низкой точности: model = model.half().

Медленная загрузка

  • Используйте китайское зеркало: HF_ENDPOINT=https://hf-mirror.com.

  • Включите многопоточную загрузку: --workers 8.

Конфликты зависимостей

  • Строго устанавливайте указанные версии:

pip install transformers==4.33.2

Оптимизация качества генерации изображений

  • Настройте вес CFG (в диапазоне 5–7).

  • Увеличьте количество параллельных выборок: parallel_size=16.

Здесь также делюсь методом локального развёртывания от одного технического специалиста, на которого я подписан в X:

本地部署DeepSeek Janus Pro.webp

Маленькие хитрости:

  • Совет 1: если у вас уже установлена среда pytorch через conda, можно клонировать её командой conda create --name myenv --clone base, иначе каждый раз придётся заново скачивать pytorch, что очень медленно и затратно по времени.

  • Совет 2: обязательно установите flash-attention — без неё модель тоже запустится, но видеопамять переполнится; владельцы A100 могут это игнорировать.

С помощью описанных выше шагов вы сможете быстро развернуть Janus-Pro-7B локально и оценить его мультимодальные возможности. Для дальнейшей оптимизации или了解更多 о деталях модели обратитесь к репозиторию на GitHub и технической документации.