【动手学大模型开发-第二章学习笔记】

本文介绍了如何有效地利用大模型API,包括使用清晰和具体的指令、提供足够的思考时间、结构化输出和Few-shot提示。作者强调了分解问题和引导模型自我解决问题的重要性,以及大模型在某些情况下可能出现的缺陷和幻觉问题。
摘要由CSDN通过智能技术生成

基本概念

prompt: prompt包括system promptuser promptsystem prompt会持续性影响模型的回复,常用于人设的设定; user prompt就更偏向于我们平时提供的输入。
completion: 模型给你的回复。
temperature: 用于控制模型的创意性程度,0最保守,1则更具有创意性

调用大模型API

调用大模型API使用的prompt主要包含两个原则,分别是使用清晰,具体的指令给模型时间去思考。使用清晰具体的指令很好理解,但给模型时间去思考并不是说sleep等待的意思,我的理解是将任务分解,让模型的逻辑更加清晰。

使用清晰,具体的指令

  1. 使用分割符
    一开始我使用官方的prompt得到回答使用分割符和没使用分割符没有区别。之后我换了自己的问题,将“你是谁”换成了“你有意识吗”。使用分割符和不使用分割符的差别马上可以分辨出来。第一张图是使用分割符的运行截图,第二张图是没有使用分割符的运行截图。(第一张图的回答有点吓人)
    在这里插入图片描述
    在这里插入图片描述

  2. 结构化输出
    为了方便python处理大模型的输出,常常会让模型输出的结果以JSON的格式返回。记得要指定JSON输出的键值,不然可能键值不是你想要的。如下图所示是指定了键值和没指定键值的运行结果
    请添加图片描述
    请添加图片描述

  3. 要求模型检查是否满足条件
    如果模型不满足条件则停止执行后面的步骤,防止意外和错误发生。有点像写程序里的if最后总要跟个else来兜底,处理一些异常情况。例如教程里给的例子就很好的处理了没有与其指令的输入。请添加图片描述

  4. 提供少量实例
    “Few-shot” prompting(少样本提示),即在要求模型执行实际任务之前,给模型提供一两个参考样例,让模型了解我们的要求和期望的输出样式。这个也很好理解,我们学习的时候也会通过例子来加深理解。
    请添加图片描述

给模型时间去思考

  1. 指定完成任务所需的步骤
    教程里给的例子很详细,也很容易理解,此处不再赘述。总之就是尽量把复杂的问题细分成一个个简单的问题。模型生成的结果还是不错的。
    请添加图片描述
    请添加图片描述
  2. 在模型下结论前先找到自己的解法
    对比下面两种prompt,第一种让模型直接得出对错的结论有点难,甚至可能得出错误的结论。
prompt = f"""
判断学生的解决方案是否正确。
问题:
我正在建造一个太阳能发电站,需要帮助计算财务。
土地费用为 100美元/平方英尺
我可以以 250美元/平方英尺的价格购买太阳能电池板
我已经谈判好了维护合同,每年需要支付固定的10万美元,并额外支付每平方英尺10美元
作为平方英尺数的函数,首年运营的总费用是多少。
学生的解决方案:
设x为发电站的大小,单位为平方英尺。
费用:
土地费用:100x
太阳能电池板费用:250x
维护费用:100,000美元+100x
总费用:100x+250x+100,000美元+100x=450x+100,000美元
"""
prompt = f"""
请判断学生的解决方案是否正确,请通过如下步骤解决这个问题:
步骤:
首先,自己解决问题。
然后将您的解决方案与学生的解决方案进行比较,对比计算得到的总费用与学生计算的总费用是否一致,
并评估学生的解决方案是否正确。
在自己完成问题之前,请勿决定学生的解决方案是否正确。
使用以下格式:
问题:问题文本
学生的解决方案:学生的解决方案文本
实际解决方案和步骤:实际解决方案和步骤文本
学生计算的总费用:学生计算得到的总费用
实际计算的总费用:实际计算出的总费用
学生计算的费用和实际计算的费用是否相同:是或否
学生的解决方案和实际解决方案是否相同:是或否
学生的成绩:正确或不正确
问题:
我正在建造一个太阳能发电站,需要帮助计算财务。
- 土地费用为每平方英尺100美元
- 我可以以每平方英尺250美元的价格购买太阳能电池板
- 我已经谈判好了维护合同,每年需要支付固定的10万美元,并额外支付每平方英尺10美元;
作为平方英尺数的函数,首年运营的总费用是多少。
学生的解决方案:
设x为发电站的大小,单位为平方英尺。
费用:
1. 土地费用:100x美元
2. 太阳能电池板费用:250x美元
3. 维护费用:100,000+100x=10万美元+10x美元
总费用:100x美元+250x美元+10万美元+100x美元=450x+10万美元
实际解决方案和步骤:
"""

如果引导模型先自己自主思考解决问题,再来判断正确与否,可以得到更准确的结果。模型的输入结果如下图所示。第一张是直接判断对错,第二张图是引导模型自己县先解决问题再判断对错。第二种prompt得到的结果是对的。但对于这种问题感觉还是目前大模型的一个缺陷,只能通过prompt来修复这个缺陷,希望后面能够有办法解决这个问题。请添加图片描述
请添加图片描述

大语言模型的幻觉问题:模型一本正经的胡说八道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值