含有"人工智能"标签的书籍

AI系统原理与架构

内容简介

主要围绕AI 系统的理论基础与技术基础知识展开,结合实例进行介绍,旨在让读者了解AI 系统的来龙去脉,形成对AI 系统的系统化与层次化的初步理解,掌握AI 系统基本理论、技术、实际应用及研究方向,为后续从事具体的学习研究工作和项目开发工作奠定基础。内容涵盖AI硬件与体系结构、AI 编译与计算架构、AI 推理系统与引擎、AI 框架核心模块四篇,涉及AI 系统从底层原理到应用落地的全貌,反映了AI 系统架构的前沿技术。

作者简介

ZOMI 酱
华为昇腾技术专家,上海交通大学企业导师深圳市创新人才,B站AI科普UP主。曾主持昇腾大模型分布式加速库MindSpeed、大模型套件MindFormers等构建和开发。多次获国家级创新项目奖。出版《AI系统原理与架构》《深度强化学习原理与实践》等3本著作,累积发表专利113篇。

苏统华
哈尔滨工业大学教授、软件学院副院长,人工智能祖冲之奖评委。负责新一代人工智能重大专项课题、国家重点研发课题等30余项,牵头教育部卓工人工智能领域研究生核心课“人工智能系统架构”。获聘华为首批昇腾领军人物(全国14人)

目录

  1. 目录
    1. 第1章 AI系统概述/1
      1. AI历史与现状/1
      2. A I发展驱动力/11
      3. A I系统架构介绍/19
      4. A I系统与A I算法关系/27
    2. **篇 A I硬件与体系结构
      1. 第2章 A I计算体系/37
        1. 引言/37
        2. A I计算模式/41
        3. 关键设计指标/57
        4. 核心计算之矩阵乘/63
        5. 计算之比特位宽/67
      2. 第3章 A I芯片体系/72
        1. C P U基础/72
        2. C P U指令集架构/81
        3. C P U计算本质/94
        4. C P U计算时延/99
        5. G P U基础/104
        6. A I专用芯片基础/123
      3. 第4章 G P U—以英伟达为例/130
        1. 引言/130
        2. Tensor Core基本原理/154
        3. Tensor Core架构演进/160
        4. Tensor Core深度剖析/171
        5. 分布式通信/179
        6. N VLink原理剖析 /186
        7. N VSwitch深度解析/194
      4. 第5章 T P U—以谷歌为例/202
        1. 引言/202
        2. 谷歌T P U v1脉动阵列/212
        3. 谷歌T P U v2训练芯片/219
        4. 谷歌T P U v3 Pod服务器/228
        5. 谷歌T P U v4与光路交换/235
      5. 第6章 N P U—以昇腾为例/244
        1. 引言/244
        2. 昇腾A I处理器/251
        3. 昇腾A I核心单元/259
        4. 昇腾数据布局转换/273
      6. 第7章 A I芯片思考与展望/279
        1. G P U架构与C U D A关系/279
        2. 从G P U对A I芯片思考/285
        3. A I芯片发展方向/291
        4. 超异构计算/298
    3. 第二篇 A I编择与计算架构
      1. 第8章 传统编译器/311
        1. 引言/311
        2. 传统编译器介绍/318
        3. G C C基本介绍与特征/324
        4. L L V M架构设计和原理/329
        5. L L V M I R基本概念/334
        6. L L V M I R细节详解/340
        7. L L V M前端和优化层/345
        8. L L V M后端代码生成/350
      2. 第9章 A I编译器/356
        1. 引言/356
        2. A I编译器历史阶段/365
        3. A I编译器基本架构/371
        4. A I编译器挑战与思考/378
      3. 第10章 前端优化/388
        1. 引言/388
        2. 图算I R/389
        3. 算子融合/393
        4. 布局转换原理/400
        5. 内存分配算法/406
        6. 常量折叠原理/412
        7. 公共子表达式消除原理/415
        8. 死代码消除/417
        9. 代数简化/420
      4. 第11章 后端优化/425
        1. 弓1言/425
        2. 计算与调度/428
        3. 算子手工优化/434
        4. 算子循环优化/440
        5. 指令和存储优化/447
        6. A u t o-Tuning 原理/452
      5. 第12章 计算架构/454
        1. 芯片的编程体系/454
        2. SIMD & SIMT与芯片架构/456
        3. SIMD & SIMT与编程关系/465
        4. C U D A计算结构/470
      6. 第13章 C A N N&Ascend C计算架构/475
        1. 昇腾异构计算架构C A N N/475
        2. C A N N与算子/482
        3. 算子开发编程语言Ascend C/485
        4. Ascend C语法扩展/492
        5. Ascend C编程范式以向量为例/500
    4. 第三篇 A I推理系统与引擎
      1. 第14章 推理系统/511
        1. 引言/511
        2. 推理系统介绍/515
        3. 推理流程全景/523
        4. 推理系统架构/526
        5. 推理引擎架构/530
        6. 昇腾推理引擎M r n d l E/549
        7. 昇腾计算语言AscendCL/552
      2. 第15章 模型小型化/561
        1. 推理参数了解/561
        2. C N N模型小型化/563
        3. Transformer模型小型化/579
      3. 第16章 模型轻量化/585
        1. 引言/585
        2. 量化基本原理/586
        3. 感知量化训练/592
        4. 训练后量化与部署/598
        5. 模型剪枝原理/604
        6. 知识蒸馏原理/611
      4. 第17章 模型转换/619
        1. 引言/619
        2. 推理文件格式/626
        3. 自定义计算图/634
        4. 模型转换流程/643
      5. 第18章 计算图优化架构/647
        1. 引言/647
        2. 离线图优化技术/651
        3. 其他计算图优化/667
      6. 第19章 Kernel优化/676
        1. 引言/676
        2. 卷积计算原理/680
        3. Im2Col算法/690
        4. W m o grad算法/698
        5. Q N N P A C K算法/705
        6. 推理内存布局/715
    5. 第四篇 A I框架核心模块
      1. 第20章 A I框架基础/721
        1. 引言/721
        2. A I框架作用/721
        3. A I框架之争/727
        4. A I框架的编程范式/735
        5. 昇思MrndSpore关键特性/741
      2. 第21章 自动微分/753
        1. 引言/753
        2. 什么是微分/753
        3. 微分计算模式/760
        4. 微分实现方式/768
        5. 动手实现自动微分/775
        6. 动手实现PyTorch微分/778
        7. 自动微分的挑战和未来/784
      3. 第22章 计算图/790
        1. 引言/790
        2. 计算图基本原理/791
        3. 计算图与自动微分/798
        4. 计算图的调度与执行/804
        5. 计算图的控制流实现/811
        6. 动态图与静态图转换/818
      4. 第23章 分布式并行/823
        1. 引言/823
        2. 数据并行/823
        3. 数据并行进阶/837
        4. 张量并行/849
        5. 流水并行/855
        6. 混合并行/858
        7. 昇思 MindSpore并行/860
    6. 参考文献/867
    7. 索引/883
    8. 彩图

基于大模型的RAG应用开发与优化——构建企业级LLM应用

内容简介

《基于大模型的RAG应用开发与优化——构建企业级LLM应用》是一本全面介绍基于大语言模型的RAG应用开发的专业图书。本书共分为3篇:预备篇、基础篇和高级篇。预备篇旨在帮助你建立起对大模型与RAG的基本认识,并引导你搭建起RAG应用开发的基础环境;基础篇聚焦于经典RAG应用开发的核心要素与阶段,介绍关键模块的开发过程,剖析相关的技术原理,为后面的深入学习打下坚实的基础;高级篇聚焦于RAG应用开发的高阶模块与技巧,特别是在企业级RAG应用开发中的优化策略与技术实现,并探索了一些新型的RAG工作流与范式,旨在帮助你了解最新的RAG应用技术发展,掌握RAG应用的全方位开发能力。 《基于大模型的RAG应用开发与优化——构建企业级LLM应用》适合对大模型及RAG技术感兴趣的开发者、研究人员、产品经理及希望了解并掌握RAG应用开发能力的人阅读。无论你是进入AI领域的初学者,还是已经有一定基础的进阶者,都能从本书中找到适合自己的内容。

作者简介

严灿平
毕业于南京理工大学计算机系,南京大学工商管理硕士。先后就职于联创(后与亚信科技合并)担任软件工程师与设计师,甲骨文中国(Oracle)担任中国区企业架构部首席架构师,上海慧问信息科技有限公司担任合伙人兼技术总监。现为独立IT咨询顾问,公众号“AI大模型应用实践”主理人。拥有超过20年的企业软件从业经验,专注于企业软件架构设计、互联网时代传统行业的IT转型、人工智能与大数据技术在企业应用的创新等。 曾担任多项大型企业级软件系统核心架构师与咨询师,参与包括中国移动、中国电信等通信行业客户的核心业务运营支撑系统建设、智慧城市与政务行业互联网转型的IT咨询与规划。精通多种计算机软件开发技术与IT架构方法论,对移动互联网、大数据、人工智能在企业领域应用有深入的研究与实施经验。

目录

  • 预 备 篇
    • 第1章 了解大模型与RAG 3
      • 1.1 初识大模型 3
        • 1.1.1 大模型时代:生成式AI应用的爆发 3
        • 1.1.2 大模型应用的持续进化 4
        • 1.1.3 大模型是无所不能的吗 7
      • 1.2 了解RAG 11
        • 1.2.1 为什么需要RAG 11
        • 1.2.2 一个简单的RAG场景 12
      • 1.3 RAG应用的技术架构 14
        • 1.3.1 RAG应用的经典架构与流程 14
        • 1.3.2 RAG应用面临的挑战 17
        • 1.3.3 RAG应用架构的演进 18
      • 1.4 关于RAG的两个话题 20
        • 1.4.1 RAG与微调的选择 21
        • 1.4.2 RAG与具有理解超长上下文能力的大模型 24
    • 第2章 RAG应用开发环境搭建 27
      • 2.1 开发RAG应用的两种方式 27
        • 2.1.1 使用低代码开发平台 27
        • 2.1.2 使用大模型应用开发框架 29
      • 2.2 RAG应用开发环境准备 33
        • 2.2.1 硬件环境建议 33
        • 2.2.2 基础大模型 34
        • 2.2.3 嵌入模型 41
        • 2.2.4 Python虚拟运行环境 44
        • 2.2.5 Python IDE与开发插件 45
        • 2.2.6 向量库 47
        • 2.2.7 LlamaIndex框架 51
      • 2.3 关于本书开发环境的约定 51
  • 基 础 篇
    • 第3章 初识RAG应用开发 55
      • 3.1 开发一个最简单的RAG应用 55
        • 3.1.1 使用原生代码开发 56
        • 3.1.2 使用LlamaIndex框架开发 64
        • 3.1.3 使用LangChain框架开发 68
      • 3.2 如何跟踪与调试RAG应用 70
        • 3.2.1 借助LlamaDebugHandler 70
        • 3.2.2 借助第三方的跟踪与调试平台 73
      • 3.3 准备:基于LlamaIndex框架的RAG应用开发核心组件 77
    • 第4章 模型与Prompt 78
      • 4.1 大模型 78
        • 4.1.1 大模型在RAG应用中的作用 79
        • 4.1.2 大模型组件的统一接口 80
        • 4.1.3 大模型组件的单独使用 82
        • 4.1.4 大模型组件的集成使用 83
        • 4.1.5 了解与设置大模型的参数 84
        • 4.1.6 自定义大模型组件 85
        • 4.1.7 使用LangChain框架中的大模型组件 87
      • 4.2 Prompt 87
        • 4.2.1 使用Prompt模板 87
        • 4.2.2 更改默认的Prompt模板 88
        • 4.2.3 更改Prompt模板的变量 91
      • 4.3 嵌入模型 92
        • 4.3.1 嵌入模型在RAG应用中的作用 92
        • 4.3.2 嵌入模型组件的接口 93
        • 4.3.3 嵌入模型组件的单独使用 95
        • 4.3.4 嵌入模型组件的集成使用 97
        • 4.3.5 了解与设置嵌入模型的参数 97
        • 4.3.6 自定义嵌入模型组件 98
    • 第5章 数据加载与分割 100
      • 5.1 理解两个概念:Document与Node 100
        • 5.1.1 什么是Document与Node 100
        • 5.1.2 深入理解Document与Node 102
        • 5.1.3 深入理解Node对象的元数据 103
        • 5.1.4 生成Document对象 106
        • 5.1.5 生成Node对象 107
        • 5.1.6 元数据的生成与抽取 111
        • 5.1.7 初步了解IndexNode类型 115
      • 5.2 数据加载 116
        • 5.2.1 从本地目录中加载 117
        • 5.2.2 从网络中加载数据 123
      • 5.3 数据分割 129
        • 5.3.1 如何使用数据分割器 129
        • 5.3.2 常见的数据分割器 131
      • 5.4 数据摄取管道 145
        • 5.4.1 什么是数据摄取管道 145
        • 5.4.2 用于数据摄取管道的转换器 147
        • 5.4.3 自定义转换器 149
        • 5.4.4 使用数据摄取管道 150
      • 5.5 完整认识数据加载阶段 155
    • 第6章 数据嵌入与索引 156
      • 6.1 理解嵌入与向量 156
        • 6.1.1 直接用模型生成向量 157
        • 6.1.2 借助转换器生成向量 157
      • 6.2 向量存储 158
        • 6.2.1 简单向量存储 159
        • 6.2.2 第三方向量存储 161
      • 6.3 向量存储索引 164
        • 6.3.1 用向量存储构造向量存储索引对象 165
        • 6.3.2 用Node列表构造向量存储索引对象 166
        • 6.3.3 用文档直接构造向量存储索引对象 169
        • 6.3.4 深入理解向量存储索引对象 172
      • 6.4 更多索引类型 175
        • 6.4.1 文档摘要索引 175
        • 6.4.2 对象索引 177
        • 6.4.3 知识图谱索引 180
        • 6.4.4 树索引 186
        • 6.4.5 关键词表索引 187
    • 第7章 检索、响应生成与RAG引擎 190
      • 7.1 检索器 191
        • 7.1.1 快速构造检索器 191
        • 7.1.2 理解检索模式与检索参数 192
        • 7.1.3 初步认识递归检索 197
      • 7.2 响应生成器 199
        • 7.2.1 构造响应生成器 200
        • 7.2.2 响应生成模式 201
        • 7.2.3 响应生成器的参数 210
        • 7.2.4 实现自定义的响应生成器 212
      • 7.3 RAG引擎:查询引擎 214
        • 7.3.1 构造内置类型的查询引擎的两种方法 214
        • 7.3.2 深入理解查询引擎的内部结构和运行原理 217
        • 7.3.3 自定义查询引擎 218
      • 7.4 RAG引擎:对话引擎 221
        • 7.4.1 对话引擎的两种构造方法 221
        • 7.4.2 深入理解对话引擎的内部运行和运行原理 224
        • 7.4.3 理解不同的对话模式 227
      • 7.5 结构化输出 239
        • 7.5.1 使用output_cls参数 240
        • 7.5.2 使用输出解析器 241
  • 高 级 篇
    • 第8章 RAG引擎高级开发 247
      • 8.1 检索前查询转换 247
        • 8.1.1 简单查询转换 248
        • 8.1.2 HyDE查询转换 249
        • 8.1.3 多步查询转换 251
        • 8.1.4 子问题查询转换 254
      • 8.2 检索后处理器 259
        • 8.2.1 使用节点后处理器 259
        • 8.2.2 实现自定义的节点后处理器 260
        • 8.2.3 常见的预定义的节点后处理器 261
        • 8.2.4 Rerank节点后处理器 266
      • 8.3 语义路由 272
        • 8.3.1 了解语义路由 272
        • 8.3.2 带有路由功能的查询引擎 274
        • 8.3.3 带有路由功能的检索器 276
        • 8.3.4 使用独立的选择器 277
        • 8.3.5 可多选的路由查询引擎 278
      • 8.4 SQL查询引擎 280
        • 8.4.1 使用NLSQLTableQueryEngine组件 281
        • 8.4.2 基于实时表检索的查询引擎 283
        • 8.4.3 使用SQL检索器 285
      • 8.5 多模态文档处理 286
        • 8.5.1 多模态文档处理架构 286
        • 8.5.2 使用LlamaParse解析文档 288
        • 8.5.3 多模态文档中的表格处理 294
        • 8.5.4 多模态大模型的基础应用 297
        • 8.5.5 多模态文档中的图片处理 303
      • 8.6 查询管道:编排基于Graph的RAG工作流 308
        • 8.6.1 理解查询管道 309
        • 8.6.2 查询管道支持的两种使用方式 310
        • 8.6.3 深入理解查询管道的内部原理 313
        • 8.6.4 实现并插入自定义的查询组件 315
    • 第9章 开发Data Agent 321
      • 9.1 初步认识Data Agent 322
      • 9.2 构造与使用Agent的工具 323
        • 9.2.1 深入了解工具类型 324
        • 9.2.2 函数工具 325
        • 9.2.3 查询引擎工具 326
        • 9.2.4 检索工具 327
        • 9.2.5 查询计划工具 328
        • 9.2.6 按需加载工具 330
      • 9.3 基于函数调用功能直接开发Agent 331
      • 9.4 用框架组件开发Agent 335
        • 9.4.1 使用OpenAIAgent 335
        • 9.4.2 使用ReActAgent 336
        • 9.4.3 使用底层API开发Agent 338
        • 9.4.4 开发带有工具检索功能的Agent 340
        • 9.4.5 开发带有上下文检索功能的Agent 341
      • 9.5 更细粒度地控制Agent的运行 343
        • 9.5.1 分步可控地运行Agent 344
        • 9.5.2 在Agent运行中增加人类交互 346
    • 第10章 评估RAG应用 349
      • 10.1 为什么RAG应用需要评估 349
      • 10.2 RAG应用的评估依据与指标 350
      • 10.3 RAG应用的评估流程与方法 351
      • 10.4 评估检索质量 352
        • 10.4.1 生成检索评估数据集 352
        • 10.4.2 运行评估检索过程的程序 354
      • 10.5 评估响应质量 356
        • 10.5.1 生成响应评估数据集 356
        • 10.5.2 单次响应评估 358
        • 10.5.3 批量响应评估 360
      • 10.6 基于自定义标准的评估 362
    • 第11章 企业级RAG应用的常见优化策略 364
      • 11.1 选择合适的知识块大小 364
        • 11.1.1 为什么知识块大小很重要 364
        • 11.1.2 评估知识块大小 365
      • 11.2 分离检索阶段的知识块与生成阶段的知识块 369
        • 11.2.1 为什么需要分离 369
        • 11.2.2 常见的分离策略及实现 369
      • 11.3 优化对大文档集知识库的检索 378
        • 11.3.1 元数据过滤 + 向量检索 378
        • 11.3.2 摘要检索+ 内容检索 383
        • 11.3.3 多文档Agentic RAG 390
      • 11.4 使用高级检索方法 397
        • 11.4.1 融合检索 398
        • 11.4.2 递归检索 406
    • 第12章 构建端到端的企业级RAG应用 429
      • 12.1 对生产型RAG应用的主要考量 429
      • 12.2 端到端的企业级RAG应用架构 430
        • 12.2.1 数据存储层 431
        • 12.2.2 AI模型层 432
        • 12.2.3 RAG工作流与API模块 432
        • 12.2.4 前端应用模块 433
        • 12.2.5 后台管理模块 434
      • 12.3 端到端的全栈RAG应用案例 436
        • 12.3.1 简单的全栈RAG查询应用 436
        • 12.3.2 基于多文档Agent的端到端对话应用 455
    • 第13章 新型RAG范式原理与实现 478
      • 13.1 自纠错RAG:C-RAG 478
        • 13.1.1 C-RAG诞生的动机 478
        • 13.1.2 C-RAG的原理 479
        • 13.1.3 C-RAG的实现 480
      • 13.2 自省式RAG:Self-RAG 485
        • 13.2.1 Self-RAG诞生的动机 485
        • 13.2.2 Self-RAG的原理 486
        • 13.2.3 Self-RAG的实现 493
        • 13.2.4 Self-RAG的优化 506
      • 13.3 检索树RAG:RAPTOR 507
        • 13.3.1 RAPTOR诞生的动机 507
        • 13.3.2 RAPTOR的原理 508
        • 13.3.3 RAPTOR的实现 510

大模型应用开发极简入门:基于 GPT-4 和 ChatGPT

内容简介

本书为大模型应用开发极简入门手册,为初学者提供了一份清晰、全面的“最小可用知识”,带领大家快速了解GPT-4和ChatGPT的工作原理及优势,并在此基础上使用流行的Python编程语言构建大模型应用。通过本书,你不仅可以学会如何构建文本生成、问答和内容摘要等初阶大模型应用,还能了解到提示工程、模型微调、插件、LangChain等高阶实践技术。书中提供了简单易学的示例,帮你理解并应用在自己的项目中。此外,书后还提供了一份术语表,方便你随时参考。
准备好了吗?只需了解Python,你即可将本书作为进入大模型时代的启动手册,开发出自己的大模型应用。

编辑推荐

  • 【0门槛】人人都可以借力大模型,做出 AI 应用
  • 【简单】学习大模型应用开发的“Z小可用知识”
  • 【实操】学会写提示词、模型微调、使用 LangChain 等
  • 【实战】提供常用场景代码示例,方便快速学习
  • 【快速】2H 上手构建你的第一个原生 AI 应用
  • 【全面】了解 GPT-4 和 ChatGPT 的工作原理
  • 【品控】一线从业者翻译,注释说明内容更新
  • 【推荐】大模型一线创业者、应用技术专家推荐

作者简介

奥利维耶·卡埃朗(Olivier Caelen)
国际支付服务先驱Worldline公司机器学习研究员、布鲁塞尔自由大学机器学习博士,业余时间在布鲁塞尔自由大学教授机器学习课程。

玛丽-艾丽斯·布莱特(Marie-Alice Blete)
国际支付服务先驱Worldline公司研发部门软件架构师、数据工程师。她还负责维护开发者关系,并担任技术演讲嘉宾。

目录

  • 推荐序一 学习成为善用 AI 的人
  • 推荐序二 开启一段有趣、有启发、有收获的冒险旅程
  • 推荐序三 人人都要学会和 AI 相处
  • 推荐序四 AI 工程师:做新一轮智能革命的首批探索者
  • 推荐序五 进入智能应用的新时代
  • 推荐序六 AGI:不要旁观,要真正参与
  • 推荐序七 不要害怕被 ChatGPT 取代,要做第一批驾驭新技术的人
  • 译者序 没有谁天生就是 AI 工程师
  • 前言
  • 第 1 章 初识 GPT-4 和 ChatGPT
  • 第 2 章 深入了解 GPT-4 和 ChatGPT 的 API
  • 第 3 章 使用 GPT-4 和 ChatGPT 构建应用程序
  • 第 4 章 GPT-4 和 ChatGPT 的高级技巧
  • 第 5 章 使用 LangChain 框架和插件增强 LLM 的功能
  • 术语表
  • 作者简介

深度学习框架PyTorch:入门与实践

内容简介

《深度学习框架PyTorch:入门与实践》从多维数组Tensor开始,循序渐进地带领读者了解PyTorch各方面的基础知识。结合基础知识和前沿研究,带领读者从零开始完成几个经典有趣的深度学习小项目,包括GAN生成动漫头像、AI滤镜、AI写诗等。《深度学习框架PyTorch:入门与实践》没有简单机械地介绍各个函数接口的使用,而是尝试分门别类、循序渐进地向读者介绍PyTorch的知识,希望读者对PyTorch有一个完整的认识。

《深度学习框架PyTorch:入门与实践》内容由浅入深,无论是深度学习的初学者,还是第一次接触PyTorch的研究人员,都能在学习本书的过程中快速掌握PyTorch。即使是有一定PyTorch使用经验的用户,也能够从本书中获得对PyTorch不一样的理解。

作者简介

陈云
Python程序员、Linux爱好者和PyTorch源码贡献者。主要研究方向包括计算机视觉和机器学习。“2017知乎看山杯机器学习挑战赛”一等奖,“2017天池医疗AI大赛”第八名。 热衷于推广PyTorch,并有丰富的使用经验,活跃于PyTorch论坛和知乎相关板块。

目录

  1. PyTorch简介
    1. PyTorch的诞生
    2. 常见的深度学习框架简介
      1. Theano
      2. TensorFlow
      3. Keras
      4. Caffe/Caffe2
      5. MXNet
      6. CNTK
      7. 其他框架
    3. 属于动态图的未来
    4. 为什么选择PyTorch
    5. 星火燎原
    6. fast.ai 放弃Keras+TensorFlow选择PyTorch
  2. 快速入门
    1. 安装与配置
      1. 安装PyTorch
      2. 学习环境配置
    2. PyTorch入门第一步
      1. Tensor
      2. Autograd:自动微分
      3. 神经网络
      4. 小试牛刀:CIFAR-10分类
  3. Tensor和autograd
    1. Tensor
      1. 基础操作
      2. Tensor和Numpy
      3. 内部结构
      4. 其他有关Tensor的话题
      5. 小试牛刀:线性回归
    2. autograd
      1. Variable
      2. 计算图
      3. 扩展autograd
      4. 小试牛刀:用Variable实现线性回归
  4. 神经网络工具箱nn
    1. nn.Module
    2. 常用的神经网络层
      1. 图像相关层
      2. 激活函数
      3. 循环神经网络层
      4. 损失函数
    3. 优化器
    4. nn.functional
    5. 初始化策略
    6. nn.Module深入分析
    7. nn和autograd的关系
    8. 小试牛刀:用50行代码搭建ResNet
  5. PyTorch中常用的工具
    1. 数据处理
    2. 计算机视觉工具包:torchvision
    3. 可视化工具
      1. Tensorboard
      2. visdom
    4. 使用GPU加速:cuda
    5. 持久化
  6. PyTorch实战指南
    1. 编程实战:猫和狗二分类
      1. 比赛介绍
      2. 文件组织架构
      3. 关于__init__.py
      4. 数据加载
      5. 模型定义
      6. 工具函数
      7. 配置文件
      8. main.py
      9. 使用
      10. 争议
    2. PyTorch Debug 指南
      1. ipdb 介绍
      2. 在PyTorch中Debug
  7. AI插画师:生成对抗网络
    1. GAN的原理简介
    2. 用GAN生成动漫头像
    3. 实验结果分析
  8. AI艺术家:神经网络风格迁移
    1. 风格迁移原理介绍
    2. 用PyTorch实现风格迁移
    3. 实验结果分析
  9. AI诗人:用RNN写诗
    1. 自然语言处理的基础知识
      1. 词向量
      2. RNN
    2. CharRNN
    3. 用PyTorch实现CharRNN
    4. 实验结果分析
  10. Image Caption:让神经网络看图讲故事
    1. 图像描述介绍
    2. 数据
      1. 数据介绍
      2. 图像数据处理
      3. 数据加载
    3. 模型与训练
    4. 实验结果分析
  11. 展望与未来
    1. PyTorch的局限与发展
    2. 使用建议

从零构建大模型算法、训练与微调

内容简介

《从零构建大模型:算法、训练与微调》是一本系统且实用的大模型构建指南,旨在引领读者从基础知识起步,逐步深入探索大模型的算法原理、训练方法及微调技术。《从零构建大模型:算法、训练与微调》共12章,涵盖了Transformer模型的基础理论,如Seq2Seq模型、分词、嵌入层和自注意力机制等关键概念;并深入剖析了GPT模型的核心实现与文本生成过程,以及BERT模型的预训练和微调技术。同时,也对ViT(视觉Transformer)模型的架构、训练方法,以及高阶微调策略如Adapter Tuning和P-Tuning进行了详尽讲解。此外,还系统地介绍了数据处理、数据增强、模型性能优化(包括混合精度训练和分布式训练)、对比学习、对抗训练、自适应优化器、动态学习率调度,以及模型蒸馏与剪枝技术等多个方面。最后,通过应用案例,展示了模型训练和微调的完整流程,助力读者将理论知识转化为实践技能。 全书注重理论与实践的结合,适合希望系统掌握大模型构建、训练和优化的研发人员、高校学生,也适合对自然语言处理、计算机视觉等领域的大模型开发有兴趣的读者。还可作为培训机构和高校相关课程的教学用书。

作者简介

梁楠,博士,毕业于北京航空航天大学,高级职称,长期从事模式识别、机器学习、统计理论的研究与应用,负责或参与科研项目多项,专注于人工智能、大语言模型的应用与开发,对深度学习、数据分析与预测等有独到见解。

目录

  • 引言 1
  • 一、大模型技术的发展历史 1
    • 1. 基于规则和统计学习的早期阶段 1
    • 2. 神经网络与深度学习的崛起 2
    • 3. Transformer的诞生与自注意力机制的崛起 2
    • 4. 预训练模型的兴起:BERT、GPT和T5 2
    • 5. 超大规模模型与多模态应用 3
  • 二、开发环境配置基础 3
    • 1. 硬件配置要求 3
    • 2. 软件依赖与环境搭建 4
    • 3. 常见问题与解决方案 5
  • 第 1 章 Transformer模型基础 6
    • 1.1 Seq2Seq模型 6
      • 1.1.1 编码器-解码器工作原理 7
      • 1.1.2 Seq2Seq结构实现 7
    • 1.2 分词与嵌入层 11
      • 1.2.1 分词器:将文本转换为嵌入向量 11
      • 1.2.2 PyTorch实现嵌入层(将分词后的结果输入模型) 11
    • 1.3 自注意力与多头注意力机制 15
      • 1.3.1 自注意力机制计算过程(QKV矩阵生成和点积运算) 15
      • 1.3.2 多头注意力机制与Transformer 18
    • 1.4 残差连接与层归一化 22
      • 1.4.1 残差连接层的实现 22
      • 1.4.2 层归一化与训练稳定性 25
    • 1.5 位置编码器 28
      • 1.5.1 位置编码的计算与实现 28
      • 1.5.2 位置编码在无序文本数据中的作用 30
    • 1.6 本章小结 35
    • 1.7 思考题 35
  • 第 2 章 GPT模型文本生成核心原理与实现 37
    • 2.1 GPT-2核心模块 37
      • 2.1.1 层堆叠 37
      • 2.1.2 GPT-2中的注意力机制 41
    • 2.2 GPT模型的文本生成过程 44
      • 2.2.1 详解GPT-2文本生成过程 44
      • 2.2.2 Greedy Search和Beam Search算法的实现与对比 47
    • 2.3 模型效果评估与调优 51
      • 2.3.1 模型常见评估方法 51
      • 2.3.2 基于困惑度的评估过程 56
    • 2.4 本章小结 60
    • 2.5 思考题 60
  • 第 3 章 BERT模型核心实现与预训练 62
    • 3.1 BERT模型的核心实现 62
      • 3.1.1 编码器堆叠 62
      • 3.1.2 BERT的自注意力机制与掩码任务 67
    • 3.2 预训练任务:掩码语言模型(MLM) 71
      • 3.2.1 MLM任务实现过程 71
      • 3.2.2 如何对输入数据进行随机遮掩并预测 72
    • 3.3 BERT模型的微调与分类任务应用 77
    • 3.4 本章小结 81
    • 3.5 思考题 81
  • 第 4 章 ViT模型 83
    • 4.1 图像分块与嵌入 83
    • 4.2 ViT模型的核心架构实现 89
      • 4.2.1 ViT模型的基础结构 89
      • 4.2.2 自注意力和多头注意力在图像处理中的应用 91
    • 4.3 训练与评估ViT模型 96
    • 4.4 ViT模型与注意力严格量化分析 100
    • 4.5 本章小结 105
    • 4.6 思考题 105
  • 第 5 章 高阶微调策略:Adapter Tuning与P-Tuning 107
    • 5.1 Adapter Tuning的实现 107
    • 5.2 LoRA Tuning实现 111
    • 5.3 Prompt Tuning与P-Tuning的应用 114
      • 5.3.1 Prompt Tuning 114
      • 5.3.2 P-Tuning 117
      • 5.3.3 Prompt Tuning和P-Tuning组合微调 120
      • 5.3.4 长文本情感分类模型的微调与验证 122
    • 5.4 本章小结 125
    • 5.5 思考题 125
  • 第 6 章 数据处理与数据增强 127
    • 6.1 数据预处理与清洗 127
      • 6.1.1 文本数据预处理 127
      • 6.1.2 文本数据清洗 130
    • 6.2 文本数据增强 133
      • 6.2.1 同义词替换 133
      • 6.2.2 随机插入 135
      • 6.2.3 其他类型的文本数据增强方法 137
    • 6.3 分词与嵌入层的应用 139
      • 6.3.1 深度理解分词技术 140
      • 6.3.2 嵌入向量的生成与优化 142
      • 6.3.3 文本预处理与数据增强综合案例 144
    • 6.4 本章小结 146
    • 6.5 思考题 147
  • 第 7 章 模型性能优化:混合精度训练与分布式训练 148
    • 7.1 混合精度训练的实现 148
    • 7.2 多GPU并行与分布式训练的实现 150
      • 7.2.1 分布式训练流程与常规配置方案 150
      • 7.2.2 Data Parallel方案 152
      • 7.2.3 Model Parallel方案 154
    • 7.3 梯度累积的实现 157
      • 7.3.1 梯度累积初步实现 157
      • 7.3.2 小批量训练中的梯度累积 159
      • 7.3.3 梯度累积处理文本分类任务 161
    • 7.4 本章小结 164
    • 7.5 思考题 165
  • 第 8 章 对比学习与对抗训练 166
    • 8.1 对比学习 166
      • 8.1.1 构建正负样本对及损失函数 166
      • 8.1.2 SimCLR的实现与初步应用 171
    • 8.2 基于对比学习的预训练与微调 174
      • 8.2.1 通过对比学习进行自监督预训练 175
      • 8.2.2 对比学习在分类、聚类等任务中的表现 180
    • 8.3 生成式对抗网络的实现与优化 183
    • 8.4 对抗训练在大模型中的应用 188
    • 8.5 本章小结 192
    • 8.6 思考题 192
  • 第 9 章 自适应优化器与动态学习率调度 194
    • 9.1 AdamW优化器与LAMB优化器的实现 194
      • 9.1.1 AdamW优化器 194
      • 9.1.2 LAMB优化器 197
    • 9.2 基于梯度累积的优化技巧 200
      • 9.2.1 大批量内存受限环境 200
      • 9.2.2 梯度累积的应用场景和参数调整对训练效果的影响 203
    • 9.3 动态学习率调度 205
      • 9.3.1 线性衰减 205
      • 9.3.2 余弦退火 207
    • 9.4 Warmup与循环学习率调度 209
      • 9.4.1 Warmup策略实现 209
      • 9.4.2 循环学习率调度 211
      • 9.4.3 其他几种常见的动态学习调度器 214
    • 9.5 本章小结 217
    • 9.6 思考题 218
  • 第 10 章 模型蒸馏与剪枝 219
    • 10.1 知识蒸馏:教师-学生模型 219
      • 10.1.1 知识蒸馏核心过程 219
      • 10.1.2 教师-学生模型 221
      • 10.1.3 蒸馏损失 224
    • 10.2 知识蒸馏在文本模型中的应用 226
      • 10.2.1 知识蒸馏在文本分类模型中的应用 226
      • 10.2.2 模型蒸馏效率分析 229
      • 10.2.3 文本情感分析任务中的知识蒸馏效率对比 231
    • 10.3 模型剪枝技术 234
      • 10.3.1 权重剪枝 234
      • 10.3.2 结构化剪枝 237
      • 10.3.3 在嵌入式设备上部署手写数字识别模型 240
      • 10.3.4 BERT模型的多头注意力剪枝 243
    • 10.4 本章小结 247
    • 10.5 思考题 248
  • 第 11 章 模型训练实战 249
    • 11.1 数据预处理与Tokenization细节 249
      • 11.1.1 大规模文本数据清洗 249
      • 11.1.2 常用分词器的使用 252
    • 11.2 大规模预训练模型的设置与启动 255
    • 11.3 预训练过程中的监控与中间结果保存 258
    • 11.4 训练中断与恢复机制 262
    • 11.5 综合案例:IMDB文本分类训练全流程 265
      • 11.5.1 数据预处理与Tokenization 265
      • 11.5.2 多GPU与分布式训练设置 266
      • 11.5.3 训练过程中的监控与中间结果保存 266
      • 11.5.4 训练中断与恢复 267
      • 11.5.5 测试模型性能 268
    • 11.6 本章小结 269
    • 11.7 思考题 270
  • 第 12 章 模型微调实战 271
    • 12.1 微调数据集的选择与准备 271
      • 12.1.1 数据集准备与清洗 271
      • 12.1.2 数据集分割 272
      • 12.1.3 数据增强 272
    • 12.2 层级冻结与部分解冻策略 274
    • 12.3 模型参数调整与优化技巧 276
    • 12.4 微调后的模型评估与推理优化 278
    • 12.5 综合微调应用案例 280
    • 12.6 本章小结 283
    • 12.7 思考题 283

Python深度学习实战:75个有关神经网络建模、强化学习与迁移

内容简介

本书以自上而下和自下而上的方法来展示针对不同领域实际问题的深度学习解决方案,包括图像识别、自然语言处理、时间序列预测和机器人操纵等。还讨论了采用诸如TensorFlow、PyTorch、Keras和CNTK等流行的深度学习开源框架用于实际问题的解决方案及其优缺点。本书内容包括:用于深度学习的编程环境、GPU计算和云端解决方案;前馈神经网络与卷积神经网络;循环与递归神经网络;强化学习与生成对抗网络;深度学习用于计算机视觉、自然语言处理、语音识别、视频分析、时间序列预测、结构化数据分析以及游戏智能体(Agents)和机器人操控等。后讨论了深度学习的超参数选择和神经网络的内在结构以及预训练模型的使用技巧等。

作者简介

Indra den Bakker是一位经验丰富的深度学习工程师和培训师。他是23insights平台的创始人,这是NVIDIA所属孵化项目计划的一部分,这是一个机器学习构建解决方案的初创型计划,可以改变世界上重要的行业。在开放课程平台Udacity,他指导了在深度学习和相关领域攻读微学位(Nanodegree)的学生,他还负责审查学生的实习项目。Indra拥有计算智能背景,并在创建23insights平台之前作为IPG Mediabrands的品牌代理以及Screen6的数据科学家若干年。

目录

  • 译者序
  • 原书前言
  • 第1章 编程环境、GPU计算、云解决方案和深度学习框架 1
    • 1.1 简介 1
    • 1.2 搭建一个深度学习环境 2
    • 1.3 在AWS上启动实例 2
    • 1.4 在GCP上启动实例 3
    • 1.5 安装CUDA和cuDNN 4
    • 1.6 安装Anaconda和库文件 6
    • 1.7 连接服务器上的JupyterNotebooks 7
    • 1.8 用 TensorFlow构建进的即用模型 8
    • 1.9 直观地用Keras建立网络 10
    • 1.10 使用PyTorch的RNN动态计算图 12
    • 1.11 用CNTK实现高性能模型 14
    • 1.12 使用MXNet构建高效的模型 15
    • 1.13 使用简单、高效的Gluon编码定义网络 17
  • 第2章 前馈神经网络 19
    • 2.1 简介 19
    • 2.2 理解感知器 19
    • 2.3 实现一个单层神经网络 23
    • 2.4 构建一个多层神经网络 27
    • 2.5 开始使用激活函数 30
    • 2.6 关于隐层和隐层神经元的实验 35
    • 2.7 实现一个自动编码器 38
    • 2.8 调整损失函数 41
    • 2.9 测试不同的优化器 44
    • 2.10 使用正则化技术提高泛化能力 47
    • 2.11 添加Dropout以防止过拟合 51
  • 第3章 卷积神经网络 56
    • 3.1 简介 56
    • 3.2 开始使用滤波器和参数共享 56
    • 3.3 应用层合并技术 60
    • 3.4 使用批量标准化进行优化 62
    • 3.5 理解填充和步长 66
    • 3.6 试验不同类型的初始化 72
    • 3.7 实现卷积自动编码器 76
    • 3.8 将一维CNN应用于文本 79
  • 第4章 递归神经网络 81
    • 4.1 简介 81
    • 4.2 实现一个简单的RNN 82
    • 4.3 添加LSTM 84
    • 4.4 使用GRU 86
    • 4.5 实现双向RNN 89
    • 4.6 字符级文本生成 91
  • 第5章 强化学习 95
    • 5.1 简介 95
    • 5.2 实现策略梯度 95
    • 5.3 实现深度Q学习算法 102
  • 第6章 生成对抗网络 109
    • 6.1 简介 109
    • 6.2 了解GAN 109
    • 6.3 实现DCGAN 112
    • 6.4 使用SRGAN来提高图像分辨率 117
  • 第7章 计算机视觉 125
    • 7.1 简介 125
    • 7.2 利用计算机视觉技术增广图像 125
    • 7.3 图像中的目标分类 130
    • 7.4 目标在图像中的本地化 134
    • 7.5 实时检测框架 139
    • 7.6 用U-net将图像分类 139
    • 7.7 语义分割与场景理解 143
    • 7.8 寻找人脸面部关键点 147
    • 7.9 人脸识别 151
    • 7.10 将样式转换为图像 157
  • 第8章 自然语言处理 162
    • 8.1 简介 162
    • 8.2 情绪分析 162
    • 8.3 句子翻译 165
    • 8.4 文本摘要 169
  • 第9章 语音识别和视频分析 174
    • 9.1 简介 174
    • 9.2 从零开始实现语音识别流程 174
    • 9.3 使用语音识别技术辨别讲话人 177
    • 9.4 使用深度学习理解视频 181
  • 第10章 时间序列和结构化数据 185
    • 10.1 简介 185
    • 10.2 使用神经网络预测股票价格 185
    • 10.3 预测共享单车需求 189
    • 10.4 使用浅层神经网络进行二元分类 192
  • 第11章 游戏智能体和机器人 194
    • 11.1 简介 194
    • 11.2 通过端到端学习来驾驶汽车 194
    • 11.3 通过深度强化学习来玩游戏 199
    • 11.4 用GA优化超参数 205
  • 第12章 超参数选择、调优和神经网络学习 211
    • 12.1 简介 211
    • 12.2 用TensorBoard和Keras可视化训练过程 211
    • 12.3 使用批量和小批量工作 215
    • 12.4 使用网格搜索调整参数 219
    • 12.5 学习率和学习率调度 221
    • 12.6 比较优化器 224
    • 12.7 确定网络的深度 227
    • 12.8 添加Dropout以防止过拟合 227
    • 12.9 通过数据增广使模型更加鲁棒 232
    • 12.10 利用TTA来提高精度 234
  • 第13章 网络内部构造 235
    • 13.1 简介 235
    • 13.2 用TensorBoard可视化训练过程 235
    • 13.3 用TensorBoard可视化网络结构 239
    • 13.4 分析网络权重等 239
    • 13.5 冻结层 244
    • 13.6 存储网络结构并训练权重 246
  • 第14章 预训练模型 250
    • 14.1 简介 250
    • 14.2 使用GoogLeNet/Inception进行大规模视觉识别 250
    • 14.3 用ResNet提取瓶颈特征 252
    • 14.4 对新类别使用预训练的VGG模型 253
    • 14.5 用Xception细调 256

Github | Docker | Project