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---")
# 电影评论分类器
prompt ="""
分类电影评论为积极、中性或消极。
只返回大写标签。
评论:《她》(Her)是一部揭示人工智能发展方向的令人不安的影片,
看得我太难受了,根本看不下去。
情感:
"""
# 旅游顾问角色
prompt ="""
我希望你扮演一名旅游顾问。
我会告诉你我的位置,你需要用幽默风格为我推荐3个地方。
我的要求:"我在曼哈顿"
"""
# 输出:将用幽默语气介绍帝国大厦、MoMA和第五大道
# 复古游戏博客
prompt ="""
上下文:你正在为一个关于80年代街机游戏的博客写作。
建议3个文章主题,每个主题附带简短描述。
"""
# 输出:街机游戏柜设计演变、80年代标志性游戏、像素艺术的兴起与复兴
错误示范:
"小明3岁时姐姐年龄是小明的3倍,现在小明20岁,姐姐几岁?"
→ 错误答案:63岁
正确姿势:
请分步骤思考:
1.小明3岁时,姐姐年龄:3 × 3 = 9岁
2.年龄差:9 - 3 = 6岁
3.现在小明20岁,姐姐:20 + 6 = 26岁
# 第一步:先退一步,思考更一般性的问题
response1 = model.predict("哪些场景适合第一人称射击游戏的关卡设计?")
# 输出:废弃军事基地、赛博朋克城市、外星飞船、僵尸小镇、水下研究设施...
# 第二步:基于一般性回答,再回到具体问题
prompt2 =f"""
参考以下场景:
{response1}
现在,为第一人称射击游戏设计一个引人入胜的关卡剧情。
"""
response2 = model.predict(prompt2)
# 输出:一个更有深度和细节的游戏关卡设计
举个例子看看:
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}")
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
prompt ="""
编写一个Bash脚本,询问文件夹名称,并将该文件夹内的所有文件
重命名为在原文件名前添加'draft_'前缀。
"""
prompt ="""
下面的Python代码有错误:
```python
import os
import shutil
folder_name = input("请输入文件夹名: ")
prefix = input("请输入前缀: ")
text = toUpperCase(prefix) # 错误在这里
...
请诊断问题并给出正确解决方案。 """
## 六、结构化输出黑科技
```json
{
"电影评价": {
"情感倾向":"
OSITIVE",
"理由": ["演技精湛","剧情紧凑"],
"推荐指数": 4.5
}
}
优势:
# 角色扮演模板
作为[专业角色],请[执行任务],要求[具体要求]。
例:作为财务顾问,分析以下季度报告的关键指标,重点关注盈利增长点。
# 步骤分解模板
请按照以下步骤完成[任务]:
1.首先...
2.接着...
3.最后...
# 对比分析模板
请比较[A]和[B]在以下几个方面的异同:
-成本效益
-实施难度
-长期价值
好例子:
正例:"这个餐厅服务超棒!" → POSITIVE
反例:"食物是冷的" → NEGATIVE
中性:"上菜速度一般" → NEUTRAL
✅ 好例子:"生成一段关于世嘉DC的文字,只讨论硬件规格和发布时间"
❌ 坏例子:"生成一段关于世嘉DC的文字,不要提及游戏和价格"
| 提示名称 | 目标 | 模型 | 温度 | Top-K | Top-P | 提示内容 | 输出结果 |
|--------|------|-----|-----|-------|------|--------|--------|
| 游戏评论v1 | 分析游戏特点 | gemini-pro | 0.2 | 40 | 0.8 | ... | ...
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |