mindie:1.0.RC3-800I-A2-arm64 容器内,Qwen-VL 处理 RESTful 图片解读请求返回错误 messages token 超长
收藏回复举报
mindie:1.0.RC3-800I-A2-arm64 容器内,Qwen-VL 处理 RESTful 图片解读请求返回错误 messages token 超长
t('forum.solved') 已解决
新人帖
发表于2025-02-02 14:05:30
0 查看

在 mindie:1.0.RC3-800I-A2-arm64 容器内,从 modelscope 下载的 Qwen-VL 模型。进行了权重文件的转换,bin --> safetensors。

用容器内的 requirements 安装依赖,并安装了 transformers 4.34,用 run_pa.sh 验证模型,可进行图片的解析。

对 tokenization_qwen.py 做了如下改动:

  • 把 self.IMAGE_ST 部分提前到了 super 语句之前
    105     def __init__(
    106         self,
    107         vocab_file,
    108         errors="replace",
    109         image_start_tag='<img>',
    110         image_end_tag='</img>',
    111         image_pad_tag='<imgpad>',
    112         ref_start_tag='<ref>',
    113         ref_end_tag='</ref>',
    114         box_start_tag='<box>',
    115         box_end_tag='</box>',
    116         quad_start_tag='<quad>',
    117         quad_end_tag='</quad>',
    118         **kwargs,
    119     ):
    120         self.IMAGE_ST = (
    121             ref_start_tag, ref_end_tag,
    122             box_start_tag, box_end_tag,
    123             quad_start_tag, quad_end_tag,
    124             image_start_tag, image_end_tag,
    125             image_pad_tag
    126         )
    127         super().__init__(**kwargs)
    128         self.image_start_tag = image_start_tag
    129         self.image_end_tag = image_end_tag
    130         self.image_pad_tag = image_pad_tag
    131         self.ref_start_tag = ref_start_tag
    132         self.ref_end_tag = ref_end_tag
    133         self.box_start_tag = box_start_tag
    134         self.box_end_tag = box_end_tag
    135         self.quad_start_tag = quad_start_tag
    136         self.quad_end_tag = quad_end_tag

对 conf/config.json 做了如下改动:

  • disable HTTPS
  • 改了模型名到'qwen_vl'
  • 配置了模型路径
  • 配置了服务的端口号

此时 daemon 可以成功启动。

Daemon start success!

但是,当使用服务端口进行推理时,服务返回错误:

422, {'error': 'messages token length must be in(0, 1048576]', 'error_type': 'validation'}

实际 messages 长度是 Messages length: 460607。 检查log,发现 log 里有错误信息:

[Tokenizer]     >>> Exception:can only concatenate str (not "list") to str

如果把 transformers 降到 4.32,可以不用改上面的 tokenization 就可以启动 service,但是解析的时候 token 数量还是报错超长,log 里又提示要升到 4.34。

请问各位大佬该怎样解决?

本帖最后由 匿名用户2025/02/02 14:09:16 编辑

我要发帖子