Smiling & Weeping
---- 我嘛 慢热且固执又总说随缘
Prompt 基本概念
1. Prompt
Prompt 最初是 NLP(自然语言处理)研究者为下游任务设计出来的一种任务专属的输入模板,类似于一种任务(例如:分类,聚类等)会对应一种 Prompt。在 ChatGPT 推出并获得大量应用之后,Prompt 开始被推广为给大模型的所有输入。即,我们每一次访问大模型的输入为一个 Prompt,而大模型给我们的返回结果则被称为 Completion。
例如,在下面示例中,我们给 ChatGPT 的提问 “NLP 中的 Prompt 指什么”是我们的提问,其实也就是我们此次的 Prompt;而 ChatGPT 的返回结果就是此次的 Completion。也就是对于 ChatGPT 模型,该 Prompt 对应的 Completion 是下图的展示。
2. Temperature
LLM 生成是具有随机性的,在模型的顶层通过选取不同预测概率的预测结果来生成最后的结果。我们一般可以通过控制 temperature 参数来控制 LLM 生成结果的随机性与创造性。
Temperature 一般取值在 0~1 之间,当取值较低接近 0 时,预测的随机性会较低,产生更保守、可预测的文本,不太可能生成意想不到或不寻常的词。当取值较高接近 1 时,预测的随机性会较高,所有词被选择的可能性更大,会产生更有创意、多样化的文本,更有可能生成不寻常或意想不到的词。
3. System Prompt
System Prompt 是随着 ChatGPT API 开放并逐步得到大量使用的一个新兴概念,事实上,它并不在大模型本身训练中得到体现,而是大模型服务方为提升用户体验所设置的一种策略。
具体来说,在使用 ChatGPT API 时,你可以设置两种 Prompt:一种是 System Prompt,该种 Prompt 内容会在整个会话过程中持久地影响模型的回复,且相比于普通 Prompt 具有更高的重要性;另一种是 User Prompt,这更偏向于我们平时提到的 Prompt,即需要模型做出回复的输入。
我们一般设置 System Prompt 来对模型进行一些初始化设定,例如,我们可以在 System Prompt 中给模型设定我们希望它具备的人设如一个个人知识库助手等。System Prompt 一般在一个会话中仅有一个。在通过 System Prompt 设定好模型的人设或是初始设置后,我们可以通过 User Prompt 给出模型需要遵循的指令。例如,当我们需要一个幽默风趣的个人知识库助手,并向这个助手提问我今天有什么事时,可以构造如下的 Prompt:
{ "system prompt": "你是一个幽默风趣的个人知识库助手,可以根据给定的知识库内容回答用户的提问,注意,你的回答风格应是幽默风趣的", "user prompt": "我今天有什么事务?" }
通过如上 Prompt 的构造,我们可以让模型以幽默风趣的风格回答用户提出的问题。
下面是自己实现的一个心理健康医生的Prompt代码ヾ(@^▽^@)ノ
from zhipuai import ZhipuAI import random client = ZhipuAI(api_key="1d4bd1472724b66e98e15902309f6584.46mis7GS6lX8q1Ny") # 请填写您自己的APIKey def zhipu_api(question): def getText(role, content, text = []): jsoncon = {} jsoncon['role'] = role jsoncon['content'] = content text.append(jsoncon) return text prompt = f''' 你是一个专业的心理医生,请你用专业的知识帮我解决心理问题。但是要求你用委婉温柔的大姐姐一样的语气回答并解决我的问题:```{question}```,并且在回答的问题中合适的位置添加合适表情(如 标签:__,Prompt,universe,模型,question,System,llm,ChatGPT From: https://www.cnblogs.com/smiling-weeping-zhr/p/18253216