基于AutoDL部署langchain-chatchat-0.3.1实战

一、租用AutoDL云服务器,配置环境

1.1 配置AutoDL环境

注册好autodl账户之后,开始在上面租服务器,GPU我选择的是RTX4090*2,西北B区,基础镜像选择的是Pytorch-2.3.0-python-3.12(ubuntu22.04)- cuda版本12.1。

1.2 了解AutoDl学术加速的使用

进入JupyterLab,在/root目录下建立data文件夹,进行学术加速,提高在国外网站(github等学术网站)拉取文件的速度:

# 开启学术加速
source /etc/network_turbo# 取消学术加速:
unset http_proxy && unset https_proxy

1.3 基于AutoDL的虚拟环境激活

source ~/.bashrc
conda init

二、设置和安装Langchain-Chatchat及相关依赖


1.打开终端从github上将新版本的项目拉取下来,指令如下(如果学术加速不稳定,需要取消学术加速):

git clone https://github.com/chatchat-space/Langchain-Chatchat.git


2.新建一个虚拟环境(进入glm4_text前可能需要激活:source ~/.bashrc   conda init)

conda create -n glm4_text python==3.11
conda activate glm4_text

3.安装 Langchain-Chatchat,从 0.3.0 版本起,Langchain-Chatchat 提供以 Python 库形式的安装方式,具体安装请执行:(请不要着急使用该命令,看下一条命令)

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

4.因模型部署框架 Xinference 接入 Langchain-Chatchat 时需要额外安装对应的 Python 依赖库,因此如需搭配 Xinference 框架使用时,建议使用如下指令进行安装:(因为我使用的就是Xinference框架)

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

三、Xinference框架部署与大模型 & embidding模型加载


从 0.3.0 版本起,Langchain-Chatchat 不再根据用户输入的本地模型路径直接进行模型加载,涉及到的模型种类包括 LLM、Embedding、Reranker 及后续会提供支持的多模态模型等,均改为支持市面常见的各大模型推理框架接入,如 Xinference、Ollama、LocalAI、FastChat、One API 等。因此,请确认在启动 Langchain-Chatchat 项目前,首先进行模型推理框架的运行,并加载所需使用的模型。然后再正式启动 Langchain-Chatchat。

1.新开终端再次新建一个推理虚拟环境llm_tl并激活:

conda create -n llm_tl python==3.11
conda activate llm_tl

3.Xinference 在 Linux, Windows, MacOS 上都可以通过 pip 来安装。如果需要使用 Xinference 进行模型推理,可以根据不同的模型指定不同的引擎。

这一步骤请记得不要使用AutoDL中的无卡模式开机!不然会遇到进程杀死的错误!

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

报错:Failed to build llama-cpp-python
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (llama-cpp-python)

当前虚拟机的 g++ --version,发现版本为“g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0”,如果高于10的话就需要降级到10。降级后重新运行即可成功!

在创建的虚拟环境中更新需如下指令:

conda config --add channels conda-forgeconda install gxx_linux-64=10pip install "xinference[all]"  -i https://pypi.tuna.tsinghua.edu.cn/simple

4.本地运行Xinference配置

让我们以一个经典的大语言模型 glm4-9b-chat 来展示如何在本地用 Xinference 运行大模型,我这里自定义了一个存储日志文件和大模型,embedding模型的路径,如果不自定义一个路径将会下载到默认的一个路径下,这样很容易将我们的系统盘给撑爆,以魔塔社区下载模型为例。

XINFERENCE_HOME=/root/autodl-tmp/xinference XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997 

 5.新建一个终端依次输入如下代码:

进入llm_tl环境,输入如下指令下载embeding模型和glm4-chat模型。

xinference launch --model-name bge-large-zh-v1.5 --model-type embeddingxinference launch --model-engine vllm --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization none

遗憾的是看不到下载过程(不知道下载过程报错时如何处理),下载完后,我们安装apt-get install tree后,进入目录/root/autodl-tmp/xinference/modelscope,通过tree把文件路径列出来:

sudo apt-get update
apt-get install tree
tree
(base) root@autodl-container-75ca4f8174-f38c15a5:~/autodl-tmp/xinference/modelscope# tree
.
└── hub├── Xorbits│   └── bge-large-zh-v1___5│       ├── 1_Pooling│       │   └── config.json│       ├── README.md│       ├── config.json│       ├── config_sentence_transformers.json│       ├── configuration.json│       ├── model.safetensors│       ├── modules.json│       ├── pytorch_model.bin│       ├── sentence_bert_config.json│       ├── special_tokens_map.json│       ├── tokenizer.json│       ├── tokenizer_config.json│       └── vocab.txt└── ZhipuAI└── glm-4-9b-chat├── LICENSE├── README.md├── README_en.md├── config.json├── configuration.json├── configuration_chatglm.py├── generation_config.json├── model-00001-of-00010.safetensors├── model-00002-of-00010.safetensors├── model-00003-of-00010.safetensors├── model-00004-of-00010.safetensors├── model-00005-of-00010.safetensors├── model-00006-of-00010.safetensors├── model-00007-of-00010.safetensors├── model-00008-of-00010.safetensors├── model-00009-of-00010.safetensors├── model-00010-of-00010.safetensors├── model.safetensors.index.json├── modeling_chatglm.py├── tokenization_chatglm.py├── tokenizer.model└── tokenizer_config.json6 directories, 35 files

6.以使用 --model-uid 或者 -u 参数指定模型的 UID,如果没有指定,Xinference 会随机生成一个 ID,下面的命令xinference list 可以看出UID分别为glm4-chat和bge-large-zh-v1.5:

四、启动项目

1.切换成我们最开始新建的虚拟环境,在启动项目之前确保首先进行模型推理框架的运行,并加载所需使用的模型,查看与修改 Langchain-Chatchat 配置

运行chatchat --help命令:

chatchat --help

 2.可根据上述配置命令选择需要查看或修改的配置类型,以项目初始化init配置为例,想要进行项目初始化查看或修改时可以输入以下命令chatchat init --help获取帮助信息,如下图所示:

从返回信息可以看出,chatchat init可以指定API,LLM模型,Embedding模型等,使用如下命令指定默认llm和embedding。

chatchat init -l glm4-chat
chatchat init -e bge-large-zh-v1.5

3.初始化知识库(不初始化官方提供的知识库也没问题,后面直接在UI界面中操作自己的本地知识库就好!)。

chatchat kb -r

有一个报错:“ FileExistsError: 从文件 samples/test_files/langchain.pdf 加载文档时出错:[Errno 17] File exists: '/root/nltk_data/tokenizers' ” ,将文件'/root/data/Langchain-Chatchat/data/knowledge_base/samples/content/test_files/langchain.pdf'复制到'/root/nltk_data/tokenizers'即可。

4.启动项目

chatchat start -a

在本地服务器终端上运行:

ssh -p 46828 root@connect.westc.gpuhub.com -CNg -L 8501:127.0.0.1:8501 -o StrictHostKeyChecking=no 

输入AutoDL上复制到密码,即在本地电脑上通过127.0.0.1:8501访问到chatchat,可以看到当前部署到版本为0.3.1.3。

9.11和9.9谁更大,也回答得比较合理:

其它功能后续再继续摸索。

本文非原创,参考了如下博客(表示感谢):

基于AutoDL部署langchain-chatchat-0.3.0-CSDN博客

langchain-chatchat-0.3.0小白保姆部署指南-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424605.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP Fiori UI5-环境搭建-2022-2024界面对比

文章目录 一、Fiori项目初始化实际操作第一步:新建文件夹(项目文件)第二步:打开我们项目第三步:打开终端 部署环境第四步: XML中新增文本 二、 2023年Vscode中Fiori界面三 、2024年Vscode中Fiori界面 一、Fiori项目初始…

PHP仓库物资出入库管理系统小程序源码

仓库物资出入库管理系统:让库存管理变得井井有条 **📦 开篇:告别混乱,拥抱智能库存时代 还在为仓库里堆积如山的物资和繁琐的出入库记录而头疼吗?是时候告别那些混乱的日子了!“仓库物资出入库管理系统”应…

Android平台RTMP|RTSP播放器如何回调YUV或RGB数据?

技术选型 我们知道,Android平台一般RTMP|RTSP播放器通常不直接提供回调YUV或RGB数据的功能。如果播放端有视觉分析或类似的需求,需要播放端,能支持YUV或ARG的数据回调,一般来说,可参考的方法如下: 1. 使用…

MacOS Catalina 从源码构建Qt6.2开发库之01: 编译Qt6.2源代码

安装xcode, cmake, ninja brew install node mac下安装OpenGL库并使之对各项目可见 在macOS上安装OpenGL通常涉及到安装一些依赖库,如MGL、GLUT或者是GLEW等,同时确保LLVM的OpenGL框架和相关工具链的兼容性。以下是一个基本的安装…

linux 定时将固态硬盘数据备份至机械硬盘

需求背景 为了加强公司数据的安全性和可靠性,我们将实施一项数据备份策略。该策略涉及将服务器上的固态硬盘(SSD)中的关键数据定期备份到机械硬盘(HDD)上。这一过程旨在保护数据免受意外删除、硬件故障或其他潜在风险…

数组及使用方法

1. 数组 数组是由相同类型的数据元素构成的有限集合。数组是顺序存储方式,存储在连续内存空间中,可以通过下标直接存取元素。 数组的下标从0开始,第3个元素的下标为2,第3个元素为vec[2],如图所示。 在第3个元素之前插入一个元素9,需要从最后一个元素开始,后移一位,……

Element UI:初步探索 Vue.js 的高效 UI 框架

Element UI:初步探索 Vue.js 的高效 UI 框架 一 . ElementUI 基本使用1.1 Element 介绍1.2 Element 快速入门1.3 基础布局1.4 容器布局1.5 表单组件1.6 表格组件1.6.1 基础表格1.6.2 带斑马纹表格1.6.3 带边框表格1.6.4 带状态的表格 1.7 导航栏组件讲解 二 . 学生列…

【CSS in Depth 2 精译_031】5.3 Grid 网格布局的两种替代语法

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…

Vue生命周期;Vue路由配置;vue网络请求;vue跨域处理

一&#xff0c;Vue生命周期 <template><div > <h1 click"changeText">{{ info }}</h1></div> </template><script> export default {name: HelloWorld,data(){return{info:"介绍组件生命周期"}},methods:{chang…

[000-002-01].第03节:Linux系统下Oracle的安装与使用

2.1.Docker安装Oracle 在CentOS7中使用Docker安装Oracle&#xff1a; 1.安装Docker,详细请参考&#xff1a;https://blog.csdn.net/weixin_43783284/article/details/1211403682.拉取镜像&#xff1a; docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g3.下载…

《OpenCV计算机视觉》—— 图像轮廓检测与绘制

文章目录 一、轮廓的检测二、轮廓的绘制图像轮廓检测与绘制的代码实现 三、轮廓的近似 一、轮廓的检测 轮廓检测是指在包含目标和背景的数字图像中&#xff0c;忽略背景和目标内部的纹理以及噪声干扰的影响&#xff0c;采用一定的技术和方法来实现目标轮廓提取的过程注意:做轮…

linux驱动开发-磁盘管理

目录 一、mount基本语法 二、常见选项 三、常用命令 二 fdisk --磁盘分区工具 fdisk作用 命令格式&#xff1a; 选项 分区示例 查看分区情况 -p 删除分区 -d 新增分区 -n 修改分区类型 —— t 保存之前所有的操作 —— w 在Linux系统中&#xff0c;mount命令是一种…

redis-shake v4全量增量同步redis数据

1 概述 RedisShake是一个用于处理和迁移 Redis 数据的工具&#xff0c;github地址是https://github.com/tair-opensource/RedisShake。它提供以下特性&#xff1a; 1&#xff09;Redis 兼容性&#xff1a; RedisShake 兼容从 2.8 到 7.2 的 Redis 版本&#xff0c;并支持各种部…

Parallels Desktop 20 for Mac中文版发布了?会哪些新功能

Parallels Desktop 20 for Mac 正式发布&#xff0c;完全支持 macOS Sequoia 和 Windows 11 24H2&#xff0c;并且在企业版中引入了全新的管理门户。 据介绍&#xff0c;新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新&#xff0c;最大的亮点是全新推出的 Parallels…

微软面向所有用户推出 Xbox Game Pass Standard

2024 年 8 月下旬&#xff0c;微软启动了 Xbox Game Pass Standard 的公开测试&#xff0c;这是其不断发展的 Game Pass 套餐中的一个新层级。几周后的今天&#xff0c;Xbox Game Pass 标准版已向支持地区的所有 Xbox 用户开放。 Xbox Game Pass 标准版每月收费 14.99 美元。以…

[Linux]:进程间通信(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 进程间通信介绍 1.1 进程间通信的概念 进程间通信简称IPC&#xff08;In…

我对 monorepo 的一些思考

我对 monorepo 的一些思考 我对 monorepo 的一些思考 前言它的由来技术选型 管理工具语言与打包调试工具测试框架代码规范与质量控制本地引用与发包替换发包流程Github 相关配置部署 使用手册 功能特性总结如何使用&#xff1f;清除默认的包(可选)模板包介绍 packagesapps 更新…

GPU池化为实现Robotaxi按下快进键

日前&#xff0c;甲子光年智库推出《2022中国Robotaxi行业研究报告&#xff1a;探寻规模化商业落地之路》。Robotaxi&#xff08;无人驾驶出租车&#xff09;是自动驾驶技术发展应用的终极目标之一&#xff0c;新基建下的智慧共享出行将链接贯穿未来数智化生活全场景。 该报告从…

七. 部署YOLOv8检测器-quantization-analysis

目录 前言0. 简述1. 案例运行2. 补充说明3. 量化分析4. 探讨总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第七章—部署YOLOv8检测器&#xff0c;一起来学习…

C语言:链表

链表是一种常见的基础数据结构&#xff0c;它由一系列节点&#xff08;Node&#xff09;组成。每个节点包含两部分&#xff1a;数据域&#xff08;存储数据&#xff09;和指针域&#xff08;存储下一个节点的地址&#xff09;。链表的特点是元素在内存中不一定连续存储&#xf…