【LLM】-05-提示工程-部署Langchain-Chat

news2024/11/14 21:02:37

目录

1、软硬件要求

1.1、软件要求

1.2、硬件要求

1.3、个人配置参考

2、创建cuda环境

3、下载源码及模型

4、配置文件修改

5、初始化知识库

 5.1、训练自己的知识库

6、启动

7、API接口调用

7.1、使用openai


 

参考官方wiki,本文以Ubuntu20.04_x64,RTX4090,chatglm3-6b 模型为基础

1、软硬件要求

1.1、软件要求

  • Linux Ubuntu 22.04.5 kernel version 6.7

开发者在以下环境下进行代码调试,在该环境下能够避免最多环境问题。

  • Python 版本 == 3.11.7
  • CUDA 版本: == 12.1

1.2、硬件要求

在GPU运行本地模型的 FP16 版本

  • ChatGLM3-6B & LLaMA-7B-Chat 等 7B模型
    • 最低显存要求: 14GB
    • 推荐显卡: RTX 4080
  • Qwen-14B-Chat 等 14B模型
    • 最低显存要求: 30GB
    • 推荐显卡: V100
  • Yi-34B-Chat 等 34B模型
    • 最低显存要求: 69GB
    • 推荐显卡: A100
  • Qwen-72B-Chat 等 72B模型
    • 最低显存要求: 145GB
    • 推荐显卡:多卡 A100 以上

一种简单的估算方式为:

FP16: 显存占用(GB) = 模型量级 x 2
Int4: 显存占用(GB) = 模型量级 x 0.75

1.3、个人配置参考

处理器: Intel® Core™ i9 processor 14900K 
内存: 256 GB DDR5
显卡组:  NVIDIA RTX4090 X 1 / NVIDIA RTXA6000 X 1
硬盘: 1 TB
操作系统: Ubuntu 22.04 LTS / Arch Linux, Linux Kernel 6.6.7
显卡驱动版本: 545.29.06
Cuda版本: 12.3 Update 1
Python版本: 3.11.7

 

2、创建cuda环境

# 创建chatchat 环境
conda create -n chatchat python=3.11.8

# 激活环境
conda activate chatchat

3、下载源码及模型

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

# 进入目录
cd Langchain-Chatchat

# 安装全部依赖
pip install -r requirements.txt

# 模型下载 chatglm3-6b
# 需要在hugging face中下载,依赖lfs 插件, 并且需要借助VPN
cd /home/chatchat/models
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b

git clone https://huggingface.co/BAAI/bge-large-zh-v1.5

# git clone https://huggingface.co/THUDM/chatglm2-6b
# git clone https://huggingface.co/moka-ai/m3e-base

4、配置文件修改

1、在/home/chatchat/Langchain-Chatchat/configs目录下面找到model_config.py修改其中模型配置

我的目录结构

- Langchain-Chatchat  

- models

  --bge-large-zh  

  --chatglm3-6b

 

1e7edfcc130c406c8d232d106c3c9de8.png

 

2、服务和端口配置项 server_config.py

通常,这个页面并不需要进行大量的修改,仅需确保对应的端口打开,并不互相冲突即可。

如果你是Linux系统推荐设置

DEFAULT_BIND_HOST ="0.0.0.0"

 

5、初始化知识库

当前项目的知识库信息存储在数据库中,在正式运行项目之前请先初始化数据库(我们强烈建议您在执行操作前备份您的知识文件)。

 5.1、训练自己的知识库

cd /home/chatchat/models
# 文字转向量模型
git clone https://huggingface.co/BAAI/bge-large-zh
  •  如果您是第一次运行本项目,知识库尚未建立,或者之前使用的是低于最新master分支版本的框架,或者配置文件中的知识库类型、嵌入模型发生变化,或者之前的向量库没有开启 normalize_L2,需要以下命令初始化或重建知识库:
cd /home/chatchat/Langchain-Chatchat
python init_database.py --recreate-vs
  • 如果您已经有创建过知识库,可以先执行以下命令创建或更新数据库表:

cd /home/chatchat/Langchain-Chatchat
python init_database.py --create-tables

        如果可以正常运行,则无需再重建知识库。

6、启动

python startup.py -a

cdf8f78993f94bc8b820c705b5ec239f.png

可视化页面

注意左侧的温度参数:Temperature。对回答结果有影响

a6e4e50998f9460788bbd9750388524c.png

 

启动参数

  • --all-webui 为一键启动 WebUI 所有依赖服务;
  • --all-api 为一键启动 API 所有依赖服务;
  • --llm-api 为一键启动 Fastchat 所有依赖的 LLM 服务;
  • --openai-api 为仅启动 FastChat 的 controller 和 openai-api-server 服务;
  • 其他为单独服务启动选项。

若想指定非默认模型,需要用 --model-name 选项,示例:

python startup.py --all-webui --model-name Qwen-7B-Chat

更多信息可通过 查看。

python startup.py -h 

ba57aa2eb3cc4953835709264c8de91c.png

 

7、API接口调用

7.1、使用openai

# 需要安装openai 依赖,如果报错,安装指定版本,
# pip install openai==0.28
import openai
openai.api_key = "EMPTY"
openai.api_base = "http://192.168.1.1:20000/v1"

model = "chatglm3-6b"

# create a chat completion
completion = openai.ChatCompletion.create(
  model=model,
  messages=[{"role": "user", "content": "你好"}]
)
print(completion.choices[0].message.content)

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘!电源炼成记:从基础原理到高端设计的全面解析

文章目录 初始构想:需求驱动设计原理探索:选择适合的拓扑结构精细设计:元器件选型与布局环路稳定:控制策略与补偿网络严格测试:验证与优化持续改进:创新与技术迭代《硬件十万个为什么(电源是怎样…

云计算实训11——web服务器的搭建、nfs服务器的搭建、备份静态文件、基于linux和windows实现文件共享

一、搭建web服务器 1.关闭firewall和selinux 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 停用selinux setenforce 0 配置文件中让sellinux不再启动 vim /etc/selinux/config SELINUXpermissive 2.编辑dns配置文件 vim /etc/resolv.conf nameserver 114.…

Sql Server缓冲池、连接池等基本知识(附Demo)

目录 前言1. 缓存池2. 连接池3. 彩蛋 前言 基本的知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)Mysql优化高级篇(全)Mysql底层原理详细剖析常见面试题(全) 1…

【深度学习入门篇 ⑪】自注意力机制

【🍊易编橙:一个帮助编程小伙伴少走弯路的终身成长社群🍊】 大家好,我是小森( ﹡ˆoˆ﹡ ) ! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…

基于微信小程序+SpringBoot+Vue的大学生科技竞赛管理系统(带1w+文档)

基于微信小程序SpringBootVue的大学生科技竞赛管理系统(带1w文档) 基于微信小程序SpringBootVue的大学生科技竞赛管理系统(带1w文档) 本系统中采用的开发工具包括软件工具和硬件工具,软件采用了Java语言和MySQL数据库,利用微信小程序技术,框架…

从零训练一个多模态LLM:预训练+指令微调+对齐+融合多模态+链接外部系统

本文尝试梳理一个完整的多模态LLM的训练流程。包括模型结构选择、数据预处理、模型预训练、指令微调、对齐、融合多模态以及链接外部系统等环节。 01 准备阶段 1 模型结构 目前主要有三种模型架构,基于Transformer解码器,基于General Language Model&a…

51单片机嵌入式开发:16、STC89C52RC 嵌入式之 步进电机28BYJ48、四拍八拍操作

STC89C52RC 嵌入式之 步进电机28BYJ48、四拍八拍操作 STC89C52RC 之 步进电机28BYJ48操作1 概述1.1 步进电机概述1.2 28BYJ48概述 2 步进电机工作原理2.1 基本原理2.2 28BYJ48工作原理2.3 28BYJ48控制原理 3 电路及软件代码实现4 步进电机市场价值 STC89C52RC 之 步进电机28BYJ…

英语(二)-我的学习方式

章节章节汇总我的学习方式历年真题作文&范文 目录 1、背单词 2、学语法 3、做真题 4、胶囊助学计划 写在最前:我是零基础,初二就听天书的那种。 本专栏持续更新学习资料 1、背单词 单词是基础,一定要背单词!考纲要求要…

瑞吉外卖学习(一)

pom文件的导入中 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version><relativePath/> <!-- lookup parent from repository --></…

【STM32 HAL库】DMA+串口

DMA 直接存储器访问 DMA传输&#xff0c;将数据从一个地址空间复制到另一个地址空间。-----“数据搬运工”。 DMA传输无需CPU直接控制传输&#xff0c;也没有中断处理方式那样保留现场和恢复现场&#xff0c;它是通过硬件为RAM和IO设备开辟一条直接传输数据的通道&#xff0c…

构建网络安全之盾:应对“微软蓝屏”教训的全面策略

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

【算法】一致性哈希

一、引言 在分布式系统中&#xff0c;数据存储和访问的均匀性、高可用性以及可扩展性一直是核心问题。一致性哈希算法&#xff08;Consistent Hashing&#xff09;是一种分布式算法&#xff0c;因其出色的分布式数据存储特性&#xff0c;被广泛应用于缓存、负载均衡、数据库分片…

【Django5】模板引擎

系列文章目录 第一章 Django使用的基础知识 第二章 setting.py文件的配置 第三章 路由的定义与使用 第四章 视图的定义与使用 第五章 二进制文件下载响应 第六章 Http请求&HttpRequest请求类 第七章 会话管理&#xff08;Cookies&Session&#xff09; 第八章 文件上传…

如何检查我的网站是否支持HTTPS

HTTPS是一种用于安全通信的协议&#xff0c;是HTTP的安全版本。HTTPS的主要作用在于为互联网上的数据传输提供安全性和隐私保护。通常是需要在网站安装部署SSL证书来实现网络数据加密传输&#xff0c;安全加密功能。 那么如果要检查你的网站是否支持HTTPS&#xff0c;可以看下…

培训第十一天(nfs与samba共享文件)

上午 1、环境准备 &#xff08;1&#xff09;yum源 &#xff08;一个云仓库pepl仓库&#xff09; [rootweb ~]# vim /etc/yum.repos.d/hh.repo [a]nameabaseurlfile:///mntgpgcheck0[rootweb ~]# vim /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0[rootweb ~]# mount -a[…

软件测试09 自动化测试技术(Selenium)

重点/难点 重点&#xff1a;理解自动化测试的原理及其流程难点&#xff1a;Selinum自动化测试工具的使用 目录 系统测试 什么是系统测试什么是功能测试什么是性能测试常见的性能指标有哪些 自动化测试概述 测试面临的问题 测试用例数量增多&#xff0c;工作量增大&#xff…

数据结构初阶(C语言)-二叉树

一&#xff0c;树的概念与结构 树是⼀种非线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 1.有⼀个特殊的结点&a…

ubuntu22安装拼音输入法

专栏总目录 一、安装命令&#xff1a; sudo apt update sudo apt install fcitx sudo apt install fcitx-pinyin 二、切换输入法

吴恩达深度学习笔记1 Neural Networks and Deep Learning

参考视频&#xff1a;(超爽中英!) 2024公认最好的【吴恩达深度学习】教程&#xff01;附课件代码 Professionalization of Deep Learning_哔哩哔哩_bilibili Neural Networks and Deep Learning 1. 深度学习引言(Introduction to Deep Learning) 2. 神 经 网 络 的 编 程 基 础…

数据库安全:MySQL安全配置,MySQL安全基线检查加固

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…