5月2号NVIDIA官方更新了ChatRTX从0.2升级到了0.3,官方声明中的变化有
1. 支持音频;
2. 支持图片;
3. 增加了支持中文的模型ChatGLM3;
我想体验一下0.3,但是遇到了第一个问题,我之前已经在电脑里安装了0.2,该如何更新呢,之前安装的Chat With RTX需要删除或者卸载吗。
网上搜了一下没有搜到相关信息,索性就大胆尝试,下了安装包直接双击开始安装。很不错的是,ChatRTX的安装包能自动把之前的Chat With RTX给卸载掉。不过需要注意的是,我之前自己添加了很多模型进去,还有修改的配置文件,它都一并删除了,所以安装前建议把编好的模型先转移一下。
1. 变化
除了官方发布的变化外,经过我实际体验下来,它还有以下一些变化
1. 安装包变小了,现在只需要12GB,那么都少了什么呢
- TensorRT-LLM直接没了,后面如果想加模型必须自己装一个
- 模型变少了,虽然支持的模型多了,但是它不是都放到安装包里,只剩了一个Mistral,其他模型要添加的话,需要进去再下载安装
2. embedding model从UAE-Large-V1变为了multilingule-e5-base,且从线上移到了本地
3. 因为embedding model变为本地了,因此启动ChatRTX不再需要代理
4. 模型的文件结构也不同了,
0.2:一个engine文件夹和一个hf文件夹
0.3:一个engine文件夹,一个model_checkpoints文件夹和一个tokenizer文件夹
2. 问题
这个过程中我也遇到了很多问题
1. 安装倒是很顺利,但是启动时只要开启了代理gradio就会报错,必须关闭代理才行,这个应该是gradio的问题,详情可以参考这个链接,"Event not found in queue" when deploying Gradio behind a proxy · Issue #8074 · gradio-app/gradio (github.com)
我通过设置环境变量no_proxy localhost,127.0.0.1可以解决这个问题
2. 没有了自带的TensorRT-LLM,就必须自己安装一个,这里还有一个问题,我这里的网络特别不稳定,如果用官方的安装命令,如下
pip install tensorrt_llm --extra-index-url https://pypi.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121
我这里会花很长时间,且最终总是因为网络问题导致安装停止,解决方法可以参考我的第一篇帖子,加一个国内的镜像源,且把代理关闭掉,就可以正常的安装上
pip install tensorrt_llm==0.9.0 --extra-index-url https://mirrors.aliyun.com/pypi/simple --extra-index-url https://pypi.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121
这里还参考了Windows安装TensorRT-LLM,单batch达到8倍加速 - 知乎 (zhihu.com)去配置TensorRT-LLM的环境
3. 因为增加了一个model_checkpoints的文件夹,这个部分的作用我理解就是作一些检查或者提供一些信息之类的,其中最关键的就是有一个license条目,运行模型之前检查一下license是否获得了许可,但是这个部分需要连接网络,有些模型来自hugging face,就需要访问外网,但是因为问题1,chatRTX无法连接外网,就会出问题,我就粗暴的把config中的model_license删除了,它就可以正常使用了。
4. 共享问题
0.3中,interface.launch()被分出了https与http两个分支,都给他加上share=True,结果连接共享的链接时被报出No interface is running right now的问题,根据这个issueNo interface is running right now · Issue #3060 · gradio-app/gradio · GitHub,我发现它默认走了第一个https_enabled的分支,使用了ssl,把这两个ssl注释掉共享链接就可以使用了,但是自己内部的链接127.0.0.1就不能用了,这样感觉不太好,我就找到了赋值https_enabled的位置,直接改为False,走第二个分支就正常了,本地的也能用,共享的也能用
3. 后续
我还在从hugging face上下模型,后续会用tensorrt_llm编一下,试试0.3手动导入模型有没有坑。