原创图片

首先,我不是专业的学者和科学家,就是一个普通人,曾经有过几年的程序员经验而已,去年6月份开始关注AIGC,而后遇到了ChatGPT这波浪潮,逐渐深入开始对AI的发展和当前的形势有一个个人理解,分享出来供大家探讨。不足之处请谅解,欢迎指正。

本文介绍为主,文章末尾会附上我对本次更新的个人见解,希望对各位有所帮助。

首先,所有OpenAI的free开发者喜大普奔啊,之前为所有free 用户担忧的每个月$18这个费用啥时候消耗完啊,现在基本可以不用担心了,或者说他变成了$180,为什么呢?因为如果你想要通过API调用OpenAI所有已经开源的子模型的服务,那么免费用户赠送的18美金,就会通过计算每次API调用消耗Token,来扣除费用,至于什么叫做Token,我下方会做出解释。而GPT-3.5的API的token消耗约为此前GPT-3系列API的1/10,所以才有上面这个说法,如下图:

官方API截图

我先快速解释2-3个基本概念,便于后面的阐述:

  • 什么叫Token?

来源于OpenAI官方API

这里借用官方的解释来说明(标记就是Token):我们的模型通过将文本分解为标记来理解和处理文本。标记可以是单词,也可以只是字符块。例如,单词“汉堡包”被分解为标记“ham”,“bur”和“ger”,而像“梨”这样的简短而常见的单词是单个令牌。许多标记以空格开头,例如“hello”和“bye”。

给定 API 请求中处理的令牌数量取决于输入和输出的长度。根据粗略的经验法则,对于英文文本,1 个标记大约是 4 个字符或 0.75 个单词。要记住的一个限制是,文本提示和生成的完整组合不得超过模型的最大上下文长度(对于大多数模型,这是 2048 个标记,或大约 1500 个单词)。

这里强调一点,对于汉字的支持程度要低于英文,至于什么原因?大概是由于大模型训练的时候,语料的量级差太多,估计不到10%的语料是中文的,希望基于汉字语料也能尽快出现成熟的对标大模型,各位前辈和先锋者,任重而道远啊!

  • 什么是模型?GPT和ChatGPT到底什么区别?

模型是一种用于描述客观事物的数学或统计学方法,用于预测和预测客观事实的结果。模型可以是确定性的(如线性回归模型),也可以是概率性的(如随机森林模型)。


而这里提到的模型,指的是GPT是一个基于Transformer的语言与训练模型,为什么叫模型,如上所述,他可以用来预测结果,因为经过不断的学习和训练,我们有一套成熟的参数体系,只要你用这套参数体系,那么你提供输入,他就会按照自己的体系输出你想要的结果,这个就是简单来说模型的作用,所以模型的构造和训练需要花费巨量的人力物力财力,举个例子,OpenAI针对GPT-3的模型训练费用,每个月大概是$1200万,这只是训练一次的费用,如果想要模型工作的更好,需要针对模型进行不断的调优再训练,所以不是一般公司玩得起,也就微软谷歌这种公司才能打响这种级别的战斗。

GPT(Generative Pre-trained Transformer)是一种基于预训练的语言模型,它可以自动地生成自然语言文本。它是由OpenAI在2018年推出的,使用了Transformer架构,可以更快地实现计算机翻译、问答系统、文本生成等任务。

ChatGPT(Chatbot Generative Pre-trained Transformer)是一种基于GPT的聊天机器人模型,它可以自动理解对话上下文,并自动生成对应的回复。ChatGPT模型可以用于实现聊天机器人应用,提供更加自然的对话体验。

GPT和ChatGPT的区别在于,GPT是一种通用的语言模型,可以用于多种语言任务,而ChatGPT则是专门针对聊天机器人而设计的模型,可以直接应用于聊天机器人。

  • GPT-3和GPT-3.5又是什么区别?

简单来讲,GPT-3有1750亿个参数来构造模型,每一个参数的变化都会对模型准确性产生影响,目前经过无数次微调,终于找到一个平衡点,让所有参数都起到最优的效果。而此前最优秀的模型的参数也大概只有几十亿而已,所以GPT-3是一个大模型,而GPT-3.5是比大更大的模型。

GPT-3 (Generative Pre-trained Transformer 3)是OpenAI在2020年6月发布的最新开放式自然语言处理模型,其包含了超过175亿个参数,是目前最大的预训练模型。GPT-3.5是GPT-3的更新版本,其增加了更多的参数,以及更强大的模型架构。GPT-3.5模型训练用的数据集比GPT-3更大,具有更多的参数,可以更好地处理复杂的问题。

  • 从API的角度讲GPT-3和GPT-3.5的变化

GPT-3支持:

其中:

Completions就是常见的文字生成的任务,你给定一个输入(prompt),会给你一个输出(choices)。


Edits是给定两个输入,其中一个是内容(input),一个是想要对内容进行的操作(instruction),比如你想翻译一句话A,那输入就是“A”和“请翻译这句话为英文”。

Image就是给定一个文字描述图片,按照描述生成图片。

Embeddings会把一个输入转移为词向量(一种数字表示),这样有利于做相似度对比,比如余弦相似度等。

File是一系列文件的管理API,可以增删改查(因为你微调模型的时候需要训练集和验证数据集等文件)

比如上传文件

Fine-tunes是微调模型,可以在子模型基础上进行训练,让模型在某些子领域或者行业有更好的效果

Moderations是审计和政治色情暴力等内容校验,会列举出每个触发审核的类型以及类型对应的概率值,最大的那个就是最符合的结果。

  • 而GPT-3.5多出了两个系列的API:Chat和Whisper,其中:
  • ChatAPI,两个子模型:

gpt-3.5-turbo:功能最强大的 GPT-3.5 型号,针对聊天进行了优化,将使用我们最新的模型迭代进行更新。

gpt-3.5-turbo-0301:3/1的版本,不会持续更新,到6/1会结束,持续三个月的时间,给大家尝鲜使用。

ChatGPT由OpenAI最先进的语言模型提供支持。gpt-3.5-turbo 使用 OpenAI API,您可以构建自己的应用程序,以执行以下操作:

  • 起草电子邮件或其他文章
  • 编写蟒蛇代码
  • 回答有关一组文档的问题
  • 创建会话代理
  • 为您的软件提供自然语言界面
  • 一系列科目的导师
  • 翻译语言
  • 模拟视频游戏的角色 等等

你可以指定不同的角色,来进行对话式的交互,在API上,参数有一定变化,你需要指定内容对应的角色(role)以及角色的内容(content),目前官方指定有三种角色:“系统”(system)、“用户”(user)或“助手”(assistant)

对话的格式首先是系统消息,然后是交替的用户和助理消息。

系统消息有助于设置助手的行为。在上面的例子中,助理被指示“你是一个乐于助人的助手”。

用户消息有助于指示助手。它们可以由应用程序的最终用户生成,也可以由开发人员设置为指令。

助理消息有助于存储先前的响应。它们也可以由开发人员编写,以帮助提供所需行为的示例。

  • Whisper模型和API:

一种通用语音识别模型。它是在各种音频的大型数据集上进行训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Whisper v2-large 模型目前可通过我们的 API 使用模型名称。whisper-1

这个模型到底可以干啥呢?如上文就两个任务:

一个是转录(Transcription):把一种语言的语音转成其他语言的语音

一个把语音翻译为英文文字(Translation):目前只支持把一种语言的语音,直接翻译为英文的文字输出,不支持自定义输出语言类型。

注意:以上两种任务都有一个文件的大小限制:每个语音文件大小需要不超过25M,当然了如果超过,那也有官方的解决办法,就是拆分为多个文件,但是会有剪切处文件转录或者翻译后丢失上下文的现象还需要另外解决。

总之,这是一个大的进步,最后我针对这次的变化说一下个人见解:

  1. ChatAPI的出现,减轻了之前基于GPT-3想要营造对话式和上下文或者角色的开发者负担,但是还有很长的路要走!
  2. Token消耗的降低实在是造福开发者!
  3. turbo这个名字很好,毕竟只是GPT中的一部分,但turbo的确是一个核心或加速器!
  4. Whisper再次证明将来是向着多模态进军,应该是GPT-4的一个预告了!

以后我还会不断分享个人的一些见解和普及,包括不限于:

  • 什么是AIGC,AIGC和ChatGPT到底什么关系?
  • 文生图跟ChatGPT是什么关系?
  • 什么是多模态?
  • 大家总是讲模型微调,微调到底是什么意思?
  • 为什么要微调?
  • Prompt Engineering又是什么?

。。。。还有一系列的问题,我会分开多次给大家同步讲清楚,对于不了解这个内容的小伙伴更够在听到这些的时候有一个基本的判断。

以上,一个30岁刚刚对AI感兴趣入门的小白的个人理解,不足之处还请多多谅解,欢迎指正!共同理解,共同进步!