返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

玩转提示工程:让AI听懂人话的实战手册

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 17:55 |阅读模式 打印 上一主题 下一主题

一、模型调参三剑客

1. 温度(Temperature)

  • 低温度(0.1):"天空是__" → "蓝色的"(确定性高)
  • 高温度(0.9):"天空是__" → "撒满星星的画布"(创造性高)

2. Top-K & Top-P

实用参数设置:

  • 精确答案型任务:temperature=0, top_k=1(严格预测模式)
  • 创意文案型任务:temperature=0.9, top_k=40, top_p=0.95(发散思维模式)
  • 通用问答型任务:temperature=0.2, top_k=30, top_p=0.8(平衡模式)

二、提示词格式大比拼

同样需求,不同提问方式,效果大不同:

# 三种提问方式实验
prompts = [
# 问题型
"世嘉Dreamcast是什么,为什么它被认为是革命性的游戏机?",

# 陈述型
"世嘉Dreamcast是1999年发布的第六代游戏主机...",

# 指令型
"写一段介绍世嘉Dreamcast的文字,解释为什么它在游戏主机历史上具有革命性意义。"
]

# 输出三种不同结果比较
forpromptinprompts:
response = model.predict(prompt, temperature=0.7)
print(f"提示类型:{prompt[:10]}...\n输出:{response}\n---")

三、三种提示模式大揭秘

1. 系统提示(System Prompting)

# 电影评论分类器
prompt ="""
分类电影评论为积极、中性或消极。
只返回大写标签。
评论:《她》(Her)是一部揭示人工智能发展方向的令人不安的影片,
看得我太难受了,根本看不下去。
情感:
"""

2. 角色提示(Role Prompting)

# 旅游顾问角色
prompt ="""
我希望你扮演一名旅游顾问。
我会告诉你我的位置,你需要用幽默风格为我推荐3个地方。
我的要求:"我在曼哈顿"
"""
# 输出:将用幽默语气介绍帝国大厦、MoMA和第五大道

3. 上下文提示(Contextual Prompting)

# 复古游戏博客
prompt ="""
上下文:你正在为一个关于80年代街机游戏的博客写作。
建议3个文章主题,每个主题附带简短描述。
"""
# 输出:街机游戏柜设计演变、80年代标志性游戏、像素艺术的兴起与复兴

四、高级思维技巧

1. 思维链(CoT)实战

错误示范
"小明3岁时姐姐年龄是小明的3倍,现在小明20岁,姐姐几岁?"
→ 错误答案:63岁

正确姿势

请分步骤思考:
1.小明3岁时,姐姐年龄:3 × 3 = 9岁
2.年龄差:9 - 3 = 6岁
3.现在小明20岁,姐姐:20 + 6 = 26岁

2. 步退提示(Step-back Prompting)

# 第一步:先退一步,思考更一般性的问题
response1 = model.predict("哪些场景适合第一人称射击游戏的关卡设计?")
# 输出:废弃军事基地、赛博朋克城市、外星飞船、僵尸小镇、水下研究设施...

# 第二步:基于一般性回答,再回到具体问题
prompt2 =f"""
参考以下场景:
{response1}

现在,为第一人称射击游戏设计一个引人入胜的关卡剧情。
"""
response2 = model.predict(prompt2)
# 输出:一个更有深度和细节的游戏关卡设计

3. 思维树(Tree of Thoughts)

▲ 思维链vs思维树:从单一推理到多路径探索

举个例子看看:

4. 自一致性(Self-consistency)

# 用多次推理验证答案
responses = []
foriinrange(5): # 运行5次同样的问题
response = model.predict(
"判断邮件内容是重要还是不重要,要分步骤思考:\n[邮件内容]\n判断结果:",
temperature=0.8# 使用高温度产生多样化结果
)
responses.append(response)

# 统计最多数结果
importcollections
result = collections.Counter([r.split("结论:")[-1].strip()forrinresponses]).most_common(1)[0][0]
print(f"最终判断:{result}")

5. ReAct模式(推理+行动)

fromlangchain.agentsimportload_tools
fromlangchain.agentsimportinitialize_agent

# 初始化搜索工具
tools = load_tools(["serpapi"], llm=llm)
agent = initialize_agent(
tools,
llm,
agent="zero-shot-react-description",
verbose=True
)

# 执行多步查询
agent.run("Metallica乐队成员共有多少个孩子?")

执行过程:

思考: Metallica有4名成员
行动: 搜索"How many kids does James Hetfield have?"
观察: three children
思考: 1/4成员有3个孩子
行动: 搜索"How many kids does Lars Ulrich have?"
观察: 3
思考: 2/4成员共有6个孩子
...最终答案: 10

五、代码提示专家秘笈

1. 生成代码

prompt ="""
编写一个Bash脚本,询问文件夹名称,并将该文件夹内的所有文件
重命名为在原文件名前添加'draft_'前缀。
"""

2. 调试代码

prompt ="""
下面的Python代码有错误:
```python
import os
import shutil
folder_name = input("请输入文件夹名: ")
prefix = input("请输入前缀: ")
text = toUpperCase(prefix) # 错误在这里
...

请诊断问题并给出正确解决方案。 """


## 六、结构化输出黑科技
```json
{
"电影评价": {
"情感倾向":"OSITIVE",
"理由": ["演技精湛","剧情紧凑"],
"推荐指数": 4.5
}
}

优势

  • 降低了30%的幻觉内容[3]
  • 强制模型按结构回答
  • 便于后端处理和集成

七、实用提示词模板大全

# 角色扮演模板
作为[专业角色],请[执行任务],要求[具体要求]。
例:作为财务顾问,分析以下季度报告的关键指标,重点关注盈利增长点。

# 步骤分解模板
请按照以下步骤完成[任务]:
1.首先...
2.接着...
3.最后...

# 对比分析模板
请比较[A]和[B]在以下几个方面的异同:
-成本效益
-实施难度
-长期价值

八、避坑指南

  1. 少样本提示要混搭类型:
好例子:
正例:"这个餐厅服务超棒!" → POSITIVE
反例:"食物是冷的" → NEGATIVE
中性:"上菜速度一般" → NEUTRAL
  1. 使用指令而非限制
✅ 好例子:"生成一段关于世嘉DC的文字,只讨论硬件规格和发布时间"
❌ 坏例子:"生成一段关于世嘉DC的文字,不要提及游戏和价格"
  1. 记录提示实验结果
| 提示名称 | 目标 | 模型 | 温度 | Top-K | Top-P | 提示内容 | 输出结果 |
|--------|------|-----|-----|-------|------|--------|--------|
| 游戏评论v1 | 分析游戏特点 | gemini-pro | 0.2 | 40 | 0.8 | ... | ...

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ