阅读(1.2k) 书签 (0)

文心一言 提示词基本使用场景&使用技巧

2023-06-17 15:09 更新

问答问题

这个场景应该是使用 AI 产品最常见的方法。以 文心一言 为例,一般就是你提一个问题,文心一言 会给你答案,比如像这样:

在这个场景下,prompt 只要满足前面提到的基本原则,基本上就没有什么问题。但需要注意,不同的 AI 模型擅长的东西都不太一样,prompt 可能需要针对该模型进行微调。另外,目前的 AI 产品,也不是无所不能,有些问题你再怎么优化 prompt 它也没法回答你。

这种直接提问的 prompt ,我们称之为 Zero-shot prompt。模型基于一些通用的先验知识或模型在先前的训练中学习到的模式,对新的任务或领域进行推理和预测。你会在高级篇看到相关的介绍,以及更多有意思的使用方法。

基于示例回答

在某些场景下,我们能比较简单地向 AI 描述出什么能做,什么不能做。但有些场景,有些需求很难通过文字指令传递给 AI,即使描述出来了,AI 也不能很好地理解。

比如算一道数学题,先算乘法后算加法,需要给出过程。此时你就可以在 prompt里增加一些例子,我们看看这个例子。

这个是没有任何示例的 Prompt:

这个是给了样例之后的 Prompt,可以看到,符合我们预期的结果:

推理

在问答这个大场景下,还有一个子场景是推理,这个场景非常有意思,而且是个非常值得深挖的场景,prompt 在此场景里发挥的作用非常大。

举个比较简单的例子,将一个古典的鸡兔同笼问题输入到 文心一言 中,会得到这样的解答结果:

无中生有——写代码

除了回答问题外,另一个重要的场景是让 AI 根据你的要求完成一些内容生成任务,根据输出的结果差异,我将其概括为以下几个主要场景:

1.无中生有

2.锦上添花

3.化繁为简

本章,我们先来聊聊「无中生有」场景。顾名思义,就是让 AI 给你生成一些内容。你只需要向 AI 描述你想写的内容,AI 就会按你的要求写出该内容。比如:

1.撰写招聘信息

2.撰写电商平台的货物描述

3.撰写短视频脚本

4.甚至让它写代码都可以

像撰写招聘信息等,你只需要明确目标,将目标定得比较明确即可生成能让你较为满意的答案。本章我想聊下写代码。下面是一个让 文心一言 写代码的案例。

如下是让 文心一言 用python写一段将图片转为灰度图的代码,并在jupyter notebook中展示。

from PIL import Image  
  
# 读取图片  
img = Image.open('image.jpg')  
  
# 将图片转换为灰度图像  
gray_img = img.convert('L')  
  
# 显示灰度图像  
gray_img.show()  
  
# 保存灰度图像  
gray_img.save('gray_image.jpg')

<PIL.Image.Image image mode=L size=512x512 at 0x7F87D99DC250>

锦上添花——改写内容

除了从 0 生成内容外,你也可以先给 AI 一段已经写好的内容,然后让 AI 对其进行修改,让 AI 帮你将内容改得更好。实际的场景有如:

  • 翻译:将中文文档翻译成英文,亦或者将英文翻译成中文。关于翻译,我还想强调,像 文心一言 除了能翻译人类的语言外,还能翻译编程语言,比如将 Python 代码翻译成 Haskell 代码。
  • 修改:修改内容的语法,甄别内容里的错别字。
  • 润色:润色文章,将内容改成另一种风格。

本章重点介绍下润色场景,下面这是个润色的例子。

技巧:增加角色或人物

我再介绍一个更有效的技巧,就是在 prompt 里增加一些 role(角色)相关的内容,让 AI 生成的内容更符合你的需求。

比如还是上面那个 rewrite 的例子,我在例子前加入这样的一段话,我让 AI 假设自己是一个小学老师,并且很擅长将复杂的内容转变成 7、8岁小朋友也能听懂的话,然后再改写这段话。就会得到下面这样的结果,话语变得更加活泼可爱了。

锦上添花——信息解释

锦上添花下的第二大的场景是信息解释。它跟改写内容有点像,但又不太一样,信息解释有可能提供超过原文内容的信息。

举几个信息解释的例子,大家应该就能理解了:

  • 解释代码:比如你看到一段 Python 的代码,但你看不懂,你可以让 AI 解释下代码的含义。
  • 解释论文:看某篇论文看不懂,或者论文里的某一段看不懂,你也可以让 AI 解释。

以解释代码为例,它阐述了这段代码是拿来干什么的,同时还阐述了各个参数的含义。

化繁为简——信息总结

内容生成大场景下的第二个场景是化繁为简,这个场景其实很好理解,就是将复杂的内容,转为简单的内容,一般常遇到的场景有:

  • 信息总结:顾名思义,就是对一堆信息进行总结。
  • 信息解释:这个跟改写内容有点像,但这个更偏向于解释与总结。下一章会给大家介绍更多的例子。
  • 信息提取:提取信息里的某一段内容,比如从一大段文字中,找到关键内容,并分类。

本章会讲一下信息总结。信息总结还是比较简单的,基本上在 prompt 里加入总结 summarize 就可以了。但如果你想要一些特别的效果,不妨组合使用之前介绍的技巧,比如:

  • 增加总结示例,让 AI 总结符合你需求的内容
  • 增加 role,让 AI 总结的内容具有一定的风格

不过在这个场景,还有个技巧需要各位注意——使用 ”“” 符号将指令和需要处理的文本分开。不管是信息总结,还是信息提取,你一定会输入大段文字,甚至多段文字,此时有个小技巧。可以用 “”“ 将指令和文本分开。根据我的测试,如果你的文本有多段,增加 ”“” 会提升 AI 反馈的准确性。像我们之前写的 prompt 就属于 Less effective prompt。为什么呢?据我的测试,主要还是 AI 不知道什么是指令,什么是待处理的内容,用符号分隔开来会更利于 AI 区分。

化繁为简——信息提取

介绍完信息总结,再聊聊信息提取,我认为这个场景是继场景3推理以外,第二个值得深挖的场景。这个场景有非常多的有意思的场景,比如:

  • 将一大段文字,甚至网页里的内容,按要求转为一个表格。按照这个思路你可以尝试做一个更智能的,更易懂的爬虫插件。
  • 按照特定格式对文章内容进行信息归类。

第二个可能比较难理解,举个 文心一言 里的例子,它的 prompt 是这样的