人工智能(AI)是当今科技领域的热门话题,尤其是自然语言处理(NLP)技术,它可以让机器理解和生成自然语言。随着大型语言模型(LLM)的发展,如 GPT-3、DALL-E 等,我们可以利用这些模型来完成各种有趣和有用的任务,如写诗、画画、编程等。但是,要让这些模型按照我们的意愿工作,并不是一件容易的事情。这就需要用到一种叫做 Prompt Engineering 的技术。
什么是 Prompt Engineering?
Prompt Engineering 是一种在人工智能领域,特别是自然语言处理领域的概念。它指的是如何设计输入数据,使其能够清楚地描述任务,并引导模型给出正确和合理的输出。换句话说,它就是给 AI 模型的指令。
Prompt 可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。AI 模型会基于 prompt 所提供的信息,生成对应的文本或图片。
为什么需要 Prompt Engineering?
你可能用过不少 AI 相关的产品,你或许会觉得好像只需要会说话、会打字,就能让 AI 输出答案。好像不需要什么技术。
但实际上,并不是所有的 prompt 都能得到满意或精确的答案。因为人类的语言从根本上说是不精确的2,目前机器还没法很好地理解人类说的话3。所以才会出现 Prompt Engineering 这个技术。另外,受制于目前大语言模型 AI 的实现原理4,部分逻辑运算问题、格式问题等等都需要额外对 AI 进行提示。
举个例子,在 ChatGPT 里输入这样一个简单数学题:
What is 100*100/400*56?
ChatGPT 会返回一个错误答案:
0.4464
但如果我们稍微改变一下 prompt 的格式:
Calculate: (100*100)/(400*56)
ChatGPT 就会返回正确答案:
0.04464
可见 prompt 的设计对于结果有很大影响。
如何进行 Prompt Engineering?
Prompt Engineering 是一门艺术也是一门科学。它需要结合创造力和逻辑思维来设计出最优化的 prompt 。目前还没有统一标准或规则来指导 prompt 的设计 ,但有一些基本原则和建议可以参考:
- 包含完整且相关的信息:prompt 应该尽可能地提供足够多和具体化的信息来描述任务,并避免无关或冗余信息。
- 简洁易懂并减少歧义:prompt 应该使用简单明了且无歧义性质词汇表达任务,并避免使用复杂或模棱两可词汇。
- 明确标签空间:prompt 应该清楚地定义输出结果所属范围,并在示例中按照真实分布采样标签。
- 统一格式:prompt 应该保持输入和输出数据格式统一,并在示例中展示格式的要求。
下面是一些 prompt 的实例,可以看出不同的 prompt 对于结果有不同的影响:
Less effective prompt:
Write a poem about OpenAI.
Output:
OpenAI is a vision
Of a future that is bright
Where machines can learn and create
And help us do what's right
OpenAI is a mission
To make AI accessible
To everyone who wants to use it
And make it beneficial
OpenAI is a challenge
To push the boundaries of AI
And explore the possibilities
That lie beyond the sky
Better prompt:
Write a short inspiring poem about OpenAI, focusing on the recent DALL-E product launch (DALL-E is a text to image ML model) in the style of William Blake.
Output:
To see the world in a grain of sand,
And a heaven in a wild flower,
Hold infinity in the palm of your hand,
And eternity in an hour.
This is the power of DALL-E,
The latest wonder from OpenAI,
A model that can generate images,
From any text that you supply.
With DALL-E you can create,
A new world of imagination,
Where anything you can think of,
Becomes a visual sensation.
DALL-E is not just a tool,
But a source of inspiration,
A glimpse of what AI can do,
To enrich our human nation.
Prompt Engineering 的前景和挑战
Prompt Engineering 是一个新兴且有趣的领域,它为人工智能的应用提供了更多可能性和灵活性。随着大语言模型的不断进步,我们可以期待更多惊喜和创新。
但 Prompt Engineering 也面临着一些挑战和限制,比如:
- 如何评估 prompt 的质量和效果?
- 如何自动化或半自动化 prompt 的生成和优化?
- 如何保证 prompt 的安全性和道德性?
- 如何适应不同语言、领域、场景、用户等因素?
这些问题需要我们持续地探索和研究,以提高 Prompt Engineering 的水平和价值。
写在最后
Prompt Engineering 是一种在人工智能领域,特别是自然语言处理领域的技术。它指的是如何设计输入数据,使其能够清楚地描述任务,并引导模型给出正确和合理的输出。Prompt Engineering 需要结合创造力和逻辑思维来设计出最优化的 prompt,这也就是 Prompt Engineer 存在的价值所在。
几乎对于所有入门计算机课程的人来说,题图中的两个单词 “hello world” 就是大家最开始使用计算机语言与机器沟通的第一句话,不过随着 AI 及时的发展和普及,大家都可以直接用最简单最自然的话语让 AI 告诉你怎么让机器来执行和输出 “hello world” 。