作者:小傅哥
博客:bugstack.cn

沉积、同享、成长,让自己和他人都能有所收获!

最近 ChatGPT 很火,火到了各行各业。记住去年更多的仍是码农最新体会后拿它搜代码,现在各行各业都进来体会,问它咋理财、怎样写陈述和给小孩起名。 也因而让小傅哥在头条的一篇关于 ChatGPT 的文章都有了26万的阅览。

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

除了我们都想体会一下这款智能的 ChatGPT AI,也有许多互联网公司开端建立自己的 ChatGPT,但真的挺忧虑最终整出来的不是 ChatGPT 而是 ChatPPT。为此我也想研讨下 ChatGPT 是怎样做出来的,都说是模型和数据练习,那我能练习吗?这东西离我想做个 demo 出来有多远?

一、技能调研,很激动

当我开端往算法模型练习里踏进一脚,漏个门缝检索点相关学习材料和事例代码,发现这个国际太巨大了。早在4年前,GPT-2 就现已发布了 openai 开源代码 github.com/openai/gpt-… 也便是说咱们就能够拿 GPT-2 的开源代码练习一个模型,哪怕是练习出个傻子,也应该比“xxx,我在,你说。”要更智能一些。

接着检索我发现了,早在2年前有人现已依据 GPT-2 练习一版 GPT2 for Chinese chitchat/用于中文闲谈的GPT2模型。开源代码:github.com/yangjianxin…

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

不知道在做的兄弟们你们激动不,看到这我是挺高兴。这不是我想要的 demo 模型吗。把它给练习出来,也就能满意我对 ChatGPT的深化了解了,而且依据我想做的任何类数据练习得到一个个小模型部署,也是能够协助我来完成一些事情的。如;你把公司的一些文档数据进行练习,得到一份能够查找检索就能获取相关数据的 ChatGPT 不挺爽吗?

越是检索越是高兴,离我的方针也越来越近了。但作为一个量化算法练习的小白,其实我仍是希望能找到一份 Java 的模型练习代码,这能够让我操作起来愈加顺畅。没错,我找到了,也是3年前就有的一份材料;github.com/SimiaCryptu… 这是一个依据 Tensorflow 的 GPT-2 文本模型的 Java 库。—— 别着急,这个时分我也不知道 Tensorflow 是啥。

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

这还说啥,这有pom装备,还有代码事例。引入一下就能跑,上车吧!

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

好家伙,跑起代码才知道。这货上来就下了1个多G的pb模型数据,之后有报错 Mac M1 兼容性问题。折腾一大堆,最终又报错;Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.2 AVX AVX2 FMA —— 要是你咋整,你再坚持坚持,仍是抛弃!

二、风浪越大,鱼越贵

原本认为 ChatGPT 嘛、Python 嘛、跑个数据模型吗!这能几道墙阻挡我的去路,不便是换个东西写代码吗?但当我逐步进入后发现,这距离好像比幻想的大的多!

想玩 ChatGpt 玩到模型练习,得先进入 Gpt-2 开源代码。依据想自己练习一个小模型,需求运用 TensorFlow 创立出产级机器学习模型。而 TensorFlow 需求在本地装置一系列 Python 东西并下载模型和数据样本。而这儿就像装置 JDK 一样,是傻子都会和傻子都不会。Mac M1 天然生成骄傲,装置了2天,才测试出能够运用的模型练习环境。之后开端跑第一个模型,线性回归。再了解什么是线性回归。

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

这是 TensorFlow 的官网,用于创立出产级机器学习模型。也便是说想要完成一个简略的 ChatGPT 得从这开端。—— 死鬼,不要在想了,你总是得从 HelloWorld 开端。

但在检索的过程中,我又找到了一个名叫 huggingface.co 的网站;Hugging face 起初是一家总部位于纽约的谈天机器人初创服务商,他们原本计划创业做谈天机器人,然后在 Github上开源了一个 Transformers 库。虽然谈天机器人业务没搞起来,可是他们的这个库在机器学习社区敏捷大火起来。目前现已同享了超100,000个预练习模型,10,000个数据集,变成了机器学习界的 Github。

在 Hugging face 社区中能够找到相关的模型练习资源以及供给好的模型运用接口,比方像中文分词、谈天对话、图片剖析也都有,当然也包括一些公司练习出来的 gpt-2 模型。

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

在 Models 中供给了很多的算法模型,你能够把自己需求的模型点个 like 重视起来。同时这些模型还供给好了调用接口,例如【api key 能够在网站请求】;

curl https://api-inference.huggingface.co/models/microsoft/CodeGPT-small-java \
	-X POST \
	-d '{"inputs": "Can you please let us know more details about your "}' \
	-H "Authorization: Bearer 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"

你能够通过接口对模型进行拜访,当然这些模型练习的数据并不是很大,只是作为测试运用。不会像 ChatGPT 那么智能的返回你所检索的信息。不过这至少能够让你了解和体会不同模型所带来的数据返回是什么样。

三、环境装备,搞起来

一口不能呲个胖子,为了更好的为今后能练习出一个自己能够玩的小体量的 ChatGPT 模型,总得要从头开端。

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

这儿小傅哥的方针是带着建立先在本地建立起一个 TensorFlow 的根底环境,来跑个 Python 的简略算法模型。为此咱们需求进行一下环境装备。小傅哥2台机器已验证没问题,分别是 Mac Intel/M1,机器装备4核16G。

1. Python 环境

  • 下载 Python:www.python.org/downloads/m… 3.6版别以上。一般 Mac 上会带一个 2.x 版别的 Python,这个版别不够用,需求晋级下。
  • 装备 Python:
    • 装置 Python 完成后,查找地址 which python3
    • 打开 vi ~/.bash_profile 文件,写入环境装备 alias python="/Library/Frameworks/Python.framework/Versions/3.10/bin/python3"
    • 收效装备 source .bash_profile

2. pip 指令装置

  • 装置 pip:以下需求用到 pip 指令,假如没有需求装置 curl https://bootstrap.pypa.io/get-pip.py | python3

3. Tensorflow

官网装置指导:www.tensorflow.org/install?hl=…

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

但这儿有个问题,没有说明 Mac M1 怎样装置。假如按照这个代码在 M1 的机器是装置不上的。所以在小傅哥的一顿折腾后找到了对应的按照指令。过程如下;

  • 下载代码【可选】:github.com/fuzhengwei/… – 用于后续测试模型练习代码
  • 装备 Visual Studio【你也能够是其他的】,打开今后需求装置 python 插件以及装备登录 github,这样会更利于后续的操作。之后在 Visual Studio 的终端下,查看下 python -V 的版别,假如不是最新装置的 3.x 版别,能够刷新下装备 source .bash_profile
  • Mac 电脑装置 Tensorflow:python3 -m pip install tensorflow-macos —— 装置比较耗时,需求等待。假如失利了就继续履行这条指令。
不是算法工程师,搭个ChatGPT算法模型,从哪开始?
  • 装置后测试:python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))" —— 只要能输出成果为即可。

四、跑个模型,验证下

可能许多伙伴不知道什么是算法模型,简略描绘比方;为啥给你推荐你喜爱看的美人,为啥给你发送一个键盘购物券、为啥看你小子有钱就总给你推荐豪车。这都是依据你身上的标签进行模型练习的成果,在很多的人群中找到方针用户。另外像我在腾讯做量化算法的小伙伴说,决策树便是一种简略的算法模型。

代码详见https://github.com/fuzhengwei/TensorFlow-Tutorial

不是算法工程师,搭个ChatGPT算法模型,从哪开始?

测试成果

fuzhengwei@MacBook-Pro TensorFlow-Tutorial % /usr/local/bin/python3 /Users/fuzhengwei/1024/github/TensorFlow-Tutorial/codes/linear_regression.py
Epoch 1/500
1/1 [==============================] - 0s 3ms/step - loss: 0.0150
Epoch 500/500
1/1 [==============================] - 0s 2ms/step - loss: 0.0150
1/1 [==============================] - 0s 76ms/step
[[-0.19686729]]
1/1 [==============================] - 0s 29ms/step
[[-1.0953956]]
1/1 [==============================] - 0s 29ms/step
[[-1.9939239]]
1/1 [==============================] - 0s 31ms/step
[[-2.8924522]]
1/1 [==============================] - 0s 30ms/step
[[-3.7909803]]
1/1 [==============================] - 0s 30ms/step
[[-8.283622]]
不是算法工程师,搭个ChatGPT算法模型,从哪开始?
  • 这是一个练习了500次的线性回归猜测模型;
  • 线性回归能够猜测房价、猜测股票、猜测天气和评估经济。

这一篇文章先给我自己以及我们对 ChatGPT 开个门,让对此感兴趣的编程爱好者能够参加进去学习。在我感觉 ChatGPT 的出现会打破某些平衡,对一些事项进行次序重置。因而也让更多的人获得了很多的时机。假如你还没有体会到 ChatGPT 的能力,那么能够点击链接对它提问体会。这是小傅哥注册 ChatGPT API Keys 接口,并对接到下面程序中运用的。地址:wx.zsxq.com/dweb2/index…