我所了解的 ChatGPT:二次开发;有何限制;对未来的影响

前言

ChatGPT 其实去年底就已经在开发界大放异彩,但是圈子之外对它了解不多。春节过后,公关公司开工上班,马上开始紧锣密鼓的宣传,然后就开始破圈,如今已经是整个公共领域,尤其是创投方面最热门的话题。

我最近也接到需求,要开发一个基于 OpenAI API 的小应用,于是开始深入了解。如今应用初步完成,对 OpenAI 的产品有了更具体的了解。再结合之前向做 AI 的朋友请教,并总结自己观察思考,于是想写一篇文章分享给大家。希望未来的 AI 世界我们都不要缺席。

OpenAI 的服务

ChatGPT 是 OpenAI 的一项服务。它的内核是 GPT-3.5。OpenAI 还提供很多其它服务,比如图像生成、文本分析、比 ChatGPT 质量略差的 GPT-3 等。使用这些服务需要一些操作或技巧,比如翻墙——这次是 OpenAI 先动的手。以下是我摸索出的一些经验,希望可以帮后来者省去一些时间。

注册

目前注册 OpenAI 比较麻烦,因为他不向中国用户提供服务,所以必须有国外手机号,并且全程使用全局代理才可以完成。国外手机号可以借用接号平台来绕过,大家可以按需选用;如果有国外的亲朋好友帮忙,就会很容易。

绑卡

如果你只想在网页端使用 ChatGPT,可以暂时不绑卡。如果要使用 API 或者其它服务,就得绑卡。绑卡很麻烦,国内信用卡都不支持。虚拟信用卡比如 Payoneer,只对企业开放,需要资质审查,也不太好搞。

至于我,最后还是拜托国外的亲戚帮忙搞定。目前有三个月的免费期,暂时够我把设想的应用场景跑一遍了。

GPT-3 与 GPT-3.5

大热的 ChatGPT 就是 GPT-3.5,现在只提供网页服务,如果要当成 API 调用,需要一些转换步骤,比较麻烦。从开发角度来说,直接使用 OpenAI API 会简单很多,但是只能使用 GPT-3 模型,对话 质量会差一些。不过看起来 ChatGPT API 已经在登记预约中,猜测很快也会开放,所以先把代码写好,等待开放应该也可以。

目前来看,我认为官方不希望大家偷摸使用 Web 接口,近期可以继续尝试,长远来看最好做好切换到 API 的准备。

我的进展

我目前实现了本地通过 OpenAI SDK 调用服务 API。不过官方 SDK 有些问题,比如因为使用 Axios,无法部署在 Vercel Edge Function,必须放在自己的服务器上。所以接下来我计划做两件事情:

  1. 尝试不用 SDK,把逻辑直接放在 Vercel Edge Function 里
    • Vercel Edge Function 无论是否开启 stream: true 都会报告 504,猜测是 OpenAI 封禁了 Vercel。理论上当然可以继续尝试绕过,不过长远来看,与服务商做斗争并不明智,先放着吧。
  2. 搭建 ChatGPT Web API 环境,以便直接使用更好的服务
    • 需要使用第三方反向代理服务器,存在一些风险。而且他们并不愿意提供部署代理服务器的方案,理由是给非官方代理方案更大的生存空间。我觉得那就不如耐心等待 ChatGPT API 开放。

ChatGPT 的限制

(以下内容感谢 @Gary 指导。)

4097 tokens

GPT-3.5 的最大长度是 4097 token,根据我做 AI 的朋友讲解,汉字=2token,英文=0.5 token。也就是 GPT-3.5 的上下文最多保持 2k 汉字或 8k 英文字符 的内容。所有文本合并到一起发给 AI,AI 给出答案;我们再把新文本续上,发过去,AI 给出新的答案。直到最初的内容被挤出去,产生新的上下文。

这是什么意思呢?比如我们日常交流,都是自带上下文的,跟父母、跟同事、跟恋人说话不一样,也是因为上下文不同。我会跟游戏里的同好聊魔兽世界,但是如果跟父母说同样的话题,他们就会不知所云。这就是上下文的差异。

换言之,我们跟 ChatGPT 对话,用中文,教给它一件事情,累计 2k 字之后,他就会忘记这个要求。要避免这种情况,我们就得每隔一段时间重新教它一次;或者,以编程的方式重构 prompt,添加先决条件,以便维持特定功能。

听起来有理有据,但其实错误百出

我称其为“尬聊之神”。ChatGPT 并不是真的智能,或者说,目前的 AI 实现都在从不同方向模拟人类的智能,也许我们最终会成功,但是现在似乎还有些距离。具体到 ChatGPT 上就是,你说什么,他都会给出回应,但是回应有没有价值,不好说。

尤其在一些绝对的事实方面,因为训练语料的问题,ChatGPT 的表现会比较差。因为对它来说,假的、错的语料,只要语法正确,也是好语料。这方面 Bing 里号称 GPT-4(我对此版本号表示怀疑)的模型表现就会好很多,因为它会结合网页权重,使用更权威的材料。

在编程领域也是如此。因为开源软件的关系,ChatGPT 拥有非常丰富的程序开发知识,可以帮我们解决很多问题,写出很多代码。但是这些代码写得如何、能不能跑起来,还很难讲。所以,能不能把编程的工作丢给它?目前不能,它甚至不具备基于语言特性进行逻辑推导(语法检查)的能力。——但是不代表我们不能用它提升效率、学习技术。

还没有真正的智能,也无法持续学习

前面说过,ChatGPT 可以在保留一定上下文的基础上,与当前用户进行有状态的交流。所以我们也可以教 ChatGPT 做一些事情,比如发出指令:“以后提到日期,都用 YYYY-MM-DD 的格式”。接下来,我们就能把 ChatGPT 当成自动格式转换器来使用。或者,我们可以让它换用不同的语气、不同的语法,改变输出的内容,契合某种风格。比如出名的胡总编模拟器、鲁迅模拟器等。

但这些并不是自我意识与学习,本质上只是 ChatGPT 根据完整上下文合成的文本,而已。有很大的限制:首先我们必须保留足够的上下文,其次我们也没有办法直接把这个状态转移到其它用户。

哪些未来更可期?

ChatGPT 的出现,让大家都很兴奋,我也一样。我们都确定未来可期,但是通常来说,总会有一些未来更可期,另一些未来不那么可期。结合上面提到的问题,我认为有一些领域可能不太好做:

老年人陪护(x)

我有个朋友上一份工作主攻老年人市场,所以他立刻就问,能不能用 ChatGPT 做一款老年陪护软件。

我认为不行。这里涉及到两个问题:

  1. 上下文限制。AI 会损失大量的历史记录,需要用户花费大量的时间反复训练。对有经验的用户来说,可以通过各种手法优化,对老年人来说,可能会反复经历挫折。
  2. 不够准确。因为训练语料的问题,ChatGPT 无法保证内容的准确性,如果老年人寻医问诊,可能得到错误的答案。众所周知,AI 不能背锅,这一点也很难解决。

但也有一些领域会有很大的机会:

语言类,翻译、文书等

这方面算是 ChatGPT 的主场了,无论翻译,还是文书书写,目前来看 ChatGPT 都能完成的非常好。4097 tokens 的限制,可能需要我们在产品层面给予一定的辅助设计,但是在可以想象的空间内,都能产生不错的产品。包括但不限于:

  1. 小说生成器
  2. 解说文字生成器
  3. 内容/关键词提取器
  4. 商务邮件辅助工具
  5. 学外语辅助工具
  6. ……

太多太多,不一一列举了。总之,这块儿几乎一定会产生很多应用,甚至我们现在就能见到不少。

用户界面

我认为 ChatGPT 最大的价值就是全新的用户界面。以前我们的用户界面,无论命令行、图形化,都只针对具体的需求,需要用户自己有清晰的认知、有明确的方向、并认真学习。如果用户没有学习过,就很难使用现有的产品。想象一下,如果用户可以用自然语言发出命令,那几乎所有产品界面都可以重建得更好用。

举个例子,我们家 Siri 最常用的功能就是定时,比如煮泡面:嘿,siri,定时 4 分钟。但是其它功能很难做到,因为其它的功能描述起来太复杂,而且表达方式也比较多,Siri 目前处理不了。

ChatGPT 则可以从用户的文字描述中提炼出有价值的信息;经过简单的训练之后,还可以发出指定的命令。所以我设想,将来很多东西都可以用它重建,比如(GPT 没有好的翻译,所以我就用姆伊姆伊来替代):

  • “姆伊姆伊,帮我叫水”——我家桶装水喝完之后,要打电话给水站让他们送水——ChatGPT 自动拨号,跟客服简单沟通,叫水。
  • “姆伊姆伊,帮我订个外卖,吃粉吧“——这个需求会复杂很多,除了外卖之外,我们需要 AI 分辨出“吃米粉”这样的需求,并且从历史当中,判断我们常吃的粉是哪一家,然后帮我们完成订外卖的需要。

AI 公司的未来

未来 OpenAI 这样的大型公司,能提供通用模型的公司会越来越少,因为通用模型数据量和计算量太大,小公司根本烧不起。但是做 AI 的小公司可能会冒出来,类似用 WordPress 做建站,小公司可以帮客户在大模型的基础上做 finetuning,帮助客户将 AI 集成到产品里。

我会怎么做?

首先,我一定要尝试用 ChatGPT 做产品。我觉得它是很重要的产品,是未来的重要组成部分。去年它开始在业内刷屏的时候,我没想到它能获得这么大的公众关注度,这对我们来说既是好消息也是坏消息。好消息是将来可以借助它的品牌做宣传,坏消息是势必有更多的竞争者入局。

接下来是产品方向。我想做简历相关,让 ChatGPT 帮我们把简历做得更匹配 JD、更有竞争力。考虑到它在文本分析和生成方面的强势,我觉得这个方向有很大的机会。

我也计划加入一家以 AI 应用层为主要产品的公司,不要错失良机。希望能找到合适的老板或团队,即尊重技术,又擅长市场,大家能够合作共赢。

前端怎么做?

我认为现在是前端的好机会,因为目前 ChatGPT 基于浏览器提供服务,所以浏览器扩展就有很大的想象空间。建议所有前端小伙伴都好好学习一下 ChatGPT 的相关知识,能够实际开发一两个相关产品。比如,有人会让 ChatGPT 推荐一些配色,如下图:

ChatGPT 只能给出色值,不方便直接看到。我们就可以写一个浏览器插件,将页面上的颜色转换成色块显示出来,并且支持一键保存到自己的调色盘。利用好这段真空期,有很大的发展空间。

总结

以上,就是我从去年得知 ChatGPT,到最近一周基于 ChatGPT 开发浏览器扩展,再结合我看到的、聊到的、想到的内容,集中分享。

希望对看到文章的各位有启发、有帮助。如果你对 ChatGPT,对近期的 AI 热潮有想法、有问题,欢迎留言讨论。更欢迎针对我文章的评议、讨论。

未来,AI 一定会有一席之地,我们也一起来争取属于我们的新领地吧。

如果您觉得文章内容对您有用,不妨支持我创作更多有价值的分享:


已发布

分类

来自

评论

《 “我所了解的 ChatGPT:二次开发;有何限制;对未来的影响” 》 有 3 条评论

  1. 野生戴夫 的头像
    野生戴夫

    汉字平均是1.6个token英文“每个单词”平均0.75个,不是英文字符,而且是平均值具体到每个都是浮动的…

    1. meathill 的头像

      谢谢指教。所以是跟 unicode 编码有关?

  2. nszbf 的头像

    很受启发,谢谢

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据