如何使用腾讯云GPU云服务器自建一个简单的类似ChatGPT、Kimi的会话机器人

news/2024/11/14 5:28:24/

如何使用腾讯云GPU云服务器自建一个简单的类似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确认

登录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)

三、下载与配置模型

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.ppmy.cn/news/1546500.html

相关文章

【ET8框架进阶】HybridCLR打包丢失元方法问题MissingMethodException:生成LinkXml增加元方法

问题描述 HybridCLR自带的GenerateLinkXml,丢失部分原方法 MissingMethodException: Default constructor not found for type YooAsset.FileGeneralRequestat System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic, System.Boolean wrapExceptions) [0x00000]…

浔川 AI 翻译 v5.0 上线时间公告(已公布!)

亲爱的用户们&#xff1a; 在此向大家隆重宣布&#xff0c;备受期待的浔川 AI 翻译 v5.0 版本将于 11 月 16 日正式上线啦&#xff01; 我们的研发团队全力以赴&#xff0c;精心打磨这一全新版本。在这个过程中&#xff0c;运用了一系列先进技术&#xff0c;对翻译算法做了深度…

mysql占用内存过大问题排查

如果 MySQL 占用内存过高&#xff0c;可以按照以下步骤进行排查&#xff1a; 一、检查 MySQL 配置参数 查看 innodb_buffer_pool_size&#xff1a; 这个参数决定了 InnoDB 存储引擎缓冲池的大小&#xff0c;它会占用大量内存。如果设置得过大&#xff0c;可能导致内存占用过高…

996引擎 - 活捉NPC

996引擎 - 活捉NPC 引擎触发 - 引擎事件(QF)事件处理模块 GameEvent测试文件参考资料 引擎触发 - 引擎事件(QF) cfg_game_data 配置 ShareNpc1 可以将QM和机器人的触发事件全部转到 QF 引擎触发是通用的,TXT的所有触发转换成小写后在LUA中就可使用,如说明书中缺省可反馈至对接群…

设计模式-七个基本原则之一-里氏替换原则

里氏替换原则&#xff08;LSP&#xff09;面向对象六个基本原则之一 子类与父类的替代性&#xff1a;子类应当能够替代父类出现的任何地方&#xff0c;且表现出相同的行为。行为的一致性&#xff1a;子类的行为必须与父类保持一致&#xff0c;包括输入和输出、异常处理等。接口…

AI变现,做数字游民

在数字化时代&#xff0c;AI技术的迅猛发展不仅改变了各行各业的生产方式&#xff0c;还为普通人提供了前所未有的变现机会。本文将探讨如何利用AI技术实现变现&#xff0c;成为一名数字游民&#xff0c;享受自由职业带来的便利与乐趣。 一、AI技术的变现潜力 AI技术以其强大…

YOLOv11融合ICCV[2023]动态蛇形卷积Dynamic模块及相关改进思路|YOLO改进最简教程

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation》 一、 模块介绍 论文链接&#xff…

【区块链】深入理解智能合约 ABI

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 深入理解智能合约 ABI&#xff08;应用程序二进制接口&#xff09;一、ABI 基础…