Results 250 comments of Chen Xin

@GuiQuQu 可以看下 https://github.com/InternLM/lmdeploy/pull/1627 这个能不能解决你的问题。

@GuiQuQu PR需要review,需要一段时间才能合入。现在用的话,需要改安装目录的代码。 image list 是按照顺序插入到 user prompt 当中。 以你之前的例子来说 (如果不改 system, user , assistant的话),那么输入大概长这样? ``` "关于问题的相关说明.... 问题:aaa\n答案:bbb 关于问题的相关说明.... 问题:aaa\n答案:bbb 关于问题的相关说明.... 问题:aaa\n答案:bbb 关于问题的相关说明.... 问题:aaa\n答案:" ``` 你创建server或者pipeline的时候,可以把log_level设置成INFO,这样应该会打印拼好的prompt,可以对比一下看看拼的对不对。

一个是kv cache量化,一个是权重量化,不一样。你说的官方的int8是用的bnb,跑一下你会发现比fp还慢。你可以关注一下LMDeploy 的量化功能 https://github.com/InternLM/lmdeploy/pull/1553 ,这个PR合入后, 显存会降下来,速度也会更快。

@qingchunlizhi backend_config 看一下 cache_max_entry_count 这个参数,设成0.5试试,这个表示kvcache 显存申请的百分比,跟模型权重无关,大小影响batch_size 和 session_len。

@rTrQqgH74lc2PT5k 因为LLM 多卡的时候,每个卡上需要的显存相等,如果vision不均分的话,会造成可用显存变少。目前这个是自动开启的。 权重量化 需要保存下来使用,文档可以看 https://github.com/InternLM/lmdeploy/blob/main/docs/zh_cn/quantization/w4a16.md,对VLM模型来说也是一致的。不过保存模型的时候,文件夹最好和官方一致,不然可能无法自动匹配到正确的对话模版。 kvcache 所占显存与模型权重无关,是通过 cache_max_entry_count 这个参数来控制的。影响最大的session_len, 以及batch_size。 VisonConfig 是 typos了。

我感觉是生成参数的原因,把temperature=0.1注释掉,跑了很多次都没有重复的现象。 另外看你指定了template.json,改了meta_instruction,但是为什么要把``, ``这些token去掉呢?

ollama 是怎么跑的? 也是自定义了相同的模版,相同的生成参数跑的么?

The loading process of vlm is: load vision model -> load llm weight -> allocate kv cache. For llava-v1.5-7b, the first two steps will takes up about 14.5G cuda memory....

Can you try run the code without jupyter or ipython.

https://github.com/InternLM/lmdeploy/blob/7758151a7401932c681a8b3e5a81761cef8e1ad0/lmdeploy/model.py#L294-L296 should add `mistral not in path`