部署教程基于GPT2训练了一个傻狗机器人ByChatGPT技
作者:小傅哥
博客:https:bugstack。cn
沉淀、分享、成长,让自己和他人都能有所收获!
首先我想告诉你,从事编程开发这一行,要学会的是学习的方式方法。方向对了,才能事半功倍。而我认为最快且行之有效的技术技能学习,就是上手实践。先不要搞太多的理论,买回来的自行车不能上来就拆,得先想办法骑起来。
所以小傅哥就是这样,学东西嘛。以目标为驱动,搭建可运行测试的最小单元版本。因为康威定律说;问题越小,越容易被理解和处理。所以在接触ChatGPT以后,我时常都在想怎么自己训练和部署一个这样的聊天对话模型,哪怕是很少的训练数据,让我测试也好。所以这个会喷人的傻狗机器人来了!一、傻狗机器聊天
在基于前文小傅哥《搭个ChatGPT算法模型》的学习基础之上,以OpenAI开源的GPT2和相关的GPT2chitchat模型训练代码,部署了这个会喷人的傻狗机器人。但由于训练数据的问题,这个聊天机器人对起话来,总感觉很变态。不过不影响我们做算法模型训练的学习。
此页面为小傅哥所编程的WEB版聊天对话窗口访问地址:http:120。48。169。252服务器配置有限,不能承载过大的并发访问。视频演示:https:www。bilibili。comvideoBV1LG4y1P7bo也可以通过B站视频,观看GPT2模型部署演示。二、基础配置环境
OpenAIGPT2的模型训练和服务使用,需要用到Python、TensorFlow机器学习等相关配置,并且这些环境间有些版本依赖。所以为了顺利调试尽可能和我保持一样的版本。如果你对环境安装有难度,也可以找小傅哥帮忙买一台云服务器,之后我把我的环境镜像到你的服务器上就可以直接使用了。以下是所需的基本环境、代码和数据。系统配置:Centos7。92核4GB内存200G磁盘4Mbps带宽的云服务器部署环境:Python3。7、Transformers4。2。0、pytorch1。7。0模型代码:https:github。comfuzhengweiGPT2chitchat此代码已开源,含websocket通信页面模型数据:https:pan。baidu。coms1iEuAvyJTRsO4aJNiRiAju6m1环境依赖yumyinstallzlibdevelbzip2developenssldevelncursesdevelsqlitedevelreadlinedeveltkdevelgdbmdeveldb4devellibpcapdevelxzdevelyuminstallgccyyumyinstalllibffidevelmakemakealtinstall2Python3。7cd1。下载Python安装包wgethttps:www。python。orgftppython3。7。4Python3。7。4。tgz2。将安装包移动到usrlocal文件夹下mvPython3。7。4。tgzusrlocal3。在local目录下创建Python3目录mkdirusrlocalpython34。进入的Python安装包压缩包所在的目录cdusrlocal5。解压安装包tarxvfPython3。7。4。tgz6。进入解压后的目录cdusrlocalPython3。7。47。配置安装目录。configureprefixusrlocalpython38。编译源码make9。执行源码安装makeinstall10。创建软连接lnsusrlocalpython3binpython3usrbinpython311。测试python3V3。安装pip3cd1。下载wgethttps:bootstrap。pypa。iogetpip。py2。安装;注意咱们安装了python3所以是pyhton3getpip。pypython3getpip。py3。查找pip安装路径findnamepip4。将pip添加到系统命令lnsusrlocalpythonbinpipusrbinpip5。测试pipV6。更换源,如果不更换那么使用pip下载软件会很慢pipconfigsetglobal。indexurlhttps:pypi。tuna。tsinghua。edu。cnsimplepipconfigsetinstall。trustedhostmirrors。aliyun。compipconfiglistpip国内镜像源:阿里云http:mirrors。aliyun。compypisimple中国科技大学https:pypi。mirrors。ustc。edu。cnsimple豆瓣http:pypi。douban。comsimplePython官方https:pypi。python。orgsimplev2exhttp:pypi。v2ex。comsimple中国科学院http:pypi。mirrors。opencas。cnsimple清华大学https:pypi。tuna。tsinghua。edu。cnsimple4。安装gitcd1。安装前首先得安装依赖环境yuminstallyperldevel2。下载源码包到CentOS服务器后进行解压tarzxfgit2。9。5。tar。gzcdgit2。9。53。执行如下命令进行编译安装。configureprefixusrlocalgitmakemakeinstall4。添加到系统环境变量vim。bashrcexportPATHusrlocalgitbin:PATH5。使配置生效source。bashrc6。测试gitversion5。安装宝塔yuminstallywgetwgetOinstall。shhttps:download。bt。cninstallinstall6。0。shshinstall。sh12f2c1d72安装后登录宝塔提示的地址,默认它会使用8888端口,因此你需要在服务器上开启8888端口访问权限。宝塔的安装是为了在服务端部署一个网页版聊天界面,使用到了Nginx服务。这里用宝塔操作更加容易。三、模型运行环境
模型训练需要用到transformers机器学习服务,以及pytorch、sklearn等组件;以下内容需要分别安装;transformers4。4。2pytorch1。7。0sklearntqdmnumpyscipy1。2。11。transformerspipinstalltransformers4。4。22。pytorchpipinstalltorch1。7。0cputorchvision0。8。1cputorchaudio0。7。0fhttps:download。pytorch。orgwhltorchstable。html这个torch版本cpu与torchvision需要匹配。3。其他安装
剩余的按照使用指令pipinstall就可以,另外在运行GTP2chitchat时,如果提示缺少了某些组件,直接使用pip按照即可。四、聊天页面配置
这里先把小傅哥给你准备好的websocket页面代码,通过宝塔创建站点后部署起来。代码:https:github。comfuzhengweiGPT2chitchattreemasterweb
之后通过打开你的宝塔地址,创建站点和上传Web代码。
注意:目前的这份代码中访问websocket的配置在index。js中,你需要修改成你的服务器地址。if(!window。WebSocket){alert(您的浏览器不支持WebSocket协议!推荐使用谷歌浏览器进行测试。);return;}socketnewWebSocket(ws:120。48。169。252:7397);五、模型训练部署1。下载代码cdhomegitclonehttps:github。comfuzhengweiGPT2chitchat。git
你需要修改下interact。py代码,变更这里有Websocket的IP和端口配置;asyncdefstartserver():try:asyncwithwebsockets。serve(server,192。168。0。4,7397):print(Startingserveratws:localhost:7397)awaitasyncio。Future()runforeverexceptOSErrorase:print(fErrorstartingserver:{e})exceptExceptionase:print(fUnexpectederror:{e})2。上传模型
下载模型:https:pan。baidu。coms1iEuAvyJTRsO4aJNiRiAlistpath2F密码:ju6m
上传模型:这里你需要在本机安装一个SFTP工具,或者使用IntelliJIDEA提供的工具进行链接。链接后就可以把解压的模型上传到homeGPT2chitchatmodel下。asyncdefstartserver():try:asyncwithwebsockets。serve(server,192。168。0。4,7397):print(Startingserveratws:localhost:7397)awaitasyncio。Future()runforeverexceptOSErrorase:print(fErrorstartingserver:{e})exceptExceptionase:print(fUnexpectederror:{e})
修改这部分代码的IP和端口,以及在云服务上开启7397的访问权限。另外为了安全起见,可以在云服务的防火墙IP来源中授权,只有你当前的台机器才可以链接到websocket上。3。启动服务
这里小傅哥通过macnuoshell连接工具,进行模型启动;模型路径:homeGPT2chitchatmodelmodelepoch4050wpython3interact。pynocudamodelpathhomeGPT2chitchatmodelmodelepoch4050w
启动后就可以把你的websocket页面打开了,它会自动的链接到这个websocket服务上。如果你还需要Socket或者命令行的服务,也可以修改interact。py代码进行处理。
以上就是整个GPT2chitchat一个闲聊模型的部署,你也可以尝试使用Docker部署。如果在部署过程中实在很难部署成功,也可以找小傅哥买云服务,这样我可以直接把镜像部署到你的云服务上,就可以直接使用了。
东莞的两所顶尖的高中,东莞中学和东华中学不知道哪所更好一点?东莞中学今年考的比较好,是历年来考的最好的一年。尤其是文科更是异军突起,真是不容易。今年屏蔽的九个人中东华占五人东莞中学占四人。有点平分秋色的感觉了,对东莞的教育是好事。但是这并不
国乒历任总教练,哪一位执教时期带出的成绩最优秀?我看好六十年代傅其芳。他第一任带岀了乒乓球世界冠军庄则栋,亜军李富荣,第三名徐寅生。从始,日本称霸世界乒坛嬋让给中国!国乒的崛起,到如今的优秀强大,成为世界一流的强队。除了与运动员
教育部规定不准公布成绩,但很多家长问学生成绩排名,是何心理?我就是一个每次考完试老师说便罢了不说那我一定会去问成绩排名的家长。你很想知道我的心理吗?那么你自己想不想知道自己孩子的成绩呢?你自己不想知道这是你自己的事情,我管不着,但是你关心我
广东队今天全主力出战,还是12分大比分输广厦,广东输在哪里?我觉得主要有4点1。广东队的命中率太低!首节比赛,广东队前半节只有11中1的命中率,半节只拿到2分。首节20中3的命中率,只拿到10分。应该是俱乐部的新纪录了!全场比赛,两分球,广
联想资本渗透医疗行业,您怎么看?很危险!一旦资本渗透医疗行业,倒霉的是老百姓,医疗是治病救人救死扶伤为根本,資本是逐利的,两者不是一路的,所以资本不能进入医疗行业。税收大改革,伪科技企业不得享受科技企业低税收,纯
人过五十,不想患上肠癌,应该注意避免哪些坏习惯?人过了五十岁,如果不加以保养和调理,什么癌症,都会向你靠近,有句话说得好,五十的年龄就如午后快要下山的太阳,虽然刺眼,但是光辉已经渐行渐远。不管是男人还是女人,在五十岁的时候,特别
炒股用什么软件?提示短线买卖,那种?1简单来说炒股等软件来提示买入或者卖出都是相对滞后的,基本上有经验的投资者都不会用这种方式交易。2市面上的炒股软件种类繁多,每一款软件编辑的指标规则都不一样,所以不同的软件提示的买
不让宝宝流鼻涕的方法有什么?宝宝流鼻涕是一种症状,一种结果,要想让宝宝不流鼻涕,就要找出流鼻涕的原因,才能从根本上解决问题。一般来说,宝宝流鼻涕有以下原因1,感冒。比如宝宝受风寒入侵,就会流清鼻涕。当出现这个
谭维维和云朵谁的实力强?谭维维(Sitartan),1982年10月8日出生于四川,中国内地女歌手。1999年,获四川省十佳歌手称号同年参加青春音乐剧未来组合。2002年参加全国歌手大奖赛获优秀奖。200
为什么复联一般英雄不吃美队的强化药?并不是谁都可以承受血清药剂的改造,美队不是唯一接受强化的人,但他却是唯一一个改造完美并存活下来的人。在进行超级士兵计划之初其实这血清改造已经尝试了很多次,美国队长并不是第一批接受实
我想买一个耳机,但不知道买哪一种音效更好?求帮助?拼多多有一款叫奇声的耳机,温州义乌的,12元一副,音质极佳。音质跟音效两码事,音质跟你的设备(mp3)和音源(音乐)有关,你设备都不支持无损音乐就谈不上音质了,还不如用手机。至于音