记录linux本地部署Langchain-chatchat-v0.3+Xinference+qwen-chat 1.5-72B

小东西啊 2024-10-01 09:07:03 阅读 95

非源码部署!!!! 未用docker,用的conda虚拟环境,Langchain-chatchat-v0.3+Xinference需要分别单独放进虚拟环境,要创建两个虚拟环境,防止包冲突。

1.Xinference环境配置

1.1 首先搭建一个xinference的虚拟环境

<code>conda create -n xinfer python=3.10

conda activate xinfer

用的py3.10,调研了一下说好像稳定些。

另外附上conda镜像源配置:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

conda config --show-source

因为是新服务器,遇到了创建新环境出错,报错镜像未配置,然后配置完又报错访问不到清华镜像之类的,最后发现是服务器未配置DNS的问题,ping不通,是网络问题,以为是镜像源的问题,尴尬。。。

1.2 在环境中安装xinference

用以下命令安装 Xinference ,本人只安装了transformers引擎,几乎包含了所有最新的llm,够用

pip install "xinference[transformers]" -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install "xinference[vllm]" -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install "xinference[transformers,vllm]" # 同时安装这两个引擎

pip install "xinference[all]" -i https://pypi.tuna.tsinghua.edu.cn/simple

1.3 运行xinference

等待安装结束,xinference 默认会在本地启动服务,端口默认为 9997,因为这里配置了-H 0.0.0.0参数,非本地客户端也可以通过机器的 IP 地址来访问 xinference 服务。用下面代码运行,最好加个端口号,本人服务器端口映射有问题,额,访问不到默认的地址,导致每次启动都会变更端口号,麻烦。

XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 59076

启动成功后,我们可以通过地址 http://服务器ip:59076来访问 xinference 的 WebGUI 界面了。

如图:

1.4 下载模型

点击左侧功能的Launch Model,在language models中搜索想要模型,搜索到想要模型,点击小卡片进入即可,进入后选择下载模型的配置参数(下图),然后点击小火箭下载运行模型即可。这里本人安装的qwen1.5-chat-72B-int4,下载了130个g左右,第一次下载时间较长。

这里如果当前路径下载模型内存不够的话,可以修改xinference的存储路径,代码如下:

<code>vim .bashrc

source ~/.bashrc

export TMPDIR=/dev/shm/tmp #这里把临时路径也改了

export XINFERENCE_HOME=/dev/shm/tmp/xinference #xinference的路径,改成自己路径即可

export MODELSCOPE_CACHE==/dev/shm/modelscope/hub #xinference的路径,改成自己路径即可

下载并运行完成后,点击左侧的Running models,可以看到正在运行的模型,点击下图中红色标识的小框,即可跳转webui界面。

1.5 下载Embeddings模型

在Launch Model中,选择Embedding Models,在里面选取自己想要的Embedding模型下载即可,本人下载的为bge-base-zh-v1.5

点击小火箭🚀运行就好。

2. Langchain-chatchat环境配置

2.1 首先搭建一个Langchain-chatchat的虚拟环境

同xinference,然后进入虚拟环境

<code>conda create -n chatchat python=3.10

conda activate chatchat

2.2 在环境中安装Langchain-chatchat

未用Git源码的方式,直接运行以下代码即可:

pip install "langchain-chatchat[xinference]" -U -i https://pypi.tuna.tsinghua.edu.cn/simple

2.3 运行Langchain-chatchat

2.3.1 初始化

执行初始化命令,生成配置文件和默认的知识库文件

chatchat init

 如下图所示:

这个生成的配置文件,当前用户在哪个目录(pwd查看当前目录),就会出现在哪个目录,不用配置。

2.3.2 修改配置文件

主要是修改model_settings.yaml这个文件,修改如下图所示:

2.3.3 初始化知识库

用以下代码初始化。

<code>chatchat kb -r

注意!!!!  知识库初始化前,请确保已经启动模型推理框架及已下载的 Embedding 模型

未启动出现了这个错误:

 | ERROR | chatchat.server.knowledge_base.kb_cache.faiss_cache:load_vector_store:140 - Error raised by inference endpoint: HTTPool(host='127.0.0.1', port=11434): Max retries exceeded with url: /api/embeddings (Caused by NewConnectionError('<urllib3.connection.HTTPConnection obj8f1eed18a0>: Failed to establish a new connection: [Errno 111] Connection refused'))

 | ERROR | chatchat.init_database:worker:61 - 向量库 samples 加载失败。

初始化知识库成功后,如下图所示

初始化知识库的时候,遇到了加载不到info.db的问题,

<code>| ERROR | chatchat.init_database:worker:61 - (sqlite3.OperationalError) unable to open database file

(Background on this error at: https://sqlalche.me/e/20/e3q8)

调研了下,有两种办法:

(1)在配置文件里,把这个路径换成相对路径(失败,我自己文件写的就是绝对路径)

(1)换个用户当前路径,再重新初始化配置文件(成功)

2.3.4 运行Langchain-chatchat

chatchat start -a

运行成功截图如下:

访问URL即可跳到WEBUI界面:

遇到的问题:

打开Langchain-chatchat的webUI输入对话内容的时候,提示xinference上的模型openAI访问被拒绝,重新运行xinference的时候换了个端口,就通了,额。。。。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。