描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302676195
通过自主与用户沟通和优化业务任务,人机交互变得更加流畅自然。人工智能专家弗朗西斯科·埃斯波西托(Francesco Esposito)展示了大语言模型的应用场景:打造高端的商业解决方案、缩短人类与机器之间的距离以及构建强大的推理引擎。《大模型编程实践与提示工程》深入探讨了提示工程和对话式编程,演示了具体的模式和框架技术,最终揭示了如何通过自然语言解锁一种新的、先进的编码方式。使用Python和ASP.NET Core,《大模型编程实践与提示工程》演示了在人机交互、API、数据和人类输入之间创建一致交互模式的各种实例。
通过对《大模型编程实践与提示工程》的阅读,本书可以帮助读者实现以下目标:
了解大语言模型(LLM)及对话式编程的历史
探索提示工程这个代表新质生产力的编码方式
学习核心提示技术及其基本应用场景
设计高级提示词,包括连接LLM以生成函数调用来构建推理引擎
使用自然语言来定义工作流并协调(编排)现有的API
掌握外部LLM框架
评估负责任AI的安全、隐私和准确性问题
探索AI的监管环境
构建和实现个人助手
应用知识库检索增强生成(RAG)模式来生成响应
构建对话用户界面
《大模型编程实践与提示工程》深入浅出地介绍了提示工程在大模型编程实践中的重要性及其具体应用。作为人工智能专家,作者展示了如何借助大模型来优化业务任务,构建商业解决方案以及创建强大的推理引擎。此外,通过探讨提示工程和对话式编程,本书还介绍了如何借助自然语言来掌握新的编码技术。
《大模型编程实践与提示工程》面向软件专家、架构师、首席开发人员、程序员和机器学习爱好者,也适合任何对自然语言处理或人工智能感兴趣的读者阅读和参考,可以帮助他们培养和提升新质生产力。
第1章 大语言模型的起源 001
1.1 大模型综述 001
1.1.1 大模型的发展历史 002
1.1.2 工作原理 007
1.1.3 商业应用 017
1.2 对话式编程 018
1.2.1 自然语言的崛起 018
1.2.2 LLM拓扑结构 020
1.2.3 未来展望 022
1.3 小结 028
第2章 核心提示词学习技术 029
2.1 什么是提示工程 029
2.1.1 提示概述 029
2.1.2 改变输出的其他方式 033
2.1.3 设置代码执行 036
2.2 基本技术 040
2.2.1 零样本场景 040
2.2.2 少样本场景 042
2.2.3 思维链场景 047
2.3 基本使用场景 050
2.3.1 聊天机器人 051
2.3.2 收集信息 051
2.3.3 翻译 055
2.4 LLM的局限性 056
2.5 小结 057
第3章 高级提示词工程 059
3.1 超越提示工程 059
3.1.1 合并不同的部分 060
3.1.2 微调 062
3.2 函数调用 065
3.2.1 自定义函数调用 065
3.2.2 OpenAI风格 070
3.3 与单独的数据对话 074
3.3.1 将数据连接到LLM 074
3.3.2 嵌入 075
3.3.3 向量存储 080
3.3.4 检索增强生成 083
3.4 小结 088
第4章 巧用语言框架 089
4.1 对编排器的需求 089
4.1.1 跨框架概念 090
4.1.2 需要考虑的重点 096
4.2 LangChain 098
4.2.1 模型、提示模板和链 099
4.2.2 代理 107
4.2.3 数据连接 116
4.3 微软的 Semantic Kernel 122
4.3.1 插件 124
4.3.2 数据与规划器 129
4.4 微软的 Guidance 135
4.4.1 配置 135
4.4.2 主要特性 138
4.5 小结 142
第5章 安全、隐私和准确性问题 143
5.1 概述 143
5.1.1 负责任AI 143
5.1.2 红队测试 144
5.1.3 滥用与内容过滤 145
5.1.4 幻觉与性能 146
5.1.5 偏见和公平性 147
5.2 安全性和隐私保护 147
5.2.1 安全性 147
5.2.2 隐私保护 152
5.3 评估和内容过滤 156
5.3.1 评估 157
5.3.2 内容过滤 161
5.3.3 幻觉 169
5.4 小结 170
第6 章 构建个人AI 助手 171
6.1 聊天机器人Web 应用概览 171
6.1.1 愿景 172
6.1.2 技术栈 172
6.2 项目 173
6.2.1 设置LLM 173
6.2.2 设置项目 175
6.2.3 与LLM 集成 178
6.3 小结 193
第7 章 与自己的数据对话 195
7.1 概述 195
7.1.1 愿景 195
7.1.2 技术栈 196
7.2 Streamlit 框架 196
7.2.1 Streamlit 简介 197
7.2.2 主要的UI 特性 197
7.2.3 生产时的优缺点 199
7.3 项目 200
7.3.1 设置项目和基本UI 201
7.3.2 数据准备 204
7.3.3 与LLM 集成 209
7.4 进阶内容 213
7.4.1 RAG 与微调 213
7.4.2 可能的扩展 215
7.5 小结 216
第8 章 对话式UI 217
8.1 概述 217
8.1.1 愿景 218
8.1.2 技术栈 219
8.2 项目 220
8.2.1 Minimal API设置 220
8.2.2 OpenAPI 222
8.2.3 与LLM集成 224
8.2.4 可能的扩展 231
8.3 小结 232
附录A 大语言模型的工作原理 233
这是我针对人工智能(artificial intelligence,AI)(译注:不是Apple Intelligence。)这个主题写的第三本书,也是我首次独自完成的书,没有其他人参与。这三本书的出版顺序真实反映了我的学习路径。对AI的深切渴望驱使我前行,远不止于商业上的考量。我的第一本书出版于2020年,介绍了机器学习(machine learning,ML)背后的数学知
识。正是这些数学知识,才使得数据分类和及时预测成为可能。我的第二本书则聚焦于微软的机器学习框架ML.NET(译注:简体中译本《跨平台机器学习:ML.NET架构及应用编程》。
),探讨了具体的应用场景,阐述了如何让那些复杂的算法处理海量的数据,并通过熟悉的网页前端图表隐藏其复杂性,使其运行既实用又高效。
随后,ChatGPT横空出世,带来了革命性的变化!
对于ChatGPT这样惊人的应用,其背后的基础技术称为大语言模型(large language model,LLM),而LLM正是第三本书的主题。LLM为AI增加了一个关键能力:生成内容,而非仅仅是分类和预测。LLM代表一种范式转变,提高了人与计算机之间的沟通水平,打开了几十年来我们只能梦想的新的应用的大门。
几十年来,我们一直梦想着这些应用。大量文学作品和电影中呈现了各种超级计算机,它们能处理各种数据并产生人类可理解的结果。一个极为流行的例子是发行于1968年的电影《2001太空漫游》中安装在“发现”号飞船上的HAL 9000计算机。另一个例子是贾维斯(JARVIS,just a rather very intelligent system),作为斯塔克的智能助手,出现在《钢铁侠》和漫威其他电影中。还有一个著名的例子是电影《流浪地球》中的MOSS(原名为550W)(译注:国际领航员空间站的核心智能主机,流浪地球计划与火种计划的监督者与执行者。),它坚定执行延续人类文明的使命,能在最短的时间内做出最正确的决定,是一个趋于完美的智能体。
在这些文学作品和电影中,人类角色常常幻想自己能简单地“将数据加载到计算机中”,无论是纸质文件、数字文件,还是媒体内容。接着,机器自主解析这些内容,从中学习,并使用自然语言与人类交流。当然,那些超级计算机只是创作者构想的产物,属于科幻范畴。而今,借助LLM,我们已经能设计和构建具体的应用,不仅使人与计算机的交互变得更加流畅和自然,而且将昔日的科学幻想变成了现实。
本书介绍如何利用与ChatGPT背后相同的引擎技术来构建应用程序,使程序能自主与用户交流,并仅凭简单的文本提示来执行业务操作。这一切既不夸大,也不缩水——现在真的可以做到“指令一出,AI即行”!
本书适合哪些读者
本书面向软件架构师、资深开发人员及有一定编程经验的个人。熟悉Python语言和C#语言(用于ASP.NET Core)的读者会觉得本书的内容尤其容易理解和实用。在众多可能受益于本书的软件专业人员中,我特别推荐对机器学习(尤其是大语言模型)感兴趣的读者阅读本书。此外,对云服务(特别是微软Azure)感兴趣的云计算和IT专业人员,以及对复杂、真实世界中的类人语言软件应用感兴趣的人员也能从本书中获得许多感悟。虽然本书主要关注的是微软Azure平台上的服务,但所涉及的概念很容易延伸到其他类似平台。毕竟,使用大语言模型无非是调用一系列API,而API的具体实现完全独立于底层平台。
总之,本书面向多样化的读者群体,包括程序员、机器学习爱好者、云计算专业人员及对自然语言处理感兴趣的人士等,具体解释了如何利用Azure服务来编写LLM应用。
预备知识
为了从本书中挖掘出最大价值,读者需要具备两个方面的预备知识:其一是掌握基本的编程概念,其二是了解机器学习的一些基础知识。此外,如果有相关编程语言和框架(如Python或ASP.NET Core)的实际工作经验,同时理解经典自然语言处理在业务领域中的重要性,那么将会大有裨益。总的来说,要想全面理解本书,推荐读者同时具备编程知识、机器学习意识并了解自然语言处理(NLP)。
本书不适合哪些读者
如果想找一本“大部头”的参考书来详细了解如何使用特定的模式或框架,那么本书可能会让您失望。虽然本书讨论了流行的框架(如LangChain和Semantic Kernel)以及API(如OpenAI和Azure OpenAI)的某些高级应用,但它并不是完整阐述这些主题的编程参考书。本书的重点是在真正适合LLM的业务领域中构建有用的、能直接发挥效用的应用程序。
本书的组织结构
本书探讨如何利用现有的各种LLM 开发多领域的商业应用。每个LLM 本质上都是一个基于大量文本数据预训练的ML 模型,它能理解和生成类似于人类语言的内容。为了帮助大家理解模型,本书聚焦于三大主题。
● 前三章深入探讨LLM 适用的场景,介绍构建复杂解决方案的一些基本工具。这几章的重点是对话式编程和提示工程,这是一种先进的结构化的新式编码方法。是的,您没有看错,现在和AI 聊天,能完成各种各样的任务。在苹果公司2024 年发布的新版iOS 中,已经有大量应用集成了这种功能。
● 接下来的两章聚焦于模式、框架和技术,具体教您如何释放对话式编程的潜力。这涉及在代码中使用自然语言来定义工作流,同时借助LLM的应用来协调现有的API。
● 最后三章演示一些具体的应用,使用Python 和ASP.NET Core来实现。通过这些例子,可以体会到逻辑、数据和现有业务过程之间日益复杂的交互。在第一个例子中,将学习如何从电子邮件中提取文本,并为回复邮件撰写一份合适的草稿。在第二个例子中,将应用一种检索增强生成(retrieval augmented generation,RAG)模式,根据私有文档的内容为问题制定答复。最后,在第三个例子中,学习如何构建一个酒店预订应用,其中包含一个聊天机器人(chatbot),它通过对话界面来确定用户需求(日期、房间偏好和预算等),并根据底层的系统状态来无缝完成(或拒绝)预订。注意,最后一个例子只完成API 的开发,没有用到任何固定的用户界面(user interface,UI)元素或格式化好的数据输入控件。
下载配套资源
本书配套网站提供了中英文版本的完整源代码。英文版代码可以在GitHub上获取,网址是https://github.com/Youbiquitous/programming-llm。中文版读者可以访问译者的个人网站,以获取更完善的、修改过的中文版资源。
勘误、更新与图书支持
我们已经尽最大努力确保本书及其配套内容的准确性,可以在以下网址查看本书(英文版)的更新(包括勘误):MicrosoftPressStore.com/LLMAzureAI/errata。
如果发现此处未列出的错误,请及时在此页面提交给我们。
有关其他图书支持和信息,请访问MicrosoftPressStore.com/Support。
请注意,上述网址并不提供微软软硬件产品的支持。如需获取这些方面的帮助,请访问https://support.microsoft.com。
要想获取本书中文版的配套资源和勘误,请访问译者的个人网站。
保持联系
沟通不断,交流不停!请通过X / Twitter和我们保持联系:http://twitter.com/MicrosoftPress。
评论
还没有评论。