易燃物汇聚 YouTube 有声书与书评
ChatGPT原理与架构:大模型的预训练、迁移和中间件编程 封面

ChatGPT原理与架构:大模型的预训练、迁移和中间件编程

程戈

3290人在读
12.4万字总字数
¥59定价

内容简介

内容简介 这是一本深入阐述ChatGPT等大模型的工作原理、运行机制、架构设计和底层技术,以及预训练、迁移、微调和中间件编程的著作。它将帮助我们从理论角度全面理解大模型,从实践角度更好地应用大模型,是作者成功训练并部署大模型的过程复盘和经验总结。 第1章介绍了ChatGPT等大模型的发展历程、技术演化和技术栈等基础知识; 第2~5章深入讲解了Transformer的架构原理,并从GPT-1的生成式预训练到GPT-3的稀疏注意力机制详细描述了GPT系列的架构演进; 6~8章从底层技术实现的角度讲解了大语言模型的训练策略、数据处理方法,以及如何利用策略优化和人类反馈来进一步提升模型的表现; 第9~10章首先详细讲解了大语言模型在垂直领域的低算力迁移方法,并给出了医疗和司法领域的迁移案例,然后讲解了大模型的中间件编程; 第11章对GPT的未来发展趋势进行预测,探讨数据资源、自回归模型的局限性,以及大语言模型时代具身智能的可行路线。

读者书评

★★★★★

整理了一下本书的基本脉络,还算是较为系统地,按照大模型的各个发展阶段介绍了其主要的核心技术。 【第一章】是大模型的基本介绍,概括类的基础知识,有基础的同学可跳过。 【第二章】是大模型的基础——Transformer的介绍。 Transformer的组成:多头注意力机制、前馈神经网络、残差连接、层归一化、位置编码。 1、多头注意力机制:多头注意力机制是自注意力机制的扩展(自注意力机制负责计算输入序列中每个元素与其他元素之间的关系),多头注意力机制使模型能够同时关注输入序列中的多个不同上下 文信息。 2、前馈神经网络在Transformer中,由两个线性层和一个活函数组成 3、残差连接与层归一化是为了加速训练并提高模型性能,残差连接是将输入序列与经过自注意力和前馈神经网络处理后的序列进行元素级别的相加,形成一个新的的序列。层归一化则是将这个新序列在各个维度上进行归一化,以便更快地进行训练。 【第三到五章】是介绍了GPT-1到3中的核心技术 【第三章】主要介绍GPT(生成式预训练),其核心思想在于对大规模文本数据进行预训练,从而学习语言模型的生成概率分布,再将这些预训练的模型应用于多种下游任务。 1、GPT的训练流程可被划分为两个主要阶段:无监督预训练和有监督微调。通过在大规模无标签文本数据上进行无监督预训练,ChatGPT得以掌握丰富的语言表示。进入有监督微调阶段,ChatGPT可以针对特定任务进行优化,从而提高在该特定领域的性能。 2、为了确保模型在生成文本时仅依赖于已经观察到的上下文,而不依赖于未来的信息,GPT模型采用了一种被称为掩码自注意力的机制。掩码自注意力的基本理念是,在计算自注意力权重时,模型只能关注当前位置及前面的位置。 3、GPT模型与原始的Transformer模型的区别: (1)原始的Transformer模型中,编码器的自注意力机制并未进行掩码处理,但在生成式预训练任务中,没有掩码可能会导致生成的文本依赖于未来的信息,违反自然语言的生成规律。 (2)原始的Transformer模型中,编码器和解码器都是必需的部分,生成式预训练任务的目标是学习语言的通用表示,而不是将输入序列映射到目标序列。因此,GPT模型选择了只采用解码器部分的设计方式。 【第四章】介绍了GPT-2模型中的Transformer架构的变化,以及无监督多任务与零样本学习的概念。 首先,在训练数据集的规模上大幅超过了GPT-1。 第二,GPT-2每个Transformer层的输入和输出都添加了层归一化层,以实现输入和输出的归一化。 第三,GPT-2采用了一种可学习的相对位置编码(Learnable Relative Positional Encoding)策略,以精确地捕捉输入序列中的位置信息。 第四,GPT-2的多任务学习则通过无监督学习,生成与训练数据相似的文本。旨在通过学习大量自然语言文本,获取多个任务的共享知识和特征,从而提高模型的泛化能力和适应性。 第五,GPT-2的零样本学习能力来源于预训练阶段的无监督多任务学习。零样本学习允许GPT-2在没有特定任务标签的情况下处理各种NLP任务。多任务学习和零样本学习在GPT-2中并不矛盾。这意味着模型在预训练阶段学到的知识能够泛化到各种NLP任务上,而无须进行针对性的有监督微调。 【第五章】介绍了GPT-3的稀疏注意力模式、元学习和基于内容的学习等技术。 1、GPT-3在注意力模式上做了重大改进,在Transformer的解码器层中交替使用密集和局部带状稀疏注意力模式 2、GPT-3的模型规模远超GPT-2,具有1750亿的参数,而GPT-2的参数量为15亿 3、GPT-3仍然沿用了GPT-2的正交初始化、层归一化和可逆的分词方法 4、GPT-3的主要学习策略是元学习和基于内容的学习(因为GPT-3参数规模庞大,已经无法对所有参数微调了) (1)元学习是指在大量的文本数据上训练一个模型,使其掌握自然语言生成的能力,以及获取广泛的知识和语言理解能力 (2)基于内容的学习,模型采用了零样本(Zero-shot)、单样本(One-shot)和少样本(Few-shot)学习策略,突破了传统微调方法的限制。 【第六章】介绍了大语言模型的预训练数据集和数据处理方法,和分布式训练的技术路线。 1、GPT-3.在预训练阶段主要使用了维基百科、各类书籍、互联网爬取的网页(如Common Crawl)、WebText2等数据集。 2、GPT-3.5引入了GitHub等代码数据集、StackExchange等对话论坛和视频字幕数据集。 3、训练超大语言模型主要有两条技术路线:一是Google主导的,基于TPU+XLA+TensorFlow/JAX的技术路线,这种方案由于TPU和Google自家的云平台深度绑定;二是由NVIDIA、Meta、Microsoft等大厂支持的,基于GPU+PyTorch+Megatron-LM+DeepSpeed的技术路线,这是开源方案中最成熟的技术路线,实现了大规模预训练模型的并行策略 4、基于Lingvo开发的神经网络训练库GPipe、微软的研究成果PipeDream、英伟达的Megatron-LM、Meta的FairScale、微软的DeepSpeed ZeRO,以及Google的Pathways等 【第七八章】介绍人类反馈强化学习的微调数据集、PPO算法原理、PPO在InstructGPT中的应用 1、InstructGPT的训练流程主要包括三个阶段:监督微调、奖励建模和强化学习。这三个阶段分别对应三个数据集:SFT数据集、RM数据集和RL数据集。 2、推测ChatGPT在训练数据集构成方面与InstructGPT有两个主要的不同之处:一是提高了对话类任务的比例;二是将提示的形式转变为问答形式,如果要获取更准确的描述,需要等待ChatGPT的论文、源代码等更详细的资料的公开。 3、有监督微调阶段:这个经过微调的GPT-3模型被称为SFT模型,作为基线模型的基本预测能力。微调过程采用了余弦学习率衰减策略,并进行了16个训练周期。 4、奖励建模阶段:InstructGPT选择了一个相对较小的60亿参数的GPT-3微调模型SFT模型来训练奖励模型 5、强化学习阶段:基于PPO算法,利用RM的输出作为标量奖励对有监督策略进行微调,以优化这个奖励 6、在人类反馈强化学习训练的三个步骤中,训练奖励模型与PPO微调阶段可以持续迭代,收集当前最佳策略的更多比较数据,然后用于训练新的奖励模型和新的策略。 【第九章】探讨了大语言模型在低算力环境中的应用策略。降低成本可从两个方面考虑:一是人类反馈的标注成本,二是训练和部署的计算成本。 1、指令自举标注作为一种低成本数据标注的解决方案,成为开源大模型低成本迁移中标注数据解决方案的范式 2、原则人工智能(Constitutional AI,CAI)利用人工智能系统的理解和生成能力获得标注数据。 3、通过对权重矩阵进行分解,并调整部分权重,就可以显著降低微调过程中的参数数量,从而降低大语言模型更新预训练数据或微调的成本。 4、通过降低权重值的表示精度,采用较低的精度数值代替高精度的数值。 5、SparseGPT是一种大规模近似稀疏回归算法,旨在有效地解决此问题。 【第十章】介绍了在大语言模型开发中涉及的中间件编程技术。 1、LangChain是一套强大且多元化的工具和组件集合,目标在于简化基于大语言模型应用程序的过程。 2、ViperGPT、VisualGPT和HuggingGPT将大语言模型作为智能代理,以管理并调度各类AI模型,从而实现多模态任务处理 3、AutoGPT充分发挥了大语言模型在任务规划和智能代理方面的能力。其自治能力依赖于大语言模型的任务规划能力和智能代理能力,以及对任务目标或任务执行反馈的处理。这构成了一种自我迭代的自治能力。

★★★★★

不是人工智能专业方向的人可以挑着看,没必要全懂! 也不可能全懂。但对于了解GPT等LLMs,足够了,做为进入人工智能领域的指路灯,我人觉得收获良多

★★★☆☆

《ChatGPT原理与架构:大模型的预训练、迁移和中间件编程》 G:generative 生成式 P:pretrained 预训练 T:transformer 转换器 chatgpt是基于gpt模型构建的聊天机器人,其原理和架构涉及到大模型的预训练、迁移和中间件编程方面。 ChatGPT这类大语言模型正逐渐成为一种基础架构,其技术栈由众多组件组成,包括容器化、性能监控、商业智能、事件处理、云服务、微服务及分析工具等。大语言模型的技术栈自下而上可以划分为5个层次: 基础架构层: 这一层就像是大语言模型的“地基”和“动力源”。它提供训练和推理所需的基础设施,比如公有云、私有云以及计算硬件。现在很多大语言模型的计算工作主要在云平台的 GPU 或 TPU 上进行,不管是模型的开发者还是使用模型的企业都依赖这个。自从 GPU 替代 CPU 成为主要的人工智能计算硬件后,又出现了新问题,计算能力不够用了,这是近十年来的一个新挑战。 框架层: 这里有各种深度学习框架和分布式训练框架,就像建造大语言模型的“工具包”。比如大家熟知的 PyTorch、TensorFlow 等深度学习框架,还有 Pathway、Megatron - LM、DeepSpeed Zero 等分布式训练框架。它们是用来训练和部署模型的。 模型层: 这一层有很多不同的模型,有开源的也有非开源的。它主要为上面的应用层或者中间件层提供功能支持,一般是通过 API(应用程序接口)来实现的。 中间件层: 这一层就像是一个“桥梁”或者“翻译官”。它把大语言模型的接口进行封装和优化,还能引入外部知识以及连接其他第三方工具。而且,根据用户不同的工作流程需求,它还能提供有长期记忆和代理能力的服务。这样可以分解工作流,把应用层和模型层连接起来,让开发者更容易和模型交互,降低大语言模型在实际应用中的使用难度。 应用层: 这一层就是直接面向用户的啦。很多企业通过中间件层或者直接调用大语言模型,把它们集成到自己的客户端应用程序或者搜索引擎里,让产品像微软的 New Bing 那样具备大语言模型的智能协作和生成能力。 部署 ChatGPT 大模型的成本很昂贵: 据国盛证券报告《ChatGPT 需要多少算力》估算,GPT-3 训练一次的成本约为 140 万美元,对于一些更大的 AI 模型,例如 ChatGPT,据估算一次训练成本介于 200 万美元至 1200 万美元之间(约合人民币 1560 万至 9360 万)。 以 GPT-3 为例,其耗电量高达 1287 兆瓦时,可为一个普通美国家庭供电 120 年。半导体研究公司 Semianalysis 的首席分析师 Dylan Patel 在接受 IT 外媒 The Information 采访时表示,使用 ChatGPT 撰写求职信、制定课程计划和重做约会资料使 OpenAI 每天可能要花费高达 70 万美元。这主要是由于其运行所依赖的技术基础设施成本高昂,其中大部分成本来自所需的昂贵服务器。他还提到目前运营成本可能更高,因为其初步估计基于 OpenAI 的 GPT-3 模型,而公司最新的模型 GPT-4 运行起来会更烧钱。 调研机构 Trendforce 在一份报告中提到,OpenAI 训练 GPT-3 时大概用到了 2 万个英伟达 A100 GPU 左右的算力,A100 芯片现今的售价约 1 万美元。ChatGPT 商业化后所需的 GPU 数量将达到 3 万个以上,另外还需要搭载芯片的数千台服务器和 500 个标准机柜,初期估计投入约为 8 亿美元(约合 62.4 亿港元)。 有媒体在 2023 年 8 月报道称,如果如果 OpenAI 继续以当时的速度烧钱,极有可能会在 2024 年底破产。因为在运营成本每日高达 70 万美元的情况下,ChatGPT 流量却在持续下降,2022 年 OpenAI 总计损失达到了 5.4 亿美元,而其产生的收入只有 2800 万美元。 部署chatgpt大模型的一般流程是: 一、需求分析与规划 1. 明确应用场景:确定你希望将 ChatGPT 大模型应用于哪个具体领域,如智能客服、内容创作、智能助手等。不同的应用场景对模型的性能和功能要求可能会有所不同。 2. 评估资源需求:考虑部署模型所需的计算资源、存储资源和网络带宽等。这包括选择合适的服务器硬件、确定是否需要使用云计算服务以及预估数据存储和传输的需求。 3. 制定项目计划:根据应用场景和资源需求,制定详细的项目计划,包括时间表、里程碑和任务分配等。确保项目团队成员对整个部署过程有清晰的了解。 二、环境准备 1. 选择服务器或云平台:根据资源需求和预算,选择合适的服务器或云服务提供商。如果选择云平台,可以考虑使用具有强大计算能力和高可用性的服务,如亚马逊 AWS、微软 Azure 或谷歌 Cloud。 2. 安装必要的软件和工具:在服务器或云平台上安装所需的软件和工具,包括深度学习框架(如 PyTorch 或 TensorFlow)、编程语言环境(如 Python)、数据库管理系统等。确保这些软件的版本与 ChatGPT 大模型的要求相匹配。 3. 配置网络和安全设置:设置网络连接,确保服务器可以与外部系统进行通信。同时,配置安全设置,如防火墙、访问控制和数据加密等,以保护模型和数据的安全。 三、模型获取与准备 1. 获取 ChatGPT 大模型:可以从官方渠道或可靠的第三方来源获取 ChatGPT 大模型的文件或预训练权重。确保你获得的模型是合法的、安全的,并且与你的应用场景相适应。 2. 检查模型兼容性:确认模型文件的格式和架构与你选择的深度学习框架兼容。如果需要,可能需要进行一些格式转换或调整。 3. 数据准备:如果需要对模型进行微调或特定任务的训练,准备好相应的数据集。数据应该具有高质量、多样性,并经过适当的预处理,如清洗、标注等。 四、模型部署 1. 加载模型到服务器:将 ChatGPT 大模型文件加载到服务器的内存或存储中。根据深度学习框架的要求,进行模型的初始化和加载操作。 2. 配置模型参数和环境变量:根据应用场景和性能要求,设置模型的参数,如 batch size、学习率等。同时,配置环境变量,如路径、端口号等,以便模型能够正确运行。 3. 启动服务:运行模型的服务程序,使其对外提供接口。可以选择使用 RESTful API 或其他通信协议,以便其他应用程序能够与模型进行交互。 五、测试与优化 1. 功能测试:使用一些测试数据对部署的 ChatGPT 大模型进行功能测试,确保模型能够正确回答问题并满足预期的性能要求。可以使用自动化测试工具或手动测试来验证模型的功能。 2. 性能优化:根据测试结果,进行性能优化。这可能包括调整服务器配置、优化模型参数、使用缓存等技术手段,以提高模型的响应速度和吞吐量。 3. 安全审计:对部署的系统进行安全审计,确保模型和数据的安全。检查是否存在潜在的安全漏洞,并采取相应的措施进行修复。 六、上线与维护 1. 上线部署:在经过充分的测试和优化后,将 ChatGPT 大模型部署上线,使其正式为用户提供服务。确保上线过程平稳,避免对用户造成影响。 2. 监控与维护:建立监控机制,实时监测模型的性能指标,如响应时间、准确率等。及时发现并解决可能出现的问题。定期对模型进行更新和维护,以确保其始终保持良好的性能和功能。 总之,部署 ChatGPT 大模型需要经过需求分析、环境准备、模型获取与准备、模型部署、测试与优化以及上线与维护等多个步骤。每个步骤都需要仔细规划和执行,以确保模型能够成功部署并为用户提供高质量的服务。 现在,大语言模型的低算力领域迁移主要是指将原本需要高算力才能运行的大语言模型,通过一系列技术手段使其能够在低算力的设备或环境中得以应用。 这一概念的出现是为了解决在一些计算资源有限的场景下,如边缘设备、移动设备或资源受限的企业和组织中,仍然能够利用大语言模型的强大能力。 例如,通过指令自举标注、人工智能反馈、低秩自适应、量化和剪枝算法等技术,可以降低模型的计算复杂度、参数数量和存储需求,从而使模型能够在低算力的环境中运行,实现更广泛的应用和部署。 而今各个企业都开始了自己的ai(人工智能)融入到自家的app中。开始了中间件编程,在大语言模型和实际应用之间构建桥梁。 就像是一个 “翻译官” 和 “协调者”。它位于大语言模型(如 ChatGPT 等)与各种应用程序之间。一方面,它能理解来自应用程序的请求,并将其转化为大语言模型能够处理的格式。另一方面,它又能把大语言模型生成的复杂结果进行处理和优化,以适应应用程序的需求。 例如,在一个智能客服系统中,中间件可以接收用户的问题,将其整理成适合大语言模型理解的输入格式,然后把大语言模型给出的回答进行适当的调整和格式化,再返回给智能客服系统展示给用户。 对于开发者来说,中间件编程提供了一套标准化的接口和工具,使得他们无需深入了解大语言模型的复杂内部结构和算法,就能够轻松地调用大语言模型的能力。这大大降低了开发难度,提高了开发效率。 开发者可以专注于应用程序的业务逻辑,而把与大语言模型的交互交给中间件来处理。这样可以加快开发进度,缩短项目的开发周期。 不同的应用场景对大语言模型的需求可能各不相同。中间件可以根据具体的应用需求进行定制和扩展,满足各种复杂的业务需求。 例如,在一个多语言的应用中,中间件可以添加语言翻译功能,使得大语言模型能够处理不同语言的输入和输出。或者在一个需要实时处理大量请求的应用中,中间件可以实现负载均衡和缓存机制,提高系统的性能和稳定性。 中间件编程可以实现大语言模型与其他模态的数据(如图像、音频、视频等)的融合。这为开发更加丰富和智能的应用提供了可能。 比如,在一个智能图像识别应用中,中间件可以将图像识别算法与大语言模型结合起来,实现对图像内容的描述和分析,并与用户进行自然语言交互。 中间件编程使得大语言模型能够更好地适应不同的行业和领域,促进其在各个领域的广泛应用。 无论是金融、医疗、教育还是电商等领域,中间件都可以根据行业特点和需求,将大语言模型与现有的业务系统进行整合,为用户提供更加智能和高效的服务。 中间件编程在大语言模型的应用中起着至关重要的作用。它不仅提高了开发效率,增强了系统的灵活性和可扩展性,还促进了多模态融合,推动了大语言模型的广泛应用。

★★★★★

《ChatGPT原理与架构:大模型的预训练、迁移和中间件编程》是一本深入探讨大语言模型技术的权威著作。作者以扎实的理论基础和丰富的实践经验,系统剖析了ChatGPT的核心技术,包括Transformer模型、注意力机制和生成式预测等关键概念。书中不仅详细介绍了模型的预训练和迁移学习方法,还探讨了低算力部署和人机交互等实际问题。通过图文并茂的方式,作者将复杂的技术原理讲解得通俗易懂,使读者能够轻松掌握大模型的内在机制。无论是AI领域的研究者还是开发者,都能从本书中获得宝贵的知识和启发,为未来的技术创新奠定坚实基础。

★★★★★

比较系统的介绍了大模型的原理还有发展,尤其提到了世界模型,这也许是下一个人工智能的风口

★★★☆☆

懂的不太需要看,不懂的看不太懂。

★★★★★

相比其他一些专业性很强的书籍,这本书赶紧相对来说没有那么的枯燥难读,对gpt感兴趣的还是值得读一读的。

★★★★★

2024.No34: 24年第12本技术书,第三本大模型相关书籍。跟《BERT基础教程:Transformer大模型实战》一样,但很多原理性的东西都看不太懂。

★☆☆☆☆

太粗糙了,内行人不需要,外行人也不需要

★★★★★

通过本书了解了Ai大模型的知识,很受用

书籍信息

作者程戈
出版社机械工业出版社
出版时间2023-12-01
ISBN9787111739562
分类计算机-编程设计
格式EPUB
完结状态连载中
章节数91