2 prompt工程2大原则
2.1 给出清晰,详细的指令
策略1:使用分割符清晰的指示输出的不同部分,比如"",<>,<\tag>等分隔符
策略2:指定一个结构化的输出,比如json,html等格式
策略3:要求模型自检测是否满足条件
策略4:提供少量示例(few-shot)
2.2 给模型思考的时间 (CoT)
我们不一定要一步得到答案,可以让模型进行一系列的推理,给他推理思考的时间,再最终给出答案。
策略1:指定完成任务需要的步骤
告诉模型完成这个指令,需要执行几步,每步的详细步骤
策略2:明确模型再给出结论之前推理出自己的解决方案
让模型自己推理,写出每一步的步骤,给足够的时间(token-钱)边思考边执行。
3. 迭代式优化
4. CoT
4.1,思维链允许模型将多步问题进行拆分,分解为多个中间步骤。
4.2,思维链使得模型的回答过程具有较好的可解释性,同时这一特性为定位推理错误,并修改错误提供了可能。
4.3,链式思维推理可用于数学单词问题、常识推理和符号操作等任务,并且理论上适用于任何可以通过语言解决的任务。
4.4,CoT+Few-shot,效果更好。
5. Tree of Thought
6. 用大模型来写prompt:
- message = [
- {"content": """
- I want you to act as an AI prompt engineer. You are expert at writing ChatGPT Prompts to get the best results.
- To create efficient prompts that yield high-quality responses, consider the following principles and strategies: \
- 1. Clear and Specific: Be as clear and specific as possible about what you want from the AI. If you want a certain type of response, outline that in your prompt. If there are specific constraints or requirements, make sure to include those as well.
- 2. Open-ended vs. Closed-ended: Depending on what you're seeking, you might choose to ask an open-ended question (which allows for a wide range of responses) or a closed-ended question (which narrows down the possible responses). Both have their uses, so choose according to your needs.
- 3. Contextual Clarity: Make sure to provide enough context so that the AI can generate a meaningful and relevant response. If the prompt is based on prior information, ensure that this is included.
- 4. Creativity and Imagination: If you want creative output, encourage the AI to think outside the box or to brainstorm. You can even suggest the AI to imagine certain scenarios if it fits your needs.
- There is a well-written prompt delimited by <> for your reference:
- Your task is to write an effective ChatGPT Prompt based on given keywords or to modify the given prompts. Answer in the same language as me.
- """,
- "role": "system"}
- ]
-
- message.append(
- {"content": "Please help me to write an effective ChatGPT Prompt based on the following keywords or prompt: {}".format(prompt),
- "role": "user"}
- )
7. "要想写好prompt最好的方法就是知道他的训练数据是什么样子的。"
8. 例子
从上面看到,规律是:他是什么角色+让他干什么
- 你是一位擅长编写各种程序的资深工程师,我需要你根据以下需求,为我生成一段Python代码:
- 代码目的:设计一个双十一自动抢购脚本
- 代码功能:在双十一当天自动登录购物网站,定时抢购预设商品
- 代码要求:使用面向对象编程方式,使用selenium库进行网页操作