保姆级指导0基础如何快速搭建“对话机器人”类ChatGPT

参考了CDSN上的文章,但发现不work, 不是这里有问题,就是那里有问题,查阅了大量的资料,做了无数次试验,终于整理出来了一个完整的教程,保可用,保真~~~~~如果各位遇到什么问题,也可以私信我

我把每个环节遇到的坑,都填平了,如果按我的操作,免去了大家查各种问题的富贵时间。祝你也能一次性来到人机对话的界面:

在这里插入图片描述

不多废话了,直接说,如何使用腾讯云上的机器,自建一个简单的类似ChatGPT、Kimi的会话机器人(没有他们的强大)

一、选择云服务器
1.申请云服务器

建议使用按量付费,按小时算还是非常便宜的。
硬件配置:
系统:ubuntu,20.04
系统盘:150G
GPU:12核44G,1 * NVIDIA A10(32G),硬盘150G,1*NVIDIA A10(24G)

在这里插入图片描述

软件版本:

由于A10的驱动,cuda均未安装,为了省事,直接申请了另一台,初始化完成后,打成镜像,然后再为A10重装就可以了,这样最省事。当然也可以手动安装。

使用的V100的镜像,初始化条件选择如下:
在这里插入图片描述

配置安全组,出全放开,入至少放开22和8760。
后付费要注意:要满足余额不低于要冻结金额。

2.GPU确认
登录服务器后,在安装V100的镜像时,可以看到显卡驱动在安装。(早了晚了可能都会错过这个页面)
在这里插入图片描述
等待显卡驱动安装完成后(会有一段时间),做下显卡确认
nvidia-smi
用于确认cuda版本。

安装cuda toolkit
sudo apt install nvidia-cuda-toolkit #时间有点久
如上面所述,然后制作为镜像,再导入到我们的A10当中。(重装系统)

二、安装并配置Python环境

1.安装python3.10
sudo apt-get update
sudo apt-get upgrade #需等待
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt -y install python3.10
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1

#验证安装成功,均返回Python 3.10.13
python3.10 --version
python3 --version

#升级pip
wget https://bootstrap.pypa.io/get-pip.py
python3.10 get-pip.py

2.安装Git和Git LFS软件
sudo apt install -y git git-lfs python3.10-distutils

3.安装模型所需要的Python包

在此之前,先把pip工具设置好。
看两处pip的版本是否一致:
第一种方式:pip show pip
第二种方式:python3.10 -m pip --version
若不一样,则:
然后修改两个文件:sudo vim /usr/bin/pip 以及sudo vim /usr/bin/pip3,将每个文件里面的两个版本号位置,修改为新的,最后再用pip show pip验证下。

#需等待,可能要不停地试,直到成功
pip install git+https://github.com/huggingface/transformers

#1.如果上面pip工具没设置好,可能会有如下报错:
在这里插入图片描述
回到上面处理吧,也可以参考:https://zhuanlan.zhihu.com/p/664770225
#2.如果报128,则看 https://zhuanlan.zhihu.com/p/648289974
下载到本地再上传 或者等网络环境好的时候下载。

继续执行:
pip install sentencepiece==0.1.97 -i https://pypi.tuna.tsinghua.edu.cn/simple

#需等待,非常漫长
pip install peft==0.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

4.验证:在PyTorch环境下验证GPU是否正常工作
python3.10
import torch
#返回值为true,表示正常工作
torch.cuda.is_available()
quit()
有可能会报cuda与python版本不匹配的问题:需要选择正确版本的CUDA和PyTorch安装(windows)
参考:https://zhuanlan.zhihu.com/p/672526561

三、下载与配置模型

1.下载Chinese-LLaMA-Alpaca模型。
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git
本地已下载:Chinese-LLaMA-Alpaca-main.zip

修改代码:Chinese-LLaMA-Alpaca/scripts/merge_llama_with_chinese_lora.py文件,dType类型 由float16全部换为bfloat16
全部修改为:
torch_dtype=torch.bfloat16

否则,在最终运行时,会报错:RuntimeError: probability tensor contains either inf, nan or element < 0
2.下载chinese-alpaca-lora-13b模型
git-lfs clone https://huggingface.co/ziqingyang/chinese-alpaca-lora-13b
大概率会失败,解决办法是把该文件夹下载到本地,然后再上传到服务上

//如果需要文件进行下载,可以联系我:lucky_shisheng
scp -r chinese-alpaca-lora-13b ubuntu@106.52.198.183:~
修改代码:chinese-alpaca-lora-13b中的adapter_config.json
去掉两行:
“enable_lora”: null,
“merge_weights”: false,

否则,在最终运行时,会报错:TypeError: init() got an unexpected keyword argument ‘enable_lora’

3.下载 llama-13b-hf模型
git-lfs clone https://huggingface.co/decapoda-research/llama-13b-hf
大概也会失败,解决办法是用wget直接下载,或者是像上面一样,下载到本地后,再上传上去。

//如果需要文件进行下载,可以联系我:lucky_shisheng
scp -r llama-13b-hf ubuntu@106.52.198.183:~

4.合并代码
合并代码,生成新模型
cd Chinese-LLaMA-Alpaca/
python3.10 scripts/merge_llama_with_chinese_lora.py --base_model ~/llama-13b-hf/ --lora_model ~/chinese-alpaca-lora-13b/ --output_type huggingface --output_dir ./llama_with_lora_hf

在这里,指定了base model和lora_model,输出路径为./llama_with_lora_hf
如果出现被kill,则是资源内存不足,需要换台机器来做。

合并完成后,可以确认一下转换完成后的文件内容,大概25G
ls -lh llama_with_lora_hf

四、部署WebUI

1.下载WebUI
#需要多试几次
cd~
git clone https://github.com/oobabooga/text-generation-webui.git
备份:text-generation-webui-main.zip

2.安装代码及依赖库
cd text-generation-webui/

#非常耗时
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
3.模型软链接生成到models下面
ln -s /home/ubuntu/Chinese-LLaMA-Alpaca/llama_with_lora_hf/ models/llama_with_lora_hf

五、最终对话界面生成
验证结果
python3.10 server.py --model llama_with_lora_hf --listen --chat --load-in-8bit

人机界面:
在这里插入图片描述
控制台:

在这里插入图片描述
若提示GPU内存不足,可以换个命令试一下:
python3.10 server.py --model llama_with_lora_hf --listen --chat --load-in-4bit

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Leetcode每日一题】 递归 - 计算布尔二叉树的值(难度⭐⭐)(44)

1. 题目解析 题目链接&#xff1a;2331. 计算布尔二叉树的值 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 算法思路概述&#xff1a; 问题解释&#xff1a;我们面对的是一个节点可能含有逻辑运算符&#xff08;AN…

探索智慧农业精准除草,基于高精度YOLOv8全系列参数【n/s/m/l/x】模型开发构建农田作物场景下杂草作物分割检测识别分析系统

智慧农业是未来的一个新兴赛道&#xff0c;随着科技的普及与落地应用&#xff0c;会有更加广阔的发展空间&#xff0c;关于农田作物场景下的项目开发实践&#xff0c;在我们前面的博文中也有很堵相关的实践&#xff0c;单大都是偏向于目标检测方向的&#xff0c;感兴趣可以自行…

opencv如何利用掩码将两张图合成一张图

最近在学opencv, 初学者。 里面有提到如何将两张图合成一张图, 提供了两个方法 一种是直接通过图片透明度权重进行融合 img1 = cv.imread(ml.png) img2 = cv.imread(opencv-logo.png) dst = cv.addWeighted(img1,0.7,img2,0.3,0) cv.imshow(dst,dst) cv.waitKey(0) cv.des…

6.二叉树——2.重建树

已知先序和中序序列 根据先序序列找到树根根据树根和中序序列找到左右子树 同理根据后序序列和中序序列也能重构树&#xff0c;但前序和后序不可以 递归coding思路 设先序序列为preorder[n]&#xff0c;中序序列为midorder[n] 大事化小&#xff1a; 确定根&#xff0c;即树…

Chrome 插件 storage API 解析

Chrome.storage API 解析 使用 chrome.storage API 存储、检索和跟踪用户数据的更改 一、各模块中的 chrome.storage 内容 1. Service worker 中 runtime 内容 2. Action 中 runtime 内容 3. Content 中 runtime 内容 二、权限&#xff08;Permissions&#xff09; 如果需使…

Ubuntu 配置 kubernetes 学习环境,让外部访问 dashboard

Ubuntu 配置 kubernetes 学习环境 一、安装 1. minikube 首先下载一下 minikube&#xff0c;这是一个单机版的 k8s&#xff0c;只需要有容器环境就可以轻松启动和学习 k8s。 首先你需要有Docker、QEMU、Hyperkit等其中之一的容器环境&#xff0c;以下使用 docker 进行。 对…

CleanMyMac X2024专业免费的国产Mac笔记本清理软件

非常高兴有机会向大家介绍CleanMyMac X 2024这款专业的Mac清理软件。它以其强大的清理能力、系统优化效果、出色的用户体验以及高度的安全性&#xff0c;在Mac清理软件市场中独树一帜。 CleanMyMac X2024全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 一、主要…

Nuxt2 渲染时html比css加载快,导致闪屏/CSS样式迟滞/抖动问题记录

问题场景&#xff1a; 最近在用Nuxt2重写公司官网&#xff0c;但因为笔者不是专业前端&#xff0c;之前虽然也用vue2来写前端&#xff0c;但是用nuxt2来写项目还是第一次。在开发过程中虽然也磕磕碰碰&#xff0c;但因为开发的是官网&#xff0c;偏CMS型的网站&#xff0c;所以…

Wireshark使用相关

1.wireshark如何查看RST包 tcp.flags.reset1 RST表示复位&#xff0c;用来异常的关闭连接&#xff0c;在TCP的设计中它是不可或缺的。发送RST包关闭连接时&#xff0c;不必等缓冲区的包都发出去&#xff08;不像上面的FIN包&#xff09;&#xff0c;直接就丢弃缓存区的包发送R…

安科瑞路灯安全用电云平台解决方案【电不起火、电不伤人】

背景介绍 近年来 &#xff0c;随着城市规模的不断扩大 &#xff0c;路灯事业蓬勃发展。但有的地方因为观念、技术、管理等方面不完善 &#xff0c;由此引发了一系列安全问题。路灯点多面广 &#xff0c;一旦漏电就极容易造成严重的人身安全事故。不仅给受害者家庭带来痛苦 &am…

亚信安全荣获2023年度5G创新应用评优活动两项大奖

近日&#xff0c;“关于2023 年度5G 创新应用评优活动评选结果”正式公布&#xff0c;亚信安全凭借在5G安全领域的深厚积累和创新实践&#xff0c;成功荣获“5G技术创新的优秀代表”和“5G应用创新的杰出实践”两项大奖。 面向异构安全能力的5G安全自动化响应系统 作为5G技术创…

架构师之路--Docker的技术学习路径

Docker 的技术学习路径 一、引言 Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用程序及其依赖包打包成一个可移植的容器&#xff0c;然后在任何支持 Docker 的操作系统上运行。Docker 具有轻量级、快速部署、可移植性强等优点&#xff0c;因此在现代软件开…

软件接口安全设计规范及审计要点

1.token授权安全设计 2.https传输加密 3.接口调用安全设计 4.日志审计里监控 5.开发测试环境隔离&#xff0c;脱敏处理 6.数据库运维监控审计 项目管理全套资料获取&#xff1a;软件开发全套资料_数字中台建设指南-CSDN博客

自营商城私域商城的选品上货如何借助API实现自动化商品采集商品搜索无货源?

商业智能时代的来临&#xff0c;在线化、网络化、智能化、企业与用户的颗粒度越来越细&#xff0c;满足每个人的个性化要求也是未来商业的重要特征&#xff01;马云曾经说过&#xff0c;未来的核心资源是数据&#xff0c;数据将成为一家企业动力源&#xff0c;而这一切的基础都…

neo4j相同查询语句一次查询特慢再次查询比较快。

现象&#xff1a; neo4j相同查询语句一次查询特慢再次查询比较快。 分析&#xff1a; 查询语句 //查询同名方法match(path:Method) where id(path) in [244333030] and NOT path:Constructor//是rpc的方法match(rpc_method:Method)<-[:DECLARES]-(rpc_method_cls:Class) -…

ensp配置acl高级配置访问控制列表

拓扑结构 资源已上传 acl访问控制列表 简单配置&#xff1a;控制目的ip地址 高级配置&#xff1a;源ip地址&#xff0c;目的ip地址等。 要求&#xff1a;拓扑三个vlan 10&#xff0c;20&#xff0c;30&#xff0c;通过设置acl使10网段可以访问20网段&#xff0c;但是不可以…

comfyui 代码结构分析

comfyui的服务器端是用aiohtttp写的&#xff0c;webui是fastapi直接构建的&#xff0c;但是其实comfyui的这种设计思路是很好的&#xff0c;也许我们不需要在后端起一个复杂的前台&#xff0c;但是可以借助json结构化pipeline&#xff0c;然后利用node节点流把整个流程重新映射…

在 Linux CentOS 中安装 Docker Engine(Dockers 引擎)【图文详解】

官方文档&#xff1a;https://docs.docker.com/engine/install/centos/ 操作系统要求 如果我们要在 CentOS 中安装 Docker 引擎&#xff0c;那么 CentOS 操作系统需要是以下版本之一的&#xff0c;且是处于维护的 CentOS 版本&#xff1a; CentOS 7CentOS Stream 8CentOS Str…

策略路由-IP-Link-路由协议简介

策略路由 策略路由和路由策略的不同 1.策略路由的操作对象是数据包&#xff0c;在路由表已经产生的情况下&#xff0c;不按照路由表进行转发&#xff0c;而是根据需要&#xff0c;依照某种策略改变数据包的转发路径 2.路由策略的操作对象是路由信息。路由策略的主要实现了路…

Self-Consistency Improves Chain of Thought Reasoning in Language Models阅读笔记

论文链接&#xff1a;https://arxiv.org/pdf/2203.11171.pdf 又到了读论文的时间&#xff0c;内心有点疲惫。这几天还是在看CoT的文章&#xff0c;今天这篇是讲如何利用self-consistency&#xff08;自我一致性&#xff09;来改进大语言模型的思维链推理过程。什么是self-cons…