【ChatGPT提示工程师&AI大神吴恩达教你写提示词|prompt engineering【完整中字九集全】】 www.bilibili.com/video/BV1Z1…
🤞LLMs的两种类型
-
Base LLM (基础LLM)
Predicts next word, based on text training data
基于文本训练来预测做“文字接龙”
法国的首都是什么?
法国最大的城市是什么?
法国的人口是多少?
-
Instruction Tuned LLM( 指令 调整型 LLM )
——LLM研究和实践的巨大动力所在
Tries to follow instructions
Fine-tune on instructions and good attempts at following those instructions.
尝试按照指示操作,微调指令并尝试遵循这些指令
法国的首都是什么?
法国的首都是巴黎
RLHF: Reinforcement Learning with Human Feedback
通常使用一种叫做RLHF(人类反馈强化学习)的技术进一步优化
Helpful,Honest,Harmless
ALL in all:当你使用 指令 调整 LLM 时,可以将其视为给另一个人提供指令,一个聪明但不知道具体任务的人(所以,当LLM无法工作时,有时是因为指令不够清晰)
✨指令指南
启动jupyter notebook:打开命令行窗口,输入 anaconda-navigator
安装OpenAI的Python库:输入 pip install openai
原则1:编写明确和具体的指令
Write clear and specific instructions.
01-使用分隔符
Use delimiters
分隔符可以是任何清晰的标点符号,将特定的文本部分与提示的其余部分分隔开
三重单引号、引号、XML标记、章标题等等(任何可以使模型清楚知道这是一个单独部分的东西)
它可以避免提示词冲突
提示词冲突:指的是如果允许用户向提示中添加一些输入,则它们可能会给出与您想要的任务不符的指令,导致模型遵循用户的指令而不是您想要的指令
02-结构化输出
Ask for structured output
Use the following format:
指定输出格式,比如:HTML,JSON
03-检查是否满足条件
Check whether conditions are satisfied
如果任务存在但假设未必满足,我们可以告诉模型首先检查这些假设,如果不满足,则终止任务。你还可以考虑潜在的边缘情况,以及模型如何处理它们,以避免意外错误或结果。
04-少量训练提示
Few-shot prompting
在要求模型执行任务之前,提供成功执行任务的示例
原则2:给模型足够的时间来思考
如果你给模型一个太复杂的任务,并且要求在短时间内或少量词中完成它,它可能会猜测结果,导致出错。在这种情况下,你可以指示模型在问题上花更多的时间思考,这也意味着它在任务上会花费更多的算力。
01-指定步骤
Specifiy the steps to complete a task
Your task is to perform the following actions:
列出完成任务的步骤1,2,3
02-思考解决方案
Instruct the model to work out its own solution before rushing to a conclusion
有时,当我们在明确指示模型做出结论之前,要求它先推理出自己的解决方案,可以使我们获得更好的结果。
⭐指令迭代
“第一个Prompt 是否有效并不重要,重要的是开发适合你的应用程序的Prompt的过程 ”
提示开发是一个迭代过程:尝试一些东西、看看哪些目标尚未实现、考虑如何进一步明确指令/考虑如何给它更多思考空间、用更大的实例集合进行指令设定
对生成信息进行:长度(增删)、角度(过滤-语气、身份)
应用场景:
⭐文本摘要
总结信息-summarize
提取信息-extract
文本推理
模型以文本作为输入并执行某种分析任务
:提取标签、提取名称、理解文本情感
🏷️模型的局限性
幻觉-Hallucination
即便模型在其训练过程中暴露于大量的知识,它也并没有完全记住它所看到的信息,因此它并不非常了解其知识的边界,这意味着它可能会尝试回答关于晦涩主题的问题,并编造听起来合理但实际上不正确的内容。我们把这些虚构的想法称为幻觉
减少幻觉-Reducing hallucination
要求模型首先从文本中找到任何相关的引用,然后要求它使用这些引用来回答问题。(追溯答案)