相关文章:
实战 | 用ChatGPT处理word表格数据:直接采用ChatGPt和利用ChatGPT编写python脚本两种方法
「文心一言」 vs ChatGPT,结果没有你想向中的那么不堪
文心一言和讯飞星火全面对比测试:(一)语言理解能力
文心一言和讯飞星火全面对比测试:(二)任务完成
文心一言和讯飞星火全面对比测试:(三)常识问题
文心一言和讯飞星火全面对比测试:(四)逻辑数学
前文回顾:
在(一)语言理解能力测试中,我们主要测试了两个大语言模型对复杂语义的理解、对文章情绪的识别、对文章进行摘要总结、对文章进行要素提取,测试结果表明:在语言理解能力上:除了有些问题他拒绝回答之外,讯飞星火的表现明显要好于文心一言,可以说很接近ChatGPT3.5的水平。
在(二)任务完成能力中,我们测试了模型对表格的处理能力,完成了藏头诗,拟定了跑步计划,总体发现,两个模型在这方面的能力上表现一般。
在(三)常识问题中,回答不够满意,不知到具体的原因,在逻辑推理上,文心一言和讯飞星火都要比ChatGPT差不少。最后,面对错误的问题,测试关公战秦琼和林妹妹倒拔垂杨柳,AI本着你胡说八道,我就更胡说八道的理念,基本上的就是错上加错。
在(四)逻辑数学中,测试了简单的逻辑推理和文字逻辑题,表现都不如意,测试了几个小学的数学题和奥数题,除了鸡兔问题外,其他的题完成也不好,AI在数学上的表现还要继续努力
今天我们来测试两个模型在编程能力上的表现。比较AI在编程能力上还是有优势的。
1.测试内容设计
自深度学习使得AI技术进入跨越式发展阶段以来,业界就一直在尝试用AI来写代码。
他们自己也表明熟悉多种语言
文心一言:
讯飞星火:
ChatGPT:
测试分为两个方面:
1. 简单代码完成:常见入门级别的编程问题(洛谷入门级),主要的语言为Python和C++;
2. 代码阅读和debug:给一段代码,代码进行注释;根据AI自己编的错误程序,看能不能完成Debug。
2.简单逻辑推理
用例1:B2010 带余除法
请用Python和C++分别帮我编写程序实现如下功能:
给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。
输入:
一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
输出:
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
文心一言:
看程序,文心一言完成没有问题,但是他对输入输出的有问题,提醒后,依然没有修改。
讯飞星火;
这个程序输入到洛谷,可以通过100分
ChatGPT
程序正确,提交能够通过,100分。
用例2:B2048 计算邮资
用Python和C++编程计算邮费。计算规则如下:
根据邮件的重量和用户选择是否加急计算邮费。
重量在1000 以内(包括),基本费8 元;
超过1000 克的部分,每500 克加收超重费4 元,不足500克部分按500克计算;
如果用户选择加急,多收5元。
输入格式:
一行,包含一个正整数x(大于1小于10e6)和一个字符c(取值为y或n),之间用一个空格隔开,分别表示重量和是否加急。
如果字符是 y,说明选择加急;如果字符是 n,说明不加急。
输出格式:
输出一行一个正整数,表示邮费。
文心一言:
看程序,文心一言完全没有理解到题意,从前几次的测试上来看,文心一言的理解能力是比较差的,这样的程序肯定是通不过的。
讯飞星火;
讯飞星火的Python程序得了20%的分,主要问题在于计算加重没有扣除1000g,C++代码变量定义就有问题,编译没有办法通过,后面的逻辑也是和Python一样的错误。
ChatGPT
python,C++程序提交,10个测试点通过9个,一个应该是超重是500的倍数时,如图中标红的地点,就不要+1。
题目只是稍微变难一点,就拉开差距了。后面的测试觉得没有必要做了,很多的题目完成度太低,就不贴出来了
2.程序标注和debug
用例1:对一个简单的程序进行注释
文心一言:
标注得不错,但是输出不是很稳定,有时会出错。
讯飞星火:
回答也不错。
ChatGPT:
就标注来说,整体完成不错。
用例2:对程序进行Debug
选择的是ChatGPT编写的计算邮费的程序,指出当重量是2000时计算错误。
我用Python编程计算邮费。计算规则如下:根据邮件的重量和用户选择是否加急计算邮费。重量在1000 以内(包括),基本费8 元;超过1000 克的部分,每500 克加收超重费4 元,不足500克部分按500克计算;如果用户选择加急,多收5元。输入格式:一行,包含一个正整数x(大于1小于10e6)和一个字符c(取值为y或n),之间用一个空格隔开,分别表示重量和是否加急。如果字符是 y,说明选择加急;如果字符是 n,说明不加急。输出格式:输出一行一个正整数,表示邮费。
我编写的程序如下:
weight, is_urgent = input().split()
weight = int(weight)
basic_fee = 8
if weight > 1000:
overweight = weight - 1000
extra_fee = (overweight // 500 + 1) * 4
else:
overweight = 0
extra_fee = 0
if is_urgent == 'y':
total_fee = basic_fee + extra_fee + 5
else:
total_fee = basic_fee + extra_fee
print(total_fee)
但是,当重量超出部分刚好被500整除时,计算错误,请帮我修改程序,并将程序输出。
文心一言:
首先做了一个修改,但是这修改变得更差了,我提醒他:
我提醒他,但是,他就这样回答我?,是我的描述不对吗?算了吧
讯飞星火:
没有做任何的修改,提醒之后:
指出,但是就不改,像极了我自己,
ChatGPT:
当我提出整除出现错误时,立马体会到了我的意思,而且这个+499向上取整的做法也挺巧妙的,要我会加一个判断
。
差距啊,差距!!
提交,全部通过!
4.总结
今天测试了三个模型的编程能力,ChatGPT的能力还是可以的,我在其他的测试中已经体会道路,但是文心一言和讯飞星火还要努力。
关于文心一言和讯飞星火的测试就全部结束。
还有没有测试到的地方,或是测试方法有错误的地方,希望大家指出,后期看有没有时间做更详细的测试。
希望国产的AI大模型越来越好。