提升提示:迭代与影响模型行为
立即解锁
发布时间: 2025-09-03 00:30:49 阅读量: 20 订阅数: 31 AIGC 


生成式AI实战:Python与LLM
### 提升提示:迭代与影响模型行为
#### 1. 角色设定的影响
研究表明,角色设定能让大语言模型(LLMs)通过采用不同的特征、视角和响应风格,更好地模拟人类交互。这种方法能够让模型进行更个性化、上下文相关的对话。将角色设定融入提示中,可以有效地改变可能输出的分布,引导模型生成与特定角色特征或视角相符的响应。由于模型在多样化的数据集上进行了广泛的训练,它可以复制与角色描述特征相符的模式,将注意力和选择过程集中在更明确的输出集上,从而提高相关性和特异性。
以时尚品牌 StyleSprint 为例,当我们使用提示“作为一个富有创意和大胆的时尚品牌,StyleSprint 会如何描述其即将推出的夏季系列?”时,模型采用该品牌的角色设定,可能会生成如下响应:
```plaintext
今年夏天,StyleSprint 邀你脱颖而出!我们的系列是色彩和图案的活力爆发,专为无畏的时尚达人设计。想想大胆的印花、大胆的剪裁,以及彰显自信的宣言。从阳光明媚的海滩到时尚的城市街道,我们的单品承诺让每一刻都难忘。今年夏天,与 StyleSprint 一起拥抱你的大胆吧。
```
在这个例子中,我们可以看到角色设定如何引导模型输出反映特定品牌风格,使营销材料更具吸引力,并与品牌形象保持一致。
然而,使用角色设定时需要谨慎。角色设定可能会延续刻板印象和偏见,特别是针对边缘化群体。研究发现,基于交叉性人口群体生成的角色设定,与人类撰写的文本相比,往往会产生更高比例的种族刻板印象和“他者化”模式。在某些情况下,模型输出可能会放大特定的叙述和套路。
#### 2. 情景提示或角色扮演
与角色设定类似,角色扮演也涉及采用特定的身份或特征,但二者目的不同,应用场景也有所区别。角色设定是预定义的一组特征,LLM 模仿这些特征来调整其响应,重点在于与这些特征保持一致,这对于创建具有特定风格或视角的内容很有用。
相反,角色扮演不仅仅是采用一组特征,还涉及动态地参与一个场景或叙事。它要求 LLM 在模拟环境或故事中扮演一个角色,并根据角色设定和角色扮演场景的演变上下文来响应输入。这在复杂的模拟中特别有用,因为 LLM 必须实时理解和适应新信息或变化的情况,以参与正在进行的叙事或对话。
例如,StyleSprint 可以设计一个角色扮演场景,让 LLM 充当虚拟私人造型师。在这个角色中,模型会用如下提示与客户互动:
```plaintext
我是你今天的私人造型师!你是为了什么场合着装呢?
```
根据客户的回答,LLM 可以提出后续问题以缩小偏好范围,例如:
```plaintext
你更喜欢大胆的颜色还是柔和的色调?
```
最后,它可以从 StyleSprint 的系列中推荐适合客户需求的服装,比如:
```plaintext
对于夏季婚礼,我推荐我们的花卉长裙搭配复古太阳帽。它既优雅,又适合户外场合!
```
在这种情况下,我们利用 LLM 根据客户输入动态调整对话的能力,创建了一个高级推荐系统,为客户提供高度个性化的购物体验。这不仅有助于提供量身定制的时尚建议,还能以新颖的方式吸引客户。
#### 3. 少样本学习与提示链
在少样本学习场景中,会在输入提示中为 LLM 提供少量任务示例,引导模型生成与这些示例一致的响应。这种方法显著减少了在大型特定任务数据集上进行微调的需求,而是利用模型的先验知识和从示例中推断上下文的能力。
少样本学习通常使用 10 到 100 个示例,具体数量取决于模型的上下文窗口(即语言模型在一轮中可以处理的令牌限制)。少样本学习的主要优点是,它可以降低模型通过微调从特定数据集中学习到过窄分布的风险。尽管少样本学习的性能可能并不总是与微调后的模型相匹配,但它通常优于单样本和零样本学习,在任务适应和准确性方面有显著改进。
像 LangChain 这样的应用程序提供了简单方便的少样本学习实现模式。例如,StyleSprint 想要为其季节性系列生成标语,我们可以为模型提供内容团队编写的示例,以引导模型与品牌风格保持一致:
```python
examples = [
{
"prompt": "以大胆和冒险的风格描述新的夏季系列。",
"response": "与 StyleSprint 的最新系列一起跳入夏天!拥有大胆的设计和鲜艳的色彩,一切都是为了做出大胆的声明。非常适合准备征服炎热的无畏时尚达人。"
},
{
"prompt": "你会如何向环保意识强的客户介绍我们的环保系列?",
"response": "与 StyleSprint 的环保系列一起拥抱可持续时尚。采用回收材料制作,每一件单品都将时尚与责任相结合,专为注重环保且时尚的人士设计。"
}
]
```
LangChain API 提供了 `FewShotPromptTemplate` 来一致地格式化这些示例:
```python
from langchain.prompts.few_shot import FewShotPromptTemplate
from langchain.prompts.prompt import PromptTemplate
# 创建格式化器
prompt_format = PromptTemplate(
input_variables=["prompt", "response"],
template="Prompt: {prompt}\nResponse: {response}"
)
# 创建少样本提示模板
few_shot_prompt = FewSho
```
0
0
复制全文
相关推荐










