基于GPT2训练了一个傻狗机器人
首先我想告诉你,从事编程开发这一行,要学会的是学习的方式方法。方向对了,才能事半功倍。而我认为最快且行之有效的技术技能学习,就是上手实践。先不要搞太多的理论,买回来的自行车不能上来就拆,得先想办法骑起来。
所以小傅哥就是这样,学东西嘛。以目标为驱动,搭建可运行测试的最小单元版本。因为康威定律说;问题越小,越容易被理解和处理。所以在接触 ChatGPT 以后,我时常都在想怎么自己训练和部署一个这样的聊天对话模型,哪怕是很少的训练数据,让我测试也好。所以这个会喷人的傻狗机器人来了!
一、傻狗机器聊天
在基于前文小傅哥《搭个ChatGPT算法模型》的学习基础之上,以 OpenAI 开源的 GPT-2 和相关的 GPT2-chitchat 模型训练代码,部署了这个会喷人的傻狗机器人。但由于训练数据的问题,这个聊天机器人对起话来,总感觉很变态。—— 不过不影响我们做算法模型训练的学习。
- 访问地址:http://120.48.169.252/ - 服务器配置有限,不能承载过大的并发访问。
- 视频演示:https://www.bilibili.com/video/BV1LG4y1P7bo - 也可以通过B站视频,观看GPT2模型部署演示。
二、基础配置环境
OpenAI GPT2 的模型训练和服务使用,需要用到 Python、TensorFlow 机器学习等相关配置,并且这些环境间有些版本依赖。所以为了顺利调试尽可能和我保持一样的版本。如果你对环境安装有难度,也可以找小傅哥帮忙买一台云服务器,之后我把我的环境镜像到你的服务器上就可以直接使用了。以下是所需的基本环境、代码和数据。
- 系统配置:Centos 7.9 - 2核4GB内存200G磁盘4Mbps带宽的云服务器
- 部署环境:Python3.7、 Transformers==4.2.0、pytorch==1.7.0
- 模型代码:https://github.com/fuzhengwei/GPT2-chitchat - 此代码已开源,含websocket通信页面
- 模型数据:https://pan.baidu.com/s/1iEu_-Avy-JTRsO4aJNiRiA - ju6m
1. 环境依赖
2. Python 3.7
3. 安装pip3
4. 安装git
5. 安装宝塔
- 安装后登录宝塔提示的地址,默认它会使用8888端口,因此你需要在服务器上开启8888端口访问权限。
- 宝塔的安装是为了在服务端部署一个网页版聊天界面,使用到了 Nginx 服务。这里用宝塔操作更加容易。
三、模型运行环境
模型训练需要用到 transformers 机器学习服务,以及 pytorch、sklearn 等组件;以下内容需要分别安装;
1. transformers
2. pytorch
- 这个torch版本+cpu与torchvision 需要匹配。
3. 其他安装
剩余的按照使用指令 pip install 就可以,另外在运行 GTP2-chitchat 时,如果提示缺少了某些组件,直接使用 pip 按照即可。
四、聊天页面配置
这里先把小傅哥给你准备好的websocket页面代码,通过宝塔创建站点后部署起来。代码:https://github.com/fuzhengwei/GPT2-chitchat/tree/master/web
之后通过打开你的宝塔地址,创建站点和上传Web代码。
注意:目前的这份代码中访问websocket的配置在index.js中,你需要修改成你的服务器地址。
五、模型训练部署
1. 下载代码
你需要修改下 interact.py 代码,变更这里有Websocket 的 IP和端口配置;
2. 上传模型
下载模型:https://pan.baidu.com/s/1iEu_-Avy-JTRsO4aJNiRiA#list/path=%2F - 密码:ju6m
上传模型:这里你需要在本机安装一个 SFTP 工具,或者使用 IntelliJ IDEA 提供的工具进行链接。链接后就可以把解压的模型上传到 /home/GPT2-chitchat/model 下。
修改这部分代码的IP和端口,以及在云服务上开启 7397 的访问权限。另外为了安全起见,可以在云服务的防火墙IP来源中授权,只有你当前的台机器才可以链接到 websocket 上。
3. 启动服务
这里小傅哥通过 mac nuoshell 连接工具,进行模型启动;模型路径:/home/GPT2-chitchat/model/model_epoch40_50w
- 启动后就可以把你的 websocket 页面打开了,它会自动的链接到这个 websocket 服务上。
- 如果你还需要 Socket 或者命令行的服务,也可以修改 interact.py 代码进行处理。
以上就是整个 GPT2-chitchat 一个闲聊模型的部署,你也可以尝试使用 Docker 部署。如果在部署过程中实在很难部署成功,也可以找小傅哥买云服务,这样我可以直接把镜像部署到你的云服务上,就可以直接使用了。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击