This blog wants to explain the mechanism and essence of ChatGPT by following several parts.
架构:ChatGPT是一种基于Transformer 神经网络模型, 使用了Reinforcement Learning的深度学习技术. 它是 GPT3.5 的衍生物. 对于 Transformer 和 Reinforcement Learning 的一个初步理解见另一篇blog. 这里不再展开。
训练过程:
第一阶段:训练监督策略模型
GPT 3.5本身很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。为了让GPT 3.5初步具备理解指令的意图,首先会在数据集中随机抽取问题,由人类标注人员,给出高质量答案,然后用这些人工标注好的数据来微调 GPT-3.5模型(获得SFT模型, Supervised Fine-Tuning)。此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。
第二阶段:训练奖励模型(Reward Mode,RM)
这个阶段的主要是通过人工标注训练数据(约33K个数据),来训练回报模型。在数据集中随机抽取问题,使用第一阶段生成的模型,对于每个问题,生成多个不同的回答。人类标注者对这些结果综合考虑给出排名顺序。这一过程类似于教练或老师辅导。
接下来,使用这个排序结果数据来训练奖励模型。对多个排序结果,两两组合,形成多个训练数据对。RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得高质量回答的打分比低质量的打分要高。
第三阶段:采用PPO(Proximal Policy Optimization,近端策略优化)强化学习来优化策略。
PPO的核心思路在于将Policy Gradient中On-policy的训练过程转化为Off-policy,即将在线学习转化为离线学习,这个转化过程被称之为Importance Sampling。这一阶段利用第二阶段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用PPO模型生成回答,并用上一阶段训练好的RM模型给出质量分数。把回报分数依次传递,由此产生策略梯度,通过强化学习的方式以更新PPO模型参数。
如果我们不断重复第二和第三阶段,通过迭代,会训练出更高质量的ChatGPT模型。
训练通用大模型非常“烧钱”。据国盛证券报告《ChatGPT需要多少算力》估算,GPT-3训练一次的成本约为140万美元,对于一些更大的LLM(大型语言模型),训练成本介于200万美元至1200万美元之间。以ChatGPT在1月的独立访客平均数1300万计算,其对应芯片需求为3万多片英伟达A100 GPU,初始投入成本约为8亿美元,每日电费在5万美元左右。
更直观地理解,如果将当前的ChatGPT部署到谷歌进行的每次搜索中,需要 512820.51台A100 HGX服务器和总共4102568个A100 GPU,这些服务器和网络的总成本仅资本支出就超过1000亿美元。
“大模型的训练和推理成本一直以来是AI产业发展的瓶颈,因此具有大模型构建能力的企业往往是世界科技巨头。这会形成强大的护城河,造成强者恒强的局面。”法国里昂商学院人工智能管理学院(AIM)院长、全球商业智能中心(BIC)主任龚业明。
OpenAI正在一个从GPT3.5到GPT4.0的发展过程中。如果要彻底达到ChatGPT的水平,在短期内是不太可能的,语料库的建立,人工标注,算法的训练都需要时间。市场肯定会出现一批这样的所谓的GPT复制品,但要达到真正实用需要2-3年,那时候OpenAI又进步了。
从技术角度来看,国内的AI领域在基础理论、算法研究、语料库以及技术人才方面相对滞后。
第一,就语料库而言,语料库的构建和获取也许不是特别费劲,但是语料的标注与理解工作比较繁复。目前有很多人工智能专家还认为中文语料质量会影响国产大模型的发展。语言学的长期研究告诉我们,语料库的构建最好不能只局限于简体中文语料库,要能理解多种语言,才能构建一流的中文语料库。所以不要认为靠人海战术和低人力成本建一个简中语料库就能解决语言学问题。
第二是算法。GPT对算法的要求特别高。算法要能容纳和分析大数据,个别国产大语言模型出现了过载问题,就是算法处理不了更大的数据,或增加了数据后服务质量没提高。
第三是运算量。GPT需要高端显卡和高端芯片。在目前的国际环境中,并不是所有我国企业能获取足量的高端显卡和高端芯片。同时运算量也要求较高的投资。诚然很多国内厂商对ChatGPT有兴趣,但是他们的兴趣点也很多,跟风投机性强,无法像openAI那样全力以赴,意志坚定。
第四是技术人才。从商业模式角度分析,国内缺乏明确的前瞻性生态与商业布局。现在出现了ChatGPT这样的产品,国内也会出现很多的公司、机构,但在技术路径的复制上面,由于缺乏基础模型积累和大量的训练数据来源,所以复制难度较大。OpenAI在很多年前就理解了GPT的价值,我们到现在别人已经做出来,才知道该这样发展,才理解其中的商业价值,就慢了点。
虽然ChatGPT很强大,但其模型大小和使用成本也让很多人望而却步。有三类模型压缩(model compression)可以降低模型的大小和成本。
第一种方法是量化(quantization),即降低单个权重的数值表示的精度。比如Tansformer从FP32降到INT8对其精度影响不大。
第二种模型压缩方法是剪枝(pruning),即删除网络元素,包括从单个权重(非结构化剪枝)到更高粒度的组件如权重矩阵的通道。这种方法在视觉和较小规模的语言模型中有效。
第三种模型压缩方法是稀疏化。例如奥地利科学技术研究所 (ISTA)提出的SparseGPT 可以将 GPT 系列模型单次剪枝到 50% 的稀疏性,而无需任何重新训练。对 GPT-175B 模型,只需要使用单个 GPU 在几个小时内就能实现这种剪枝。
下游相关受益应用来看,包括但不限于无代码编程、小说生成、对话类搜索引擎、语音陪伴、语音工作助手、对话虚拟人、人工智能客服、机器翻译、芯片设计等。从上游增加需求来看,包括算力芯片、数据标注、自然语言处理(NLP)等。