Estou tentando executar o modelo DeepSeek VL2 (versão minúscula) localmente e usar o seguinte código encontrado no Huggingface :
import torch
from transformers import AutoModelForCausalLM
from deepseek_vl.models import DeepseekVLV2Processor, DeepseekVLV2ForCausalLM
from deepseek_vl.utils.io import load_pil_images
# specify the path to the model
model_path = "deepseek-ai/deepseek-vl2-tiny" # replaced 'small' with 'tiny'
vl_chat_processor: DeepseekVLV2Processor = DeepseekVLV2Processor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
vl_gpt: DeepseekVLV2ForCausalLM = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()
## single image conversation example
conversation = [
{
"role": "<|User|>",
"content": "<image>\n<|ref|>The giraffe at the back.<|/ref|>.",
"images": ["./images/visual_grounding.jpeg"],
},
{"role": "<|Assistant|>", "content": ""},
]
# load images and prepare for inputs
pil_images = load_pil_images(conversation)
prepare_inputs = vl_chat_processor(
conversations=conversation,
images=pil_images,
force_batchify=True,
system_prompt=""
).to(vl_gpt.device)
# run image encoder to get the image embeddings
inputs_embeds = vl_gpt.prepare_inputs_embeds(**prepare_inputs)
# run the model to get the response
outputs = vl_gpt.language_model.generate(
inputs_embeds=inputs_embeds,
attention_mask=prepare_inputs.attention_mask,
pad_token_id=tokenizer.eos_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id,
max_new_tokens=512,
do_sample=False,
use_cache=True
)
answer = tokenizer.decode(outputs[0].cpu().tolist(), skip_special_tokens=True)
print(f"{prepare_inputs['sft_format'][0]}", answer)
No entanto, não consigo importar
from deepseek_vl.models import DeepseekVLV2Processor, DeepseekVLV2ForCausalLM
from deepseek_vl.utils.io import load_pil_images
Tentei instalar o deepseek_vl pelo pip, mas os pacotes listados com nomes semelhantes parecem ser completamente diferentes. Então, pensei que talvez fosse necessário baixar o repositório DeepSeek-VL do GitHub. Mas o repositório não contém classes nomeadas DeepseekVLV2Processor
ou DeepseekVLV2ForCausalLM
no models
diretório. A load_pil_images
função pode ser encontrada em utils.io
.
Sei que o guia de instalação do Huggingface indica que as dependências devem ser instaladas por meio de [nome do pip install -e .
arquivo]. Mas quando devo executar esse comando? Depois de baixar o repositório? Obviamente, como sou novo na execução desses modelos localmente, devo estar fazendo algo completamente errado. Como devo executar o código acima e importar os requisitos corretamente?
Acho que há um erro no Huggingface - talvez eles tenham esquecido de
2
adicionarvl
Ele mistura código antigo
DeepSeek-VL
from deepseek_vl. ...
com código para
DeepSeek-VL2
... import DeepseekVLV2Processor
Mas também há um link para o repositório DeepSeek-VL2 que mostra o código com
vl2
em vez devl
e este deve ser o código correto.
Você precisa baixar o DeepSeek-VL2 em vez do DeepSeek-VL para usar
DeepseekVLV2Processor
porque a primeira versão não o tem.Envio este problema ao(s) autor(es) da página Huggingface
como Atualizar README.md - erro de digitação no código de exemplo