"电子工业出版社"出版的书籍

剑指Offer

《剑指Offer——名企面试官精讲典型编程题(纪念版)》是为纪念本书英文版全球发行而推出的特殊版本,在原版基础上新增大量本书英文版中的精选题目,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。全书分为8章,主要包括面试流程:讨论面试每一环节需要注意的问题;面试需要的基础知识:从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量代码:讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对非法输入进行合理处理;解题思路:总结编程面试中解决难题的有效思考模式,如在面试中遇到复杂难题,应聘者可利用画图、举例和分解这3种方法将其化繁为简,先形成清晰思路再动手编程;优化时间和空间效率:读者将学会优化时间效率及空间换时间的常用算法,从而在面试中找到最优解;面试必备能力:总结应聘者如何充分表现学习和沟通能力,并通过具体面试题讨论如何培养知识迁移、抽象建模和发散思维能力;综合面试案例:总结哪些面试举动是不良行为,而哪些表现又是面试官所期待的行为;英文版面试题增补,优选久经欧美知名企业面试考验的经典题目,帮助国内读者开阔视野、增补技能。

《剑指Offer——名企面试官精讲典型编程题(纪念版)》适合即将走向工作岗位的大学生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。

基于大模型的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

从机器学习到深度学习

《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战》是一本场景式的机器学习实践书,笔者努力做到“授人以渔,而非授人以鱼”。理论方面从人工智能(AI)与机器学习(ML)的基本要素讲起,逐步展开有监督学习、无监督学习、强化学习这三大类模型的应用场景与算法原理;实践方面通过金融预测、医疗诊断概率模型、月球登陆器、图像识别、写诗机器人、中国象棋博弈等案例启发读者将机器学习应用在各行各业里,其中后三个案例使用了深度学习技术。

《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战》试图用通俗的语言讲解涵盖算法模型的机器学习,主要内容包括机器学习通用概念、三个基本科学计算工具、有监督学习、聚类模型、降维模型、隐马尔可夫模型、贝叶斯网络、自然语言处理、深度学习、强化学习、模型迁移等。在深入浅出地解析模型与算法之后,介绍使用Python相关工具进行开发的方法、解析经典案例,使读者做到“能理解、能设计、能编码、能调试”,没有任何专业基础的读者在学习本书后也能够上手设计与开发机器学习产品。

《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战》内容深入浅出、实例典型,适合对机器学习感兴趣的产品设计、技术管理、数据分析、软件开发或学生读者。阅读本书既能了解当前工业界的主流机器学习与深度学习开发工具的使用方法,又能从战略方面掌握如何将人工智能技术应用到自己的企业与产品中。

算法之美

《算法之美——隐匿在数据结构背后的原理(C++版)》围绕算法与数据结构这个话题,循序渐进、深入浅出地介绍了现代计算机技术中常用的40 余个经典算法,以及回溯法、分治法、贪婪法和动态规划等算法设计思想。在此过程中,《算法之美——隐匿在数据结构背后的原理(C++版)》也系统地讲解了链表(包括单向链表、单向循环链表和双向循环链表)、栈、队列(包括普通队列和优先级队列)、树(包括二叉树、哈夫曼树、堆、红黑树、AVL 树和字典树)、图、集合(包括不相交集)与字典等常用数据结构。同时,通过对22 个经典问题(包括约瑟夫环问题、汉诺塔问题、八皇后问题和骑士周游问题等)的讲解,逐步揭开隐匿在数据结构背后的算法原理,力图帮助读者夯实知识储备,激活思维技巧,并最终冲破阻碍编程能力提升的重重藩篱。

《算法之美——隐匿在数据结构背后的原理(C++版)》适合作为大专院校相关专业学生研习算法与数据结构知识的课外参考书。对有意参加信息学竞赛的读者,本书亦有很强的参考价值。此外,鉴于算法与数据结构在求职过程中常常被视为考察重点,所以就临近毕业的学生或其他欲从事IT 行业的求职者而言,阅读《算法之美——隐匿在数据结构背后的原理(C++版)》也将对面试备考大有裨益。

LangChain入门指南:构建高可复用、可扩展的LLM应用程序

内容简介  · · · · · ·

这本书专门为那些对自然语言处理技术感兴趣的读者提供了系统的LLM应用开发指南。全书分为11章,从LLM基础知识开始,通过LangChain这个开源框架为读者解读整个LLM应用开发流程。第1~2章概述LLM技术的发展背景和LangChain框架的设计理念。从第3章开始,分章深入介绍LangChain的6大模块,包括模型I/O、数据增强、链、记忆等,通过大量代码示例让读者了解其原理和用法。第9章通过构建PDF问答程序,帮助读者将之前学习的知识应用于实践。第10章则介绍集成,可拓宽LangChain的用途。第11章为初学者简要解析LLM的基础理论,如Transformer模型等。

《LangChain入门指南:构建高可复用、可扩展的LLM应用程序》以LangChain这个让人熟悉的框架为主线,引导读者一步一步掌握LLM应用开发流程,适合对大语言模型感兴趣的开发者、AI应用程序开发者阅读。

作者简介  · · · · · ·

李特丽,LangChain中文网联合创始人,优秀的软件工程师。曾翻译LangChain、OpenAi、Milvus等AI开发三件套的中文文档,帮助中国开发者快速上手AI开发。
康轶文,LangChain中文网创始人,2005年从个人站长做起,成为第一代SEO“大神”;2012年转型移动互联网营销,成为中国Apple Ads代理商,获得苹果千万美元授信;2022年转型月付制AI数字员工全托管服务,是一位经验丰富的数字员工和人工智能应用专家。

目录  · · · · · ·

  • 第1 章 LangChain:开启大语言模型时代的钥匙
    • 1.1 大语言模型概述
      • 1.1.1 什么是大语言模型
      • 1.1.2 大语言模型的发展
      • 1.1.3 大语言模型的应用场景
      • 1.1.4 大语言模型的基础知识
    • 1.2 LangChain 与大语言模型
  • 第2 章 LangChain 入门指南
    • 2.1 初识LangChain
      • 2.1.1 为什么需要LangChain
      • 2.1.2 LLM 应用开发的最后1 公里
      • 2.1.3 LangChain 的2 个关键词
      • 2.1.4 LangChain 的3 个场景
      • 2.1.5 LangChain 的6 大模块
    • 2.2 LangChain 的开发流程
      • 2.2.1 开发密钥指南
      • 2.2.2 编写一个取名程序
      • 2.2.3 创建你的第一个聊天机器人
    • 2.3 LangChain 表达式
  • 第3 章 模型I/O
    • 3.1 什么是模型I/O
    • 3.2 模型I/O 功能之模型包装器
      • 3.2.1 模型包装器分类
      • 3.2.2 LLM 模型包装器
      • 3.2.3 聊天模型包装器
    • 3.3 模型I/O 功能之提示词模板
      • 3.3.1 什么是提示词模板
      • 3.3.2 提示词模板的输入和输出
      • 3.3.3 使用提示词模板构造提示词
      • 3.3.4 少样本提示词模板
      • 3.3.5 多功能提示词模板
    • 3.4 模型I/O 功能之输出解析器
      • 3.4.1 输出解析器的功能
      • 3.4.2 输出解析器的使用
      • 3.4.3 Pydantic JSON 输出解析器
      • 3.4.4 结构化输出解析器
  • 第4 章 数据增强模块
    • 4.1 数据增强模块的相关概念
      • 4.1.1 LEDVR 工作流
      • 4.1.2 数据类型
    • 4.2 加载器
    • 4.3 嵌入模型包装器
      • 4.3.1 嵌入模型包装器的使用
      • 4.3.2 嵌入模型包装器的类型
    • 4.4 文档转换器
    • 4.5 向量存储库
      • 4.5.1 向量存储库的使用
      • 4.5.2 向量存储库的搜索方法
    • 4.6 检索器
      • 4.6.1 检索器的使用
      • 4.6.2 检索器的类型
  • 第5 章 链
    • 5.1 为什么叫链
      • 5.1.1 链的定义
      • 5.1.2 链的使用
      • 5.1.3 基础链类型
      • 5.1.4 工具链类型
    • 5.2 细说基础链
      • 5.2.1 LLM 链
      • 5.2.2 路由器链
      • 5.2.3 顺序链
    • 5.3 四大合并文档链
      • 5.3.1 Stuff 链
      • 5.3.2 Refine 链
      • 5.3.3 MapReduce 链
      • 5.3.4 重排链
    • 5.4 揭秘链的复杂性
      • 5.4.1 复杂链的“套娃”式设计
      • 5.4.2 LEDVR 工作流的终点:“上链”
  • 第6 章 记忆模块
    • 6.1 记忆模块概述
      • 6.1.1 记忆组件的定义
      • 6.1.2 记忆组件、链组件和Agent 组件的关系
      • 6.1.3 设置第一个记忆组件
      • 6.1.4 内置记忆组件
      • 6.1.5 自定义记忆组件
    • 6.2 记忆增强检索能力的实践
      • 6.2.1 获取外部数据
      • 6.2.2 加入记忆组件
    • 6.3 记忆增强Agent 能力的实践
    • 6.4 内置记忆组件的对比
      • 6.4.1 总结记忆组件
      • 6.4.2 会话记忆组件和会话窗口记忆组件的对比
      • 6.4.3 知识图谱记忆组件和实体记忆组件的比较
  • 第7 章 Agent 模块
    • 7.1 Agent 模块概述
      • 7.1.1 Agent 组件的定义
      • 7.1.2 Agent 组件的运行机制
      • 7.1.3 Agent 组件入门示例
      • 7.1.4 Agent 组件的类型
    • 7.2 Agent 组件的应用
      • 7.2.1 Agent 组件的多功能性
      • 7.2.2 自定义Agent 组件
      • 7.2.3 ReAct Agent 的实践
    • 7.3 工具组件和工具包组件
      • 7.3.1 工具组件的类型
      • 7.3.2 工具包组件的类型
    • 7.4 Agent 组件的功能增强
      • 7.4.1 Agent 组件的记忆功能增强
      • 7.4.2 Agent 组件的检索能力增强
  • 第8 章 回调处理器
    • 8.1 什么是回调处理器
      • 8.1.1 回调处理器的工作流程
      • 8.1.2 回调处理器的使用
      • 8.1.3 自定义链组件中的回调
    • 8.2 内置回调处理器
    • 8.3 自定义回调处理器
  • 第9 章 使用LangChain 构建应用程序
    • 9.1 PDF 问答程序
      • 9.1.1 程序流程
      • 9.1.2 处理PDF 文档
      • 9.1.3 创建问答链
    • 9.2 对话式表单
      • 9.2.1 OpenAI 函数的标记链
      • 9.2.2 标记链的使用
      • 9.2.3 创建提示词模板
      • 9.2.4 数据更新和检查
    • 9.3 使用LangChain 实现BabyAGI
      • 9.3.1 BabyAGI 介绍
      • 9.3.2 环境与工具
      • 9.3.3 向量存储
      • 9.3.4 构建任务链
      • 9.3.5 创建BabyAGI
      • 9.3.6 运行BabyAGI
  • 第10 章 集成
    • 10.1 集成的背景与LLM 集成
    • 10.2 LLM 集成指南
      • 10.2.1 Azure OpenAI 集成
      • 10.2.2 Hugging Face Hub 集成
    • 10.3 聊天模型集成指南
      • 10.3.1 Anthropic 聊天模型集成
      • 10.3.2 PaLM 2 聊天模型集成
      • 10.3.3 OpenAI 聊天模型集成
    • 10.4 向量库集成指南
      • 10.4.1 Chroma 集成
      • 10.4.2 Pinecone 集成
      • 10.4.3 Milvus 集成
    • 10.5 嵌入模型集成指南
      • 10.5.1 HuggingFaceEmbeddings 嵌入集成
      • 10.5.2 LlamaCppEmbeddings 嵌入集成
      • 10.5.3 Cohere 嵌入集成
    • 10.6 Agent toolkits 集成指南
      • 10.6.1 CSV Agent 的集成
      • 10.6.2 Pandas Dataframe Agent 的集成
      • 10.6.3 PowerBI Dataset Agent 的集成
    • 10.7 Retrievers 集成指南
      • 10.7.1 WikipediaRetriever 集成
      • 10.7.2 ArxivRetriever 集成
      • 10.7.3 Azure Cognitive Search 集成
  • 第11 章 LLM 应用开发必学知识
    • 11.1 LLM 的核心知识
      • 11.1.1 文本嵌入
      • 11.1.2 点积相似性和余弦相似性
      • 11.1.3 注意力机制
    • 11.2 Transformer 模型
    • 11.3 语义搜索
      • 11.3.1 语义搜索的工作原理
      • 11.3.2 RAG 的工作原理
    • 11.4 NLP 与机器学习基础
      • 11.4.1 LLM 应用开发中的传统机器学习方法
      • 11.4.2 NLP 文本预处理
      • 11.4.3 构建分类器
  • 附录A LangChain 框架中的主要类
  • 附录B OpenAI 平台和模型介绍
  • 附录C Claude 2 模型介绍
  • 附录D Cohere 模型介绍
  • 附录E PaLM 2 模型介绍
  • 附录F Pinecone 向量数据库介绍
  • 附录G Milvus 向量数据库介绍

深度学习框架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. 使用建议

一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革

内容简介

《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》以通俗易懂的方式从各个层面介绍了AIGC的基础知识,并辅以大量案例引领读者了解AIGC的应用实践,让读者可以更快速地利用AIGC改善工作和生活。 第1章从AI发展历史到资本市场近况阐述了AIGC产业的概况,第2章介绍了AIGC相关技术,第3章介绍了文本类AIGC技术的发展及其在传媒、教育、办公等场景中的应用,第4章介绍了声音类AIGC技术的发展及其在音乐、仿真等领域中的应用,第5章介绍了图片类AIGC技术的发展及其在图片生成、图片处理、图片识别等领域中的应用,第6章介绍了视频类AIGC技术的发展及其在视频生成、数字人等领域中的应用,第7章介绍了AIGC上下游产业链(包括芯片、VR等相关设备、元宇宙建模)的概况,第8章提出了AIGC对人类文明发展产生的影响,并对普通人如何应对AIGC带来的“生产力爆炸”提出方法论。 AIGC带来的生产力变革与每个人都息息相关,本书适合所有人阅读,特别是文本、图片、音视频等各类内容创作者,以及科技行业、金融行业的从业者和对AI领域感兴趣的读者。

作者简介

贾雪丽
上海技术交易所专家库专家,代尔夫特理工大学硕士,先后就职于 ING 银行、中国平安、光大集团等顶级金融科技企业,拥有丰富的人工智能、隐私计算及区块链等项目经验,申请人工智能相关发明专利 60 余项,在INTERSPEECH会议上发表论文一篇,参与撰写多个隐私计算行业报告和白皮书。
0xAres
利物浦大学硕士,曾先在投资公司工作,后就职于知名公链。从业期间主持制作过多个区块链系列课程,举办过多次“黑客松”,长期致力于区块链的科普教育,有Web3.0行业全领域孵化经验,乐于通过多种形式的内容创作传播Web3.0共识;2021年组建去创作者中心化组织a15a并开始编写新科技领域的科普书籍,主编了《一本书读懂Web3.0:区块链、NFT、元宇宙和DAO》和《一本书读懂NFT:区块链通证、元宇宙资产、Web3.0营销和数字化身份》。
张炯
星图比特创始人兼CEO,中国通信工业协会信息化科技创新专业委员会委员,上海技术交易所专家库专家;曾就职于IBM,拥有丰富的金融科技从业经验,长期服务中国人民银行、中国工商银行等大型金融机构,擅长技术融合、产业创新,对以区块链、人工智能为代表的数字经济技术有深刻的理解;拥有人工智能和数字资产相关专利8项,参与撰写了《一本书读懂Web3.0:区块链、NFT、元宇宙和DAO》和《一本书读懂NFT:区块链通证、元宇宙资产、Web3.0营销和数字化身份》。
a15a
a15a是一个Creator DAO(创作者去中心化组织),致力于以DAO的形式来产出新科技领域的内容,降低普通人了解科技的门槛。a15a已出版多本新科技科普书籍,并计划推出更多体系化课程和讲座。a15a的主要成员是区块链和人工智能领域的专家、从业者、研究人员和学生,以及法律合规领域的专业人士。在抖音、知乎、小红书、推特等平台上搜索“a15a”即可找到a15a官方账号。

目录

  • 第1章 我们为什么要关注AIGC 1
    • 1.1 从人工智能到人工智能生成内容 2
    • 1.2 巨头如是说 5
      • 1.2.1 国外“大厂”在AIGC领域的布局 5
      • 1.2.2 国内“大厂”在AIGC领域的布局 7
    • 1.3 资本狂潮 9
      • 1.3.1 融资规模 9
      • 1.3.2 AIGC领域大额融资事件一览 10
    • 1.4 异军突起的独角兽企业们 11
      • 14.1 OpenAI 11
      • 14.2 Stability AI 12
      • 1.4.3 Scale AI 13
    • 1.5 行业“大牛”:谁是下一个“乔布斯” 14
  • 第2章 AIGC相关技术介绍 16
    • 2.1 规则系统 19
    • 2.2 变分自编码器 20
    • 2.3 生成对抗网络 22
      • 2.3.1 GAN模型训练原理 22
      • 2.3.2 CGAN模型 24
      • 2.3.3 基于模型架构的衍生 24
      • 2.3.4 基于损失函数的衍生 25
      • 2.3.5 图像生成领域的衍生 25
    • 2.4 Transformer模型架构 26
    • 2.5 基于Transformer模型架构的LLM 28
      • 2.5.1 基于编码器的LLM 28
      • 2.5.2 基于解码器的LLM 35
      • 2.5.3 基于编码器和解码器的LLM 39
      • 2.5.4 BERT模型与GPT模型对比 39
    • 2.6 扩散模型 40
      • 2.6.1 扩散模型原理 41
      • 2.6.2 DALL·E 2模型 43
      • 2.6.3 Stable Diffusion模型 44
    • 2.7 其他模型 46
    • 2.8 LLM的前景光明 47
  • 第3章 下笔如有神:文本类AIGC 48
    • 3.1 何为“智能” 49
    • 3.2 拆解文本生成技术原理 52
      • 3.2.1 1950—1970年,NLP初露锋芒 52
      • 3.2.2 1980—2010年,NLP的寒冬与机遇并存 53
      • 3.2.3 2010—2019年,技术迸发与沉淀 54
      • 3.2.4 2019年到今,AIGC进入寻常百姓家 54
    • 3.3 文本类AIGC在传媒场景中的应用 55
      • 3.3.1 社交媒体文案:Jasper 55
      • 3.3.2 新闻写作:Quakebot、CNET 58
      • 3.3.3 剧本撰写:海马轻帆 58
    • 3.4 文本类AIGC在教育场景中的应用 59
      • 3.4.1 文章撰写:EssayGenuis 59
      • 3.4.2 出题和做题:高校联合团队开发的AI程序 65
      • 3.4.3 青少年教育:Cognii 65
    • 3.5 文本类AIGC在办公场景中的应用 66
      • 3.5.1 搜索引擎优化:Kafkai 66
      • 3.5.2 营销文案:Copysmith 68
      • 3.5.3 电子邮件:Compose.ai 69
      • 3.5.4 代码撰写:GitHub Copilot 69
    • 3.6 文本类AIGC的其他热门场景 71
      • 3.6.1 AI聊天机器人 71
      • 3.6.2 AIGC搜索引擎:Perplexity AI 73
    • 3.7 万众瞩目的ChatGPT 74
      • 3.7.1 ChatGPT是什么 74
      • 3.7.2 ChatGPT的海量应用场景 75
      • 3.7.3 GPT-4模型:截至2023年3月最强的AI模型 82
      • 3.7.4 ChatGPT对普通人意味着什么 85
    • 3.8 文本类AIGC的未来 85
  • 第4章 声临其境:声音类AIGC 88
    • 4.1 从让机器开口说话开始 89
      • 4.1.1 18到19世纪的尝试 89
      • 4.1.2 20世纪30年代,语音合成技术的萌芽 90
      • 4.1.3 20世纪50年代,计算机语音合成系统的起源 91
      • 4.1.4 20世纪末,传统的语音合成方法 92
      • 4.1.5 2016年,AIGC打破语音合成技术的发展瓶颈 93
      • 4.1.6 2017年,语音合成技术迎来研究热 94
    • 4.2 音乐类AIGC 99
      • 4.2.1 从留声机到个人计算机制作的电子音乐 99
      • 4.2.2 早期的音乐类AIGC 102
      • 4.2.3 端到端模型大展身手 106
      • 4.2.4 歌声合成 107
      • 4.2.5 音频延续 108
    • 4.3 人声类AIGC 108
      • 4.3.1 变声器 109
      • 4.3.2 语音助手 110
      • 4.3.3 有声内容创作 113
      • 4.3.4 智能电话机器人 116
      • 4.3.5 教育 116
      • 4.3.6 无障碍沟通 118
    • 4.4 声音类AIGC的未来 120
      • 4.4.1 业内观点 120
      • 4.4.2 声音类AIGC的局限性和未来展望 121
  • 第5章 如你所见:图片类AIGC 123
    • 5.1 从计算机艺术到算法模型艺术 124
      • 5.1.1 20世纪70年代,艺术家的午夜花园 125
      • 5.1.2 2012年,一次有突破意义的尝试:猫脸的识别与生成 125
      • 5.1.3 2014年,GAN模型问世 126
      • 5.1.4 2017年,梦始于Transformer模型 127
      • 5.1.5 2021年,文本与图片进行匹配:CLIP模型和文字提示词 127
      • 5.1.6 2020—2022年,图片生成技术开启AI绘画元年:扩散模型 129
    • 5.2 AI绘画 130
      • 5.2.1 主流的AI绘画工具介绍 130
      • 5.2.2 生成图片类AIGC的方式 133
      • 5.2.3 Prompt词组 137
    • 5.3 图片处理 146
      • 5.3.1 AI修图 146
      • 5.3.2 图片增强 146
      • 5.3.3 分割抠图 147
    • 5.4 图片类AIGC的衍生应用:AI识图和AI鉴图 152
      • 5.4.1 人脸和人体识别 153
      • 5.4.2 通用图片识别 155
      • 5.4.3 是否由AI绘画工具创作 158
    • 5.5 实用、有趣的图片世界 160
      • 5.5.1 头像生成 160
      • 5.5.2 模拟场景 164
      • 5.5.3 PPT生成 168
      • 5.5.4 设计 170
      • 5.5.5 稿件配图 173
      • 5.5.6 更多场景 174
    • 5.6 图片类AIGC的未来 175
      • 5.6.1 局限性和发展预测 175
      • 5.6.2 怎么看AI艺术 178
      • 5.6.3 笔者的一些浅见 180
  • 第6章 众所周知,视频是不能PS的:视频类AIGC 182
    • 6.1 视频生成技术的发展历程 183
      • 6.1.1 早期探索 184
      • 6.1.2 2014—2016年,视频生成起步:无条件视频生成 184
      • 6.1.3 2017年,潘多拉的魔盒:人像视频生成 185
      • 6.1.4 2018—2019年,视频生成视频技术的突破 185
      • 6.1.5 2021年,文本生成视频技术的发展 186
      • 6.1.6 2022年,扩散模型进军视频生成领域 187
    • 6.2 视频生成工具 188
      • 6.2.1 数字人视频生成工具 188
      • 6.2.2 视频编辑工具 189
      • 6.2.3 文本生成视频工具 189
    • 6.3 视频生成应用 190
      • 6.3.1 高清内容生成 190
      • 6.3.2 快速拆条和视频摘要生成 194
      • 6.3.3 场景植入 195
      • 6.3.4 视频卡通化 196
      • 6.3.5 文本生成视频 197
      • 6.3.6 数字人视频生成 198
      • 6.3.7 人脸视频生成 199
    • 6.4 数字人:仿生人与电子羊 201
    • 6.5 视频类AIGC的未来 204
      • 6.5.1 局限性 204
      • 6.5.2 未来预测 205
  • 第7章 AIGC的相关产业和生态发展 207
    • 7.1 芯片:算力决定智力 208
      • 7.1.1 在AIGC领域中,现在用什么芯片 209
      • 7.1.2 随着AIGC的发展,对芯片会有什么新的需求 216
    • 7.2 AIGC展示端口:AR/VR/MR/XR设备 218
      • 7.2.1 AR设备 218
      • 7.2.2 VR设备 219
    • 7.3 模型类AIGC应用在元宇宙里自动化建模 221
      • 7.3.1 拍视频就可以得到模型?基于视频自动化生成模型 222
      • 7.3.2 元宇宙版的神笔马良,基于文本自动化生成三维模型 223
      • 7.3.3 穿越空间,虚拟直播空间建设 224
      • 7.3.4 你元宇宙的化身——数字人生成技术 225
      • 7.3.5 把实物带到元宇宙中,基于三维激光扫描设备的文物逆向建模 226
    • 7.4 AIGC应用的未来 226
  • 第8章 AI文明的降临已开启倒计时 228
    • 8.1 何谓内容 229
    • 8.2 AIGC的版权争议 230
    • 8.3 普通人的AIGC时代生存建议 232
      • 8.3.1 生产力工具:“人工”+“智能”=最强“打工人” 234
      • 8.3.2 做AIGC应用的老师,为人类的“群体智慧”做贡献 237
      • 8.3.3 向AIGC应用学习逻辑,同时关注创新 237
    • 后记 239

大模型时代的基础架构:大模型算力中心建设指南

大模型是近年来引人注目的热点之一。大模型蓬勃发展的基础,是针对其需求设计的算力及基础架构。本书针对如何为大模型构建基础架构进行深入讲解,并基于TOGAF方法论,剖析业界知名案例的设计方案。

《大模型时代的基础架构:大模型算力中心建设指南》总计13章。第1章讲解AI与大模型时代对基础架构的需求;第2章讲解软件程序与专用硬件的结合,涉及GPU并行运算库、机器学习程序的开发框架和分布式AI训练;第3章剖析GPU的硬件架构,涉及GPU的总体设计、Nvidia GH100芯片架构和拥有其他Hopper架构的GPU;第4章讲解GPU服务器的设计与实现;第5章讲解机器学习所依托的I/O框架体系;第6章讲解GPU集群的网络设计与实现;第7章讲解GPU板卡算力调度技术;第8章讲解GPU虚拟化调度方案;第9章讲解GPU集群的网络虚拟化设计与实现;第10章讲解GPU集群的存储设计与实现;第11章讲解如何基于云原生技术为机器学习应用设计与实现更好的开发和运行平台;第12章讲解基于云平台的GPU集群的管理与运营,涉及云运维平台、云运营平台和云审计平台;第13章基于一个服务机器学习的GPU计算平台落地案例,展示如何针对机器学习应用进行需求分析、设计与实现。

无论是高等院校计算机与人工智能等相关专业的本科生或研究生,还是对并行计算技术、云计算技术、高性能存储及高性能网络技术感兴趣的研究人员或工程技术人员,都可以参考和阅读本书。

走向TensorFlow 2.0:深度学习应用编程快速入门

编辑推荐

√ TensorFlow 2.0与上一版对比,可以视为一个完全不同的深度学习框架,必须重学。

√ 面向应用落地,涵盖图像识别|对话机器人|生成网络图片风格迁移|文本情感分析等。

√ 本书实战样例丰富,从TensorFlow模型训练到生产环境部署,全程剖析AI系统开发。

√ 通俗易懂地讲述人工智能从基本原理到知识结构再到工业应用,非常适合突击入门。

内容提要

《走向TensorFlow 2.0:深度学习应用编程快速入门》是TensorFlow 2.0编程实践的入门类书籍,目的是在TensorFlow 2.0正式版发布之际能够帮助大家快速了解其核心特性及基本编程技巧。本书通过5个常用的人工智能编程案例,帮助大家掌握如何在工作中使用TensorFlow 2.0进行应用开发。

《走向TensorFlow 2.0:深度学习应用编程快速入门》内容覆盖了Python和TensorFlow基础入门、自然语言处理和CV领域的实践案例、模型的服务化部署,希望在基于TensorFlow 2.0的人工智能编程上能够助你一臂之力。

精彩节摘

推荐序

AlphaGo以“Master”(大师)作为ID,横空出世,在中国乌镇围棋峰会上,它与世界围棋冠军柯洁对战,在围棋领域,击败人类精英。

继而,AlphaGo Zero,从空白状态起步,在无任何人类输入的条件下,能够迅速自学围棋,并以100∶0的战绩击败人类“前辈”。

机器学习,在尝试以人类经验图谱进行学习时,短短数年,就在围棋领域,击败了拥有几千年沉淀的人类顶尖高手。

如果说这是机器的力量,那么AlphaGo Zero在尝试不以人类的经验图谱进行自我深度学习时,产生了另一个质的飞跃,这,就是机器学习的力量。

机器学习作为人工智能的一种类型,可以让软件根据大量的数据来对未来的情况进行阐述或预判。这项技术,可以通过人类经验学习和自我深度学习,帮助人类在各个领域取得突破性进展。如今,领先的科技巨头无不在机器学习方面予以极大投入。Google、苹果、微软、阿里巴巴、百度,无不深度参与,期望成为机器学习技术的铺路者、领路者、践行者。

未来是什么样子的,没人说得清,但是未来在一步步来临的路上,必然有机器学习技术的铺垫。

2011年,“谷歌大脑”开始开展面向科学研究和工程应用的大规模深度学习。TensorFlow是Google第二代机器学习系统。如今,Google将此系统开源,并将此系统的参数公布给业界工程师、学者和大量拥有编程能力的技术人员,正是为了让全世界的人都能够从机器学习与人工智能中获益。

TensorFlow社区,是机器学习领域内最活跃和友善的社区之一。社区的好处,在于学习的路上,有很多人同行,你的任何问题和疑惑,在社区中都能得到相当不错的答案。如果你想了解和学习机器学习,那么TensorFlow是一个相当不错的选择。如果你想学习TensorFlow,那么这本书会让你以最低难度领略机器学习的奥秘。

我可以代表这样一类人,作为多年的技术工作者,在工作中和机器学习也有一些接触,对机器学习有比较浓厚的兴趣。拿到这本书,相见恨晚,翻阅着,用电脑作为武器,按照书中所示,比画着,一招一式中,不觉间就进入了机器学习的奇妙世界。这也使我通过学习机器如何进行自我深度学习,让自己从另一个角度进行思考,得到收获。

英俊的这本书,书如其名,内容英朗俊秀,深入浅出,浅显易懂,思在天地,行在山野。

推荐读者群体:期望入门机器学习的学生、技术工作者及其身边的人。如果你恰好是其中一类人,又读到了这里,这本书请不要错过,因为你阅读的书中项目可能会比Android系统更加深远地影响着世界!

阿里巴巴菜鸟网络技术专家 薛巍

中国,杭州

2019年9月

媒体评论

本书探讨了开源机器学习软件库TensorFlow 2.0的诸多应用实践,内容涵盖各种热门的应用场景,包括图像识别、自然语言对话机器人、基于生成网络的图片风格迁移、文本情感分析等。该书是为“应用落地”而编写的,每章均附有大量的代码和注释,帮助读者更快地入门和实现应用落地。本书前两章分别介绍了Python的用法和TensorFlow的基础,在最后一章又探讨了如何将TensorFlow所训练的模型部署到生产环境中。本书对有志于在相关领域进行研究并快速产出原型的技术人员具有很高的参考价值。

寿黎但

浙江大学计算机学院教授

深度学习在工业领域逐步得到应用,尤其是其与物联网的结合,在智能家居、智慧城市、智慧交通、智慧医疗、智慧教育、智慧工业等多种行业场景中具有广阔的发展空间。而在这一发展过程中,培养合格的人工智能与物联网结合方向的研发人才,实现人工智能技术在工业应用领域的技术落地和实际应用,是人工智能领域教育培训的一个重要方向。本书详细介绍了深度学习基本原理和基于TensorFlow 2.0的编程实践入门,可以为人工智能领域的入门读者提供非常好的实践导引。

董亚波

浙江大学计算机学院副教授,人工智能研究所副所长

在与本书作者的项目合作中,借助其丰富的TensorFlow开发经验,使得项目得以顺利进行。有幸能够看到本书样章,书中内容短小精悍,有大量实战样例。读者阅读本书后,能够快速走进以TensorFlow 2.0为基础的AI系统开发领域。

牟磊育

中国地震局地球物理研究所 地震数据质量人工智能检测项目负责人

这一波人工智能浪潮与以往我们所讨论的人工智能最大的不同,就是其已经迅速在工业领域进行应用。互联网+人工智能+大数据的时代正在到来,新一代人工智能正加速推进经济向智能化跃升。因此,投资界非常看好目前人工智能在IOT、5G等方向的应用前景。本书作者以深厚的专业知识和多年的实践经验,由浅入深,用生动语言讲述了人工智能的基本原理、知识结构、工业应用。相信此书能够为人工智能爱好者,以及在此领域开展技术研究的读者提供一个通俗易懂的入门导引,帮助读者更快捷地进入人工智能应用领域。

詹家芳

原德国林德工程(杭州)有限公司总经理,留美硕士

前言

坦白地说,在我的技术生涯规划中还未想过要在30岁生日之前出一本技术书。在30岁这一年里,我感觉有280天以上是每天工作超过12小时的,每天我积极处理工作上的事情以求在事业上取得成就、学习自己欠缺的技术以求提升能力、输出自己学到的知识以期帮助更多的人;在30岁这一年里,我第一次体会到颈椎病带来的痛苦,也将一直引以为傲的视力熬成了近视。之所以如此逼自己,大概是因为自己的不自信和痴痴的责任心在作祟。

创作初衷

最开始筹划这本书的时候,也只是想将自己在小象学院的课程内容整理成书(课程内容是关于TensorFlow 1.x的),但是当看到TensorFlow 2.0发布计划公布之后,我又觉得写一本关于TensorFlow 1.x的书是没有意义的,并且会浪费读者的时间和精力。因此,我彻底推翻书稿原来规划的内容,重新调整所有的知识点,所有的实践案例都用TensorFlow 2.0进行重新编程,从而导致交稿日期一拖再拖。说到这里,我要特别感谢电子工业出版社的张春雨老师,他一直在推动、鼓励甚至督促我,使我跌跌撞撞、写写停停完成了初稿、提升稿、提交稿。在本书写作过程中,江郎才尽和被掏空的感觉对我来说是最大的煎熬。我一直是一个喜欢分享知识和观点的人,但是这种成体系的、持续的、面向大众的分享和输出让我对自己的要求不断提高,总是担心如果写错了会误人子弟。这不是一个轻松的过程,尤其是在创业的初期,我首先要做的是全力以赴、出色地完成产品和技术工作,然后用本来就不多的休息时间来完成技术的提升和本书的编写。从一个追求技术深度的技术人员的视角来看,本书不能令我百分百满意,但是万事总要迈出第一步,希望这本书能够为读者带来一定的参考和学习价值。

内容结构

本书在内容规划上分3个部分,共7章,具体如下。

第1部分:编程基础入门,包括Python基础编程入门和TensorFlow 2.0快速入门知识。

 第1章 Python基础编程入门:本章阐述了Python的历史、基本数据类型、数据处理工具Pandas、图像处理工具PIL等,基本覆盖了在后续章节中要用到的Python编程知识和工具。

 第2章 TensorFlow 2.0快速入门:本章从快速上手的角度,通过TensorFlow 2.0的简介、环境搭建、基础知识、高级API编程等内容详细讲解了TensorFlow 2.0编程所需的知识和技巧。

第2部分:TensorFlow 2.0编程实践,讲解了4个编程案例,分别为基于CNN的图像识别应用、基于Seq2Seq的中文聊天机器人、基于CycleGAN的图片风格迁移应用、基于Transformer的文本情感分析。

 第3章 基于CNN的图像识别应用编程实践:本章介绍了基于CNN实现对CFAIR-10图像数据的训练以及在线图像分类预测,包括CNN基础理论知识、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

 第4章 基于Seq2Seq的中文聊天机器人编程实践:本章介绍了基于Seq2Seq实现对“小黄鸡”对话数据集的训练以及在线中文聊天,包括自然语言模型、RNN(循环神经网络)、Seq2Seq模型、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

 第5章 基于CycleGAN的图片风格迁移应用编程实践:本章介绍了基于CycleGAN实现对Apple2Orange数据集的训练以及图像在线风格迁移,包括GAN基础理论知识、CycleGAN算法原理、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

 第6章 基于Transformer的文本情感分析编程实践:本章介绍了基于Transformer的变形结构实现对IMDB评价数据集的训练以及在线对文本的情感分析和预测,包括Transformer基本结构、注意力机制、位置编码、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

第3部分:TensorFlow 2.0模型服务化部署,采用TensorFlow Serving实现对完成训练的模型进行生产环境的服务化部署。

 第7章 基于TensorFlow Serving的模型部署实践:本章介绍了基于TensorFlow Serving框架实现对基于CNN的图像分类模型的服务化部署,包括TensorFlow Serving框架简介、TensorFlow Serving环境搭建、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

致谢

最后,衷心感谢我的妻子包佳楠,感谢她一直以来的鼓励,以及一丝不苟地校正书稿中的语法错误和错别字,每次当我想要放弃的时候,她总是用几句不轻不重的话语让我重新回到本书的编写中来。

Python大战机器学习

数据科学家是当下炙手可热的职业,机器学习则是他们的必备技能。机器学习在大数据分析中居于核心地位,在互联网、金融保险、制造业、零售业、医疗等产业领域发挥了越来越大的作用且日益受到关注。

Python 是最好最热门的编程语言之一,以简单易学、应用广泛、类库强大而著称,是实现机器学习算法的首选语言。

《Python大战机器学习:数据科学家的第一个小目标》以快速上手、四分理论六分实践为出发点,讲述机器学习的算法和Python 编程实践,采用“原理笔记精华+ 算法Python 实现+ 问题实例+ 代码实战+ 运行调参”的形式展开,理论与实践结合,算法原理与编程实战并重。

《Python大战机器学习:数据科学家的第一个小目标》从内容上分为13 章分4 篇展开:第一篇:机器学习基础篇(第1~6 章),讲述机器学习的基础算法,包括线性模型、决策树、贝叶斯分类、k 近邻法、数据降维、聚类和EM算法;第二篇:机器学习高级篇(第7~10 章),讲述经典而常用的高级机器学习算法,包括支持向量机、人工神经网络、半监督学习和集成学习;第三篇:机器学习工程篇(第11~12章),讲述机器学习工程中的实际技术,包括数据预处理,模型评估、选择与验证等;第四篇:Kaggle 实战篇(第13 章),讲述一个Kaggle 竞赛题目的实战。

《Python大战机器学习:数据科学家的第一个小目标》内容丰富、深入浅出,算法与代码双管齐下,无论你是新手还是有经验的读者,都能快速学到你想要的知识。本书可供为高等院校计算机、金融、信息、自动化及相关理工科专业的本科生或研究生使用,也可供对机器学习感兴趣的研究人员和工程技术人员阅读参考。

Github | Docker | Project