保姆级指导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

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

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

相关文章

Ceph——部署

Ceph简介 Ceph是一款开源的 SDS 分布式存储&#xff0c;它具备极高的可用性、扩展性和易用性&#xff0c;可用于存 储海量数据 Ceph的存储节点可部署在通用服务器上&#xff0c;这些服务器的 CPU 可以是 x86 架构的&#xff0c;也可以 是 ARM 架构的。 Ceph 存储节点之间相互…

边缘计算迎来“量子飞跃”!支持抗量子密码,AMD推出FPGA新系列

3月6日&#xff0c;AMD宣布推出AMD Spartan™ UltraScale™ FPGA系列&#xff0c;这是AMD成本优化FPGA和自适应SoC广泛产品组合的最新成员。 距离1月22日&#xff0c;AMD推出业界首款符合VESA DisplayPort 2.1标准的FPGA和自适应SoC实现&#xff0c;也才过了一个多月的时间。 S…

华为实验-基于用户和应用的安全策略

CLI举例&#xff1a;基于用户和应用的安全策略 通过配置安全策略&#xff0c;实现基于用户、时间段以及应用的访问控制。 组网需求 如图1所示&#xff0c;某企业在网络边界处部署了FW作为安全网关。 企业根据员工级别和职能不同划分了三种用户&#xff1a;高层管理者、市场员…

YOLOv8项目实践——目标检测、实例分割、姿态估计、目标追踪算法原理及模型部署(Python实现带界面)

简介 Ultralytics YOLOv8是一种前沿的、最先进的&#xff08;SOTA&#xff09;模型&#xff0c;它在前代YOLO版本的成功基础上进行了进一步的创新&#xff0c;引入了全新的特性和改进&#xff0c;以进一步提升性能和灵活性。作为一个高速、精准且易于操作的设计&#xff0c;YO…

单链表交叉分离,运用头插法,尾插法(算法库应用)

原文博客链接:单链表分离(头插法和尾插法的结合,理解指针变换)_3.对任务1或者2中创建的某一个单链表{a1,b1,a2,b2,...,an,bn},编写一个算法将-CSDN博客 函数实现: /************************************************** 函数名:separate_LinkList 功 能: 把一个链表,交叉新建…

flask各种版本的项目,终端命令运行方式的实现

目录 写在前面 一、Flask项目的基本结构 二、使用终端命令运行Flask项目 1. 安装Flask 2. 创建Flask应用 3. 配置FLASK_APP环境变量 4. 运行Flask应用 5. 访问Flask应用 三、Flask CLI的其他功能 1. 创建Flask应用 2. 运行开发服务器 3. 清理缓存文件 4. 运行单元…

网络链路层之(2)PPP协议

网络链路层之(2)PPP协议 Author: Once Day Date: 2024年3月27日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CSDN…

Patchwork包使用教程,R语言快速组合拼接图片

R语言如何拼接多幅图片&#xff1f; 今天分享的笔记带你领略R语言Patchwork包独特的魅力&#xff0c;patchwork是一个非常流行的用于拼接 ggplot2 图形的包&#xff0c;以一种简单的方式对图形进行排列和组合&#xff0c;不论多复杂的组合图形&#xff0c;都能确保图形之间正确…

手机短信验证码自动转发到服务器

今天写一个自动化处理程序&#xff0c;需要验证码登录&#xff0c;怎么样把手机收到的短信自动转发到服务器接口呢&#xff1f; 利用ios手机快捷指令的功能 打开快捷指令点击中间自动化点击右上角号选择信息信息包含选取&#xff0c;输入验证码选择立即执行点击下一步按下图配…

机器人深度学习IMU和图像数据实现焊接精细操作

在双电极气体保护金属弧焊 &#xff08;DE-GMAW&#xff09; 中&#xff0c;对焊枪和旁路电极位置的精确控制是至关重要的。为了这一过程&#xff0c;科研团队提出了安装微型惯性测量单元&#xff08;IMU&#xff09;传感器和摄像头&#xff0c;来记录焊工控制焊枪的移动和微调…

Android 12系统源码_多窗口模式相关方法的调用顺序

前言 从 Android 7.0 开始&#xff0c;Google 推出了一个名为“多窗口模式”的新功能&#xff0c;允许在设备屏幕上同时显示多个应用&#xff0c;多窗口模式允许多个应用同时共享同一屏幕&#xff0c;多窗口模式&#xff08;Multi Window Supports&#xff09;目前支持以下三种…

Go-js,css,html压缩和混淆(可直接使用)

前提条件: 本地安装nodejs环境然后配置全局环境变量。 运行以下命令安装uglify压缩工具 npm install uglify-js -g 测试是否安装成功 uglifyjs -v 使用方式: 根据不同的操作系统取对应的压缩工具,然后将压缩工具放到项目根目录下,然后执行即可 工具文件: https://gitee.com…