写在前面

随着人工智能技术的迅猛发展,尤其是深度学习和自然语言处理领域的突破,大规模模型(Large Models)开始展现出前所未有的潜力。这个时代背景下,数据量的爆炸式增长、计算能力的显著提升以及算法创新共同推动了大模型的发展。这些模型不仅能够理解和生成更加复杂和细腻的人类语言,还在图像识别、语音处理等多个领域展现了卓越的能力。然而,随着模型规模的扩大和应用场景的多样化,如何有效地编程实践以及优化提示工程成为开发者面临的重要挑战。

正是在这样一个技术变革与挑战并存的时代,《大模型编程实践与提示工程》应运而生。这本书针对那些渴望掌握最新AI技术动态,并希望将大规模模型应用于实际项目的开发者和技术爱好者。它不仅仅是一本技术指南,更是这个快速变化时代的一盏明灯,为读者提供了探索未来智能世界的工具和知识。本书通过深入浅出的方式,详细介绍了大模型的编程实践与提示工程的重要性,旨在帮助读者在这个充满机遇的新时代中立于不败之地。无论您是想深入了解大模型背后的原理,还是寻求具体的实践指导,这本书都将是您的得力助手。

好书推荐

京东:https://item.jd.com/14357691.html
00

内容简介

《大模型编程实践与提示工程》深入浅出地介绍了提示工程在大模型编程实践中的重要性及其具体应用。作为人工智能专家,作者展示了如何借助大模型来优化业务任务,构建商业解决方案以及创建强大的推理引擎。此外,通过探讨提示工程和对话式编程,本书还介绍了如何借助自然语言来掌握新的编码技术。

《大模型编程实践与提示工程》面向软件专家、架构师、首席开发人员、程序员和机器学习爱好者,也适合任何对自然语言处理或人工智能感兴趣的读者阅读和参考,可以帮助他们培养和提升新质生产力。

作者简介

著译者简介

[意] 弗朗西斯科·埃斯波西托(Francesco Esposito)

拥有深厚的数学背景,出版过两本关于机器学习的著作。Crionet公司工程与数据主管,主要为体育和媒体行业提供创新解决方案。他先后创办了Youbiquitous(聚焦于大语言模型、数据分析和软件工厂)——和KBMS Data Force(专注于数字疗法和智能医疗)。

周靖

微软MVP(最有价值专家),技术型资深译者,涉猎广泛,具有深厚的技术功底和良好的文学素养。潜心钻研程序设计并在这方面积累了丰富的实战经验。翻译风格严谨、准确、朴实、流畅,深受读者好评。代表译著有《Windows核心编程》系列版本、《深入CLR》系列版本、《Visual C#从入门到精通》系列版本、《机器学习与人工智能实战》以及《学习Python》(第6版)等。

目录

第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)元素或格式化好的数据输入控件。

推荐理由

在当今快速发展的技术时代,人工智能特别是大规模模型的发展正在重新定义我们处理信息和解决问题的方式。《大模型编程实践与提示工程》作为一本紧跟时代步伐的书籍,为希望深入理解并掌握这些前沿技术的读者提供了宝贵的资源。本书不仅详细讲解了大模型的基础理论知识,还通过实际案例分析,引导读者了解如何构建、训练和优化这些模型。特别地,它对提示工程进行了深入探讨,展示了如何利用有效的提示来提升模型性能,这在当前AI应用中显得尤为重要。

这本书的独特之处在于其将复杂的技术概念转化为易于理解和操作的指南,无论是初学者还是有经验的开发者都能从中受益。作者以清晰且系统的方式组织内容,确保读者能够循序渐进地学习,并能迅速将所学知识应用于实践中。此外,书中还介绍了最新的研究成果和技术趋势,使读者能够在自己的项目中保持领先。对于那些希望在这个充满挑战和机遇的时代有所建树的人来说,《大模型编程实践与提示工程》不仅是一本教程,更是一位值得信赖的导师,引领你探索AI技术的无限可能。通过阅读这本书,您将获得开启未来智能世界大门的钥匙,并准备好迎接即将到来的技术革新。

写在后面

我是一只有趣的兔子,感谢你的喜欢。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐