Prompt大全(Qwen实践)

LLM Prompt通用技巧

本文主要参考https://www.promptingguide.ai/zh并结合自身的一些思考
常用结构:

指令:想要模型执行的特定任务或指令。
上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。
输入数据:用户输入的内容或问题。
输出指示:指定输出的类型或格式。

### 将以下文本翻译成西班牙语:###
examples
文本:“hello!”

  1. 从简单开始,逐步添加上下文和要求,或者分解复杂任务为多个子任务避免初期的困难
  2. 要非常具体地说明你希望模型执行的指令和任务
  3. 避免在Prompt上过于聪明,切中要点,避免模糊的要求
  4. 它应该做什么,而非不能做什么(它应该避免),聚焦于良好的回复上。

Advanced Prompt 技巧

  1. COT and Few-shot COT
    COT例子
    针对特定任务的Few-shot COT example比较难写,可以在LLM自动生成的COT链路上不断优化微调

  2. 定义任务分解流程Prompt Chain
    对于复杂任务难以一次性解决的或者输入输出太长的,可以多轮调用LLM,进行step-by-step的微调控制
    需要对任务步骤有先验知识,且调用次数比较多,通用能力差

  3. 自动控制COT的阶段(ToT)
    自动分解问题阶段(深度),每阶段提出多条路径(广度),以阶段语句为节点单位
    TOT举例
    广度K=3,深度由问题确定;生成candidate和判断candidate分别调用了一次LLM,对于失效的candidate进行剪枝;对于candidate的生成和判断应该要专门写Prompt适配任务,通用的Prompt如下:

假设三位不同的专家来回答这个问题。
所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。
所有专家完成第一步骤后,所有专家都写下他们思考的第二步骤并分享。
所有专家完成第二步骤后,所有专家都写下他们思考的第三步骤并分享。
以此类推,直到所有专家写完他们思考的所有步骤。
只要大家发现有专家的步骤出错了,就让这位专家离开,不在进行下一步骤的推理和分享。
请问...
  1. Tool Use based (ReAct and Reflection)
    Agent类型的雏形出现了(Tool use+memory+LLM+reflection),LLM具备自动思考解决问题的能力
    LLMs 以交错的方式生成 推理轨迹 和 任务特定操作
    生成推理轨迹使模型能够诱导、跟踪和更新操作计划,甚至处理异常情况。操作步骤允许与外部源(如知识库或环境)进行交互并且收集信息。

一个例子:

问题 科罗拉多造山带东部区域延伸到的区域的海拔范围是多少?
思考 1 我需要搜索科罗拉多造山带,找到科罗拉多造山带东段延伸的区域,然后找到该区域的海拔范围。
操作 1 搜索 [科罗拉多造山带]
观察 1 科罗拉多造山带是科罗拉多及其周边地区造山运动的一段。
思考 2 它没有提到东部地区。所以我需要查一下东部地区。
操作 2 查找 [东部地区]
观察 2 (结果 1 / 1) 东部区域延伸至高平原,称为中原造山带。
思考 3 科罗拉多造山运动的东部区域延伸到高平原。所以我需要搜索高平原,找到它的海拔范围。
操作 3 搜索 [高平原]
观察 3 高平原指的是两个截然不同的陆地区域之一。
思考 4 我需要搜索高平原(美国)
操作 4 搜索 [高平原(美国)]
观察 4 高平原是大平原的一个分区。从东到西,高平原的海拔从 1800 到 7000 英尺 (550 到 2130 米) 不等。[3]
思考 5 高平原海拔高度从 1800 到 7000 英尺,所以答案是 1800 到 7000 英尺。
操作 5 结束 [1800 到 7000 英尺]
...

上述few-shot prompt中,包含推理轨迹-任务操作-操作结果三个基本步骤,其中任务操作允许与外部环境交互来提升LLM的能力;

#基于langchain实现React, tools包含数学和搜索能力
#在这个Agent下,会进行思考-动作-观察的推理链路
llm = OpenAI(model_name="text-davinci-003" ,temperature=0)
tools = load_tools(["google-serper", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)

4.1 Code-First Agent(TaskWeaver)
专注于LLM生成Code解决问题,适合精确度要求高或者图表绘制相关的问题
不是使用自由形式文本来获得解决方案,而是将解决步骤卸载到类似 Python 解释器的编程运行时中

个人时间:对于表格数据,text2sql,text2pd等数据分析工作,表头的字段名称和类型对于sql的质量有关键的影响;尽量只输入表头信息和一行demo数据防止超过LLM的context limits; 在code执行结束后进行Reflection判断是否需要重新生成

Reflection Agent
自我反思模块:对于ReAct+COT方案无法记录错误案例的方式进行自动化处理
使用额外LLM对Actor生成的output进行分析判断,出现报错、不符合常理等问题应该避免重复出现,符合问题要求的作为下一步的基础输入;
另有记录在外部文件(Long-term memory)的必要,为未来的试验提供宝贵的反馈。自我反思模型利用奖励信号、当前轨迹和其持久记忆生成具体且相关的反馈;

  1. RAG知识检索(适合知识密集型任务)
### Ubuntu 下百度网盘启动卡死问题解决方案 在 Ubuntu 系统中,百度网盘可能会因为某些特定的原因导致启动时出现卡死现象。以下是可能的解决方法: #### 方法一:卸载 Office 加载项 百度网盘默认会安装 Microsoft Office 的加载项,这可能导致 Word 或其他 Office 应用程序启动变慢甚至影响整个系统的性能。可以通过以下方式卸载该加载项: 1. 打开 `~/.baidunetdisk` 文件夹。 2. 删除其中与 Office 加载项相关的配置文件或目录。 通过这种方式可以有效减少因加载项引起的系统资源占用问题[^4]。 #### 方法二:重新安装百度网盘客户端 有时,软件本身可能存在兼容性问题或者损坏的情况。建议尝试删除旧版本并重新安装最新版本的百度网盘客户端: ```bash sudo apt-get remove --purge baidunetdisk wget http://issuecdn.baidupcs.com/issue/netdisk/LinuxGuanjia/baidunetdisk_linux_2.0.1.deb sudo dpkg -i baidunetdisk_linux_2.0.1.deb ``` 上述命令用于完全移除现有百度网盘包以及重新下载官方提供的 `.deb` 安装包进行安装[^1][^2]。 #### 方法三:调整图形界面设置 部分用户的显卡驱动或其他显示参数可能与百度网盘存在冲突,从而引发启动失败的问题。可以在终端执行如下命令来禁用硬件加速功能: ```bash export QT_XCB_FORCE_SOFTWARE_OPENGL=1 /usr/bin/baidunetdisk ``` 此操作强制使用软件渲染而非 GPU 渲染模式,有助于规避潜在的图形适配错误[^3]。 #### 方法四:更新操作系统及其库文件 确保当前使用的 Linux 发行版处于最新的状态也很重要,因为它能够修复许多已知漏洞和提升整体稳定性: ```bash sudo apt update && sudo apt full-upgrade -y ``` 完成升级后再试一次启动百度网盘服务看看是否有改善效果。 --- ### 注意事项 如果以上措施均未能解决问题,则可考虑采用第三方工具如 **bypy** 来代替原生客户端实现数据同步需求。 ```python # 示例代码展示如何初始化 bypy 工具并与个人账户关联 import subprocess subprocess.run(["pip3", "install", "--upgrade", "bypy"]) result = subprocess.run(['bypy', 'info'], capture_output=True, text=True) print(result.stdout) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值