通义千问上手体验:阿里达摩院的AI大模型究竟怎么样?
今天正打算写我昨天说的Vercel自建meting-api,然后无意间看到了一篇通义千问的文章,我就想着看看我一个星期前申请的通义千问的测试资格下来没有,打开一看拿到了测试资格,就第一时间写了这篇体验文章,至于刚刚那个,我鸽一下吧,等暑假再更。
自我介绍
基础的我就不介绍了,让通义千问自我介绍下
语言处理能力测试
中文测试
中文测试我们就选用今年新高考一卷的作文,看看他的写作能力
文章用到引用论证,是高考议论文常用的手法,通义千问不是干说大道理,而是有理有据,至于例子运用的好不好我就不做评判了,你们可以结合下面的作文解析自己感受一下。
作文解析
2018年习近平总书记在全国宣传思想工作会议上提出:“展形象,就是要推进国际传播能力建设,讲好中国故事、传播好中国声音,向世界展现真实、立体、全面的中国,提高国家文化软实力和中华文化影响力。”
2022年党的二十大报告中指出,“加快构建中国话语和中国叙事体系,讲好中国故事、传播好中国声音,展现可信、可爱、可敬的中国形象。”
命题人的命题灵感来源可见一斑。
材料列举了“好的故事”在不同情境的不同作用,由小及大,“表达沟通—改变个人命运—展现民族形象”。最后总结:“故事是有力量的”,抽丝剥茧,抓住关键词:“故事”是行文的基本范畴;“力量”是描述重点,也是考生布局谋篇的落脚点。考生成长过程中都有听故事的经历,对所闻所见所经历的故事都有真切感受。在文体的选择上,考生可以记叙生活中的故事感悟;可以对某个故事进行分析议论;既可以书写日常生活中个人感触小处入手,也可以探讨如何讲好中国故事等宏观问题。本题可以选择的范围较宽,审题立意、布局谋篇都不难。因为可选素材相对较多,所以写一篇议论文,成篇更容易。
英语测试
我随机在我的博客里面找了一句话让他翻译为英文
生产力表现
为了测试通义千问在编程上的能力,我们选取了Leetcode上的第四道算法题寻找两个正序数组的中位数,我们对比了通义千问的回答和亚马逊的AWS的答案让我很是惊讶
原题在这:
通义千问
题目描述
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。
算法的时间复杂度应该为 O(log (m+n)) 。
示例 1:
nums1 = {2, 4, 6, 8, 10}
nums2 = {1, 3, 5, 7, 9}
则中位数是 5.0
示例 2:
nums1 = {1000, 1001, 1002, 1003, 1004}
nums2 = {2000, 2001, 2002, 2003, 2004}
则中位数是 2001.5
提示:
本题中的答案是中位数,而不是排序后的结果。
题目分析
这道题目是一道经典的正序数组中位数问题,可以使用归并排序的思想进行求解。
我们可以先将两个数组进行归并排序,然后根据排序后的数组的长度,求解中位数。
由于两个数组的长度之和为 m + n,所以中位数的长度为 ceil((m + n) / 2)。
中位数的值可以通过以下步骤求解:
- 找到两个数组中的第 m 个元素和第 n 个元素。
- 将这两个元素作为中位数的前两个元素。
- 将数组中的其他元素按照从小到大的顺序排列,并将第 m 个元素作为中位数的后一个元素,将第 n 个元素作为中位数的前一个元素。
代码实现
以下是使用 Python 实现的代码,其中包括了归并排序的实现:
1 | Copy code# 定义排序函数 |
这段代码中,我们首先实现了两个排序函数,分别用于对两个数组进行排序。然后,我们定义了一个 get_median
函数,用于求解中位数。该函数的实现中,我们首先计算出两个数组的长度之和,然后根据中位数的定义,将排序后的数组分为两部分,取其中间的那一部分作为中位数的前两个元素,将排序后的数组中的第 m 个元素作为中位数的后一个元素,将数组中的其他元素按照从小到大的顺序排列,并将第 m 个元素作为中位数的后一个元素,将第 n 个元素作为中位数的前一个元素。最后,我们将求得的中位数作为结果返回。
在主函数中,我们首先输入两个正序数组,然后分别调用 merge_sort
和 get_median
函数求解中位数,并将求得的中位数输出。
注意,在输出结果时,我们使用了 print
函数中的 range
函数,分别获取了两个数组的长度。
以上是通义千问的回答,通义千问的题目解读就给我干懵了,原题的意思是将的到的两个数组nums1和nums2合并取这个并集中元素的中位数吧,这个好像是高中必修一的元素和集合,再加上初中或高中的求中位数吧。示例一中只求了nums2的中位数就算了,可能是我描述的不够清楚(但我好像是直接把题干复制过去的喔),示例二我就真的搞不懂了,他究竟怎么求出2001.5的,离了个大谱!
亚马逊AWS
1 | # 写一个函数,给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 |
没什么好说的,给你们看一下Leetcode的测试结果,全绿通过,毕竟是专业选手(这位职业选手要不要写篇文章介绍下,可能暑假会考虑一下)
小功能
通义千问的百宝箱里面有一些小功能,彩虹屁专家,写情书(不会真的有人用这个玩意写情书吧,不会吧,不会吧),为你写诗,小学生作文(一定不能让小学生知道…),会放飞的菜谱(这个玩意挺有意思,只要你想的出名字的菜,他就可以给你自动生成制作步骤)
我不明白怎么还有奥田一体集成灶,这个真的不是软广,是他自动生成的,不过生成的还挺正常,不过既然这个功能叫做会放飞的菜谱
那我们也放飞我们的想象力,创造了一些离谱的菜,果然也正儿八经的生成出来了。
你会发现一个奇怪的事情,就是我们的红烧RTX4090,写着写着就变成了红烧鸡腿了,4090不见踪影,而iPhone 13这边则是一本正经的写下来了,甚至还有小提示。(看来还是RTX4090比较贵一点…)
结尾
我没有搞到其他大模型的测试资格,所以这篇文章主要是单纯的测试,没有对比,但后续如果我搞到了其它的大模型的测试资格,我也会和通义千问进行对比的。