作者:小傅哥 博客: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协议!推荐使用谷歌浏览器进行测试。);}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部署。如果在部署过程中实在很难部署成功,也可以找小傅哥买云服务,这样我可以直接把镜像部署到你的云服务上,就可以直接使用了。