Skip to content

大模型应用开发-Part2

目录

学习参考网站:

  1. Prompt Engineering Guide
  2. OpenAI Prompt
为什么

需要给 AI 下发命令, 让 AI 去完成, 只有剔除了具体的要求, AI 才知道如何去完成。

好的 Prompt 需要不断调优 - 好的提示词是一次次优化出来的:

  • 说清楚自己要什么, 要具体!
  • 不要让机器猜测太多。 为了不让机器去猜测, 我们需要给出细节。
  • 提示工程存在技巧, 灵活掌握, 事半功倍。
提示词构成
  • 指示(Instruction): 描述要让他做什么?
  • 上下文(Context): 给出与任务相关的背景
  • 例子(Examples): 给出一些例子, 例子可以提供有效信息
  • 输入(Input): 任务的输入信息
  • 输出(Output Formate): 输出的格式, 想要什么形式的输出?
1.定义清楚提示词

示例提示词中,要求答案简短准确,要求不确定答案的时候请回答不确定答案。

将上面的 prompt 进行拆分, 按照 prompt 的构成进行拆分并使用 ### 进行分割, 有利于进行变化并且对最终结果是有帮助的。

可以要求输出格式, 例如:

2.Few-Shot learning

大模型的默认行为和预期的行为可能存在差异,因此需要使用 Few-Shot 进行指引。 例如, 原始大模型输出如下:

使用 Few-Shot 引导如下:

可以看到, 输出后模型从原来的大写改为了小写。

如果与大模型本身的行为区别越大, 那就需要更多的例子, 例如, 将单词 neutral 改为 neut, 可能需要举多个样例。 但是要注意大模型本身的上下文长度。

总结: 当模型输出的标准与自己的预期输出存在差异, 单纯 prompt 无法解决的时候可以使用 Few-Shot 来指引。

关于如何区分几个 learning:

  • One Shot learning - 给一个例子
  • Few Shot learning - 给少数几个例子
  • Zero Shot learning - 完全不给例子

Q: 一个问题要提供多少个例子? 如果很多个例子都不 work 该怎么办? A: 一般5-10个例子, 需要注意上下文长度。 十个例子都不太行就考虑 fine-tune。

Few-Shot-Learning 的局限性:

  • 大模型本身存在局限的地方: 推理、数学解答等
    • 仅仅给出例子和答案, 但是没有中间的推理关系, 对大模型是没有帮助的
    • 可以给出推理的过程, 对大模型有帮助, 可能产生帮助

Few-Shot 进阶: 思维链, Self-consitency

3.应用案例3.1 短视频脚本制作

首先需要构造 instruction:

尽管上面可以构造短视频脚本, 但是存在身份不够清晰、输入输出格式不够清晰等问题, 并且很可能不会根据用户的输入来产生输出, 会直接产出随机的脚本。因此需要增加更多的身份信息, 同时提出更加细致的要求:

3.2 小红书爆款文章

基础版instruction:

与案例3.1 相同, 可以随机的产生一定的输出。而小红书文章会喜欢使用很多小表情来点缀文字, 所以再添加更多身份信息时候也要把特点加进去。示例:

3.3 UserCases-模拟面试4.总结

For prompt engineering, one should 对于快速工程,应该

  • Write clear instructions 写清楚的说明
  • Split complex tasks into simpler subtasks 将复杂的任务拆分为更简单的子任务
  • Give GPT-3.5/GPT-4 time to “think” 给 GPT-3.5/GPT-4 时间“思考”
  • Test changes systematically 系统地测试更改

After going through the above steps, they can be extended to 完成上述步骤后,可以扩展到

  • Providing Reference Text 提供参考文本
  • Using external Tools 使用外部工具

Prompt engineering is good for 提示工程适用于

  • Testing and learning early 尽早测试和学习
  • When paired with evaluation it provides the baseline 当与评估配对时,它提供了基线

Not good for 不适合

  • Introducing new information 介绍新信息
  • Reliability replicating a complex style or method (for ex, a new programming language) 复制复杂样式或方法(例如,一种新的编程语言)的可靠性
  • Minimizing token usage 最小化令牌使用