ChatGPT原理与实战:大型语言模型的算法、技术和私有化(310531)

0评论量

13阅读量

内容简介作者简介编辑推荐精彩书摘目录
这是一本系统梳理并深入解析ChatGPT核心技术、算法实现、工作原理、训练方法的著作,也是一本能指导你搭建专属ChatGPT和实现大模型迁移及私有化的著作。本书得到了MOSS系统负责人邱锡鹏等多位专家的高度评价和鼎力推荐。 具体地,通过本书你能了解或掌握以下知识: ChatGPT的工作流程和技术栈 ChatGPT的工作原理和算法实现 基于Transformer架构的一系列预训练语言模型的原理 强化学习的基础知识 提示学习与大模型涌现出的上下文学习、思维链 大模型的训练方法及常见的分布式训练框架 基于人工反馈的强化学习整体框架 从零搭建类ChatGPT模型,模拟完整的ChatGPT训练过程 本书集理论、实战和产业应用于一体,提供大量经详细注释的代码,方便读者理解和实操。总之,不管里是想深入研究ChatGPT本身,还是正在研发或使用其他大模型,本书都应该能给你颇具价值的技术启发与思考,让你在大模型的路上快速前行,少走弯路。
(1)作者经验丰富:作者来自BAT等知名科技公司,是NLP和AI领域的资深专家,大模型领域的先驱者,实战经验丰富。 (2)深度解析ChatGPT:系统梳理并深入解析ChatGPT的核心技术、算法实现、工作原理、训练方法,提供大量代码及注解。 (3)搭建专属ChatGPT:不仅教你如何实现大模型的迁移和私有化,而且手把手教你零基础搭建自己专属的ChatGPT。 (4)行业优选:MOSS系统负责人邱锡鹏、ChatGLM技术团队成员刘潇等多位大模型技术专家高度评价并推荐。
前言 为什么要写本书 2022年11月30日,ChatGPT模型问世并立刻在全球范围内引起了轩然大波。无论AI从业者还是非从业者,都在热议ChatGPT极具冲击力的交互体验和惊人的生成内容。这使得人们对人工智能的潜力和价值有了更深入的认识。对于AI从业者来说,ChatGPT模型成为一种思路的扩充,大型语言模型不再是刷榜的玩具,所有人都认识到高质量数据的重要性,并坚信“有多少人工,就会有多少智能”。ChatGPT模型效果过于优秀,在许多任务上,即使是零样本或少量样本数据也可以达到SOTA(Stafe Of The Art,最高水准)效果,因而很多人转向大型语言模型的研究。 不仅Google提出了对标ChatGPT的Bard模型,国内也涌现出了许多中文大型语言模型,如百度的“文心一言”、阿里巴巴的“通义千问”、昆仑万维的“天工3.5”、商汤的“日日新”、知乎的“知海图AI”、清华智谱的“ChatGLM”、复旦的“MOSS”等等。斯坦福大学的Alpaca模型问世之后,证明了70亿参数量的模型虽然达不到ChatGPT的效果,但已经极大地降低了大型语言模型的算力成本,使得普通用户和一般企业也可以使用大型语言模型。之前一直强调的数据获取问题,可以通过GPT-3.5或GPT-4接口来解决,并且数据质量相当高。如果只需要基本的效果模型,数据是否再次精标已经不是那么重要了(当然,要获得更好的效果,则需要更精准的数据)。 在此期间,涌现出了大量相关的博客、论文和开源项目。笔者的感觉是“每天都要学习太多东西,但所学的内容都太零散了”。经过一番思考和准备之后,笔者决定系统地梳理目前ChatGPT所涉及的相关技术,以帮助读者进行深入的学习。本书主要强调知识的系统性和完整性,这是网络学习所无法替代的。技术书可以弥补新媒体碎片化教育的短板,阅读图书更便于查漏补缺。正规的技术书在内容严谨性方面做得相对较好,对内容的正确性和规范性要求极高,更适合从业人员进行学习和日常检索。当然,学习的道路并不是非此即彼,只有利用各种方式,多渠道学习,才能真正实现全方位高效学习。 技术的变化是飞速的,在撰写本书初期,还没有出现LLaMa、GPT-4、ChatGLM等模型,当它们出现之后我们随之修改了相关内容,以期本书介绍ChatGPT相关技术时更具前沿性。技术会持续更新换代,书中提到的很多技术也许在不远的将来便会被更为强大的技术所取代,但这并不影响我们学习这些技术的原理,因为学习这些技术本身会引发更深层次的思考。 读者对象 本书适合以下读者阅读: ❑AIGC(AI Generated Content,人工智能生成内容)相关领域的研究人员或技术人员。 ❑初入AI行业且基础不深的从业人员。 ❑对ChatGPT感兴趣的非从业人员。 本书特色 本书是一本集理论、实战和落地于一体的ChatGPT力作,具备以下特点。 ❑理论联系实际:本书不仅全面介绍了自然语言处理与强化学习的相关理论知识,还通过案例讲解使这些理论更易于理解和掌握,帮助读者在实践过程中更深入地了解这些领域的基础和前沿动态。 ❑实战应用落地:本书详细介绍了如何从零开始,逐步构建一个独立且具有个性化特点的大型语言模型。通过分析代码和实际案例,帮助读者更好地理解和掌握相关技术,从而实现自己的创新应用。 ❑扩展AIGC视野:本书针对AIGC领域进行全方位的剖析,而非仅关注ChatGPT本身。这使得读者能够全面了解AIGC的发展历程、技术原理、应用场景和未来趋势,为自己的研究和实践提供更广阔的视野。 ❑洞悉行业发展:本书作者具有丰富的AI从业经验,对AI领域的发展动态、技术挑战和应用前景有深刻的认识。因此,本书不仅提供了严谨的技术分析,还融入了作者的专业洞察,帮助读者在理论与实践之间找到最佳的平衡点。 如何阅读本书 本书从逻辑上分三部分。 第一部分(第1和2章)从宏观角度带领读者了解ChatGPT。第1章介绍ChatGPT的由来、发展史以及用例。第2章对ChatGPT进行解构,基于AIGC相关背景知识逐步展开ChatGPT所应用的技术栈,让读者对ChatGPT有更加完整的认知。 第二部分(第3~9章)介绍ChatGPT的核心技术。本书强调理论与实战并行,在介绍相关技术的同时,针对相应核心算法展开实战,在真实中文数据集下验证算法性能,让读者从更深层次了解相关算法。第3章介绍基于Transformer结构的预训练语言模型。第4章介绍强化学习的基础知识。第5章介绍从提示学习与大型语言模型涌现出来的上下文学习、思维链等能力。第6章介绍大型语言模型的训练方法及常见的分布式训练框架。第7章重点对GPT系列模型进行分析。第8章介绍PPO强化学习算法以及基于人工反馈的强化学习整体框架的设计。第9章进行类ChatGPT的实战,通过文档生成问题任务模拟完整的ChatGPT训练过程。 第三部分(第10章)对ChatGPT的未来发展进行展望。从AIGC未来发展方向出发,探索云边协同、工具应用、可控生成、辅助决策四方面内容,分别从C端场景和B端场景探索ChatGPT与实际应用场景的结合点,并给出从事AIGC行业的参考建议。 勘误和支持 由于作者水平有限,书中难免存在一些遗漏或者不够准确的地方,恳请读者批评指正。如果你发现了书中的错误或遇到任何问题,可以将其提交到https://github.com/liucongg/ChatGPTBook,也可以发送邮件至邮箱logcongcong@gmail.com,我们将在线上提供解答。期待得到你的真挚反馈。 致谢 首先要感谢提出ChatGPT的每一位研究员,是他们的坚持让我们有机会体验到如此伟大的模型,也让我们对人工智能有了新的认识。 感谢我的硕士导师侯凤贞以及本科期间的关媛老师、廖俊老师、胡建华老师、赵鸿萍老师、杨帆老师等,是他们指引我走到今天。 感谢我的朋友杜振东、涂铭、沈盛宇与我一起编写本书,他们的专业知识让本书增色不少。 由衷感谢云问公司创始人王清琛、茆传羽、张洪磊对我工作的支持,并感谢在云问共同奋斗的每一位充满创意和活力的朋友:张蹲、李平、林思琦、杨萌、王杰、杨兆良、李辰刚、张荣松、徐健、张媛媛、张雅冰、孟凡华、李蔓,以及其他很多朋友。十分荣幸可以同各位在一家创业公司一起为人工智能落地而努力奋斗。 最后感谢我的爸爸妈妈、爷爷奶奶,感谢他们将我培养成人,并时时刻刻给予我信心和力量!谨以此书献给我亲爱的妻子崔天宇! 刘聪
赞誉 前言 第1章 了解ChatGPT 1.1 ChatGPT的由来 1.1.1 什么是ChatGPT 1.1.2 ChatGPT的发展历史 1.2 ChatGPT的工作流程 1.3 ChatGPT用例 1.3.1 日常任务 1.3.2 编写代码 1.3.3 文本生成 1.3.4 办公自动化 1.4 本章小结 第2章 ChatGPT原理解构 2.1 背景知识 2.1.1 自然语言处理的发展历程 2.1.2 大型语言模型的发展历程 2.2 ChatGPT同类产品 2.2.1 BlenderBot 3.0 2.2.2 LaMDA 2.2.3 Sparrow 2.3 ChatGPT的工作原理 2.3.1 预训练与提示学习阶段 2.3.2 结果评价与奖励建模阶段 2.3.3 强化学习与自我进化阶段 2.4 算法细节 2.4.1 标注数据 2.4.2 建模思路 2.4.3 存在的问题 2.5 关于ChatGPT的思考 2.6 本章小结 第3章 预训练语言模型 3.1 Transformer结构 3.2 基于Encoder结构的模型 3.2.1 BERT 3.2.2 RoBERTa 3.2.3 ERNIE 3.2.4 SpanBERT 3.2.5 MacBERT 3.2.6 ALBERT 3.2.7 NeZha 3.2.8 UniLM 3.2.9 GLM 3.2.10 ELECTRA 3.3 基于Decoder结构的模型 3.3.1 GPT 3.3.2 CPM 3.3.3 PaLM 3.3.4 OPT 3.3.5 Bloom 3.3.6 LLaMA 3.4 基于Encoder-Decoder结构的模型 3.4.1 MASS 3.4.2 BART 3.4.3 T5 3.5 基于夸夸闲聊数据的UniLM模型实战 3.5.1 项目简介 3.5.2 数据预处理模块 3.5.3 UniLM模型模块 3.5.4 模型训练模块 3.5.5 模型推理模块 3.6 本章小结 第4章 强化学习基础 4.1 机器学习的分类 4.1.1 有监督学习 4.1.2 无监督学习 4.1.3 强化学习 4.2 OpenAI Gym 4.2.1 OpenAI Gym API简介 4.2.2 环境简介 4.3 强化学习算法 4.3.1 Q-learning算法 4.3.2 SARSA算法 4.3.3 DQN算法 4.3.4 Policy Gradient算法 4.3.5 Actor-Critic算法 4.4 本章小结 第5章 提示学习与大型语言模型的涌现 5.1 提示学习 5.1.1 什么是提示学习 5.1.2 提示模板设计 5.1.3 答案空间映射设计 5.1.4 多提示学习方法 5.2 上下文学习 5.2.1 什么是上下文学习 5.2.2 预训练阶段提升上下文学习能力 5.2.3 推理阶段优化上下文学习的效果 5.3 思维链 5.4 基于提示的文本情感分析实战 5.4.1 项目简介 5.4.2 数据预处理模块 5.4.3 BERT模型模块 5.4.4 模型训练模块 5.4.5 模型推理模块 5.5 本章小结 第6章 大型语言模型预训练 6.1 大型预训练模型简介 6.2 预训练模型中的分词器 6.2.1 BPE 6.2.2 WordPiece 6.2.3 Unigram 6.2.4 SentencePiece 6.3 分布式深度学习框架 6.3.1 并行范式简介 6.3.2 Megatron-LM 6.3.3 DeepSpeed 6.3.4 Colossal-AI 6.3.5 FairScale 6.3.6 ParallelFormers 6.3.7 OneFlow 6.4 基于大型语言模型的预训练实战 6.4.1 项目简介 6.4.2 数据预处理模块 6.4.3 执行模型训练 6.5 基于大型语言模型的信息抽取实战 6.5.1 项目简介 6.5.2 数据预处理模块 6.5.3 Freeze微调模块 6.5.4 LoRA微调模块 6.5.5 P-Tuning v2微调模块 6.6 本章小结 第7章 GPT系列模型分析 7.1 GPT-1~GPT-4系列模型分析 7.1.1 GPT-1和GPT-2模型 7.1.2 GPT-3模型 7.1.3 GPT-3的衍生模型:Code-X 7.1.4 GPT-4模型 7.2 InstructGPT模型分析 7.2.1 模型简介 7.2.2 数据收集 7.2.3 模型原理 7.2.4 模型讨论 7.3 基于GPT-2模型的文本摘要实战 7.3.1 项目简介 7.3.2 数据预处理模块 7.3.3 GPT-2模型模块 7.3.4 模型训练模块 7.3.5 模型推理模块 7.4 本章小结 第8章 PPO算法与RLHF理论实战 8.1 PPO算法简介 8.1.1 策略梯度算法回顾 8.1.2 PPO算法原理剖析 8.1.3 PPO算法对比与评价 8.2 RLHF框架简介 8.2.1 RLHF内部剖析 8.2.2 RLHF价值分析 8.2.3 RLHF问题分析 8.3 基于PPO的正向情感倾向性生成项目实战 8.3.1 项目任务与数据集分析 8.3.2 数据预处理模块 8.3.3 模型训练模块 8.3.4 模型生成模块 8.3.5 模型评估模块 8.4 问题与思考 8.5 本章小结 第9章 类ChatGPT实战 9.1 任务设计 9.2 数据准备 9.3 基于文档生成问题任务的类ChatGPT实战 9.3.1 SFT阶段 9.3.2 RM阶段 9.3.3 RL阶段 9.4 本章小结 第10章 ChatGPT发展趋势 10.1 AIGC的发展趋势 10.1.1 AI云边协同 10.1.2 AI工具应用 10.1.3 AI可控生成 10.1.4 AI辅助决策 10.2 ChatGPT 2C应用场景 10.2.1 个人助手 10.2.2 知识导师 10.2.3 创意集市 10.2.4 情感伴侣 10.3 ChatGPT 2B应用场景 10.3.1 智能客服 10.3.2 办公助手 10.3.3 软件研发 10.3.4 决策辅助 10.4 行业参考建议 10.5 本章小结