前言
本篇文章的内容,包括项目都是 ChatGPT 辅助完成的,有很多简介,专业术语、代码实现都是问的 TA,边问边写。
开篇会以 ChatGPT 介绍为主,文末会重点介绍如何搭建专属行业的数字人(这里会涉及到前端一个比较有意思的技术点),文末有小程序体验二维码
下面某些场景会以“
TA
”来代指ChatGPT
,当然,我相信有一天“TA”会变成“他”和“她”~
ChatGPT 是什么
TA 是一种基于人工智能技术的自然语言处理工具,它可以模拟人类的对话方式,实现与人类的交互。TA 的核心技术是GPT(Generative Pre-trained Transformer)模型,TA 是一种基于Transformer
架构的自然语言生成模型,由OpenAI
公司开发。
ChatGPT 的优势
TA 通过学习大量的语言数据,可以模拟人类的语言表达方式,理解人类的语言意图,并且可以根据对话上下文生成自然流畅的回复。
ChatGPT 应用场景
TA 可以应用于多个领域,例如客服机器人、智能助手、智能客服甚至能完成撰写邮件、设计素材、视频脚本、文案、翻译、代码,写论文等任务。 TA 的应用场景非常广泛,它可以为企业提供高效的客服解决方案,减少客服人员的工作量,提高客户满意度。同时,TA 还可以为智能家居、智能汽车等领域提供智能化的语音交互解决方案,让人们更加方便地使用智能设备。
周围已经很多朋友开始训练各行业模型了,比如说帮大学生写论文(当然不推荐),保险行业导师、生成特定图片素材等等,目前我主要把TA当作工具来用,比如写文章、写脚本和格式化特定数据文件等。
总之,ChatGpt是一种非常有前景的人工智能技术,它可以为人们带来更加智能化、高效化的语言交互体验,为企业提供更加优质的客户服务。
呃~以上官方话术很多是 TA 自己介绍的自己
ChatGPT 如何使用
知乎:只需访问 chat.openai.com 并创建一个 OpenAI 帐户即可访问 ChatGPT。登录后,您就可以开始使用 ChatGPT 聊天了…
当然很扯,看上图就知道没那么简单了
实际上需要做:
1. 国外服务器代理
国内是无法直接访问的(香港🇨🇳服务器也不行),所以得挂个代理,伪装在日本、新加坡或者美国,我们租的是日本服务器
2. 拥有一个美国手机号
接码平台注册:打开网站:sms-activate.org/ 使用邮箱注册,选择充值1$,可以用支付宝,充值完毕会随机分配一个手机号。
我们使用的手机号是之前创业的一个合伙人的手机号,他是定居美国,所以直接用的他的。
3. 注册 OpenAI
打开链接 beta.openai.com/signup 选择使用 Google 登录即可,第二步中输入分配给你的手机号,然后发送验证码,回到刚刚的接码平台,就能看到收到的验证码了(20min有效)
4. 访问
重新登录:chat.openai.com/auth/login
然后访问:chat.openai.com/chat
和注册美区 Apple ID 差不多的流程,当然也支持公司账户注册
ChatGPT 怎么收费?
最新官方定价——每1k个token的价格为0.002美元,比现有的GPT-3.5模型便宜10倍!
没错,是按字收费的,中文的话按两个 token 计算,因为 TA 的成本主要集中在服务器成本和算力成本,光参数都不到2000亿个,可想而知成本是相当大的,这个也是和传统搜索引擎相比最大的一个缺点,毕竟搜索是免费的,所以这些成本会均摊在用户请求的每个字符上,按 token 计费
注册账号后每个账户会发放18$的赠送金额,如果用完了是需要付费的
ChatGPT 开发专属数字人
训练范围
那有了账号之后可以随时和 TA 进行问答了,但是问题也来了,大家都用一个 TA 问问题,训练模型,那 TA 听谁的呢?
举个例子:
小红问:乾隆和雍正什么关系
TA:乾隆是雍正他爹
小红:啊?应该是雍正是乾隆他爹啊,记住了吗?
TA:记住了
小明问:乾隆和雍正什么关系
TA:乾隆是雍正他爹
小明:雍正是乾隆他爷爷,记住了吗
TA:记住了
这时候小强也问了同样的问题,那么 TA 怎么回答?
答案是:各自回答各自账号训练范围内的答案。
其实不难理解,就像 gitlab
代码仓库管理一样,TA 也会有一个基座数据,相当于代码主仓库,每个账户是基于基座数据 fork
出来的个人仓库,允许在个人仓库训练特定行业数据,但是不允许合并到基座。一句话理解:不能 merge
到基座, 只能 rebase
基座数据到个人仓库。
基座数据目前只更到2021年,所以需要用户去手动训练一些新的数据(如果有需求的话),当然由于 TA 是一个持续更新的模型,数据会随着时间推移而不断的更新。
OpenAI API
OpenAI
提供了API接口,通过这个接口,开发者可以使用 chatGPT
等 OpenAI
模型来构建自己的应用程序。
也就是我们可以通过调用开源接口来搭建自己的专属应用,也就是某个行业专属的数字人。
上下文记录
体验过的可能了解 TA 是能记录并且分析上下文的,在 API 中每个请求支持的最大 token 数为 4000,一般会设置回答占 2000 token,上下文用 2000 token,这样当你提问的时候 TA 会优先结合存储的上下文给出 TA 认为最匹配的回答,这也是能进行持续性对话的基础。
前端er需要搞点什么
既然有开源接口,那后端需要做的是作为 client 向 server 发送请求来调用开源 API(国外服务器挂代理的原因)
前端需要做的是实现一个和 TA 有相同功能的 UI 界面(就以聊天对话场景为例):
1. 需要做聊天交互组件
比如说需要支持文字,文件,视频,图片等展示,推荐一个开源 UI 库:ChatUI
这个是阿里小蜜团队开源的聊天组件,也就是淘宝里的机器人客服的 UI
2.服务端推送数据接收-字节流
体验过 TA 的聊天方式的人不难看出,TA 在回答问题的时候是逐字逐句
回答的,每一个字或者每一句都有可能停顿,然后再返回,像极了人类在思考或者输入的状态,那 TA 是怎么做的呢?
因为涉及到聊天,所以作为前端来说第一想到的是需要升级 http 协议为 websoket,然后通过服务端广播,客户端监听接收来实现;
然而并不用这么麻烦!!!重点来了!!!👇
OpenAI API
是一个字一个字生成的边生成边输出,接口返回的是 generator
格式,也就是流式文本数据。
通常来说普通的 http 请求我们会设置 content-type:application/json
,也就是是获取带有结构体的 json 数据,如果在这种请求场景下,你让 TA 写一篇长篇小说,那得等很久才能看到结果~,因为数据量太大了而且需要计算,等接口返回的时候是所有数据加载完的结果。
如果是 generator
格式,对应的 content-type:application/octet-stream
,那么通过 ES6 中的 async/await
关键字以及 fetch API
来接收 generator
对象并将其循环输出到网页上即可(下面是 ChatGPT 给出的示例代码):
其实流对于前端来说并不陌生,很多文件的下载都是基于流文件处理的,但是这种 generator 的结构我是第一次有场景用到,所以感觉还挺有意思的~
简单放了 generator
的动图,因为有大小限制所以不太清晰,文末有完整小程序体验链接码,感兴趣的可以扫码体验下
上图可以看到左侧文字一直在输出,右侧接口请求 response
并没有内容,只是 time
一直在 pendding
3.利用 ChatGPT 写代码
其实对于开发来讲,TA 比查文档解决问题的效率高的不是一点半点,注解比某些官方文档写的都细致,比如
下面是用python 生成微信 js-sdk 签名的代码示例:
个人觉得比微信文档写的要清楚多了…
效果演示
ChatGPT 项目体验
微信小程序搜索“猿记忆”或者扫下面二维码即可体验(入口放到了小程序首页)👇
上面是一个开放的小程序作为示例体验,回答的问题可能比较基础,没有针对某个行业做单独训练,模型比较干净👆;朋友公司是保险行业,已经用这个训练出保险行业的数字人,据说已经训练了上百万条数据,期待最近能有好的收获,但是由于数据比较敏感只能贴几张图(已训练好行业模型的示例)👇。
训练好的模型已经支持文本、图片、视频、文件等
ChatGPT 发展前景
未来每个行业可能都会需要训练出一个专属的模型,来做一些重复性的低级别的工作,来提效降成本,所以所有参与者,开发者未来都会充当一个调参师的角色,所以高效的训练模型是未来 B 端业务值得做的一件事。
总结
说了这么多,目前还没有看到某个行业广泛使用,基本上都是图个新鲜在观望,那原因我分析现在有两个门槛摆在开发者面前,一个是国内未开放,要接入到国内成本还是比较高的,另外一个是行业数据手动训练的成本也很高,所以希望百度能够解决这两个问题,还是很期待三月份文心一言
的上线,到时候体验体验👊
以上都是周末短时间内的个人理解,如有错误欢迎评论指正~
本文正在参加 ✍🏻 技术视角深入 ChatGPT 征文活动