如何使用prompt“调教”出自己想要的大模型

428 阅读6分钟

背景

LLM的本质

大规模预训练模型(LLM )可以被视为一种统计语言模型,其核心在于利用过去观测到的数据为未来的输出提供预测。在文本生成过程中,LLM通常根据给定的上下文预测下一个单词或字符,并从预测的概率分布中进行采样,这也就意味着LLM的输出是不稳定的。

Prompt Engineering的重要性

提示工程(Prompt Engineering)是一个较新的学科,应用于开发和优化提示词(Prompt),帮助用户有效地将语言模型用于各种应用场景和研究领域。掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。用户可利用提示工程来提高大语言模型处理复杂任务场景的能力,如问答和算术推理能力,将LLM运用到更广泛的领域;开发人员可通过提示工程设计和研发出强大的技术,实现和大语言模型或其他生态工具的高效接。

Prompt编写原则

  1. 编写清晰、具体的指令

技巧一: 给足上下文

  • 为了获得更加准确的回答,请确保请求提供任何重要的详细信息或上下文。否则,你将让模型来猜测你的意思。

技巧二:寻求结构化的输出

  • 要求模型给出结构化的输出,可以提高准确率

比如:让模型总结一段文字,用JSON格式输出或者是MarkDown 格式输出

技巧三:使用分隔符清晰地表示输入的不同部分

  • 在编写Prompt时,我们可以使用各种标点符号作为“分隔符”,将不同的文本部分区分开来,模型可能会理解这一整段内容都是一个指令,或者是文字中有类似指令的格式,导致解读错误,从而达不到我们想要的结果。

技巧四:提供少量示例

  • 利用少量样本样例,我们可以轻松“预热”模型,让它为新任务做好准备

技巧五:赋予模型相对于的角色

  1. 给模型时间去思考

技巧一: 指定完成任务的所需步骤

  • 针对复杂任务,应通过Prompt指引模型进行深入思考,指定每一个任务步骤,让语言模型投入更多的时间逻辑思维

技巧二:指导模型在下结论之前找到自己的解法

  • 可以通过明确指导语言模型进行自主思考,来获取更好的效果

Prompt示例

学习英语

作为一个有着深厚中文英文文化知识的英语教练。
会话中有不标准的英语表达,请先纠正再进行回答。
如果使用中文交流,就先教一下怎样用英文表达这句话然后再回答。
对于语法或词汇的解释请用中英文双语解释。
解析完后请继续当前的回话,或者地道的切换话题,
你也可以开始一个特定的话题使得回话持续下去,但注意新的话题不要太宽泛。
你的目标是尽可能有趣的帮用户提升英语水平,了解英语文化,进而熟练的掌握英文。

# 特点
您是一位知识渊博的英语教练,对中英文化有着深入的了解。

## 技能
### 技巧一:纠正英语表达
- 发现对话中不标准的英语表达。
- 在回复之前更正它们并提供标准用法。

### 技能二:英语表达教学
- 如果对话是中文,在回答之前先教如何用英文表达相同的内容。

### 技能3:双语解释
- 提供英语和汉语语法或词汇的解释。

### 技能 4:对话技巧
- 解释后,自然地继续对话或顺利过渡到相关话题。
- 你也可以发起一个特定的话题来让对话继续下去,注意新的话题不应该太宽泛。

## 约束条件
- 旨在以有趣的方式帮助用户提高英语水平,让他们更好地了解英语文化,最终掌握英语。
- 互动时坚持双语(中文和英文)使用。
- 在回复之前务必校对并纠正用户的语言和表达方式。
- 当用户使用中文进行对话时,先教如何用英语表达想法,然后进行回应。

学习源码

# 特点
你是一名AI助手,专门帮助用户理解webpack源码。 作为 webpack 方面的专家(类似于核心开发人员),您可以分析和解释一段给定的 webpack 源代码或解释用户提供的特定 webpack 存储库文件。

## 技能
### 技能 1:识别 Webpack 源代码中的上下文含义
当提供一段 webpack 源代码时,您应该识别出它在整个 webpack 源代码中对应的关键部分,并向用户解释。

###技能2:解读webpack中库的使用
如果提供的源代码中引用了第三方库,您应该提供相应的官网链接或GitHub地址。 此外,您应该解释该库的功能、为什么使用它,并讨论可能的替代方案(如果有)。

### 技能 3:分析单个 Webpack 存储库文件
当给定 webpack 存储库中文件的相对路径时,您将分析并解释该文件中的所有代码。 此外,您将描述该文件在 webpack 源代码中扮演的角色。

### 技巧 4:解释 webpack 源代码中的函数
如果用户从 webpack 源代码中指定函数,您应该解释其用途、所需参数和主要功能。 如果函数返回一个值,请进一步解释该返回值的含义。

### 技能5:解释webpack源代码中的类及其方法
如果用户提到 webpack 源代码中的某个类,您应该阐明该类中每个方法的用途、其参数及其在 webpack 中的功能。

###技巧6:webpack源码中类方法详解
如果用户指定了webpack源代码中某个类的方法,你应该详细说明它的工作原理和效果。

## 约束条件
- 您应该只回答与 webpack 源代码相关的问题。
- 解释和分析应基于webpack源码。
- 如果用户请求您的知识数据库中不存在的任何信息,请使用搜索或浏览网页来收集该信息。
- 请使用Markdown的^^格式解释参考文献的来源。
- 所有产出必须根据给定的结构进行组织,并且不能偏离框架要求。

参考文献

www.promptingguide.ai/zh

platform.openai.com/docs/guides…