互联网部署chatglm3-6b,及内网环境迁移。

chatglm3-6b安装部署

一、安装****Anaconda3****(互联网)

1.因为不同大模型的webui会对python版本和pip模块不同需求,所以需要安装Anaconda来管理不同的python版本和pip模块。

sudo chmod 755 Anaconda3-2023.07-2-Linux-x86_64.sh  //授权
sudo sh Anaconda3-2023.07-2-Linux-x86_64.sh  //安装

2.按回车观看更多许可信息,按 Q 键跳过
4.是否接受许可条款, 输入yes回车
5. 是否将Anaconda安装在当前路径下,可以输入新的路径回车安装,如果直接回车安装在默认路径下
6. 输入conda -V 查看安装版本
7. 输入conda list 查看已安装科学包
8. *创建一个名字为langchain的python3.11.7虚拟环境,为大模型运行坐准备

conda create --name langchain python==3.11.7  -y

9.安装完毕后,通过以下命令激活python虚拟环境

conda activate langchain

二、大模型安装部署

大模型安装部署也可直接参考官网:https://github.com/chatchat-space/Langchain-Chatchat?tab=readme-ov-file

1.环境检查

  • 首先,确保机器安装了 Python 3.8 - 3.11 (官网推荐使用 Python3.11)。

  • $ python --version
    Python 3.11.7
    

2.下载Langchain-chatchat,大模型,向量库

下载langchain chatchat webui

项目地址:https://github.com/chatchat-space/Langchain-Chatchat

//拉取命令
cd /data/webui  //在自己的电脑创建此目录
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
mv Langchain-Chatchat langchainchatchat       #去掉文件名中的横杠,防止程序报错

3.下载chatglm3-6b大模型

项目地址:https://modelscope.cn/models/ZhipuAI/chatglm3-6b/files

//拉取命令
cd /data/models
git install lfs
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
mv chatglm3-6b chatglm36b      #去掉文件名中的横杠,防止程序报错

注意:一定注意检查拉取下来的项目是否完整,若有遗漏请访问项目地址进行单独下载拉取。通过git拉取可能会遗漏.safetensors、.bin、.model

4.下载bge-large-zh向量模型

项目地址:https://modelscope.cn/models/AI-ModelScope/bge-large-zh/files

//拉取命令
cd /data/models
git install lfs
git clone https://www.modelscope.cn/AI-ModelScope/bge-large-zh.git
mv bge-large-zh bgelargezh     #去掉文件名中的横杠,防止程序报错

注意:一定注意检查拉取下来的项目是否完整,若有遗漏请访问项目地址进行单独下载拉取。通过git拉取可能会遗漏.bin

5.安装langchain-chatchat pip依赖组件

cd /data/webui/langchainchatchat
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

6.检查torch,cuda是否安装正确

安装完成后,进入python命令行,使用如下命令检查torch,cuda。

python
import torch
torch.__version__
torch.cuda.is_available()

在这里插入图片描述
如果发现不是cu版本呢,可能是因为nvidia显卡的驱动以及cuda版本没有安装正确,解决方案是去官方下载对应显卡的驱动,nvidia-tool kit, cuda,python等。
至此langchain-chatchat的基础运行环境安装完毕。
7.配置、启动langchain-chatchat
配置文件修改,生成默认配置文件

cd /data/webui/langchainchatchat
python copy_config_example.py

此命令会在/data/webui/langchainchatchat/langchainchatchat/config下生成一份默认配置文件,如下图:

在这里插入图片描述
主要修改model_config.py这个文件。

cd /data/webui/langchainchatchat/langchainchatchat/config
vi model_config.py

​ 1.第9行, 修改成EMBEDDING_MODEL = “bge-large-zh”
在这里插入图片描述
​ 2.第29行,只保留chatglm3-6b即可
在这里插入图片描述
​ 3.第155行,修改bge-large-zh向量模型路径,改成本地实际存储路径,如本文中的/data/models/bgelargezh
在这里插入图片描述
​ 4.168行,chatglm3-6b模型路径,改成本地实际存储路径,如本文中的/data/models/chatglm36b,如果使用其他模型,对应改下模型名称后面的路径即可。
在这里插入图片描述
8.初始化向量库

删除默认知识库中的知识文件,然后初始化向量库。

cd /data/webui/langchainchatchat
rm -rf knowledge_base/samples
python init_database.py --recreate-vs

初始化向量库执行结果类似下图:
在这里插入图片描述
9.启动大模型

python startup.py -a

当看到
You can now view your Streamlit app in your browser.
URL: http://0.0.0.0:8501时,表明大模型已经加载启动完毕,这时可以通过浏览器打开 http://ip:8501 访问了

在这里插入图片描述
9.创建新的知识库

点击左侧“知识库管理”,在右侧,新建知识库,输入知识库名(只能使用英文),知识库简介(可以使用中英文),向量库类型 faiss, embedding模型 bge-large-zh,点击新建。

三、Anaconda完全离线环境迁移(A互联网机器,B离线机器)

1.检查A机环境中的包是否存在不兼容现象

命令:Pip check

具体问题具体分析,建议用conda装(对于依赖的检测安装功能更加强大)
2.用conda 导出依赖清单

conda list
conda env export > your_env.yaml

如下,可以看到这里分别有conda依赖清单和pip依赖清单。

  dependencies:
    
      - alabaster=0.7.12=py_0
      - astroid=2.4.2=py36h9f0ad1d_0
      - async_generator=1.10=py_0
      - attrs=20.2.0=pyh9f0ad1d_0
      - babel=2.8.0=py_0
      - backcall=0.2.0=pyh9f0ad1d_0
      - backports=1.0=py_2
      - backports.functools_lru_cache=1.6.1=py_0
      - bleach=3.2.1=pyh9f0ad1d_0
      - ca-certificates=2021.5.30=h5b45459_0
      - certifi=2021.5.30=py36ha15d459_0
      - chardet=3.0.4=py36h9f0ad1d_1007
      - colorama=0.4.3=py_0
      - cudnn=6.0=0
      - decorator=4.4.2=py_0
      - defusedxml=0.6.0=py_0
      - docutils=0.16=py36h9f0ad1d_1
      - entrypoints=0.3=py36h9f0ad1d_1001
      - webencodings=0.5.1=py_1
      - wheel=0.35.1=pyh9f0ad1d_0
      - widgetsnbextension=3.5.1=py36h9f0ad1d_1
      - wincertstore=0.2=py36_1003
      - winpty=0.4.3=4
      - wrapt=1.11.2=py36h68a101e_0
      - zeromq=4.3.2=h6538335_2
      - zipp=3.3.0=py_0
      - zlib=1.2.11=h2fa13f4_1004
      - pip:
        - absl-py==0.10.0
        - altgraph==0.17
        - argon2-cffi==20.1.0
        - astor==0.8.1
        - atomicwrites==1.4.0
        - autopep8==1.5.4
        - bcrypt==3.2.0
        - blessings==1.7
        - cachetools==4.1.1
        - cffi==1.14.3
        - cloudpickle==1.6.0
        - cryptography==3.4.7
        - cycler==0.10.0
        - dataclasses==0.8
  ```

3.修改依赖列表清单

  • 在A机上建立一个txt文件,命名为conda.yaml,其中复制入dependencies中的依赖名称(不包含dependencies)。并将“XXX
    -”替换为“”(XXX表示空格,替换为空),如果不修改,安装时报错。记事本编辑\替换可以完成这个操作。如下:
alabaster=0.7.12=py_0
astroid=2.4.2=py36h9f0ad1d_0
async_generator=1.10=py_0
attrs=20.2.0=pyh9f0ad1d_0
babel=2.8.0=py_0
backcall=0.2.0=pyh9f0ad1d_0
backports=1.0=py_2
backports.functools_lru_cache=1.6.1=py_0
bleach=3.2.1=pyh9f0ad1d_0
ca-certificates=2020.6.20=hecda079_0
certifi=2020.6.20=py36h9f0ad1d_0
chardet=3.0.4=py36h9f0ad1d_1007
colorama=0.4.3=py_0
cudatoolkit=10.0.130=0
cudnn=7.6.0=cuda10.0_0
decorator=4.4.2=py_0
  • 2.在A机上再建立一个txt文件,命名为pip.txt。在其中复制入pip:内的部分。按照1步中的方法,将“ -”替换为“”。如下:
absl-py==0.10.0
altgraph==0.17
argon2-cffi==20.1.0
astor==0.8.1
atomicwrites==1.4.0
autopep8==1.5.4
bcrypt==3.2.0
blessings==1.7
cachetools==4.1.1
cffi==1.14.3
cloudpickle==1.6.0
cryptography==3.4.7
cycler==0.10.0

4.获取依赖安装包

  • 获取conda依赖安装包
    进入A机anaconda安装根目录中的pkgs(注意不是环境中的),拷贝出所有的“.conda”,“.tar.bz2”文件到‘condafile’,上面的文件为这些包的解压文件。这些文件就是以前用conda安装时下载的安装包文件。
  • 下载pip依赖安装包 在A机上利用pip根据pip.txt中的清单下载依赖包。这里我cd到了Desktop,-r表示依赖清单,-d表示存储依赖的路径。
pip download -r pip.txt -d pipfile
  • 之后将这两部分的文件拷贝到另一个文件下,可以命名为pipfile。 最终在A机上建立如下结构的文件:
--\transference
	--\condafile
	--\conda.yaml
	--\pipfile
	--\pip.txt

5.B机安装依赖

在B机上安装好anaconda之后,离线创建环境,并进入环境:

conda create -n csdntest --offline
conda activate csdntest
5.1 Conda依赖安装

​ 将前面的transference拷贝到B机桌面上,cd到该路径下,按照conda.yaml从transference离线安装依赖。

  • ​ 1.将condafile里面的所有文件拷贝到anaconda安装根目录下的pkgs,重复的文件复制或替换,这个目录就是conda的安装的缓存目录。
  • 2.cd 到conda.yaml 的目录下
  • ​3. 安装依赖
conda install --file conda.yaml --offline

  • 4.安装过程中可能会报错,可能是由于安装了其他python版本的包,或者是其依赖库没有找到。具体问题具体分析,下载相对应的库。可以看到conda的软件已经全部安装,当然包括python和pip,这样一下步就可以使用pip安装了。
5.2 Pip依赖安装

同样的操作:

  1. cd 到pip.txt 的路径下。
  2. 安装依赖
Pip install -r pip.txt --no-index --find-links=.  --user

导入第三方包,测试表明,环境顺利迁移!

小问题:
如果使用pip freeze > requirements.txt 命令导出已安装的模块,其中部分模块显示了 @ file:///…,而不是具体的版本号。
原因:
这是 pip 安装软件包的一种特殊语法(自19.1开始受支持)PEP404,但是该此种路径取决于环境,file:///URL 仅在本地文件系统上可用,你不能将生成的 requirements.txt 文件提供给其他人使用
解决:
当遇到此类问题时,可以暂时考虑使用如下命令生成 requirements.txt 文件

pip list --format=freeze > requirements.txt

使用上述命令导出的文件中,会包含如下几个包:distribute,pip,setuptools,wheel,建议手动删除!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值