Datawhale-Task2 baseline精读与提示词优化尝试

1.前言

在task1的基础上,对代码进行细化。根据task1的思考,以及task2的代码详解,初步预想这部分的优化主要在提示词的修改上。
不过在修改提示词时,遇到了一个比较麻烦的事情,那就是提示词修改需要大量的试错,根据修改后的得分判断提示词修改的好坏,然而官网每天只能提交三次得分,显然不能满足修改提示词的次数。在经过各种尝试后,我想出了一个替代方法,用下来效果也还不错。

2.详细步骤

这个方法需要借助到阿里云百炼,具体步骤如下:

2.1.选择错题

首先,从开始未经调整模型的输出文件upload.jsonl里,找出一道答案明显有错的题目。比如第一题,显然应该选C.John。
在这里插入图片描述

将这道题结合初始prompt模板,得到本题的提示词。

你是一个逻辑推理专家,擅长解决逻辑推理问题。以下是一个逻辑推理的题目,形式为单项选择题。所有的问题都是(close-world assumption)闭世界假设,即未观测事实都为假。请逐步分析问题并在最后一行输出答案,最后一行的格式为"答案是:A"。题目如下:
### 题目:
有一群人和一些食物类型。下列是关于这些个体和食物的已知信息:

1. 鸡肉是一种食物。
2. 苹果是一种食物。
3. 如果X吃了Y,且X活着,则Y是一种食物。
4. Bill存活。
5. Bill吃了花生。
6. John吃所有食物。
7. Sue吃所有Bill吃的食物。
8. John喜欢所有食物.

根据以上信息,回答以下选择题:
### 问题:
选择题 1:
谁喜欢吃花生?
A.Bill
B.Sue
C.John
D.None of the above

将阿里云百炼切换至qwen2-7B,输入该提示词。
在这里插入图片描述

输出结果如下:

分析给定的信息:

1. 鸡肉和苹果都是食物。
2. Bill活着,并且吃了花生。
3. John吃所有食物。
4. Sue吃所有Bill吃的食物。
5. John喜欢所有食物。

根据第2条信息,我们知道Bill吃了花生并且他还活着,因此花生是一种食物(由第3条规则推导)。第4条信息表明John吃所有食物,这意味着他也吃了花生。但是,由于Sue吃所有Bill吃的食物(第5条信息),她也会吃花生。最后,虽然John喜欢所有食物,但这个问题只问到是否喜欢吃花生,并没有明确提及John对花生的喜好态度。

综上所述,我们确定的是Bill、John和Sue都会吃花生,而问题是询问谁“喜欢吃”花生。虽然Bill确实吃了花生,但我们无法仅凭给出的信息断定他是否“喜欢吃”花生,因为这并没有直接被陈述。同样地,John吃了花生,并且他吃所有食物,但这也不足以断定他是否特别“喜欢”花生。

因此,根据给定的信息,我们不能确定地说任何一个人“喜欢吃”花生,除非有额外的信息表明某个人对花生有特别的喜好。然而,既然这是一个闭世界假设的题目,且给定的信息不足以直接推断出特定的人对花生有“特别的喜欢”,那么最安全的答案是:

### 答案是:D.None of the above

答案跟调用代码输出的一样。

2.2.初步修改提示词

清空对话,然后根据吴恩达老师的提示词工程技巧,对提示词进行初步修改,要求其细分具体步骤。

考虑到逻辑推理问题不可能直接找到答案,需要经过分析后根据分析所得信息进行推理,于是按照初始信息、分析后信息、最终信息三部分要求模型输出。这样是便于分析具体哪一个分析过程出现问题。于是得到以下输出:

1. **初始信息**:
    
    - 鸡肉是食物。
    - 苹果是食物。
    - 如果X吃了Y,并且X活着,那么Y是食物。
    - Bill存活。
    - Bill吃了花生。
    - John吃所有食物。
    - Sue吃所有Bill吃的食物。
    - John喜欢所有食物。
2. **分析后信息**:
    
    - 由第4条我们知道Bill活着。
    -5条告诉我们Bill吃了花生,因此根据第3条规则,花生是食物。
    -6条说明John吃所有食物,因此John会吃花生。
    -7条表明Sue吃所有Bill吃的食物,既然Bill吃了花生,Sue也会吃花生。
    -8条提到John喜欢所有食物,由于花生是食物之一,John当然也喜欢吃花生。
3. **最终信息**:
    
    - 通过分析可知,Bill、John和Sue都会吃花生。
4. **解答问题**:
    
    - 选择题1的答案是: 答案是:A:Bill, B:Sue, C:John

此时可以看到,问题出在分析后信息这一步,大模型不能识别喜欢吃和吃之间的区别,对情感的程度识别不足。

2.3.进一步修改提示词

发现问题后,对提示词进行后续修改。主要包括两部分:1.细化提示词内容,规定输入文本的格式、输出范围。2.限定分析后信息,要求模型不能推理不足或者过度推理。

经过多次尝试与修改,模型最后终于输出正确答案C。
在这里插入图片描述

当然,这个最终信息明显也是有问题的,但是对于这一类的逻辑推理问题,毕竟达到了适度的情感程度。也有可能是我的提示词修改不足,后续可以进行更深入的修改。

2.4.运算得分

将修改后的提示词替换初始提示词,运行模型,上传输出文件,最终得分0.6822,相比初始模型提升了0.03。在仅进行提示词修改的情况下,这个幅度还是不小的。
在这里插入图片描述
在这里插入图片描述

3.总结

这个方法其实有一定的运气成分,但是在我看来,如果通过修改提示词能将明显错误、且多次出错的题答对,那么这个修改后的提示词大概率是能提高模型的表现的。

此外,这种方法还有一个优势,那就是验算速度快。因为通过阿里云百炼,一次只输入一道题,答案输出非常快,可以在很短时间内对提示词进行反复修改。相比运算完整个模型得到全局答案再修改需要花费近半个小时,这个方法在一个小时内可以实现数十次修改。

此外,这个方法也可以结合与微调相结合,从微调后的答案里找到错题,然后进行上述操作修改提示词直到答对,大概率修改后的提示词会比原来的提示词效果更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值