作者:小傅哥 博客:https:bugstack。cn 沉淀、分享、成长,让自己和他人都能有所收获! 最近ChatGPT很火,火到了各行各业。记得去年更多的还是码农最新体验后拿它搜代码,现在各行各业都进来体验,问它咋理财、怎么写报告和给小孩起名。也因此让小傅哥在头条的一篇关于ChatGPT的文章都有了26万的阅读。把ChatGPT配置到微信群里,可以对AI提问了! 除了大家都想体验一下这款智能的ChatGPTAI,也有很多互联网公司开始搭建自己的ChatGPT,但真的挺担心最后整出来的不是ChatGPT而是ChatPPT。为此我也想研究下ChatGPT是怎么做出来的,都说是模型和数据训练,那我能训练吗?这东西离我想做个demo出来有多远?一、技术调研,很激动 当我开始往算法模型训练里踏进一脚,漏个门缝检索点相关学习资料和案例代码,发现这个世界太庞大了。早在4年前,GPT2就已经发布了openai开源代码https:github。comopenaigpt2也就是说我们就可以拿GPT2的开源代码训练一个模型,哪怕是训练出个傻子,也应该比xxx,我在,你说。要更智能一些。 接着检索我发现了,早在2年前有人已经基于GPT2训练一版GPT2forChinesechitchat用于中文闲聊的GPT2模型。开源代码:https:github。comyangjianxin1GPT2chitchat 不知道在做的兄弟们你们激动不,看到这我是挺开心。这不是我想要的demo模型吗。把它给训练出来,也就能满足我对ChatGPT的深入了解了,并且基于我想做的任何类数据训练得到一个个小模型部署,也是可以帮助我来完成一些事情的。如;你把公司的一些文档数据进行训练,得到一份可以搜索检索就能获取相关数据的ChatGPT不挺爽吗? 越是检索越是开心,离我的目标也越来越近了。但作为一个量化算法训练的小白,其实我还是希望能找到一份Java的模型训练代码,这可以让我操作起来更加顺畅。没错,我找到了,也是3年前就有的一份资料;https:github。comSimiaCryptustfgpt2这是一个基于Tensorflow的GPT2文本模型的Java库。别着急,这个时候我也不知道Tensorflow是啥。 这还说啥,这有pom配置,还有代码案例。引入一下就能跑,上车吧! 好家伙,跑起代码才知道。这货上来就下了1个多G的pb模型数据,之后有报错MacM1兼容性问题。折腾一大堆,最后又报错;YourCPUsupportsinstructionsthatthisTensorFlowbinarywasnotcompiledtouse:SSE4。2AVXAVX2FMA要是你咋整,你再坚持坚持,还是放弃!二、风浪越大,鱼越贵 本来以为ChatGPT嘛、Python嘛、跑个数据模型吗!这能几道墙阻挡我的去路,不就是换个工具写代码吗?但当我逐步进入后发现,这距离好像比想象的大的多! 想玩ChatGpt玩到模型训练,得先进入Gpt2开源代码。基于想自己训练一个小模型,需要使用TensorFlow创建生产级机器学习模型。而TensorFlow需要在本地安装一系列Python工具并下载模型和数据样本。而这里就像安装JDK一样,是傻子都会和傻子都不会。MacM1天生骄傲,安装了2天,才测试出可以使用的模型训练环境。之后开始跑第一个模型,线性回归。再了解什么是线性回归。 这是TensorFlow的官网,用于创建生产级机器学习模型。也就是说想要完成一个简单的ChatGPT得从这开始。死鬼,不要在想了,你总是得从HelloWorld开始。 但在检索的过程中,我又找到了一个名叫huggingface。co的网站;Huggingface起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在Github上开源了一个Transformers库。虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超100,000个预训练模型,10,000个数据集,变成了机器学习界的Github。 在Huggingface社区中可以找到相关的模型训练资源以及提供好的模型使用接口,比如像中文分词、聊天对话、图片分析也都有,当然也包括一些公司训练出来的gpt2模型。 在Models中提供了大量的算法模型,你可以把自己需要的模型点个like关注起来。同时这些模型还提供好了调用接口,例如【apikey可以在网站申请】;curlhttps:apiinference。huggingface。comodelsmicrosoftCodeGPTsmalljavaXPOSTd{inputs:Canyoupleaseletusknowmoredetailsaboutyour}HAuthorization:BearerhfcYfJAwnBfGcKRKxGwyGItlQlRSFYCLphgG 你可以通过接口对模型进行访问,当然这些模型训练的数据并不是很大,只是作为测试使用。不会像ChatGPT那么智能的返回你所检索的信息。不过这至少可以让你了解和体验不同模型所带来的数据返回是什么样。三、环境配置,搞起来 一口不能呲个胖子,为了更好的为以后能训练出一个自己可以玩的小体量的ChatGPT模型,总得要从头开始。 这里小傅哥的目标是带着搭建先在本地搭建起一个TensorFlow的基础环境,来跑个Python的简单算法模型。为此我们需要进行一下环境配置。小傅哥2台机器已验证没问题,分别是MacIntelM1,机器配置4核16G。1。Python环境下载Python:https:www。python。orgdownloadsmacos3。6版本以上。一般Mac上会带一个2。x版本的Python,这个版本不够用,需要升级下。配置Python:安装Python完成后,搜索地址whichpython3打开vi。bashprofile文件,写入环境配置aliaspythonLibraryFrameworksPython。frameworkVersions3。10binpython3生效配置source。bashprofile2。pip指令安装安装pip:以下需要用到pip指令,如果没有需要安装curlhttps:bootstrap。pypa。iogetpip。pypython33。Tensorflow 官网安装指导:https:www。tensorflow。orginstall?hlzhcn 但这里有个问题,没有说明MacM1怎么安装。如果按照这个代码在M1的机器是安装不上的。所以在小傅哥的一顿折腾后找到了对应的按照指令。步骤如下;下载代码【可选】:https:github。comfuzhengweiTensorFlowTutorial用于后续测试模型训练代码配置VisualStudio【你也可以是其他的】,打开以后需要安装python插件以及配置登录github,这样会更利于后续的操作。之后在VisualStudio的终端下,查看下pythonV的版本,如果不是最新安装的3。x版本,可以刷新下配置source。bashprofile。Mac电脑安装Tensorflow:python3mpipinstalltensorflowmacos安装比较耗时,需要等待。如果失败了就继续执行这条指令。 安装后测试:python3cimporttensorflowastf;print(tf。reducesum(tf。random。normal(〔1000,1000〕)))只要能输出结果为即可。四、跑个模型,验证下 可能很多伙伴不知道什么是算法模型,简单描述比如;为啥给你推荐你喜欢看的美女,为啥给你发送一个键盘购物券、为啥看你小子有钱就总给你推荐豪车。这都是根据你身上的标签进行模型训练的结果,在众多的人群中找到目标用户。另外像我在腾讯做量化算法的小伙伴说,决策树就是一种简单的算法模型。 代码详见:https:github。comfuzhengweiTensorFlowTutorial 测试结果fuzhengweiMacBookProTensorFlowTutorialusrlocalbinpython3Usersfuzhengwei1024githubTensorFlowTutorialcodeslinearregression。pyEpoch150011〔〕0s3mssteploss:0。0150Epoch50050011〔〕0s2mssteploss:0。015011〔〕0s76msstep〔〔0。19686729〕〕11〔〕0s29msstep〔〔1。0953956〕〕11〔〕0s29msstep〔〔1。9939239〕〕11〔〕0s31msstep〔〔2。8924522〕〕11〔〕0s30msstep〔〔3。7909803〕〕11〔〕0s30msstep〔〔8。283622〕〕 这是一个训练了500次的线性回归预测模型;线性回归可以预测房价、预测股票、预测天气和评估经济。 这一篇文章先给我自己以及大家对ChatGPT开个门,让对此感兴趣的编程爱好者可以参与进去学习。在我感觉ChatGPT的出现会打破某些平衡,对一些事项进行秩序重置。因此也让更多的人获得了大量的机会。