当前位置: 首页 > 后端技术 > Python

【部署教程】基于GPT2训练出一个傻狗机器人——来自ChatGPT技术学习

时间:2023-03-26 15:31:17 Python

作者:付哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人有所收获!首先我想告诉大家,在编程和开发领域,需要学习的是学习的方式。方向对了,就能事半功倍。而且我认为学习技术技能最快、最有效的方法就是开始。不要搞太多的理论。买的自行车放不下可以拆。你必须先找到一种方法来骑它。所以傅大哥就是这样,学东西。在目标的驱动下,构建能够运行测试的最小单元版本。因为康威定律说;问题越小,就越容易理解和处理。所以在接触到ChatGPT之后,我一直在思考如何自己训练和部署这样一个聊天对话模型,即使训练数据很少,也让我测试一下。于是这款会喷人的傻狗机器人就来了!1.沙狗聊天机器人基于上一篇傅大哥《搭个ChatGPT算法模型》的学习,用OpenAI开源的GPT-2和相关的GPT2-chitchat模型训练代码部署了这个会喷人的傻狗机器人。但是由于训练数据的问题,这个聊天机器人跟它说话的时候总感觉不正常。——但不影响我们研究算法模型训练。本页面是付哥编写的WEB版聊天对话窗口。访问地址:http://120.48.169.252/-服务器配置有限,不能承载过多的并发访问。视频演示:https://www.bilibili.com/video...-也可以通过B站视频观看GPT2模型部署演示。2.基础配置环境OpenAIGPT2的模型训练和服务使用需要使用Python、TensorFlow机器学习等相关配置,这些环境之间存在一定的版本依赖。所以为了顺利调试,尽量保持和我一样的版本。如果你安装环境有困难,也可以请付哥帮你买个云服务器。之后我会把我的环境镜像到你的服务器上,直接使用。下面是需要的基本环境、代码和数据。系统配置:Centos7.9-2核4GB内存,200G磁盘,4Mbps带宽部署环境:Python3.7,Transformers==4.2.0,pytorch==1.7.0模型代码:https://github.com/付正伟。..-本代码开源,包含websocket通信页面模型数据:https://pan.baidu.com/s/1iEu_...-ju6m1环境依赖yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-develyuminstallgcc-yyum-yinstalllibffi-develmakealtinstall2Python3.7cd~#1.下载Python安装包wgethttps://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz#2.将安装包移动到/usr/local文件夹下mvPython-3.7.4.tgz/usr/local/#3.在本地目录下创建Python3目录mkdir/usr/local/python3#4.进入压缩Python安装包所在目录cd/usr/local/#5.解压安装包tar-xvfPython-3.7.4。tgz#6.进入解压目录cd/usr/local/Python-3.7.4/#7.配置安装目录./configure--prefix=/usr/local/python3#8.编译源码make#9.执行源码安装makeinstall#10.创建软链接ln-s/usr/local/python3/bin/python3/usr/bin/python3#11.测试python3-V3。安装pip3cd~#1.下载wgethttps://bootstrap.pypa.io/get-pip.py#2.安装;注意我们的安装python3所以是pyhton3get-pip.python3get-pip.py#3.找到pip安装路径find/-namepip#4.在系统命令中加入pipln-s/usr/local/python/bin/pip/usr/bin/pip#5.测试pip-V#6.改源,不改的话用pip下载软件会很慢pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simplepipconfigsetinstall.trusted-hostmirrors.aliyun.compipconfiglist#pip国内镜像源:#阿里云http://mirrors.aliyun.com/pypi/simple/#中国科学技术大学https://pypi.mirrors.ustc.edu.cn/simple/#豆瓣http://pypi.douban.com/simple#Python官方https://pypi.python.org/simple/#v2exhttp://pypi.v2ex.com/simple/#中科院http://pypi.mirrors.opencas.cn/simple/#清华大学https://pypi.tuna.tsinghua.edu。cn/simple/4.安装gitcd~#1.安装前,必须先安装依赖环境yuminstall-yperl-devel#2.下载源码包到CentOS服务器并解压tar-zxfgit-2.9.5.tar.gzcdgit-2.9.5#3.执行以下命令编译安装./configure--prefix=/usr/local/gitmake&&makeinstall#4.添加到系统环境变量vim~/.bashrcexportPATH="/usr/local/git/bin:$PATH"#5.使配置生效source~/.bashrc#6.测试git版本5。安装宝塔yuminstall-ywget&&wget-Oinstall.shhttps://download.bt.cn/install/install_6.0.sh&&shinstall.sh12f2c1d72安装完成后登录宝塔提示的地址.默认情况下会使用8888端口,所以需要在服务器上开启8888端口访问权限。宝塔的安装是在服务器端部署一个网页聊天界面,使用的是Nginx服务。在这里用宝塔操作起来比较容易。3.模型运行环境模型训练需要使用transformers机器学习服务,以及pytorch、sklearn等组件;以下内容需要单独安装;变形金刚==4.4.2pytorch==1.7.0sklearntqdmnumpyscipy==1.2.11。transformerspip安装transformers==4.4.22。pytorchpipinstalltorch==1.7.0+cputorchvision==0.8.1+cputorchaudio===0.7.0-fhttps://download.pytorch.org/whl/torch_stable.html这个torch版本+cpu和torchvision需要匹配.3.对于安装的其余部分,只需使用命令pipinstall。另外,在运行GTP2-chitchat时,如果提示缺少某些组件,使用pip跟随即可。4、聊天页面配置这里首先部署付哥给大家准备的websocket页面代码,然后通过宝塔创建站点。代码:https://github.com/fuzhengwei...打开你的宝塔地址后,创建站点,上传网页代码。注:当前代码中访问websocket的配置在index.js中,需要将其修改为您的服务器地址。if(!window.WebSocket){alert("您的浏览器不支持WebSocket协议!建议使用谷歌浏览器进行测试。");return;}socket=newWebSocket("ws://120.48.169.252:7397");5.模型训练部署1.下载代码cd/homegitclonehttps://github.com/fuzhengwei/GPT2-chitchat.git需要修改interact.py代码,这里更改Websocket的IP和端口配置;asyncdefstart_server():try:asyncwithwebsockets.serve(server,"192.168.0.4",7397):print("Startingserveratws://localhost:7397")awaitasyncio.Future()#runforeverexceptOSErrorase:print(f"Errorstartingserver:{e}")exceptExceptionase:print(f"Unexpectederror:{e}")2.上传模型下载模型:https://pan.baidu.com/s/1iEu_...-密码:ju6m上传模型:这里需要在本地安装一个SFTP工具,或者使用IntelliJIDEA提供的工具进行链接,链接后可以将解压后的模型上传到/home/GPT2-chitchat/model。asyncdefstart_server():try:asyncwithwebsockets.serve(server,"192.168.0.4",7397):print("Startingserveratws://localhost:7397")awaitasyncio.Future()#永远运行,除了OSErrorase:print(f"Errorstartingserver:{e}")exceptExceptionase:print(f"Unexpectederror:{e}")修改这部分代码的IP和端口,打开7397on云服务访问权限。另外,出于安全考虑,你可以在云服务的防火墙IP源中授权,只有你当前的机器可以连接到websocket。3、启动服务这里付哥使用macnuoshell连接工具启动模型;模型路径:/home/GPT2-chitchat/model/model_epoch40_50wpython3interact.py--no_cuda--model_path/home/GPT2-chitchat/model/model_epoch40_50w启动后打开你的websocket页面,会自动链接到这个网络套接字服务。如果还需要Socket或者命令行服务,也可以修改interact.py代码进行处理。以上就是整个GPT2-chitchat聊天模型的部署,大家也可以尝试使用Docker部署。如果部署过程中确实很难部署成功,也可以找小付购买云服务,这样我就可以直接把镜像部署到你的云服务上,直接使用。