
前言
在设计开发应用程序时,以人工智能(artificial intelligence,AI)技术为出发点,将AI作为核心驱动力设计和构建的新应用,被称为AI原生(artificial intelligence native)应用。这种应用在设计和架构层面就与AI技术深度融合,使得AI成为应用程序基础且关键的部分,而非仅仅作为附加功能。
自OpenAI发布GPT-3.5以来,大语言模型(large language model,LLM)的发展日新月异。在这一波技术浪潮中,提示工程(prompt engineering)崭露头角,它不仅标志着人类与计算机交互方式的根本性变革,更开启了AI原生应用的新篇章。回溯AI的发展历程,可以看到人类与计算机交互方式的不断演变。
● 初期硬件设计:专门化与局限性。在计算机被发明的初期,人们需要针对每个任务设计专门的硬件,这是一个高度专业化和高成本定制化的阶段。那时的计算机功能单一、操作复杂,每次更改都需要重新设计和制造硬件,缺乏灵活性和通用性。
● 通用计算机的兴起:指令的力量。随着通用计算机的出现,情况发生了翻天覆地的变化。人们开始通过输入特定的指令来指导计算机的行为,从而使其能够适应不同的任务。这一阶段的显著特点是计算机的通用性和可编程性大幅提升,不再需要制造专门的硬件来完成特定的任务,而是可以通过编程来指挥计算机执行各种复杂的任务。
● 深度学习时代:数据驱动的智能。深度学习技术的广泛应用进一步推动了机器智能的发展。在这一阶段,计算机能够通过训练数据集进行学习,因此,设计数据集成为指导计算机完成特定任务的新方式。这一时期的特点是数据驱动的智能化,即通过大量的数据训练来使计算机具备某种能力或知识。
● 大语言模型的时代:自然语言的崛起。大语言模型的出现提供了人类与计算机交互的一种全新方式——通过自然语言提示(prompt)来引导计算机完成任务。这种方式既经济又直观,极大地降低了使用AI技术的门槛,使得更多人能够轻松地利用AI来完成各种任务,实现了人机交互的自然化和智能化。
然而,正如任何技术革新一样,大语言模型和提示工程在AI原生应用的开发实践中也遇到了一系列挑战。一方面,大语言模型被过度夸大,许多不适合由大语言模型处理的问题也被纳入其中,这种无根据的乐观和不切实际的期望,为早期AI原生应用的开发者带来了不少困扰。另一方面,大语言模型与业务应用的结合,因大语言模型在效果、性能、可控性,以及内容安全等方面存在的局限性而陷入了进退两难的境地。
作为一线从业者,我深知大语言模型蕴含着推动生产力变革的巨大潜能,但要发挥这种潜能,使用者需要具有很强的驾驭能力。在利用大语言模型进行AI原生应用开发的过程中,我深刻体会到“好答案往往源自好问题”的朴素真理。然而,如果提出“好问题”的能力仅依赖于大量、重复的实践,而无法将其沉淀为可传承的行业知识和通用方法,那么这将成为AI原生应用落地的阻碍。正是基于这样的考虑,我决定写作本书,分享我的实践经验,期望能与更多从业者共同进步,推动行业的持续发展。
内容组织
本书围绕提示工程展开,详细阐述提示工程的理论基础和实际应用。本书共10章,每一章都围绕一个核心主题展开,通过原理介绍、案例分析、实战应用等,系统介绍提示工程在AI原生应用开发中的应用。
第1章:提示工程概述。本章围绕提示工程分析AI原生应用的形态及其开发面临的机遇与挑战,并从开发人员的视角讲解提示工程的本质、KITE(knowledge、instruction、target、edge)提示框架和提示调试技巧,为读者提供一条入门提示工程的清晰路径。
第2章:结构化提示设计。本章探讨结构化提示设计的策略,包括结构引导设计、内容引导设计和提示编排设计。
第3章:NLP任务提示。本章聚焦于如何运用提示工程技术引导大语言模型完成各类NLP任务,通过介绍文本生成、文本分类、信息抽取和文本整理等任务,展示提示工程在NLP领域的潜力。
第4章:内容创作提示。本章专注于如何利用大语言模型进行高质量的内容创作,通过介绍影响创作质量的核心要素和一系列实用的基础创作提示技巧、长文本创作提示技巧,为内容创作提供指导。
第5章:生成可控性提示。本章着重探讨如何控制大语言模型的输出,介绍可控性问题的分类和可控性影响因素,从生成参数和对话控制、基于提示的可控设计、基于内容审查的可控设计等方面总结多种有效的策略。
第6章:提示安全设计。本章介绍数据泄露、注入攻击和越权攻击的相关内容,以及相应的防御手段。
第7章:形式语言风格提示。本章探讨形式语言风格提示在AI原生应用开发中的应用,介绍如何利用形式语言提高提示的准确度,以及如何利用大语言模型完成与编程相关的任务。
第8章:推理提示。本章聚焦于大语言模型在推理方面的应用,特别是如何通过思维链技术来提升大语言模型的推理能力,通过讲解基础思维链、进阶思维链、高阶思维链、尝试构建自己的思维链的相关提示方法,为读者提供理解和控制大语言模型推理过程的有效手段。
第9章:智能体提示。本章探讨智能体的概念、架构及核心组成部分,并介绍如何通过提示工程技术构建和优化智能体。通过对感知端、控制端和行动端的详细讲解,为智能体的实际落地提供指导。
第10章:展望未来。本章介绍AI原生应用的落地、效果评估及待解决的工程化问题,为读者提供AI原生应用未来发展的全面视角。
主要特色
本书的初衷并非仅仅指导读者如何套用各种预设的提示模板,而是致力于帮助读者深入理解并掌握提示工程,从而找到对大语言模型的输出有决定性影响的关键因子。这些关键因子一旦被理解和掌握,便能够指导我们将理论知识转化为实际的产品技术,从而推动AI原生应用的落地。
本书在内容组织上具有以下两大特色。
● 系统性:本书的内容组织采用从基础到进阶、从原理到实践的方式,有助于读者理解和掌握提示工程的技术和方法。
● 实践性:本书包含提示工程的100多个实践案例和技巧,可以帮助读者将所学知识应用于实际项目中。
适合读者
本书适合AI原生应用开发领域的从业者和研究人员,以及人工智能相关专业的教师和学生阅读。阅读本书,读者能够洞察AI原生应用的最新趋势,在AI原生应用开发中熟练运用提示工程的实践技巧。
本书约定
● 请注意,由于大语言模型的生成机制和版本更新,同一提示可能会产生不同的输出。这是正常现象,体现了大语言模型的灵活性和多样性。
● 在不影响阅读和理解的前提下,本书会对大语言模型生成的文本进行适度摘录,并以“……(略)”或者“<关于×××文本>”的形式标注,以确保内容的连贯性与阅读的流畅性。
● 在提示中,本书会使用“//”表示注释,这部分内容无须作为提示的一部分输入大语言模型。
● 本书中的案例代码主要以Java 17和Python 3.10或更高版本进行编写,读者看懂即可,无须实际运行。
配套资源
如需获取本书配套的插图、完整的代码和提示,请访问https://github.com/alphaAI-stack/books。读者可在遵守CC BY-SA 4.0版权协议的前提下,转载与分享本书配套资源。
关于勘误
虽然我已经尽力查证和推敲书中的每一段文字,但仍难免存在疏漏和不足之处。我深知每本书都是作者与读者之间知识传递的桥梁,因此极其珍视每位读者的宝贵意见。如果在阅读过程中发现了任何错误、疏漏或需要改进的地方,读者可以通过邮箱weichengdong@foxmail.com与我联系,也可以关注我的微信公众号“alphaAI stack”。读者的每条建议都将是我不断完善和进步的动力。
致谢
我要衷心感谢早期的AI原生应用开发者和提示工程的倡导者们,你们的实践经验和独到见解为本书的撰写提供了宝贵的启示。我要感谢我所在团队的同事们,正是因为你们积极实践书中的案例,本书才能更加贴近实际、更具指导意义。我要感谢那些参与本书前期试读的朋友们,你们的反馈对本书的质量提升起到了关键作用。我要真挚感谢我的家人,在过去一年多的时间里,你们始终给予我坚定的支持和理解,陪伴我度过每一个日夜,你们的鼓励和支持是我能够持续前进的动力和源泉。我要特别感谢人民邮电出版社的贾静女士,她不仅以专业的眼光和严谨的态度审阅了本书,还在出版过程中给予了我无微不至的帮助。最后,我要感谢选择本书的各位读者,愿你们借AI之力,扬帆远航,探索无限可能!
魏承东
2024年7月