一、背景知识
1. 自然语言处理的发展历程
自然语言处理在不同时期呈现出不同的特点和发展态势。萌芽期,艾伦・图灵在 1936 年提出 “图灵机” 概念,为计算机诞生奠定基础,1950 年他提出著名的 “图灵测试”,预见了计算机处理自然语言的潜力。1956 年,乔姆斯基的形式语言理论和香农的信息论模型为自然语言处理的发展铺平了道路,这一时期的研究成果为后续自然语言处理技术的发展提供了重要的理论基础。
发展期,自然语言处理融入人工智能研究领域,分为基于规则方法的符号派和采用概率方法的随机派两大阵营。这一时期,两种方法的研究都取得了长足的发展,如宾夕法尼亚大学研制成功的 TDAP 系统和布朗美国英语语料库的建立等。
低速的发展期,虽然自然语言处理的研究进入低谷,但仍取得了一些成果,如基于隐马尔可夫模型的统计方法在语音识别领域获得成功,话语分析也取得重大进展。
复苏融合期,90 年代中期以后,计算机速度和存储量大幅增加以及 Internet 商业化和网络技术发展,促进了自然语言处理研究的复苏与发展。2001 年神经语言模型出现,2008 年多任务学习、2013 年 Word 嵌入和 NLP 的神经网络、2014 年序列到序列模型、2015 年注意力机制和基于记忆的神经网络、2018 年预训练语言模型等不断推动自然语言处理技术的进步。
2. 大型语言模型的发展历程
大型语言模型的发展历程与自然语言处理紧密相关。早期阶段主要是基于规则的方法,处理少量数据。随着技术的发展,进入基于统计的阶段,如 N-Gram 等模型,但容易出现数据稀疏等问题。2017 年 Transformer 发布后,大语言模型进入基于神经网络的阶段,参数量增长迅速。以 GPT-3 为例,2020 年发布的 GPT-3 算力消耗费用达到千万美元级别,预训练数据量达到 45TB,实际参数量达到 1750 亿。大语言模型通过数据信息容量巨大、底层模型结构优秀、模型训练方法完善等关键突破,实现了性能的大幅提升。未来,大语言模型有望呈现超线性发展趋势,并形成全新产业形态,为各个行业带来巨大的变革和机遇。
二、ChatGPT 同类产品
1. BlenderBot3
BlenderBot3 是 Meta 推出的聊天机器人,具有以下特点和优势。首先,它可以与人交互并接收反馈以提高对话能力。基于 Meta AI 公开提供的 OPT-175B 语言模型构建,规模是其前身 BlenderBot 2 的 58 倍。融合了人格、共情和知识等对话技能,并通过利用长期记忆和搜索互联网来进行有意义的对话。
在与 ChatGPT 的对比方面,BlenderBot3 有一些独特之处。它的模型所有部分,包括代码、数据集等全部公开,可供所有人使用。用户在与 BlenderBot3 聊天时,可以点击机器人给出的回答,查看这句话在互联网上的出处。然而,BlenderBot3 也存在一些问题,例如在回答问题时可能会出现错误信息或负面言论。
2. LaMDA
LaMDA 是谷歌推出的一系列专门用于对话的基于 Transformer 的模型。它具有 1370 亿个参数,并使用 1.56 万亿个公开对话数据进行训练。
LaMDA 的运行方式是通过微调采用 Transformer 架构的专用对话神经语言模型而构建,可以利用外部知识源展开对话。在对话时,LaMDA 生成器会对面向的上下文生成几个候选回应,然后 LaMDA 分类器预测每个候选回应的质量和安全分数,最后根据这两项数据的排名选出最佳回应。
在谷歌产品中的应用方面,LaMDA 被用于提高谷歌的对话服务质量,为用户提供更安全、更高质量的对话体验。与 ChatGPT 相比,LaMDA 在参数规模上具有一定优势,但在实际应用中,两者各有特点。
3. sparow
Sparrow 是由 DeepMind 开发的聊天机器人,具有自动执行重复性任务和流程、学习和适应能力强、提供多种定制选项和集成等功能。
Sparrow 的功能特色包括:旨在正确回答用户的问题,同时减少不安全和不适当回答的风险。通过使用人类判断进行训练,使其比基线预训练语言模型更有帮助、更正确和更无害。在自然语言处理领域,Sparrow 为解决语言模型产生不正确、带偏见或潜在有害输出的问题提供了一种新的思路和方法。与 ChatGPT 相比,Sparrow 在回答问题的准确性和安全性方面可能更具优势,但在语言的丰富性和创造性方面可能还有待提高。
三、ChatGPT 的工作原理
1. 预训练与提示学习阶段
ChatGPT 在大规模文本数据上进行预训练,学习语言的通用表示。其预训练数据来源广泛,包括互联网上的各种文本内容,如新闻、博客、小说等。据统计,ChatGPT 的预训练数据量达到了数百 GB 甚至更多。通过对如此庞大的数据进行学习,ChatGPT 能够掌握语言的语法、语义和常见的表达方式。
在提示学习阶段,ChatGPT 根据特定任务进行调整,以更好地适应不同的对话场景。例如,当用户提出一个问题时,ChatGPT 会根据问题的关键词和上下文,利用预训练阶段学到的知识,生成一个初步的回答。然后,通过不断调整回答的内容和形式,使其更符合用户的需求。
2. 结果评价与奖励建模阶段
在这个阶段,ChatGPT 收集相同上文下根据回复质量进行排序的数据。具体来说,随机抽取一大批 Prompt,使用第一阶段微调模型,产生多个不同的回答。然后,标注人员对这些回答进行排序,形成训练数据对。
接下来,训练奖励模型。奖励模型的作用是预测标注者更喜欢哪个输出。通过使用 pairwise loss 来训练奖励模型,可以给出相对精确的奖励值。这一步使得 ChatGPT 从命令驱动转向了意图驱动,引导 ChatGPT 输出符合人类预期的内容。
例如,对于一个问题 “今天天气怎么样?”,ChatGPT 可能会生成多个回答,如 “今天天气很好。”“今天天气晴朗。”“今天天气不错。” 标注人员会根据回答的质量进行排序,奖励模型会学习这些排序结果,从而能够预测出在不同情况下,标注者更倾向于哪个回答。
3. 强化学习与自我进化阶段
在这个阶段,ChatGPT 使用 PPO 强化学习策略微调模型。具体步骤如下:
首先,利用上段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用 PPO 模型生成回答,并用上一阶段训练好的 RM 模型给出质量分数。
然后,将回报分数依次传递,从而产生策略梯度,通过强化学习的方式来更新 PPO 模型参数。整个过程迭代数次直到模型收敛。
强化学习算法可以简单理解为通过调整模型参数,使模型得到最大的奖励(reward),最大奖励意味着此时的回复最符合人工的选择取向。而对于 PPO,它是一种新型的强化学习策略优化算法,具有实现简单、易于理解、性能稳定、能同时处理离散 / 连续动作空间问题、利于大规模训练等优势。
通过不断地进行强化学习和自我进化,ChatGPT 能够不断优化回复质量,提高对话的准确性和流畅性,更好地满足用户的需求。
四、算法细节
1. 标注数据
ChatGPT 的训练数据标注工作至关重要。据了解,其训练数据由标注师分别扮演用户和聊天机器人产生人工精标的多轮对话数据,以及根据回复质量排序的数据等。
数据标注的过程复杂且工作量庞大。标注师需要对大量的文本数据进行精细处理,例如对不同类型的回复进行质量排序。这就如同为一座巨大的知识宝库进行分类整理,以便让 ChatGPT 能够更好地从中学习和提取信息。
有研究指出,为了训练 ChatGPT,OpenAI 的合作伙伴 Sama 雇佣了肯尼亚、乌干达和印度的外包员工。这些标注员每 9 个小时要阅读和标注 150 - 200 段文字,段落长度从 100 个单词到 1000 多个单词不等。薪酬方面,Sama 为 OpenAI 雇佣的数据标签员工支付的时薪在 1.32 美元 - 2 美元之间,具体取决于资历和表现。
2. 建模思路
ChatGPT 基于 Transformer 架构,采用 “预训练 + 微调” 的方法,通过自监督学习、遮蔽语言模型和强化学习等技术,生成准确、连贯和有意义的对话内容。
Transformer 架构是一种仅依赖于注意力机制而不使用循环或卷积的简单模型,它在性能方面表现出色,具有更好的并行度和更短的训练时间。在预训练阶段,ChatGPT 通过自监督学习在大规模文本数据上学习语言的通用表示,掌握语言的语法、语义和常见表达方式。遮蔽语言模型则通过随机遮蔽部分文本,让模型预测被遮蔽的部分,进一步提高模型对语言的理解能力。
在微调阶段,ChatGPT 根据特定任务进行调整,以更好地适应不同的对话场景。强化学习则通过奖励模型和策略优化算法,不断优化回复质量,使模型输出更符合人类预期。
3. 存在的问题
尽管 ChatGPT 取得了巨大的成功,但它仍然存在一些问题。
首先,简单逻辑问题错误依旧明显。在处理一些需要逻辑推理的问题时,ChatGPT 可能会给出错误的答案。例如,在数学问题上,根据亚利桑那州立大学副教授的一项研究,ChatGPT 的准确率低于 60%。
其次,有时会给出看似合理但不正确或荒谬的答案。这是因为 ChatGPT 是基于大量数据进行训练的,它可能会受到数据中的偏见和错误信息的影响。
此外,ChatGPT 的部分回复废话较多、句式固定。在回答问题时,它可能会重复之前提出的观点,或者使用一些固定的句式,这可能会让人类读者感到不和谐。
抵抗不安全的 prompt 能力较差也是一个问题。如果用户输入一些不安全或不适当的提示,ChatGPT 可能会给出不恰当的回复,这可能会带来一定的风险。
五、关于 chatpgt 的思考
ChatGPT 的出现无疑给社会带来了巨大的冲击和变革。从社会层面来看,它极大地提高了信息处理和交流的效率。例如,在客服领域,ChatGPT 可以快速响应客户的问题,为企业节省大量人力成本。据统计,一些企业在引入 ChatGPT 后,客服响应时间缩短了 50% 以上,客户满意度也有显著提升。同时,它也为人们的日常生活提供了便利,如帮助人们撰写邮件、文案等,节省了时间和精力。然而,它也带来了一些挑战,如虚假信息的传播和就业岗位的调整。
在教育领域,ChatGPT 既带来了机遇也带来了挑战。一方面,它可以作为学生的学习助手,提供在线学习资源,支持学生自主学习,改善教学方式。例如,学生可以通过与 ChatGPT 对话,获取知识和解答疑惑,提高学习效率。但另一方面,它也可能导致学生作弊行为的增加,影响学生的独立思考能力。因此,教育工作者需要引导学生正确使用 ChatGPT,培养学生的批判性思维和创新能力。
在科技领域,ChatGPT 推动了自然语言处理技术的发展,为人工智能的进一步发展奠定了基础。未来,ChatGPT 有望在提升语境理解能力、生成文本的多样性和创造性、增强对话系统的实时学习与适应能力、提高跨语言和文化交流能力、提升计算效率及环保性、增强个性化和定制能力等方面取得突破。例如,通过改进算法和模型结构,让 ChatGPT 具备更人性化的推理能力,包括因果关系推理、逻辑演绎能力,更好地把握长对话的上下文、对复杂情境的准确识别和更精细化的情绪感知。
然而,ChatGPT 的发展也面临着一些挑战。首先,数据隐私和安全问题是一个重要的挑战。由于 ChatGPT 需要大量的数据进行训练,这些数据可能包含个人隐私信息,如果处理不当,可能会导致数据泄露和隐私侵犯。其次,伦理道德问题也需要引起关注。例如,ChatGPT 可能会被用于不道德的目的,如传播虚假信息、进行网络攻击等。此外,ChatGPT 的发展也可能加剧社会不平等,因为只有具备一定技术和资源的人才能充分利用它的优势。
为了应对这些挑战,我们需要采取一系列措施。在技术方面,加强数据隐私和安全保护技术的研发,确保用户数据的安全。在伦理道德方面,制定相关的规范和准则,引导 ChatGPT 的合理使用。在教育方面,加强对学生的数字素养教育,培养学生正确使用人工智能技术的能力。在社会层面,加强对人工智能技术的监管,确保其发展符合社会的利益和价值观。
总之,ChatGPT 的出现为我们带来了机遇和挑战,我们需要正确认识和对待它,充分发挥其优势,同时积极应对其带来的挑战,推动人工智能技术的健康发展,为人类社会的进步做出贡献。