本人仅仅大模型爱好者一枚,非专业人士,对这一块的开发范式不太熟悉,因此每次部署和调试都像是在开荒,会遇到各式各样的问题。在此记录一下,仅供参考。
本来没想过使用xinference, 不过Langchain-Chatchat发布了3.0版本,使用方式和之前有所不同,得按文档示例重新跑一遍,文档示例用了xinference作为例子,所以就开始使用xinference了。
xinference的官方文档还算可以。Langchain-Chatchat项目里面也有关于xinference的简要说明,步骤清晰,可以一步步跟着走,不过跟着走的时候也会因为本地环境的多样性带来一些问题。以下是开荒记录。
模型选择:
本人选择了glm4-9b-chat, 因为Langchain-Chatchat的例子使用了这个模型,xinference的模型列表中也有这个模型。
部署流程
1.生成虚拟环境,安装各类依赖
生成虚拟环境;
然后激活虚拟环境;
然后安装各类依赖
安装成功之后,就可以启动xinference服务了,
以下是效果图

2. 模型的登记
执行这个步骤之前,先选择或者一个路径,在那个路径里进行特定的操作。
xinference支持glm4-9b-chat模型,可以按照官方文档的方法加载。
“xinference launch –model-engine ${engine} –model-name glm4-chat –size-in-billions 9 –model-format pytorch –quantization ${quantization}”
不过本人事先已经下载了这个模型,所以没有按照上面这条指令加载模型,也许那条指令会再次下载模型到某个路径。
本人走了“使用自定义模型”这条路。使用自定义模型的话,需要准备json格式的模型配置。以下是配置信息,在“官方文档”的示例的基础上修改的。根据glm4-9b-chat的详细资料调整了参数, 模型名称改写成custom-glm4-chat. model_uri是模型的路径,cd到模型的路径,然后pwd获取这个路径即可填入。最后这个配置文件命名为custom-glm4-chat.json。
执行登记指令
执行完后,没有报错,可执行下面的指令,确认模型加载情况。
3. 模型的加载
这个命令会列出xinference支持的模型。确认custom-glm4-chat登记完毕后,即可加载模型。 智谱 AI GLM 教程
“xinference launch –model-name custom-glm4-chat –model-format pytorch”
然而这条指令不完善,因为没有指定model engine

model-engine的信息在glm4-9b-chat的详细资料中有简略提到过。

我们试试transformers
没有报错,模型加载成功了。glm4-9b-chat占用了18g多的显存

nvitop界面

4. 对话
运行以下代码即可进行推理
“xinference generate –model-uid custom-glm4-chat”
然而推理还是会遇到问题,这个模型在做无效输出。

问题分析:通过xinference –help, 我们可以看到很多xinference相关的参数
“xinference generate –model-uid custom-glm4-chat” 这条指令其实使用了xinference generate命令,但是根据custom-glm4-chat.json,对于custom-glm4-chat这个模型而言,它的能力是chat和tools,也许custom-glm4-chat不擅长做generate文本生成。

所以可以将xinference generate –model-uid custom-glm4-chat,改成
正常了。

既然可以chat, 那么tools呢?

可能是因为xinference的参数没有tools的选项,所以”xinference tools –model-uid custom-glm4-chat”是无效的。
以上就是通过xinference运行本地部署的custom-glm4-chat的开荒记录。还有很长的路要走。
发布者:Ai探索者,转载请注明出处:https://javaforall.net/263922.html原文链接:https://javaforall.net
